diff options
author | Ralf Habacker <ralf.habacker@freenet.de> | 2019-03-15 17:06:01 +0000 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2019-03-15 17:06:01 +0000 |
commit | 433d5c24718fd9b84a394462655f2e30211e79a6 (patch) | |
tree | e4d8831e5a5a9b83095979a8a9c36d7e33827372 | |
parent | d757455c5e111bd9ef057d7e4a554a58ee7fe00c (diff) | |
download | dbus-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.c | 2 | ||||
-rw-r--r-- | 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); } |