From: Joel Rosdahl Date: Sun, 31 Dec 2023 09:42:09 +0000 (+0100) Subject: refactor: fs::path-ify TestUtil X-Git-Tag: v4.10~144 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b80f83456aa9a2f72c33a8df6c6fcd8fa53da03;p=thirdparty%2Fccache.git refactor: fs::path-ify TestUtil --- diff --git a/unittest/TestUtil.cpp b/unittest/TestUtil.cpp index 8f0c0a0b2..3ef36543b 100644 --- a/unittest/TestUtil.cpp +++ b/unittest/TestUtil.cpp @@ -18,17 +18,10 @@ #include "TestUtil.hpp" -#include "../src/Util.hpp" - #include +#include #include #include -#include -#include - -#ifdef HAVE_UNISTD_H -# include -#endif namespace fs = util::filesystem; @@ -36,24 +29,24 @@ namespace TestUtil { size_t TestContext::m_subdir_counter = 0; -TestContext::TestContext() : m_test_dir(util::actual_cwd()) +TestContext::TestContext() + : m_test_dir(util::value_or_throw( + fs::current_path(), "Failed to retrieve current directory")) { - if (Util::base_name(Util::dir_name(m_test_dir)) != "testdir") { + if (m_test_dir.parent_path().filename() != "testdir") { throw core::Error("TestContext instantiated outside test directory"); } ++m_subdir_counter; - std::string subtest_dir = FMT("{}/test_{}", m_test_dir, m_subdir_counter); + fs::path subtest_dir = m_test_dir / FMT("test_{}", m_subdir_counter); fs::create_directories(subtest_dir); if (!fs::current_path(subtest_dir)) { - abort(); + throw core::Error(FMT("Failed to change directory to {}", subtest_dir)); } } TestContext::~TestContext() { - if (!fs::current_path(m_test_dir)) { - abort(); - } + fs::current_path(m_test_dir); } } // namespace TestUtil diff --git a/unittest/TestUtil.hpp b/unittest/TestUtil.hpp index a3588a841..9c4449000 100644 --- a/unittest/TestUtil.hpp +++ b/unittest/TestUtil.hpp @@ -19,7 +19,7 @@ #pragma once #include -#include +#include #ifdef _MSC_VER # define DOCTEST_CONFIG_USE_STD_HEADERS @@ -36,7 +36,7 @@ public: ~TestContext(); private: - std::string m_test_dir; + std::filesystem::path m_test_dir; static size_t m_subdir_counter; };