Author: Michael Buch Date: 2024-06-28T20:08:53+01:00 New Revision: a4c18137d84bc48df49ee0101bef465a955e62ac
URL: https://github.com/llvm/llvm-project/commit/a4c18137d84bc48df49ee0101bef465a955e62ac DIFF: https://github.com/llvm/llvm-project/commit/a4c18137d84bc48df49ee0101bef465a955e62ac.diff LOG: [lldb][test] Remove duplicate testcase names in API test-suite (#97043) In one of my recent PRs I mistakenly had two test-cases with the same name, preventing one of them to run. Since it's an easy mistake to make (e.g., copy pasting existing test-cases), I ran following sanity-check script over `lldb/test/API`, which found couple of tests which were losing coverage because of this (or in some cases simply had duplicate tests): ``` import ast import sys filename = sys.argv[1] print(f'Checking {filename}...') tree = ast.parse(open(filename, 'r').read()) for node in ast.walk(tree): if not isinstance(node, ast.ClassDef): continue func_names = [] for child in ast.iter_child_nodes(node): if isinstance(child, ast.FunctionDef): func_names.append(child.name) seen_func_names = set() duplicate_func_names = [] for name in func_names: if name in seen_func_names: duplicate_func_names.append(name) else: seen_func_names.add(name) if len(duplicate_func_names) != 0: print(f'Multiple func names found:\n\t{duplicate_func_names}\n\tclass {node.name}\n\tfile: {filename}') ``` This patch fixes these cases. Added: Modified: lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py lldb/test/API/functionalities/completion/TestCompletion.py lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py lldb/test/API/lang/cpp/diamond/TestCppDiamond.py lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py lldb/test/API/lang/rust/enum-structs/TestRustEnumStructs.py lldb/test/API/test_utils/TestDecorators.py Removed: ################################################################################ diff --git a/lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py b/lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py index 583c68d7bfacc..dbcd2d60d021a 100644 --- a/lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py +++ b/lldb/test/API/commands/log/invalid-args/TestInvalidArgsLog.py @@ -25,7 +25,7 @@ def test_disable_empty(self): ) @no_debug_info_test - def test_enable_empty(self): + def test_enable_invalid_path(self): invalid_path = os.path.join("this", "is", "not", "a", "valid", "path") self.expect( "log enable lldb all -f " + invalid_path, diff --git a/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py b/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py index 9678bd42999b3..571024417560f 100644 --- a/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py +++ b/lldb/test/API/commands/thread/backtrace/TestThreadBacktraceRepeat.py @@ -16,8 +16,6 @@ def test_thread_backtrace_one_thread(self): """Run a simplified version of the test that just hits one breakpoint and doesn't care about synchronizing the two threads - hopefully this will run on more systems.""" - - def test_thread_backtrace_one_thread(self): self.build() ( self.inferior_target, diff --git a/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py b/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py index c41e85fd670ba..12f99f07c78a8 100644 --- a/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py +++ b/lldb/test/API/commands/trace/multiple-threads/TestTraceStartStopMultipleThreads.py @@ -31,43 +31,6 @@ def testStartMultipleLiveThreads(self): self.traceStopProcess() - @skipIf(oslist=no_match(["linux"]), archs=no_match(["i386", "x86_64"])) - @testSBAPIAndCommands - def testStartMultipleLiveThreadsWithStops(self): - self.build() - exe = self.getBuildArtifact("a.out") - - self.dbg.CreateTarget(exe) - - self.expect("b main") - self.expect("b 6") - self.expect("b 11") - - self.expect("r") - self.traceStartProcess() - - # We'll see here the first thread - self.expect("continue") - - # We are in thread 2 - self.expect("thread trace dump instructions", substrs=["main.cpp:9"]) - self.expect("thread trace dump instructions 2", substrs=["main.cpp:9"]) - - # We stop tracing it - self.expect("thread trace stop 2") - - # The trace is still in memory - self.expect("thread trace dump instructions 2", substrs=["main.cpp:9"]) - - # We'll stop at the next breakpoint, thread 2 will be still alive, but not traced. Thread 3 will be traced - self.expect("continue") - self.expect("thread trace dump instructions", substrs=["main.cpp:4"]) - self.expect("thread trace dump instructions 3", substrs=["main.cpp:4"]) - - self.expect("thread trace dump instructions 2", substrs=["not traced"]) - - self.traceStopProcess() - @skipIf(oslist=no_match(["linux"]), archs=no_match(["i386", "x86_64"])) @testSBAPIAndCommands def testStartMultipleLiveThreadsWithStops(self): diff --git a/lldb/test/API/functionalities/completion/TestCompletion.py b/lldb/test/API/functionalities/completion/TestCompletion.py index d304e12a80c2d..95873405eab84 100644 --- a/lldb/test/API/functionalities/completion/TestCompletion.py +++ b/lldb/test/API/functionalities/completion/TestCompletion.py @@ -196,12 +196,6 @@ def test_disassemble_dash_f(self): def test_plugin_load(self): self.complete_from_to("plugin load ", []) - def test_log_enable(self): - self.complete_from_to("log enable ll", ["lldb"]) - self.complete_from_to("log enable dw", ["dwarf"]) - self.complete_from_to("log enable lldb al", ["all"]) - self.complete_from_to("log enable lldb sym", ["symbol"]) - def test_log_enable(self): self.complete_from_to("log disable ll", ["lldb"]) self.complete_from_to("log disable dw", ["dwarf"]) diff --git a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py b/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py index f45f014016a90..7ea305621010d 100644 --- a/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py +++ b/lldb/test/API/functionalities/gdb_remote_client/TestIOSSimulator.py @@ -79,7 +79,7 @@ def test_tvos_sim(self): ) @skipIfRemote - def test_tvos_sim(self): + def test_watchos_sim(self): self.platform_test( host="macosx", process="watchossimulator", diff --git a/lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py b/lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py index 859e87cf75a59..e03e8e0df7782 100644 --- a/lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py +++ b/lldb/test/API/functionalities/plugins/python_os_plugin/TestPythonOSPlugin.py @@ -17,7 +17,7 @@ def test_python_os_plugin(self): self.build() self.run_python_os_funcionality() - def run_python_os_step(self): + def test_run_python_os_step(self): """Test that the Python operating system plugin works correctly when single stepping a virtual thread""" self.build() self.run_python_os_step() diff --git a/lldb/test/API/lang/cpp/diamond/TestCppDiamond.py b/lldb/test/API/lang/cpp/diamond/TestCppDiamond.py index 49a4740d0caf0..27062c0666a1a 100644 --- a/lldb/test/API/lang/cpp/diamond/TestCppDiamond.py +++ b/lldb/test/API/lang/cpp/diamond/TestCppDiamond.py @@ -109,7 +109,7 @@ def test(self): @expectedFailureAll @no_debug_info_test - def test(self): + def test_invalid_member(self): self.build() lldbutil.run_to_source_breakpoint( self, "// breakpoint 1", lldb.SBFileSpec("main.cpp") diff --git a/lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py b/lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py index 87d8b3d84b8c7..0317d0a4880b1 100644 --- a/lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py +++ b/lldb/test/API/lang/objcxx/cxx-bridged-po/TestObjCXXBridgedPO.py @@ -7,7 +7,7 @@ class TestObjCXXBridgedPO(TestBase): @skipIfDarwinEmbedded @skipIf(macos_version=[">=", "13.0"]) - def test_bridged_type_po(self): + def test_bridged_type_po_old(self): self.build() lldbutil.run_to_source_breakpoint( self, "break here", lldb.SBFileSpec("main.mm") diff --git a/lldb/test/API/lang/rust/enum-structs/TestRustEnumStructs.py b/lldb/test/API/lang/rust/enum-structs/TestRustEnumStructs.py index 46f96d89221d5..66df22cd9f99f 100644 --- a/lldb/test/API/lang/rust/enum-structs/TestRustEnumStructs.py +++ b/lldb/test/API/lang/rust/enum-structs/TestRustEnumStructs.py @@ -287,7 +287,7 @@ def test_niche_layout_with_fields_3_a(self): (137, 1), ) - def test_niche_layout_with_fields_3_a(self): + def test_niche_layout_with_fields_3_c(self): # static NICHE_W_FIELDS_3_C: NicheLayoutWithFields3 = NicheLayoutWithFields3::C(false); value = self.getFromGlobal("NICHE_W_FIELDS_3_C").getCurrentValue() self.assertEqual( diff --git a/lldb/test/API/test_utils/TestDecorators.py b/lldb/test/API/test_utils/TestDecorators.py index eb09db69de349..4810e281c8e79 100644 --- a/lldb/test/API/test_utils/TestDecorators.py +++ b/lldb/test/API/test_utils/TestDecorators.py @@ -29,7 +29,7 @@ def test_add_test_categories(self): self.assertIsNone(self.getDebugInfo()) @expectedFailureAll - def test_xfail_regexp(self): + def test_xfail_empty(self): """Test that expectedFailureAll can be empty (but please just use expectedFailure)""" self.fail() @@ -92,7 +92,7 @@ def test_decorator_skip2(self): # self.assertNotEqual(self.getDebugInfo(), "dwarf") @expectedFailureAll - def test_xfail_regexp(self): + def test_xfail_empty(self): """Test that xfail can be empty""" self.fail() _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits