summaryrefslogtreecommitdiff
path: root/test/test-util.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-12-20 15:08:37 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-12-20 15:08:37 +0000
commit0b34bd33d9b74e51adccba4b330b0bd264a7d24c (patch)
treeaaef37fc02cbd8b70cadc6ce94e83e85f83c32b8 /test/test-util.cpp
parent28892f3d4cf6d9fb6486de5197dd6d46da706f13 (diff)
downloadwebstat-0b34bd33d9b74e51adccba4b330b0bd264a7d24c.tar.bz2
webstat-0b34bd33d9b74e51adccba4b330b0bd264a7d24c.tar.xz
webstat-0b34bd33d9b74e51adccba4b330b0bd264a7d24c.zip
Rename test utilities to avoid name conflict.
Diffstat (limited to 'test/test-util.cpp')
-rw-r--r--test/test-util.cpp100
1 files changed, 0 insertions, 100 deletions
diff --git a/test/test-util.cpp b/test/test-util.cpp
deleted file mode 100644
index 32c3003..0000000
--- a/test/test-util.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-#include "test-util.hpp"
-#include <fstream>
-#include <random>
-
-namespace WebStat {
- MockDB::MockDB() :
- DB::PluginMock<PQ::Mock>("webstat", {SRC_DIR / "schema.sql"}, "user=postgres dbname=postgres") { }
-
- MockDBPool::MockDBPool(std::string name) : DB::BasicConnectionPool(1, 1), name {std::move(name)} { }
-
- DB::ConnectionPtr
- MockDBPool::createResource() const
- {
- return DB::MockDatabase::openConnectionTo(name);
- }
-
- utsname
- getTestUtsName(const std::string_view nodename)
- {
- utsname uts {};
- nodename.copy(uts.nodename, sizeof(uts.nodename));
- return uts;
- }
-
- LogFile::LogFile(std::filesystem::path where, size_t entries) : path {std::move(where)}
- {
- std::random_device randDevice;
- std::mt19937 generator(randDevice());
-
- struct Strings {
- std::vector<std::string> vhosts;
- std::vector<std::string> ips;
- std::vector<std::string> paths;
- std::vector<std::string> qss;
- std::vector<std::string> refs;
- std::vector<std::string> uas;
- };
-
- Strings strings;
-
- auto genIp = [&generator]() {
- static std::uniform_int_distribution<unsigned short> octetDistrib {0, std::numeric_limits<uint8_t>::max()};
- return std::format("{}.{}.{}.{}", octetDistrib(generator), octetDistrib(generator), octetDistrib(generator),
- octetDistrib(generator)
-
- );
- };
- auto getStrGen = [&generator](size_t minLen, size_t maxLen) {
- return [minLen, maxLen, &generator]() {
- std::uniform_int_distribution<char> charDistrib {'a', 'z'};
- std::uniform_int_distribution<size_t> lenDistrib {minLen, maxLen};
- std::string out;
- std::generate_n(std::back_inserter(out), lenDistrib(generator), [&generator, &charDistrib]() {
- return charDistrib(generator);
- });
- return out;
- };
- };
-
- for (auto & [out, count, stringGenerator] :
- std::initializer_list<std::tuple<std::vector<std::string> &, size_t, std::function<std::string()>>> {
- {strings.vhosts, 4, getStrGen(6, 20)},
- {strings.ips, 4, genIp},
- {strings.paths, 100, getStrGen(1, 50)},
- {strings.qss, 100, getStrGen(1, 50)},
- {strings.refs, 50, getStrGen(10, 50)},
- {strings.uas, 10, getStrGen(50, 70)},
- }) {
- std::generate_n(std::back_inserter(out), count, stringGenerator);
- }
- strings.qss.emplace_back("");
- strings.refs.emplace_back("-");
- strings.uas.emplace_back("-");
-
- constexpr size_t MISC_MIN = 1000;
- constexpr size_t MISC_MAX = 10000;
- constexpr uint64_t TICK_START = 1755710158296508;
- std::uniform_int_distribution<size_t> tickDistrib {MISC_MIN, MISC_MAX};
- std::uniform_int_distribution<size_t> sizeDistrib {MISC_MIN, MISC_MAX};
- std::uniform_int_distribution<size_t> durationDistrib {MISC_MIN, MISC_MAX};
- uint64_t tick = TICK_START;
- auto randomString = [&generator](auto & stringSet) {
- std::uniform_int_distribution<size_t> choiceDistrib {0, stringSet.size() - 1};
- return stringSet[choiceDistrib(generator)];
- };
-
- std::ofstream logfile {path};
- for (size_t line = 0; line < entries; ++line) {
- std::println(logfile, R"LOG({} {} {} GET "/{}" "?{}" HTTP/1.1 200 {} {} "{}" "{}")LOG",
- randomString(strings.vhosts), randomString(strings.ips), tick += tickDistrib(generator),
- randomString(strings.paths), randomString(strings.qss), sizeDistrib(generator),
- durationDistrib(generator), randomString(strings.refs), randomString(strings.uas));
- }
- }
-
- LogFile::~LogFile()
- {
- std::filesystem::remove(path);
- }
-}