I discovered the cause of the parallel build problem.
[For those who haven't noticed, "make -j3 check" would fail
 pretty consistently. ]

The patch below fixes it.
It moves the test-related rules into individual (new) scripts.
Then, those files are listed as "TESTS = ...":

  TESTS = run-unit-tests run-python-tests

So, after applying this patch, be sure to make them executable
and add them, i.e.,

  chmod a+x tests/run-python-tests tests/run-unit-tests
  svn add tests/run-python-tests tests/run-unit-tests

Hmm... I see that "svn diff" output below notes these files are executable,
so maybe there's an "apply-svn-patch" tool that honors settings like these:

    Property changes on: tests/run-python-tests
    ___________________________________________________________________
    Name: svn:executable

----------------------------------------------------------
The problem was caused by the combination of my not doing the automake
checks properly, and by libtool writing directly to a target (rather than
writing to a temp. file and renaming).  But since the libtool corruption
was triggered only when running two identical invocations in parallel,
it's not really libtool's fault.

2006-12-08  Jim Meyering  <[EMAIL PROTECTED]>

        Move each test into a script of its own, as Automake requires.
        * tests/Makefile.am (TESTS): List test script names here,
        rather than listing rules as dependents of "check".
        (EXTRA_DIST): Add $(TESTS).
        (run-unit-tests, run-python-tests): Remove rules, putting their
        contents in the following new scripts.
        * tests/run-unit-tests: New one-line script.
        * tests/run-python-tests: New script, containing the script
        from Makefile.am.

Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am   (revision 484754)
+++ tests/Makefile.am   (working copy)
@@ -64,18 +64,9 @@

 noinst_PROGRAMS = $(client_tests)

-check: run-unit-tests run-python-tests
+TESTS = run-unit-tests run-python-tests
+EXTRA_DIST += $(TESTS)

-.PHONY: run-unit-tests
-run-unit-tests: $(check_LTLIBRARIES)
-       DllPlugInTester -c -b .libs/*.so
-
-run-python-tests: $(check_LTLIBRARIES) ../src/qpidd
-       ../src/qpidd > qpidd.log 2>&1 & pid=$$!;        \
-       trap 'status=$$?; kill $$pid; exit $$status' 0; \
-       trap '(exit $$?); exit $$?' 1 2 13 15;          \
-       cd ../../python ; ./run-tests -v -I cpp_failing.txt
-
 include gen.mk

 abs_builddir = @abs_builddir@
Index: tests/run-unit-tests
===================================================================
--- tests/run-unit-tests        (revision 0)
+++ tests/run-unit-tests        (revision 0)
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+DllPlugInTester -c -b .libs/*.so

Property changes on: tests/run-unit-tests
___________________________________________________________________
Name: svn:executable
   + *

Index: tests/run-python-tests
===================================================================
--- tests/run-python-tests      (revision 0)
+++ tests/run-python-tests      (revision 0)
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+set -e
+log=`pwd`/qpidd.log
+# Start the daemon, recording its PID.
+../src/qpidd > $log 2>&1 & pid=$!
+
+# Arrange to kill the daemon upon any type of termination.
+trap 'status=$?; kill $pid; exit $status' 0
+trap '(exit $?); exit $?' 1 2 13 15
+
+# Run the tests.
+cd ../../python && ./run-tests -v -I cpp_failing.txt
+
+rm -f $log

Property changes on: tests/run-python-tests
___________________________________________________________________
Name: svn:executable
   + *

Reply via email to