summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Moyer <jmoyer@redhat.com>2019-07-29 13:16:18 -0400
committerJeff Moyer <jmoyer@redhat.com>2019-07-29 13:16:18 -0400
commit90ec55ab2675bc2b6b4d256f78a3db26adf75900 (patch)
tree0dc5c0ac40e713d60172fc3a536d7eb13269414b
parentabcb9eeacc2f12c3d77b66c274ace9bffecf68e3 (diff)
downloadlibaio-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.c20
-rwxr-xr-xharness/runtests.sh14
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