28 #include "dbus-spawn.h"
29 #include "dbus-sysdeps.h"
30 #include "dbus-test.h"
33 get_test_exec (
const char *exe,
36 const char *dbus_test_exec;
40 if (dbus_test_exec ==
NULL)
47 dbus_test_exec, exe, DBUS_EXEEXT))
57 check_spawn_nonexistent (
void *data)
59 static const char arg_does_not_exist[] =
"/this/does/not/exist/32542sdgafgafdg";
67 argv[0] = arg_does_not_exist;
69 (
char *
const *) argv,
73 _dbus_babysitter_block_for_child_exit (sitter);
82 _dbus_warn (
"Did not get an error launching nonexistent executable");
89 _dbus_warn (
"Not expecting error when launching nonexistent executable: %s: %s",
101 check_spawn_segfault (
void *data)
110 argv[0] = get_test_exec (
"test-segfault", &argv0);
122 _dbus_babysitter_block_for_child_exit (sitter);
133 _dbus_warn (
"Did not get an error launching segfaulting binary");
144 _dbus_warn (
"Not expecting error when launching segfaulting executable: %s: %s",
156 check_spawn_exit (
void *data)
165 argv[0] = get_test_exec (
"test-exit", &argv0);
177 _dbus_babysitter_block_for_child_exit (sitter);
188 _dbus_warn (
"Did not get an error launching binary that exited with failure code");
195 _dbus_warn (
"Not expecting error when launching exiting executable: %s: %s",
207 check_spawn_and_kill (
void *data)
216 argv[0] = get_test_exec (
"test-sleep-forever", &argv0);
230 _dbus_babysitter_block_for_child_exit (sitter);
242 _dbus_warn (
"Did not get an error after killing spawned binary");
253 _dbus_warn (
"Not expecting error when killing executable: %s: %s",
265 _dbus_spawn_test (
const char *test_data_dir)
267 if (!_dbus_test_oom_handling (
"spawn_nonexistent",
268 check_spawn_nonexistent,
272 if (!_dbus_test_oom_handling (
"spawn_segfault",
273 check_spawn_segfault,
277 if (!_dbus_test_oom_handling (
"spawn_exit",
282 if (!_dbus_test_oom_handling (
"spawn_and_kill",
283 check_spawn_and_kill,