]> granicus.if.org Git - check/commitdiff
Set default fork mode to CK_NOFORK if fork is unavailable
authorbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sun, 22 Sep 2013 21:27:50 +0000 (21:27 +0000)
committerbrarcher <brarcher@64e312b2-a51f-0410-8e61-82d0ca0eb02a>
Sun, 22 Sep 2013 21:27:50 +0000 (21:27 +0000)
The default fork mode is CK_FORK_GETENV, which checks the
environment, and failing that falls back on using fork.
If fork is unavailable, the default is now to set CK_NOFORK.

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

src/check.c
tests/check_check_fork.c

index 8fc4bf1c7d74c1d4b2c3ec859e457a132dca7e74..9e8d7e23a19727fa9c11cb784daf8eb9d4553271 100644 (file)
@@ -279,7 +279,17 @@ SRunner *srunner_create (Suite *s)
   sr->log_fname = NULL;
   sr->xml_fname = NULL;
   sr->loglst = NULL;
+
+#if defined(HAVE_FORK)
   sr->fstat = CK_FORK_GETENV;
+#else
+  /*
+   * Overriding the default of running tests in fork mode,
+   * as this system does not have fork()
+   */
+  sr->fstat = CK_NOFORK;
+#endif /* HAVE_FORK */
+
   return sr;
 }
 
index 22e2c93a3eb10dd99260d55c59378cac618db11d..75907fdb3fc60622f33cd71c64a5eb09ead81ad4 100644 (file)
@@ -71,8 +71,13 @@ void fork_teardown (void)
 
 START_TEST(test_default_fork)
 {
+#if defined(HAVE_FORK)
   ck_assert_msg(srunner_fork_status(fork_dummy_sr) == CK_FORK,
              "Default fork status not set correctly");
+#else
+  ck_assert_msg(srunner_fork_status(fork_dummy_sr) == CK_NOFORK,
+             "Default fork status not set correctly");
+#endif /* HAVE_FORK */
 }
 END_TEST