* John Wohlbier wrote on Tue, Mar 03, 2009 at 05:13:17PM CET: > > I got the basic functionality to work with the following. > > m4_define([AT_MPIRUN_PROGRAM], > [AT_BANNER([executing mpirun -n $2 $1]) > AT_SETUP([$1]) > AT_CHECK([test -n "$MPI_LIBS" || exit 77]) > AT_TESTED([$1]) > AT_CHECK([mpirun -n $2 $1],[0],[ignore],[ignore]) > AT_CLEANUP > ]) > > m4_define([AT_SERIALRUN_PROGRAM], > [AT_BANNER([executing ./$1]) > AT_SETUP([$1]) > AT_CHECK([test -z "$MPI_LIBS" || exit 77]) > AT_TESTED([$1]) > AT_CHECK([$1],[0],[ignore],[ignore]) > AT_CLEANUP > ]) > > I was surprised by the AT_CHECK([test -z "$MPI_LIBS" || exit 77]) line > (note it's different than what you suggested). I had to flip the -n and -z > tests. I guess the double pipe (||) means that if the first argument is > true, then take it, otherwise take exit 77. `||' is like logical or. If the left command exits successfully (0), then the right argument is not evaluated. BTW, if I were you, then I would do this differently: don't use separate tests for parallel and serial, but just adjust the AT_CHECK within one test. BTW2, a comment regarding portability. The newer MPI standard specifies mpiexec rather than mpirun; but in practice, there are still lots of system differences regarding how to start MPI jobs, be that some flavor of mpirun, mpprun, qsub, loadlever or so. Further, on some of the big iron systems, MPI is enabled and linked to by default (or even part of "libc"), so MPI_LIBS may as well be empty for them. They typically have different program startup procedures, too. > The last thing is asthetic. I would rather not have the "other" test(s) > execute at all. When I build and test serial I see [...] > executing ./test_Cell_Field > > 1: test_Cell_Field ok > > executing mpirun -n 1 test_Cell_Field > > 2: test_Cell_Field skipped > (test_Cell_Field.at:3) > [...] That would be obsolete with my first comment above. But otherwise I can understand your request. You can limit the number of tests executed by passing numbers or keywords ./testsuite 1-4 9-14 23- ./testsuite -k mpirun Keywords are matched case-insensitively, matching full words, and both against the test names and against additional keys registered with AT_KEYWORDS. Hope that helps. Cheers, Ralf _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf