]> granicus.if.org Git - check/commitdiff
add support for descriptions in TAP logging
authorbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Tue, 17 Dec 2013 16:07:10 +0000 (16:07 +0000)
committerbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Tue, 17 Dec 2013 16:07:10 +0000 (16:07 +0000)
The description on a TAP output line is as follows:

[not] ok (number) - (file):(suite name):(test name): (message)

git-svn-id: svn+ssh://svn.code.sf.net/p/check/code/trunk@883 64e312b2-a51f-0410-8e61-82d0ca0eb02a

doc/check.texi
src/check_log.c
tests/test_tap_output.sh

index d4a5f6eb49d59b048f877abdc94842616ae68aba..c9c31ebf2d1dedd3cd16a3392f41e5656e9f97be 100644 (file)
@@ -1542,10 +1542,10 @@ TAP output is enabled by a call to @code{srunner_set_tap()} before the tests
 are run. Here is an example of an TAP log:
 @example
 @verbatim
-ok 1
-ok 2
-not ok 3
-ok 4
+ok 1 - mytests.c:test_suite_name:my_test_1: Passed
+ok 2 - mytests.c:test_suite_name:my_test_2: Passed
+not ok 3 - mytests.c:test_suite_name:my_test_3: Foo happened
+ok 4 - mytests.c:test_suite_name:my_test_1: Passed
 1..4
 @end verbatim
 @end example
index 6ff2b97b22438a4f64b9050925e6040ca5628b6d..5c02f47cd3cd3fde530d1fe13790c58783adca1b 100644 (file)
@@ -344,7 +344,7 @@ void tap_lfun (SRunner *sr, FILE *file, enum print_output printmode CK_ATTRIBUTE
     /* Print the test result to the tap file */
     num_tests_run+=1;
     tr = obj;
-    fprintf(file, "%s %d\n", tr->rtype == CK_PASS ? "ok" : "not ok", num_tests_run);
+    fprintf(file, "%s %d - %s:%s:%s: %s\n", tr->rtype == CK_PASS ? "ok" : "not ok", num_tests_run, tr->file, tr->tcname, tr->tname, tr->msg);
     fflush(file);
     break;
   default:
index 62b912fcad85ce13ef312878b619d2fc96520d37..b5fa2dfcef6b49557ae52641e2684d8986fd91fa 100755 (executable)
@@ -4,22 +4,28 @@ OUTPUT_FILE=test.tap
 
 . ./test_vars
 
+if [ x"${SRCDIR}" != x"." ]; then
+    SRCDIR="${SRCDIR}/"
+else
+    SRCDIR=""
+fi
+
 if [ $HAVE_FORK -eq 1 ]; then
-expected_normal_tap="ok 1
-not ok 2
-not ok 3
-ok 4
+expected_normal_tap="ok 1 - ${SRCDIR}ex_tap_output.c:Core:test_pass: Passed
+not ok 2 - ${SRCDIR}ex_tap_output.c:Core:test_fail: Failure
+not ok 3 - ${SRCDIR}ex_tap_output.c:Core:test_exit: Early exit with return value 1
+ok 4 - ${SRCDIR}ex_tap_output.c:Core:test_pass2: Passed
 1..4"
-expected_aborted_tap="ok 1
-not ok 2
-not ok 3
-not ok 4
-ok 5
+expected_aborted_tap="ok 1 - ${SRCDIR}ex_tap_output.c:Core:test_pass: Passed
+not ok 2 - ${SRCDIR}ex_tap_output.c:Core:test_fail: Failure
+not ok 3 - ${SRCDIR}ex_tap_output.c:Core:test_exit: Early exit with return value 1
+not ok 4 - ${SRCDIR}ex_tap_output.c:Core:test_abort: Early exit with return value 1
+ok 5 - ${SRCDIR}ex_tap_output.c:Core:test_pass2: Passed
 1..5"
 else
-expected_normal_tap="ok 1
-not ok 2
-ok 3
+expected_normal_tap="ok 1 - ${SRCDIR}ex_tap_output.c:Core:test_pass: Passed
+not ok 2 - ${SRCDIR}ex_tap_output.c:Core:test_fail: Failure
+ok 3 - ${SRCDIR}ex_tap_output.c:Core:test_pass2: Passed
 1..3"
 # When fork() is unavailable, one of the tests
 # will invoke exit() which will terminate the
@@ -27,8 +33,8 @@ ok 3
 # results will be incomplete, but the required
 # test plan will be missing, signaling that
 # something bad happened.
-expected_aborted_tap="ok 1
-not ok 2"
+expected_aborted_tap="ok 1 - ${SRCDIR}ex_tap_output.c:Core:test_pass: Passed
+not ok 2 - ${SRCDIR}ex_tap_output.c:Core:test_fail: Failure"
 fi
 
 test_tap_output ( ) {