]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
test_util_spawn_background_ok: fix expectation
authorPeter Palfrader <peter@palfrader.org>
Sat, 17 Dec 2011 10:22:31 +0000 (11:22 +0100)
committerNick Mathewson <nickm@torproject.org>
Sat, 17 Dec 2011 17:21:51 +0000 (12:21 -0500)
test_util_spawn_background_ok() hardcoded the expected value
for ENOENT to 2.  This isn't portable as error numbers are
platform specific, and particularly the hurd has ENOENT at
0x40000002.

Construct expected string at runtime, using the correct value
for ENOENT (closes: #4733).

src/test/test_util.c

index f9b57d61dac7292b400cce9f0660422fe7ce4f4e..389e0a08d6395eeb6bf124354d53908abed67197 100644 (file)
@@ -1460,17 +1460,13 @@ test_util_spawn_background_ok(void *ptr)
 static void
 test_util_spawn_background_fail(void *ptr)
 {
-#ifdef MS_WINDOWS
   const char *argv[] = {BUILDDIR "/src/test/no-such-file", "--test", NULL};
-  const char *expected_out = "ERR: Failed to spawn background process "
-                             "- code          9/2\n";
   const char *expected_err = "";
+  char expected_out[1024];
+  char code[32];
+#ifdef MS_WINDOWS
   const int expected_status = PROCESS_STATUS_ERROR;
 #else
-  const char *argv[] = {BUILDDIR "/src/test/no-such-file", "--test", NULL};
-  const char *expected_out = "ERR: Failed to spawn background process "
-                             "- code          9/2\n";
-  const char *expected_err = "";
   /* TODO: Once we can signal failure to exec, set this to be
    * PROCESS_STATUS_ERROR */
   const int expected_status = PROCESS_STATUS_RUNNING;
@@ -1478,6 +1474,11 @@ test_util_spawn_background_fail(void *ptr)
 
   (void)ptr;
 
+  tor_snprintf(code, sizeof(code), "%x/%x",
+    9 /* CHILD_STATE_FAILEXEC */ , ENOENT);
+  tor_snprintf(expected_out, sizeof(expected_out),
+    "ERR: Failed to spawn background process - code %12s\n", code);
+
   run_util_spawn_background(argv, expected_out, expected_err, 255,
                             expected_status);
 }