Skip to content

Commit 92b1cac

Browse files
add unit tests
1 parent 876fa62 commit 92b1cac

File tree

1 file changed

+76
-0
lines changed

1 file changed

+76
-0
lines changed

lldb/unittests/Core/MangledTest.cpp

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -635,6 +635,82 @@ TEST_P(DemanglingPartsTestFixture, DemanglingParts) {
635635
INSTANTIATE_TEST_SUITE_P(DemanglingPartsTests, DemanglingPartsTestFixture,
636636
::testing::ValuesIn(g_demangling_parts_test_cases));
637637

638+
struct DemangledNameInfoTestCase {
639+
DemangledNameInfo expected_info;
640+
bool valid_basename;
641+
bool valid_scope;
642+
bool valid_arguments;
643+
bool valid_qualifiers;
644+
bool valid_prefix;
645+
bool valid_suffix;
646+
};
647+
648+
DemangledNameInfoTestCase g_demangled_name_info_test_cases[] = {
649+
// clang-format off
650+
{
651+
{ /*.BasenameRange=*/{0, 10}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 0},
652+
/*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0}
653+
},
654+
/*valid_basename=*/true, /*valid_scope=*/false, /*valid_arguments=*/false,
655+
/*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false,
656+
},
657+
{
658+
{ /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 10}, /*.ArgumentsRange=*/{0, 0},
659+
/*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0}
660+
},
661+
/*valid_basename=*/false, /*valid_scope=*/true, /*valid_arguments=*/false,
662+
/*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false,
663+
},
664+
{
665+
{ /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 10},
666+
/*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0}
667+
},
668+
/*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/true,
669+
/*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/false,
670+
},
671+
{
672+
{ /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 0},
673+
/*.QualifiersRange=*/{0, 10}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0}
674+
},
675+
/*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false,
676+
/*valid_qualifiers=*/true, /*valid_prefix=*/false, /*valid_suffix=*/false,
677+
},
678+
{
679+
{ /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 0},
680+
/*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 10}, /*.SuffixRange=*/{0, 0}
681+
},
682+
/*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false,
683+
/*valid_qualifiers=*/false, /*valid_prefix=*/true, /*valid_suffix=*/false,
684+
},
685+
{
686+
{ /*.BasenameRange=*/{0, 0}, /*.ScopeRange=*/{0, 0}, /*.ArgumentsRange=*/{0, 0},
687+
/*.QualifiersRange=*/{0, 0}, /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 10}
688+
},
689+
/*valid_basename=*/false, /*valid_scope=*/false, /*valid_arguments=*/false,
690+
/*valid_qualifiers=*/false, /*valid_prefix=*/false, /*valid_suffix=*/true,
691+
},
692+
// clang-format on
693+
};
694+
695+
struct DemangledNameInfoTestFixture
696+
: public ::testing::TestWithParam<DemangledNameInfoTestCase> {};
697+
698+
TEST_P(DemangledNameInfoTestFixture, DemangledNameInfoRanges) {
699+
const auto &[info, valid_basename, valid_scope, valid_arguments,
700+
valid_qualifiers, valid_prefix, valid_suffix] = GetParam();
701+
702+
ASSERT_EQ(info.hasBasename(), valid_basename);
703+
ASSERT_EQ(info.hasScope(), valid_scope);
704+
ASSERT_EQ(info.hasArguments(), valid_arguments);
705+
ASSERT_EQ(info.hasQualifiers(), valid_qualifiers);
706+
ASSERT_EQ(info.hasPrefix(), valid_prefix);
707+
ASSERT_EQ(info.hasSuffix(), valid_suffix);
708+
}
709+
710+
INSTANTIATE_TEST_SUITE_P(DemangledNameInfoRangesTests,
711+
DemangledNameInfoTestFixture,
712+
::testing::ValuesIn(g_demangled_name_info_test_cases));
713+
638714
struct DemanglingInfoCorrectnessTestCase {
639715
const char *mangled;
640716
const char *demangled;

0 commit comments

Comments
 (0)