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
+ *