diff --git a/tests/run-tests.cpp b/tests/run-tests.cpp index b98414b1..6560b3d0 100644 --- a/tests/run-tests.cpp +++ b/tests/run-tests.cpp @@ -24,7 +24,13 @@ Result luna_main(int argc, char** argv) for (const auto& program : files) { auto command = TRY(String::format("%s/%s"_sv, test_dir.chars(), program.chars())); - int status = system(command.chars()); + StringView args[] = { command.view() }; + + auto pid = TRY(os::Process::spawn(args[0], Slice { args, 1 }, false)); + + int status; + TRY(os::Process::wait(pid, &status)); + if (WEXITSTATUS(status) != 0) { os::Process::kill(1, SIGQUIT); // Tell init to report a failed test run.