I'm using automake 1.11.1's 'parallel-tests' test suite capabilities.  It's
been fine so far.  I even hacked it a little to support launching my MPI
programs.  I have some tests that run serially (without MPI) and some that
do:

TESTS = $(SERIAL_TESTS) $(PARALLEL_TESTS)
LOG_COMPILER = \
maybe_mpi=`if echo "$(SERIAL_TESTS)" | $(GREP) "$$p" > /dev/null; then echo
""; else echo "$(MPIEXEC)"; fi`; \
$$maybe_mpi

Users run the test suite using something like

make check MPIEXEC="mpiexec -np 4"

On one particular platform we don't use MPI but instead have our own process
manager built into each of our programs.  This means each program must be
launched by passing command-line arguments such as "-np 4".  How can I do
this?  I tried:

LOG_COMPILER = \
maybe_mpi=`if echo "$(SERIAL_TESTS)" | $(GREP) "$$p" > /dev/null; then echo
""; else echo "$(MPIEXEC)"; fi`; \
tst="$$dir$$f -np 4"; \
$$maybe_mpi

But then all of my tests fail with something like:

/bin/sh: ./testing/simplelock.x -np 4: No such file or directory

So how can I pass the same command-line arguments to all of my test
programs?

To make things even harder, I have some test programs which take specific
command-line arguments.  I've been leaving them out of the test suite since
I can't figure out how to pass command-line arguments to any tests let alone
individual tests.

I'd be happy enough if there was a solution to the first problem.  I'd be
absolutely thrilled if I could solve both.  Thanks.

Jeff


Reply via email to