diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-08-25 15:18:41 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-08-25 16:02:51 +0100 |
commit | 3d6c2f43932bf8930ea0b1a53f6ebe048c7803bc (patch) | |
tree | 11916da8f6dcd75c461a7c5cca075ca0fdeaf8d6 /test/test-ingest.cpp | |
parent | 6e549d226b0ebce6ecdce0e7c5f03a0ce4867a89 (diff) | |
download | webstat-3d6c2f43932bf8930ea0b1a53f6ebe048c7803bc.tar.bz2 webstat-3d6c2f43932bf8930ea0b1a53f6ebe048c7803bc.tar.xz webstat-3d6c2f43932bf8930ea0b1a53f6ebe048c7803bc.zip |
Move common test code to its own library
Diffstat (limited to 'test/test-ingest.cpp')
-rw-r--r-- | test/test-ingest.cpp | 42 |
1 files changed, 12 insertions, 30 deletions
diff --git a/test/test-ingest.cpp b/test/test-ingest.cpp index 965f502..4845bf6 100644 --- a/test/test-ingest.cpp +++ b/test/test-ingest.cpp @@ -2,32 +2,14 @@ #include <boost/test/data/test_case.hpp> #include <boost/test/unit_test.hpp> -#include <dbpp-postgresql/pq-mock.h> -#include <filesystem> +#include "test-util.hpp" + #include <ingestor.hpp> -#include <mockDatabase.h> - -#define XSTR(s) STR(s) -#define STR(s) #s -const std::filesystem::path SRC_DIR(XSTR(SRC)); -const std::filesystem::path TEST_DIR(XSTR(TEST)); -#undef XSTR -#undef STR - -class Mock : public DB::PluginMock<PQ::Mock> { -public: - Mock() : DB::PluginMock<PQ::Mock>("webstat", {SRC_DIR / "schema.sql"}, "user=postgres dbname=postgres") { } -}; - -BOOST_GLOBAL_FIXTURE(Mock); - -using ScanValues = std::remove_cvref_t<decltype(std::declval<WebStat::Ingestor::ScanResult>()->values())>; -template<typename Out> using ParseData = std::tuple<std::string_view, Out>; -template<auto Deleter> -using DeleteWith = decltype([](auto obj) { - return Deleter(obj); -}); -using FilePtr = std::unique_ptr<std::FILE, DeleteWith<&fclose>>; + +namespace { + using namespace WebStat; + BOOST_GLOBAL_FIXTURE(MockDB); +} namespace std { template<typename T> @@ -53,7 +35,7 @@ namespace std { } BOOST_DATA_TEST_CASE(QuotedStringsGood, - boost::unit_test::data::make<ParseData<WebStat::QuotedString>>({ + boost::unit_test::data::make<WebStat::ParseData<WebStat::QuotedString>>({ {R"("")", ""}, {R"("-")", "-"}, {R"(".")", "."}, @@ -79,7 +61,7 @@ BOOST_DATA_TEST_CASE(QuotedStringsBad, } BOOST_DATA_TEST_CASE(QueryStringsGood, - boost::unit_test::data::make<ParseData<WebStat::QueryString>>({ + boost::unit_test::data::make<WebStat::ParseData<WebStat::QueryString>>({ {R"("")", std::nullopt}, {R"("?")", ""}, {R"("?something")", "something"}, @@ -110,7 +92,7 @@ BOOST_DATA_TEST_CASE(QueryStringsBad, BOOST_TEST_DECORATOR(*boost::unit_test::timeout(1)) BOOST_DATA_TEST_CASE(CLFStringsDecode, - boost::unit_test::data::make<ParseData<std::string>>({ + boost::unit_test::data::make<WebStat::ParseData<std::string>>({ {"", ""}, {"plain", "plain"}, {R"(hex\x41)", "hexA"}, @@ -128,7 +110,7 @@ BOOST_DATA_TEST_CASE(CLFStringsDecode, BOOST_TEST_DECORATOR(*boost::unit_test::depends_on("CLFStringsDecode")) BOOST_DATA_TEST_CASE(CLFStringsGood, - boost::unit_test::data::make<ParseData<WebStat::CLFString>>({ + boost::unit_test::data::make<WebStat::ParseData<WebStat::CLFString>>({ {R"("")", ""}, {R"("-")", std::nullopt}, {R"("?")", "?"}, @@ -167,7 +149,7 @@ BOOST_TEST_DECORATOR(*boost::unit_test::depends_on("QueryStringsGood")) BOOST_TEST_DECORATOR(*boost::unit_test::depends_on("CLFStringsGood")) BOOST_DATA_TEST_CASE(ExtractFields, - boost::unit_test::data::make<ParseData<WebStat::Ingestor::ScanValues>>({ + boost::unit_test::data::make<WebStat::ParseData<WebStat::Ingestor::ScanValues>>({ {LOGLINE1, {"git.randomdan.homeip.net", "98.82.40.168", 1755561576768318, "GET", R"(/repo/gentoobrowse-api/commit/gentoobrowse-api/unittests/fixtures/756569aa764177340726dd3d40b41d89b11b20c7/app-crypt/pdfcrack/Manifest)", |