https://github.com/Michael137 updated https://github.com/llvm/llvm-project/pull/147253
>From e592d39c751480838ed90fcaa2b247e96b5bab59 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Sun, 6 Jul 2025 09:58:02 +0100 Subject: [PATCH 1/6] [lldb][test] Combine libstdc++ and libc++ std::variant tests into generic test --- .../{libcxx => generic}/variant/Makefile | 4 +- .../variant/TestDataFormatterStdVariant.py} | 44 +++------ .../{libstdcpp => generic}/variant/main.cpp | 21 ++-- .../variant/TestDataFormatterLibcxxVariant.py | 88 ----------------- .../libcxx/variant/main.cpp | 95 ------------------- .../libstdcpp/variant/Makefile | 5 - 6 files changed, 23 insertions(+), 234 deletions(-) rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx => generic}/variant/Makefile (82%) rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py => generic/variant/TestDataFormatterStdVariant.py} (59%) rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libstdcpp => generic}/variant/main.cpp (85%) delete mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py delete mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/main.cpp delete mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/Makefile diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/Makefile b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/Makefile similarity index 82% rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/Makefile rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/Makefile index 7eeff7407804d..d5f5fec8441b5 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/Makefile +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/Makefile @@ -1,6 +1,4 @@ CXX_SOURCES := main.cpp - -USE_LIBCPP := 1 - CXXFLAGS_EXTRAS := -std=c++17 + include Makefile.rules diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py similarity index 59% rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py index dae9b24fbbcfe..24ae9bfcd1a06 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/TestDataFormatterLibStdcxxVariant.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py @@ -1,5 +1,5 @@ """ -Test lldb data formatter for LibStdC++ std::variant. +Test lldb data formatter subsystem. """ import lldb @@ -8,18 +8,14 @@ from lldbsuite.test import lldbutil -class LibStdcxxVariantDataFormatterTestCase(TestBase): - @add_test_categories(["libstdcxx"]) - def test_with_run_command(self): - """Test LibStdC++ std::variant data formatter works correctly.""" - self.build() +class StdVariantDataFormatterTestCase(TestBase): + def do_test(self): + """Test that that file and class static variables display correctly.""" (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint( self, "// break here", lldb.SBFileSpec("main.cpp", False) ) - lldbutil.continue_to_breakpoint(self.process, bkpt) - for name in ["v1", "v1_typedef"]: self.expect( "frame variable " + name, @@ -69,28 +65,12 @@ def test_with_run_command(self): substrs=["v_many_types_valueless = No Value"], ) - @add_test_categories(["libstdcxx"]) - def test_invalid_variant_index(self): - """Test LibStdC++ data formatter for std::variant with invalid index.""" - self.build() - - (self.target, self.process, thread, bkpt) = lldbutil.run_to_source_breakpoint( - self, "// break here", lldb.SBFileSpec("main.cpp", False) - ) - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect( - "frame variable v1", - substrs=["v1 = Active Type = int {", "Value = 12", "}"], - ) - - var_v1 = thread.frames[0].FindVariable("v1") - var_v1_raw_obj = var_v1.GetNonSyntheticValue() - index_obj = var_v1_raw_obj.GetChildMemberWithName("_M_index") - self.assertTrue(index_obj and index_obj.IsValid()) + @add_test_categories(["libc++"]) + def test_libcxx(self): + self.build(dictionary={"USE_LIBCPP": 1}) + self.do_test() - INVALID_INDEX = "100" - index_obj.SetValueFromCString(INVALID_INDEX) - - self.expect("frame variable v1", substrs=["v1 = <Invalid>"]) + @add_test_categories(["libstdcxx"]) + def test_libstdcxx(self): + self.build(dictionary={"USE_LIBSTDCPP": 1}) + self.do_test() diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp similarity index 85% rename from lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/main.cpp rename to lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp index 235928264add1..3eac4d21dc850 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/main.cpp +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp @@ -10,12 +10,9 @@ struct S { }; int main() { - bool has_variant = true; - - printf("%d\n", has_variant); // break here - std::variant<int, double, char> v1; std::variant<int, double, char> &v1_ref = v1; + using V1_typedef = std::variant<int, double, char>; V1_typedef v1_typedef; V1_typedef &v1_typedef_ref = v1_typedef; @@ -24,7 +21,7 @@ int main() { std::variant<int, double, char> v3; std::variant<std::variant<int, double, char>> v_v1; std::variant<int, char, S> v_valueless = 5; - // The next variant has many types, meaning the type index does not fit in + // The next variant has 300 types, meaning the type index does not fit in // a byte and must be `unsigned short` instead of `unsigned char` when // using the unstable libc++ ABI. With stable libc++ ABI, the type index // is always just `unsigned int`. @@ -45,14 +42,16 @@ int main() { int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, S> - v_many_types_valueless; + int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, + int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, + int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, + int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, S> + v_300_types_valueless; v_valueless = 5; - v_many_types_valueless.emplace<0>(10); + v_300_types_valueless.emplace<0>(10); v1 = 12; // v contains int - v1_typedef = v1; v_v1 = v1; int i = std::get<int>(v1); printf("%d\n", i); // break here @@ -83,11 +82,11 @@ int main() { try { // Exception in move-assignment is guaranteed to put std::variant into a // valueless state. - v_many_types_valueless = S(); + v_300_types_valueless = S(); } catch (...) { } - printf("%d\n", v_many_types_valueless.valueless_by_exception()); + printf("%d\n", v_300_types_valueless.valueless_by_exception()); return 0; // break here } diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py deleted file mode 100644 index 47e07a5ce3f5b..0000000000000 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py +++ /dev/null @@ -1,88 +0,0 @@ -""" -Test lldb data formatter subsystem. -""" - - -import lldb -from lldbsuite.test.decorators import * -from lldbsuite.test.lldbtest import * -from lldbsuite.test import lldbutil - - -class LibcxxVariantDataFormatterTestCase(TestBase): - @add_test_categories(["libc++"]) - ## Clang 7.0 is the oldest Clang that can reliably parse newer libc++ versions - ## with -std=c++17. - @skipIf( - oslist=no_match(["macosx"]), compiler="clang", compiler_version=["<", "7.0"] - ) - ## We are skipping gcc version less that 5.1 since this test requires -std=c++17 - @skipIf(compiler="gcc", compiler_version=["<", "5.1"]) - ## std::get is unavailable for std::variant before macOS 10.14 - @skipIf(macos_version=["<", "10.14"]) - def test_with_run_command(self): - """Test that that file and class static variables display correctly.""" - self.build() - - (self.target, self.process, _, bkpt) = lldbutil.run_to_source_breakpoint( - self, "// break here", lldb.SBFileSpec("main.cpp", False) - ) - - self.runCmd("frame variable has_variant") - - output = self.res.GetOutput() - - ## The variable has_variant tells us if the test program - ## detected we have a sufficient libc++ version to support variant - ## false means we do not and therefore should skip the test - if output.find("(bool) has_variant = false") != -1: - self.skipTest("std::variant not supported") - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect( - "frame variable v1", - substrs=["v1 = Active Type = int {", "Value = 12", "}"], - ) - - self.expect( - "frame variable v1_ref", - patterns=["v1_ref = 0x.* Active Type = int : {", "Value = 12", "}"], - ) - - self.expect( - "frame variable v_v1", - substrs=[ - "v_v1 = Active Type = std::variant<int, double, char> {", - "Value = Active Type = int {", - "Value = 12", - "}", - "}", - ], - ) - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect( - "frame variable v1", - substrs=["v1 = Active Type = double {", "Value = 2", "}"], - ) - - lldbutil.continue_to_breakpoint(self.process, bkpt) - - self.expect( - "frame variable v2", - substrs=["v2 = Active Type = double {", "Value = 2", "}"], - ) - - self.expect( - "frame variable v3", - substrs=["v3 = Active Type = char {", "Value = 'A'", "}"], - ) - - self.expect("frame variable v_no_value", substrs=["v_no_value = No Value"]) - - self.expect( - "frame variable v_300_types_no_value", - substrs=["v_300_types_no_value = No Value"], - ) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/main.cpp deleted file mode 100644 index 560ec692f30ed..0000000000000 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/main.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include <cstdio> -#include <string> -#include <vector> - -// If we have libc++ 4.0 or greater we should have <variant> -// According to libc++ C++1z status page https://libcxx.llvm.org/cxx1z_status.html -#if _LIBCPP_VERSION >= 4000 -#include <variant> -#define HAVE_VARIANT 1 -#else -#define HAVE_VARIANT 0 -#endif - -struct S { - operator int() { throw 42; } -} ; - - -int main() -{ - bool has_variant = HAVE_VARIANT ; - - printf( "%d\n", has_variant ) ; // break here - -#if HAVE_VARIANT == 1 - std::variant<int, double, char> v1; - std::variant<int, double, char> &v1_ref = v1; - std::variant<int, double, char> v2; - std::variant<int, double, char> v3; - std::variant<std::variant<int,double,char>> v_v1 ; - std::variant<int, double, char> v_no_value; - // The next variant has 300 types, meaning the type index does not fit in - // a byte and must be `unsigned short` instead of `unsigned char` when - // using the unstable libc++ ABI. With stable libc++ ABI, the type index - // is always just `unsigned int`. - std::variant< - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int> - v_300_types_no_value; - - v1 = 12; // v contains int - v_v1 = v1 ; - int i = std::get<int>(v1); - printf( "%d\n", i ); // break here - - v2 = 2.0 ; - double d = std::get<double>(v2) ; - printf( "%f\n", d ); - - v3 = 'A' ; - char c = std::get<char>(v3) ; - printf( "%d\n", c ); - - // Checking v1 above and here to make sure we done maintain the incorrect - // state when we change its value. - v1 = 2.0; - d = std::get<double>(v1) ; - printf( "%f\n", d ); // break here - - try { - v_no_value.emplace<0>(S()); - } catch( ... ) {} - - printf( "%zu\n", v_no_value.index() ) ; - - try { - v_300_types_no_value.emplace<0>(S()); - } catch (...) { - } - - printf("%zu\n", v_300_types_no_value.index()); -#endif - - return 0; // break here -} diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/Makefile b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/Makefile deleted file mode 100644 index 104f82809c7a3..0000000000000 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/variant/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -CXX_SOURCES := main.cpp - -USE_LIBSTDCPP := 1 -CXXFLAGS_EXTRAS := -std=c++17 -include Makefile.rules >From 520c1f6359895c8af1ef9b4a27d4bae91d13625b Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 11:35:07 +0100 Subject: [PATCH 2/6] fixup! add missing assignment --- .../data-formatter/data-formatter-stl/generic/variant/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp index 3eac4d21dc850..ada66bae8dc29 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp @@ -52,6 +52,7 @@ int main() { v_300_types_valueless.emplace<0>(10); v1 = 12; // v contains int + v1_typedef = v1; v_v1 = v1; int i = std::get<int>(v1); printf("%d\n", i); // break here >From 1f01a8d43113832e6614eb033c13ebebfed66bd6 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 17:36:31 +0100 Subject: [PATCH 3/6] fixup! move test for invalid invariant index into separate test --- .../libstdcpp/invalid-variant/Makefile | 5 ++++ .../TestDataFormatterInvalidStdVariant.py | 29 +++++++++++++++++++ .../libstdcpp/invalid-variant/main.cpp | 11 +++++++ 3 files changed, 45 insertions(+) create mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/Makefile create mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py create mode 100644 lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/main.cpp diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/Makefile b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/Makefile new file mode 100644 index 0000000000000..8c50abfbb5349 --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/Makefile @@ -0,0 +1,5 @@ +CXX_SOURCES := main.cpp +CXXFLAGS_EXTRAS := -std=c++17 +USE_LIBSTDCPP := 1 + +include Makefile.rules diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py new file mode 100644 index 0000000000000..3c50f7c609e75 --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py @@ -0,0 +1,29 @@ +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + + +class InvalidStdVariantDataFormatterTestCase(TestBase): + @add_test_categories(["libstdcxx"]) + def do_test(self): + """Test STL data formatters for std::variant with invalid index.""" + + (_, _, thread, _) = lldbutil.run_to_source_breakpoint( + self, "// break here", lldb.SBFileSpec("main.cpp", False) + ) + + self.expect( + "frame variable v1", + substrs=["v1 = Active Type = char {", "Value = 'x'", "}"], + ) + + var_v1 = thread.frames[0].FindVariable("v1") + var_v1_raw_obj = var_v1.GetNonSyntheticValue() + index_obj = var_v1_raw_obj.GetChildMemberWithName("_M_index") + self.assertTrue(index_obj and index_obj.IsValid()) + + INVALID_INDEX = "100" + index_obj.SetValueFromCString(INVALID_INDEX) + + self.expect("frame variable v1", substrs=["v1 = <Invalid>"]) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/main.cpp new file mode 100644 index 0000000000000..0d64cbf17bd2b --- /dev/null +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/main.cpp @@ -0,0 +1,11 @@ +#include <cstdio> +#include <variant> + +int main() { + std::variant<int, double, char> v1; + v1 = 'x'; + + std::puts("// break here"); + + return 0; +} >From d56385c76354c41752e3e5e9ea24c76d22326460 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 17:41:20 +0100 Subject: [PATCH 4/6] fixup! fix merge conflict --- .../generic/variant/TestDataFormatterStdVariant.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py index 24ae9bfcd1a06..836c7ed2de942 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/TestDataFormatterStdVariant.py @@ -61,8 +61,8 @@ def do_test(self): self.expect("frame variable v_valueless", substrs=["v_valueless = No Value"]) self.expect( - "frame variable v_many_types_valueless", - substrs=["v_many_types_valueless = No Value"], + "frame variable v_300_types_valueless", + substrs=["v_300_types_valueless = No Value"], ) @add_test_categories(["libc++"]) >From da04b964938240c0bb98bf891aadd2a432becf94 Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Mon, 7 Jul 2025 18:00:53 +0100 Subject: [PATCH 5/6] fixup! clang-format --- .../data-formatter/data-formatter-stl/generic/variant/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp index ada66bae8dc29..620b97b7306f9 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/variant/main.cpp @@ -45,7 +45,8 @@ int main() { int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, - int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, S> + int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, + S> v_300_types_valueless; v_valueless = 5; >From d24eaa7e2385835ae87934db1ce559e5d6e60fad Mon Sep 17 00:00:00 2001 From: Michael Buch <michaelbuc...@gmail.com> Date: Tue, 8 Jul 2025 09:25:45 +0100 Subject: [PATCH 6/6] fixup! fix TestDataFormatterInvalidStdVariant.py --- .../invalid-variant/TestDataFormatterInvalidStdVariant.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py index 3c50f7c609e75..14bb3463fe435 100644 --- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py +++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libstdcpp/invalid-variant/TestDataFormatterInvalidStdVariant.py @@ -6,8 +6,9 @@ class InvalidStdVariantDataFormatterTestCase(TestBase): @add_test_categories(["libstdcxx"]) - def do_test(self): + def test(self): """Test STL data formatters for std::variant with invalid index.""" + self.build() (_, _, thread, _) = lldbutil.run_to_source_breakpoint( self, "// break here", lldb.SBFileSpec("main.cpp", False) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits