json/tests/abi/config/config.hpp
Florian Albrechtskirchinger 2fd7d25420
Add ABI tests
2022-08-09 16:07:44 +02:00

28 lines
628 B
C++

#pragma once
#include "doctest.h"
#include <iostream>
#include <regex>
#include <string>
#define STRINGIZE_EX(x) #x
#define STRINGIZE(x) STRINGIZE_EX(x)
template<typename T>
std::string namespace_name(std::string ns, T* /*unused*/ = nullptr) // NOLINT(performance-unnecessary-value-param)
{
#if DOCTEST_MSVC && !DOCTEST_CLANG
ns = __FUNCSIG__;
#elif !DOCTEST_CLANG
ns = __PRETTY_FUNCTION__;
#endif
std::smatch m;
// extract the true namespace name from the function signature
CAPTURE(ns);
CHECK(std::regex_search(ns, m, std::regex("nlohmann(::[a-zA-Z0-9_]+)*::basic_json")));
return m.str();
}