From e481164258f706bac2bfbbac0d7599dd6a92a2cb Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Sun, 22 Feb 2026 11:34:03 +0400 Subject: [PATCH] Extracted test/testing_tools.h --- test/name_mapper.cpp | 24 +++---------------- test/testing_tools.h | 57 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 21 deletions(-) create mode 100644 test/testing_tools.h diff --git a/test/name_mapper.cpp b/test/name_mapper.cpp index 371cc9d5..07087b37 100644 --- a/test/name_mapper.cpp +++ b/test/name_mapper.cpp @@ -2,6 +2,9 @@ #include "../include/library.h" #include "../include/manager.h" +#include "testing_tools.h" +using namespace kiwix::testing; + #include "gtest/gtest.h" namespace @@ -58,27 +61,6 @@ class NameMapperTest : public ::testing::Test { std::shared_ptr lib; }; -class CapturedStderr -{ - std::ostringstream buffer; - std::streambuf* const sbuf; -public: - CapturedStderr() - : sbuf(std::cerr.rdbuf()) - { - std::cerr.rdbuf(buffer.rdbuf()); - } - - CapturedStderr(const CapturedStderr&) = delete; - - ~CapturedStderr() - { - std::cerr.rdbuf(sbuf); - } - - operator std::string() const { return buffer.str(); } -}; - #if _WIN32 const std::string ZERO_FOUR_NAME_CONFLICT_MSG = "Path collision: 'C:\\data\\zero_four_2021-10.zim' and" diff --git a/test/testing_tools.h b/test/testing_tools.h new file mode 100644 index 00000000..c09b6efd --- /dev/null +++ b/test/testing_tools.h @@ -0,0 +1,57 @@ +/* + * Copyright 2026 Veloman Yunkan + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#ifndef LIBKIWIX_TESTING_TOOLS_H +#define LIBKIWIX_TESTING_TOOLS_H + +#include +#include + +namespace kiwix +{ + +namespace testing +{ + +class CapturedStderr +{ + std::ostringstream buffer; + std::streambuf* const sbuf; +public: + CapturedStderr() + : sbuf(std::cerr.rdbuf()) + { + std::cerr.rdbuf(buffer.rdbuf()); + } + + CapturedStderr(const CapturedStderr&) = delete; + + ~CapturedStderr() + { + std::cerr.rdbuf(sbuf); + } + + operator std::string() const { return buffer.str(); } +}; + +} // namespace testing + +} // namespace kiwix + +#endif // LIBKIWIX_TESTING_TOOLS_H