diff options
Diffstat (limited to 'lldb/unittests/Target/LanguageTest.cpp')
-rw-r--r-- | lldb/unittests/Target/LanguageTest.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/lldb/unittests/Target/LanguageTest.cpp b/lldb/unittests/Target/LanguageTest.cpp index a00fda78..720863b 100644 --- a/lldb/unittests/Target/LanguageTest.cpp +++ b/lldb/unittests/Target/LanguageTest.cpp @@ -24,9 +24,6 @@ TEST_F(LanguageTest, SourceLanguage_GetDescription) { continue; auto lang_type = static_cast<lldb::LanguageType>(i); - if (lang_type == lldb::eLanguageTypeLastStandardLanguage) - continue; - SourceLanguage lang(lang_type); // eLanguageTypeHIP is not implemented as a DW_LNAME because of a conflict. @@ -39,9 +36,12 @@ TEST_F(LanguageTest, SourceLanguage_GetDescription) { EXPECT_EQ(SourceLanguage(eLanguageTypeC_plus_plus).GetDescription(), "ISO C++"); EXPECT_EQ(SourceLanguage(eLanguageTypeC_plus_plus_17).GetDescription(), - "ISO C++"); + "C++17"); EXPECT_EQ(SourceLanguage(eLanguageTypeC_plus_plus_20).GetDescription(), - "ISO C++"); + "C++20"); + + EXPECT_EQ(SourceLanguage(eLanguageTypeC).GetDescription(), "C (K&R and ISO)"); + EXPECT_EQ(SourceLanguage(eLanguageTypeC89).GetDescription(), "C89"); EXPECT_EQ(SourceLanguage(eLanguageTypeObjC).GetDescription(), "Objective C"); EXPECT_EQ(SourceLanguage(eLanguageTypeMipsAssembler).GetDescription(), @@ -67,3 +67,16 @@ TEST_F(LanguageTest, SourceLanguage_AsLanguageType) { EXPECT_EQ(SourceLanguage(eLanguageTypeUnknown).AsLanguageType(), eLanguageTypeUnknown); } + +TEST_F(LanguageTest, SourceLanguage_LastStandardLanguage) { + // eLanguageTypeLastStandardLanguage should be treated as a standard DWARF + // language. + SourceLanguage lang(eLanguageTypeLastStandardLanguage); + EXPECT_TRUE(lang); + + // It should have a valid description (not "Unknown"). + EXPECT_NE(lang.GetDescription(), "Unknown"); + + // It should convert to the correct language type. + EXPECT_EQ(lang.AsLanguageType(), eLanguageTypeLastStandardLanguage); +} |