diff options
author | Jeff Moyer <jmoyer@redhat.com> | 2019-07-29 13:16:18 -0400 |
---|---|---|
committer | Jeff Moyer <jmoyer@redhat.com> | 2019-07-29 13:16:18 -0400 |
commit | 90ec55ab2675bc2b6b4d256f78a3db26adf75900 (patch) | |
tree | 0dc5c0ac40e713d60172fc3a536d7eb13269414b | |
parent | abcb9eeacc2f12c3d77b66c274ace9bffecf68e3 (diff) | |
download | libaio-90ec55ab2675bc2b6b4d256f78a3db26adf75900.tar.gz |
harness: add support for skipping tests
Skipped tests will not cause the test harness to return failure. An
exit status of "3" was chosen for skipped tests. This doesn't
conflict with any of the current tests.
Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
-rw-r--r-- | harness/main.c | 20 | ||||
-rwxr-xr-x | harness/runtests.sh | 14 |
2 files changed, 28 insertions, 6 deletions
diff --git a/harness/main.c b/harness/main.c index 9ecd5da..82e9c69 100644 --- a/harness/main.c +++ b/harness/main.c @@ -26,15 +26,27 @@ char test_name[] = TEST_NAME; int main(void) { int res; + const char *test_result; #if defined(SETUP) SETUP; #endif res = test_main(); - printf("test %s completed %s.\n", test_name, - res ? "FAILED" : "PASSED" - ); + switch(res) { + case 0: + test_result = "PASSED"; + break; + case 3: + test_result = "SKIPPED"; + break; + default: + test_result = "FAILED"; + res = 1; + break; + } + + printf("test %s completed %s.\n", test_name, test_result); fflush(stdout); - return res ? 1 : 0; + return res; } diff --git a/harness/runtests.sh b/harness/runtests.sh index ef269a7..e9ceec8 100755 --- a/harness/runtests.sh +++ b/harness/runtests.sh @@ -2,6 +2,7 @@ passes=0 fails=0 +skips=0 echo "Test run starting at" `date` @@ -11,11 +12,20 @@ while [ $# -ge 1 ] ; do echo "Starting $this_test" $this_test 2>&1 res=$? - if [ $res -eq 0 ] ; then str="" ; passes=$[passes + 1] ; else str=" -- FAILED" ; fails=$[fails + 1] ; fi + if [ $res -eq 0 ]; then + str=""; + passes=$((passes + 1)); + elif [ $res -eq 3 ]; then + str=" -- SKIPPED"; + skips=$((skips + 1)); + else + str=" -- FAILED" + fails=$((fails + 1)); + fi echo "Completed $this_test with $res$str". done -echo "Pass: $passes Fail: $fails" +echo "Pass: $passes Fail: $fails Skip: $skips" echo "Test run complete at" `date` exit $fails |