diff options
author | Itamar <itamar8910@gmail.com> | 2022-02-08 19:16:44 +0200 |
---|---|---|
committer | Linus Groh <mail@linusgroh.de> | 2022-02-12 11:45:15 +0000 |
commit | 2903c47ba068a5a22735411ec445efbfda53bbe1 (patch) | |
tree | 0633904c491d42c6d5a8145d5aa69e741bc0c594 /Userland/Utilities/update-cpp-test-results.cpp | |
parent | e9d3f3793c26c343001ab5eb87dc92dec46d6a9e (diff) | |
download | serenity-2903c47ba068a5a22735411ec445efbfda53bbe1.zip |
Utilities: Add update-cpp-test-results utility
This is a small utility that updates the target tests results for the
LibCpp parser and preprocessor regression tests.
It's handy to run after changing something in the output of either the
parser or the preprocessor.
Diffstat (limited to 'Userland/Utilities/update-cpp-test-results.cpp')
-rw-r--r-- | Userland/Utilities/update-cpp-test-results.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
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. <itamar8910@gmail.com> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include <AK/Format.h> +#include <AK/LexicalPath.h> +#include <LibCore/Command.h> +#include <LibCore/DirIterator.h> +#include <LibCore/StandardPaths.h> +#include <LibMain/Main.h> + +ErrorOr<int> 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; +} |