mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-21 23:20:20 +00:00
test262-runner: Use names for the different exit codes
These are not used by test-test262 but can be used to quickly distinguish the type of problem if the runner fails when running manually.
This commit is contained in:
parent
1f54259922
commit
340a2a96a4
Notes:
sideshowbarker
2024-07-17 06:00:39 +09:00
Author: https://github.com/davidot Commit: https://github.com/SerenityOS/serenity/commit/340a2a96a4 Pull-request: https://github.com/SerenityOS/serenity/pull/15232 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/Hendiadyoin1 Reviewed-by: https://github.com/sin-ack Reviewed-by: https://github.com/timschumi
1 changed files with 17 additions and 12 deletions
|
@ -566,6 +566,11 @@ extern "C" __attribute__((__noreturn__)) void __assert_fail(char const* assertio
|
|||
}
|
||||
#endif
|
||||
|
||||
constexpr int exit_wrong_arguments = 2;
|
||||
constexpr int exit_stdout_setup_failed = 1;
|
||||
constexpr int exit_setup_input_failure = 7;
|
||||
constexpr int exit_read_file_failure = 3;
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int timeout = 10;
|
||||
|
@ -585,7 +590,7 @@ int main(int argc, char** argv)
|
|||
#ifndef AK_OS_MACOS
|
||||
if (disable_core_dumping && prctl(PR_SET_DUMPABLE, 0, 0) < 0) {
|
||||
perror("prctl(PR_SET_DUMPABLE)");
|
||||
return 2;
|
||||
return exit_wrong_arguments;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -597,7 +602,7 @@ int main(int argc, char** argv)
|
|||
|
||||
if (timeout <= 0) {
|
||||
warnln("timeout must be at least 1");
|
||||
return 2;
|
||||
return exit_wrong_arguments;
|
||||
}
|
||||
|
||||
AK::set_debug_enabled(enable_debug_printing);
|
||||
|
@ -609,19 +614,19 @@ int main(int argc, char** argv)
|
|||
auto saved_stdout = dup(STDOUT_FILENO);
|
||||
if (saved_stdout < 0) {
|
||||
perror("dup");
|
||||
return 1;
|
||||
return exit_stdout_setup_failed;
|
||||
}
|
||||
|
||||
saved_stdout_fd = fdopen(saved_stdout, "w");
|
||||
if (!saved_stdout_fd) {
|
||||
perror("fdopen");
|
||||
return 1;
|
||||
return exit_stdout_setup_failed;
|
||||
}
|
||||
|
||||
int stdout_pipe[2];
|
||||
if (pipe(stdout_pipe) < 0) {
|
||||
perror("pipe");
|
||||
return 1;
|
||||
return exit_stdout_setup_failed;
|
||||
}
|
||||
|
||||
auto flags = fcntl(stdout_pipe[0], F_GETFL);
|
||||
|
@ -634,12 +639,12 @@ int main(int argc, char** argv)
|
|||
|
||||
if (dup2(stdout_pipe[1], STDOUT_FILENO) < 0) {
|
||||
perror("dup2");
|
||||
return 1;
|
||||
return exit_stdout_setup_failed;
|
||||
}
|
||||
|
||||
if (close(stdout_pipe[1]) < 0) {
|
||||
perror("close");
|
||||
return 1;
|
||||
return exit_stdout_setup_failed;
|
||||
}
|
||||
|
||||
auto collect_output = [&] {
|
||||
|
@ -665,12 +670,12 @@ int main(int argc, char** argv)
|
|||
|
||||
auto standard_input_or_error = Core::Stream::File::standard_input();
|
||||
if (standard_input_or_error.is_error())
|
||||
return 7;
|
||||
return exit_setup_input_failure;
|
||||
|
||||
Array<u8, 1024> input_buffer {};
|
||||
auto buffered_standard_input_or_error = Core::Stream::BufferedFile::create(standard_input_or_error.release_value());
|
||||
if (buffered_standard_input_or_error.is_error())
|
||||
return 7;
|
||||
return exit_setup_input_failure;
|
||||
|
||||
auto& buffered_input_stream = buffered_standard_input_or_error.value();
|
||||
|
||||
|
@ -687,7 +692,7 @@ int main(int argc, char** argv)
|
|||
|
||||
if (s_automatic_harness_detection_mode) {
|
||||
if (!extract_harness_directory(path))
|
||||
return 4;
|
||||
return exit_read_file_failure;
|
||||
s_automatic_harness_detection_mode = false;
|
||||
VERIFY(!s_harness_file_directory.is_empty());
|
||||
}
|
||||
|
@ -695,7 +700,7 @@ int main(int argc, char** argv)
|
|||
auto file_or_error = Core::Stream::File::open(path, Core::Stream::OpenMode::Read);
|
||||
if (file_or_error.is_error()) {
|
||||
warnln("Could not open file: {}", path);
|
||||
return 3;
|
||||
return exit_read_file_failure;
|
||||
}
|
||||
auto& file = file_or_error.value();
|
||||
|
||||
|
@ -709,7 +714,7 @@ int main(int argc, char** argv)
|
|||
auto contents_or_error = file->read_all();
|
||||
if (contents_or_error.is_error()) {
|
||||
warnln("Could not read contents of file: {}", path);
|
||||
return 3;
|
||||
return exit_read_file_failure;
|
||||
}
|
||||
auto& contents = contents_or_error.value();
|
||||
StringBuilder builder { contents.size() + strict_length };
|
||||
|
|
Loading…
Reference in a new issue