From 56c8d70016ea15e4923cac69443febab36eb4225 Mon Sep 17 00:00:00 2001 From: Marvin Friedrich Date: Wed, 16 Jul 2025 16:59:27 +0200 Subject: [PATCH] tests/posix: Add test for execve --- tests/meson.build | 1 + tests/posix/exec.c | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 tests/posix/exec.c diff --git a/tests/meson.build b/tests/meson.build index c012538ceb..4f24631540 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -104,6 +104,7 @@ all_test_cases = [ 'posix/usershell', 'posix/shm', 'posix/swab', + 'posix/exec', 'glibc/getopt', 'glibc/ffsl-ffsll', 'glibc/error_message_count', diff --git a/tests/posix/exec.c b/tests/posix/exec.c new file mode 100644 index 0000000000..c84d78472d --- /dev/null +++ b/tests/posix/exec.c @@ -0,0 +1,23 @@ +#include +#include +#include +#include + +int main(int argc, const char **argv) { + if (argc == 1) { + int pid = fork(); + if (!pid) + exit(69); + } else { + exit(0); + } + + size_t len = strlen(argv[0]); + char *program = calloc(len + 1, sizeof(char)); + memcpy(program, argv[0], len); + + char foo[] = "foo"; + char *args[] = {program, foo, NULL}; + + return execve(program, args, NULL); +}