This revision was not accepted when it landed; it landed in state "Needs Review". This revision was automatically updated to reflect the committed changes. Closed by commit rG9ca707b69ba3: [lldb][test] Add tests for clang::PreferredNameAttr formatting (authored by Michael137).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145832/new/ https://reviews.llvm.org/D145832 Files: lldb/test/API/lang/cpp/preferred_name/Makefile lldb/test/API/lang/cpp/preferred_name/TestPreferredName.py lldb/test/API/lang/cpp/preferred_name/main.cpp Index: lldb/test/API/lang/cpp/preferred_name/main.cpp =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/main.cpp @@ -0,0 +1,26 @@ +template <typename T> struct Foo; + +typedef Foo<int> BarInt; +typedef Foo<double> BarDouble; + +template <typename T> using Bar = Foo<T>; + +template <typename T> +struct [[clang::preferred_name(BarInt), clang::preferred_name(BarDouble), + clang::preferred_name(Bar<short>), clang::preferred_name(Bar<short>), + clang::preferred_name(Bar<double>), + clang::preferred_name(Bar<char>)]] Foo{}; + +int main() { + BarInt barInt; + BarDouble barDouble; + Bar<short> barShort; + Bar<char> barChar; + + Foo<int> varInt; + Foo<double> varDouble; + Foo<short> varShort; + Foo<char> varChar; + Foo<Foo<int>> varFooInt; + return 0; +} Index: lldb/test/API/lang/cpp/preferred_name/TestPreferredName.py =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/TestPreferredName.py @@ -0,0 +1,42 @@ +""" +Test formatting of types annotated with +[[clang::preferred_name]] attributes. +""" + +import lldb +import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.lldbtest import * +from lldbsuite.test import decorators + + +class TestPreferredName(TestBase): + + def test_frame_var(self): + self.build() + lldbutil.run_to_source_breakpoint(self, "return", lldb.SBFileSpec("main.cpp")) + + self.expect("frame variable barInt", substrs=["BarInt"]) + self.expect("frame variable barDouble", substrs=["BarDouble"]) + self.expect("frame variable barShort", substrs=["Bar<short>"]) + self.expect("frame variable barChar", substrs=["Bar<char>"]) + + self.expect("frame variable varInt", substrs=["BarInt"]) + self.expect("frame variable varDouble", substrs=["BarDouble"]) + self.expect("frame variable varShort", substrs=["Bar<short>"]) + self.expect("frame variable varChar", substrs=["Bar<char>"]) + self.expect("frame variable varFooInt", substrs=["Foo<BarInt>"]) + + def test_expr(self): + self.build() + lldbutil.run_to_source_breakpoint(self, "return", lldb.SBFileSpec("main.cpp")) + + self.expect_expr("barInt", result_type="BarInt") + self.expect_expr("barDouble", result_type="BarDouble") + self.expect_expr("barShort", result_type="Bar<short>") + self.expect_expr("barChar", result_type="Bar<char>") + + self.expect_expr("varInt", result_type="BarInt") + self.expect_expr("varDouble", result_type="BarDouble") + self.expect_expr("varShort", result_type="Bar<short>") + self.expect_expr("varChar", result_type="Bar<char>") + self.expect_expr("varFooInt", result_type="Foo<BarInt>") Index: lldb/test/API/lang/cpp/preferred_name/Makefile =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/Makefile @@ -0,0 +1,3 @@ +CXX_SOURCES := main.cpp +CXXFLAGS_EXTRAS := -std=c++20 -glldb +include Makefile.rules
Index: lldb/test/API/lang/cpp/preferred_name/main.cpp =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/main.cpp @@ -0,0 +1,26 @@ +template <typename T> struct Foo; + +typedef Foo<int> BarInt; +typedef Foo<double> BarDouble; + +template <typename T> using Bar = Foo<T>; + +template <typename T> +struct [[clang::preferred_name(BarInt), clang::preferred_name(BarDouble), + clang::preferred_name(Bar<short>), clang::preferred_name(Bar<short>), + clang::preferred_name(Bar<double>), + clang::preferred_name(Bar<char>)]] Foo{}; + +int main() { + BarInt barInt; + BarDouble barDouble; + Bar<short> barShort; + Bar<char> barChar; + + Foo<int> varInt; + Foo<double> varDouble; + Foo<short> varShort; + Foo<char> varChar; + Foo<Foo<int>> varFooInt; + return 0; +} Index: lldb/test/API/lang/cpp/preferred_name/TestPreferredName.py =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/TestPreferredName.py @@ -0,0 +1,42 @@ +""" +Test formatting of types annotated with +[[clang::preferred_name]] attributes. +""" + +import lldb +import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.lldbtest import * +from lldbsuite.test import decorators + + +class TestPreferredName(TestBase): + + def test_frame_var(self): + self.build() + lldbutil.run_to_source_breakpoint(self, "return", lldb.SBFileSpec("main.cpp")) + + self.expect("frame variable barInt", substrs=["BarInt"]) + self.expect("frame variable barDouble", substrs=["BarDouble"]) + self.expect("frame variable barShort", substrs=["Bar<short>"]) + self.expect("frame variable barChar", substrs=["Bar<char>"]) + + self.expect("frame variable varInt", substrs=["BarInt"]) + self.expect("frame variable varDouble", substrs=["BarDouble"]) + self.expect("frame variable varShort", substrs=["Bar<short>"]) + self.expect("frame variable varChar", substrs=["Bar<char>"]) + self.expect("frame variable varFooInt", substrs=["Foo<BarInt>"]) + + def test_expr(self): + self.build() + lldbutil.run_to_source_breakpoint(self, "return", lldb.SBFileSpec("main.cpp")) + + self.expect_expr("barInt", result_type="BarInt") + self.expect_expr("barDouble", result_type="BarDouble") + self.expect_expr("barShort", result_type="Bar<short>") + self.expect_expr("barChar", result_type="Bar<char>") + + self.expect_expr("varInt", result_type="BarInt") + self.expect_expr("varDouble", result_type="BarDouble") + self.expect_expr("varShort", result_type="Bar<short>") + self.expect_expr("varChar", result_type="Bar<char>") + self.expect_expr("varFooInt", result_type="Foo<BarInt>") Index: lldb/test/API/lang/cpp/preferred_name/Makefile =================================================================== --- /dev/null +++ lldb/test/API/lang/cpp/preferred_name/Makefile @@ -0,0 +1,3 @@ +CXX_SOURCES := main.cpp +CXXFLAGS_EXTRAS := -std=c++20 -glldb +include Makefile.rules
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits