]> granicus.if.org Git - check/commitdiff
modify test_log_output.sh to compare output based on HAVE_FORK
authorbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Mon, 23 Sep 2013 13:07:01 +0000 (13:07 +0000)
committerbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Mon, 23 Sep 2013 13:07:01 +0000 (13:07 +0000)
When run in Windows, the output differs slightly from when it is run
under *NIX due to line endings. *NIX uses \n, whereas Windows
uses \r\n. To account for this, printf is used to generate the
Windows expected string.

Additionally, the test_exit test was removed, as it is not valid
if fork is unavailable.

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

NEWS
tests/ex_log_output.c
tests/test_log_output.sh

diff --git a/NEWS b/NEWS
index f26561d1806c39a0baaa85ad7e7413db857eb86b..3e0dd230cae2efaf31f42d21eea3ef155ce716b7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,6 +7,7 @@ In development:
     - check_check_export
     - test_output.sh
     - test_check_nofork.sh
+    - test_log_output.sh
 
 * On systems without timer_settimer, use setitimer (if available) to get
   subsecond unit test timeouts. If setitimer is unavailable, fallback
index 5eccdbb98728ae4844c585001c426f17a70e70a0..c5411ee989ca527c51ff00021de63f8ac7c40053 100644 (file)
@@ -17,11 +17,17 @@ START_TEST(test_fail)
 }
 END_TEST
 
+/*
+ * This test will fail without fork, as it will result in the
+ * unit test runniner exiting early.
+ */
+#if defined(HAVE_FORK)
 START_TEST(test_exit)
 {
   exit(1);
 }
 END_TEST
+#endif /* HAVE_FORK */
 
 START_TEST(test_pass2)
 {
@@ -39,7 +45,9 @@ static Suite *make_s1_suite (void)
   suite_add_tcase(s, tc);
   tcase_add_test (tc, test_pass);
   tcase_add_test (tc, test_fail);
+#if defined(HAVE_FORK)
   tcase_add_test (tc, test_exit);
+#endif /* HAVE_FORK */
 
   return s;
 }
index 9316f952ad32005c3151fd2b72e619251c815ceb..94fb2bb2565aa09af6146fc5cbc923df4f5f93e8 100755 (executable)
@@ -1,22 +1,34 @@
 #!/bin/sh
 
-. ./test_vars
+# For this test script, it is assumed that HAVE_FORK=0 implies
+# running in a Windows environment. That means not only are
+# fork-related tests not run, but also line endings are important.
+# In *NIX environments line endings are \n, but in Windows they
+# are expected to be \r\n. For this reason, HAVE_FORK=0 uses
+# printf to generate the comparison strings, so the line endings
+# can be controlled.
 
-if [ "${srcdir}" = "." ]; then
-    lsrc=""
-else
-    lsrc="${srcdir}/"
-fi
+. ./test_vars
 
+if [ $HAVE_FORK -eq 1 ]; then
 expected="Running suite S1
-${lsrc}ex_log_output.c:10:P:Core:test_pass:0: Passed
-${lsrc}ex_log_output.c:16:F:Core:test_fail:0: Failure
-${lsrc}ex_log_output.c:20:E:Core:test_exit:0: (after this point) Early exit with return value 1
+ex_log_output.c:10:P:Core:test_pass:0: Passed
+ex_log_output.c:16:F:Core:test_fail:0: Failure
+ex_log_output.c:25:E:Core:test_exit:0: (after this point) Early exit with return value 1
 Running suite S2
-${lsrc}ex_log_output.c:28:P:Core:test_pass2:0: Passed
+ex_log_output.c:34:P:Core:test_pass2:0: Passed
 Results for all suites run:
 50%: Checks: 4, Failures: 1, Errors: 1"
-
+else
+expected=`printf "Running suite S1\r
+ex_log_output.c:10:P:Core:test_pass:0: Passed\r
+ex_log_output.c:16:F:Core:test_fail:0: Failure\r
+Running suite S2\r
+ex_log_output.c:34:P:Core:test_pass2:0: Passed\r
+Results for all suites run:\r
+66%%: Checks: 3, Failures: 1, Errors: 0\r
+"`
+fi
 
 test_log_output ( ) {