]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
test-spawn-oom: Separate single spawn tests from oom related
authorRalf Habacker <ralf.habacker@freenet.de>
Fri, 15 Mar 2019 17:06:01 +0000 (17:06 +0000)
committerSimon McVittie <smcv@collabora.com>
Fri, 15 Mar 2019 17:06:01 +0000 (17:06 +0000)
This makes it possible to run each test independent from oom condition.

dbus/dbus-internals.c
test/internals/spawn-oom.c

index 37334a56311aada87cee46e813261e219b2fdc9f..2f456edab232d7cbcf4556acea78d479f701b114 100644 (file)
@@ -1101,7 +1101,7 @@ _dbus_test_oom_handling (const char             *description,
       ++i;
     }
   
-  _dbus_verbose ("\"%s\" coped OK with malloc failures", description);
+  _dbus_verbose ("\"%s\" coped OK with malloc failures\n", description);
 
   return TRUE;
 }
index a9a19fc59aad84435d93a50e9e4098a7a9440a2f..b24df7fdcfc8d5626e2c6bf47ae1703ea2f0d3e2 100644 (file)
@@ -267,38 +267,78 @@ check_spawn_and_kill (void        *data,
 }
 
 static dbus_bool_t
-_dbus_spawn_test (const char *test_data_dir)
+_dbus_check_spawn_nonexistant (const char *test_data_dir)
 {
-  if (!_dbus_test_oom_handling ("spawn_nonexistent",
-                                check_spawn_nonexistent,
-                                NULL))
-    return FALSE;
-
-  if (!_dbus_test_oom_handling ("spawn_segfault",
-                                check_spawn_segfault,
-                                NULL))
-    return FALSE;
-
-  if (!_dbus_test_oom_handling ("spawn_exit",
-                                check_spawn_exit,
-                                NULL))
-    return FALSE;
-
-  if (!_dbus_test_oom_handling ("spawn_and_kill",
-                                check_spawn_and_kill,
-                                NULL))
-    return FALSE;
+    return check_spawn_nonexistent(NULL, TRUE);
+}
 
-  return TRUE;
+static dbus_bool_t
+_dbus_check_spawn_segfault (const char *test_data_dir)
+{
+  return check_spawn_segfault(NULL, TRUE);
+}
+
+static dbus_bool_t
+_dbus_check_spawn_exit (const char *test_data_dir)
+{
+  return check_spawn_exit (NULL, TRUE);
 }
 
-static DBusTestCase test = { "spawn", _dbus_spawn_test };
+static dbus_bool_t
+_dbus_check_spawn_and_kill (const char *test_data_dir)
+{
+  return check_spawn_and_kill (NULL, TRUE);
+}
+
+static dbus_bool_t
+_dbus_check_spawn_nonexistant_oom (const char *test_data_dir)
+{
+    return _dbus_test_oom_handling ("spawn_nonexistent",
+                                    check_spawn_nonexistent,
+                                    NULL);
+}
+
+static dbus_bool_t
+_dbus_check_spawn_segfault_oom (const char *test_data_dir)
+{
+  return _dbus_test_oom_handling ("spawn_segfault",
+                                  check_spawn_segfault,
+                                  NULL);
+}
+
+static dbus_bool_t
+_dbus_check_spawn_exit_oom (const char *test_data_dir)
+{
+  return _dbus_test_oom_handling ("spawn_exit",
+                                  check_spawn_exit,
+                                  NULL);
+}
+
+static dbus_bool_t
+_dbus_check_spawn_and_kill_oom (const char *test_data_dir)
+{
+  return _dbus_test_oom_handling ("spawn_and_kill",
+                                  check_spawn_and_kill,
+                                  NULL);
+}
+
+static DBusTestCase tests[] =
+{
+  { "spawn_nonexistant", _dbus_check_spawn_nonexistant },
+  { "spawn_segfault", _dbus_check_spawn_segfault },
+  { "spawn_exit", _dbus_check_spawn_exit },
+  { "spawn_and_kill", _dbus_check_spawn_and_kill },
+  { "spawn_nonexistant oom", _dbus_check_spawn_nonexistant_oom },
+  { "spawn_segfault oom", _dbus_check_spawn_segfault_oom },
+  { "spawn_exit oom", _dbus_check_spawn_exit_oom },
+  { "spawn_and_kill oom", _dbus_check_spawn_and_kill_oom }
+};
 
 int
 main (int    argc,
       char **argv)
 {
-  return _dbus_test_main (argc, argv, 1, &test,
+  return _dbus_test_main (argc, argv, _DBUS_N_ELEMENTS (tests), tests,
                           DBUS_TEST_FLAGS_CHECK_MEMORY_LEAKS,
                           NULL, NULL);
 }