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.
This commit is contained in:
Itamar 2022-02-08 19:16:44 +02:00 committed by Linus Groh
parent e9d3f3793c
commit 2903c47ba0
Notes: sideshowbarker 2024-07-17 18:58:43 +09:00
2 changed files with 40 additions and 0 deletions

View file

@ -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)

View file

@ -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;
}