[Lldb-commits] [PATCH] D145832: [lldb][test] Add tests for clang::PreferredNameAttr formatting
Michael Buch via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri Mar 10 16:52:23 PST 2023
Michael137 created this revision.
Michael137 added a reviewer: aprantl.
Herald added a project: All.
Michael137 requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
Add some tests to make sure we're formatting structures
with preferred names correctly.
Repository:
rG LLVM Github Monorepo
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,25 @@
+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;
+ 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,40 @@
+"""
+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>"])
+
+ 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>")
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D145832.504305.patch
Type: text/x-patch
Size: 2966 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20230311/169f22ca/attachment.bin>
More information about the lldb-commits
mailing list