From 433d5c24718fd9b84a394462655f2e30211e79a6 Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Fri, 15 Mar 2019 17:06:01 +0000 Subject: test-spawn-oom: Separate single spawn tests from oom related This makes it possible to run each test independent from oom condition. --- dbus/dbus-internals.c | 2 +- test/internals/spawn-oom.c | 86 +++++++++++++++++++++++++++++++++------------- 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); } -- cgit v1.2.1