From ea81ac987de46e5d61b540ce444deb1bcaebc5a3 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 25 Nov 2020 10:08:21 +0300 Subject: [PATCH] Support underscores in test names --- tools/test/source/main.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/tools/test/source/main.cpp b/tools/test/source/main.cpp index ed7d7ead..2c49edd6 100644 --- a/tools/test/source/main.cpp +++ b/tools/test/source/main.cpp @@ -15,10 +15,25 @@ namespace psemek::test static std::map tests; + static std::string normalize(std::string name) + { + std::replace(name.begin(), name.end(), '_', '/'); + + for (std::size_t i = 0;;) + { + i = name.find("//", i); + if (i == std::string::npos) + break; + name.replace(i, 2, "_"); + ++i; + } + + return name; + } + void add_test_case(char const * name, void(*f)()) { - std::string pname(name); - std::replace(pname.begin(), pname.end(), '_', '/'); + std::string pname = normalize(name); if (tests.count(pname)) {