Skip to content

Commit

Permalink
#2166: Add test for lastNamedPfType
Browse files Browse the repository at this point in the history
  • Loading branch information
thearusable committed Jul 21, 2023
1 parent 553fdb0 commit 0c24994
Showing 1 changed file with 38 additions and 1 deletion.
39 changes: 38 additions & 1 deletion tests/unit/utils/test_demangler_utils.nompi.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,18 @@

namespace vt { namespace tests { namespace unit {

struct TestDemanglerUtils : TestHarness { };
struct TestDemanglerUtils : TestHarness {

template<typename T1>
std::string func_1(T1) {
return __PRETTY_FUNCTION__;
}

template<typename T1, typename T2>
std::string func_2(T1, T2){
return __PRETTY_FUNCTION__;
}
};

using TE = vt::util::demangle::TemplateExtract;

Expand Down Expand Up @@ -103,4 +114,30 @@ TEST_F(TestDemanglerUtils, test_getBarename) {
}
}

TEST_F(TestDemanglerUtils, test_lastNamedPfType) {
std::vector<std::tuple<std::string, std::string, std::string>> data;
data.emplace_back("", "", "");
data.emplace_back(__PRETTY_FUNCTION__, "", "");
data.emplace_back(func_1(1.0), "IncorrectName", "");

data.emplace_back(func_1(100), "T1", "int");
data.emplace_back(func_1("abc"), "T1", "const char *");
data.emplace_back(func_1(nullptr), "T1", "std::nullptr_t");

data.emplace_back(func_2(100, 10.0), "T2", "double");
data.emplace_back(func_2("abc", std::string("abc")), "T2", "std::string");
data.emplace_back(func_2(nullptr, nullptr), "T2", "std::nullptr_t");

auto lambda = [] (auto aa, auto bb) { return __PRETTY_FUNCTION__; };
data.emplace_back(lambda(10, 20), "bb:auto", "int");
data.emplace_back(lambda("", nullptr), "bb:auto", "std::nullptr_t");

for (auto& t : data) {
std::string& spf = std::get<0>(t);
std::string& tparam = std::get<1>(t);
std::string& expected = std::get<2>(t);
EXPECT_EQ(TE::lastNamedPfType(spf, tparam), expected);
}
}

}}} /* end namespace vt::tests::unit */

0 comments on commit 0c24994

Please sign in to comment.