diff --git a/Userland/Utilities/CMakeLists.txt b/Userland/Utilities/CMakeLists.txt index 459e993511..f762d7c23d 100644 --- a/Userland/Utilities/CMakeLists.txt +++ b/Userland/Utilities/CMakeLists.txt @@ -190,6 +190,7 @@ target_link_libraries(umount LibMain) target_link_libraries(uname LibMain) target_link_libraries(uniq LibMain) target_link_libraries(unzip LibArchive LibCompress LibMain) +target_link_libraries(update-cpp-test-results LibCpp LibCore LibMain) target_link_libraries(uptime LibMain) target_link_libraries(userdel LibMain) target_link_libraries(usermod LibMain) diff --git a/Userland/Utilities/update-cpp-test-results.cpp b/Userland/Utilities/update-cpp-test-results.cpp new file mode 100644 index 0000000000..51f9aa1e5a --- /dev/null +++ b/Userland/Utilities/update-cpp-test-results.cpp @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2022, Itamar S. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include +#include +#include +#include +#include +#include + +ErrorOr serenity_main(Main::Arguments) +{ + Core::DirIterator parser_tests(LexicalPath::join(Core::StandardPaths::home_directory(), "cpp-tests/parser").string()); + while (parser_tests.has_next()) { + auto cpp_full_path = parser_tests.next_full_path(); + if (!cpp_full_path.ends_with(".cpp")) + continue; + auto ast_full_path = cpp_full_path.replace(".cpp", ".ast"); + outln("{}", cpp_full_path); + auto res = Core::command("/bin/sh", { "sh", "-c", String::formatted("cpp-parser {} > {}", cpp_full_path, ast_full_path) }, {}); + VERIFY(!res.is_error()); + } + + Core::DirIterator preprocessor_tests(LexicalPath::join(Core::StandardPaths::home_directory(), "cpp-tests/preprocessor").string()); + while (preprocessor_tests.has_next()) { + auto cpp_full_path = preprocessor_tests.next_full_path(); + if (!cpp_full_path.ends_with(".cpp")) + continue; + auto ast_full_path = cpp_full_path.replace(".cpp", ".txt"); + outln("{}", cpp_full_path); + auto res = Core::command("/bin/sh", { "sh", "-c", String::formatted("cpp-preprocessor {} > {}", cpp_full_path, ast_full_path) }, {}); + VERIFY(!res.is_error()); + } + + return 0; +}