diff --git a/Userland/Libraries/LibTest/TestRunner.h b/Userland/Libraries/LibTest/TestRunner.h index c11c63dd49a..a7119a865c3 100644 --- a/Userland/Libraries/LibTest/TestRunner.h +++ b/Userland/Libraries/LibTest/TestRunner.h @@ -12,13 +12,12 @@ #include #include #include +#include #include #include #include -#include #include -#include -#include +#include namespace Test { @@ -92,34 +91,6 @@ inline void cleanup() exit(1); } -inline double get_time_in_ms() -{ - struct timeval tv1; - auto return_code = gettimeofday(&tv1, nullptr); - VERIFY(return_code >= 0); - return static_cast(tv1.tv_sec) * 1000.0 + static_cast(tv1.tv_usec) / 1000.0; -} - -template -inline void iterate_directory_recursively(String const& directory_path, Callback callback) -{ - Core::DirIterator directory_iterator(directory_path, Core::DirIterator::Flags::SkipDots); - - while (directory_iterator.has_next()) { - auto name = directory_iterator.next_path(); - struct stat st = {}; - if (fstatat(directory_iterator.fd(), name.characters(), &st, AT_SYMLINK_NOFOLLOW) < 0) - continue; - bool is_directory = S_ISDIR(st.st_mode); - auto full_path = String::formatted("{}/{}", directory_path, name); - if (is_directory && name != "/Fixtures"sv) { - iterate_directory_recursively(full_path, callback); - } else if (!is_directory) { - callback(full_path); - } - } -} - inline void TestRunner::run(String test_glob) { size_t progress_counter = 0; diff --git a/Userland/Libraries/LibTest/TestRunnerUtil.h b/Userland/Libraries/LibTest/TestRunnerUtil.h new file mode 100644 index 00000000000..7f4eed89c44 --- /dev/null +++ b/Userland/Libraries/LibTest/TestRunnerUtil.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include +#include +#include + +namespace Test { + +inline double get_time_in_ms() +{ + struct timeval tv1; + auto return_code = gettimeofday(&tv1, nullptr); + VERIFY(return_code >= 0); + return static_cast(tv1.tv_sec) * 1000.0 + static_cast(tv1.tv_usec) / 1000.0; +} + +template +inline void iterate_directory_recursively(String const& directory_path, Callback callback) +{ + Core::DirIterator directory_iterator(directory_path, Core::DirIterator::Flags::SkipDots); + + while (directory_iterator.has_next()) { + auto name = directory_iterator.next_path(); + struct stat st = {}; + if (fstatat(directory_iterator.fd(), name.characters(), &st, AT_SYMLINK_NOFOLLOW) < 0) + continue; + bool is_directory = S_ISDIR(st.st_mode); + auto full_path = String::formatted("{}/{}", directory_path, name); + if (is_directory && name != "/Fixtures"sv) { + iterate_directory_recursively(full_path, callback); + } else if (!is_directory) { + callback(full_path); + } + } +} + +}