summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalf Habacker <ralf.habacker@freenet.de>2019-03-15 17:06:01 +0000
committerSimon McVittie <smcv@collabora.com>2019-03-15 17:06:01 +0000
commit433d5c24718fd9b84a394462655f2e30211e79a6 (patch)
treee4d8831e5a5a9b83095979a8a9c36d7e33827372
parentd757455c5e111bd9ef057d7e4a554a58ee7fe00c (diff)
downloaddbus-433d5c24718fd9b84a394462655f2e30211e79a6.tar.gz
test-spawn-oom: Separate single spawn tests from oom related
This makes it possible to run each test independent from oom condition.
-rw-r--r--dbus/dbus-internals.c2
-rw-r--r--test/internals/spawn-oom.c86
2 files changed, 64 insertions, 24 deletions
diff --git a/dbus/dbus-internals.c b/dbus/dbus-internals.c
index 37334a56..2f456eda 100644
--- a/dbus/dbus-internals.c
+++ b/dbus/dbus-internals.c
@@ -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;
}
diff --git a/test/internals/spawn-oom.c b/test/internals/spawn-oom.c
index a9a19fc5..b24df7fd 100644
--- a/test/internals/spawn-oom.c
+++ b/test/internals/spawn-oom.c
@@ -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);
}