summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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