diff --git a/test/validate/makeTestfile.pl b/test/validate/makeTestfile.pl index 38582e427871d8df9dbeda34ec4ba84368d45330..d235120f1ea4287636758f07b1f72c4886eac838 100644 --- a/test/validate/makeTestfile.pl +++ b/test/validate/makeTestfile.pl @@ -59,11 +59,11 @@ $killit; EOF } elsif (-r "$db") { print $OUT <<EOF; -exec "$valgrind./$exe -S -t -d $db" or die "exec failed: $err"; +system "$valgrind./$exe -S -t -d $db"; EOF } else { print $OUT <<EOF; -exec "$valgrind./$exe -S -t" or die "exec failed: $err"; +system "$valgrind./$exe -S -t"; EOF } diff --git a/test/validate/testSupport.c b/test/validate/testSupport.c index 3d23a671e97f0fc89b3a9716d5982f4a6a907052..53f0e4e600ea42fbd9eba7e3202d5979827ea0e7 100644 --- a/test/validate/testSupport.c +++ b/test/validate/testSupport.c @@ -8,6 +8,7 @@ in the file LICENSE that is included with this distribution. #include "epicsThread.h" #include "epicsEvent.h" +#include "epicsExit.h" #include "seqCom.h" #include "../testSupport.h" @@ -44,6 +45,11 @@ void seq_test_init(int num_tests) } } +void seq_test_at_thread_exit(void *dummy) +{ + epicsExit(EXIT_SUCCESS); +} + void seq_test_done(void) { epicsThreadSetPriority(epicsThreadGetIdSelf(), epicsThreadPriorityMedium); @@ -51,7 +57,7 @@ void seq_test_done(void) #if defined(vxWorks) epicsEventSignal(this_test_done); #else - exit(0); + epicsAtThreadExit(seq_test_at_thread_exit, 0); #endif }