From 1b8fe5ec8d6fa2f7b085d7f76eab571e851ea468 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Wed, 17 May 2017 11:47:44 +0000 Subject: Make TestConflictingSymbol run on non-darwin targets For remote targets we need to call registerSharedLibrariesWithTarget to make sure they are installed alongside main executable. This also required a small fixup in the the mentioned function as in this case "One" was both a directory name and a library name template. I fixed it to make sure it checks that the string refers to a file before it assumed it was a full library path. llvm-svn: 303248 --- .../lang/c/conflicting-symbol/TestConflictingSymbol.py | 18 +++++++++++------- lldb/packages/Python/lldbsuite/test/lldbtest.py | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) (limited to 'lldb/packages/Python') diff --git a/lldb/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py b/lldb/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py index fc3490b3f85..d3327700bfd 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py +++ b/lldb/packages/Python/lldbsuite/test/lang/c/conflicting-symbol/TestConflictingSymbol.py @@ -16,10 +16,16 @@ class TestConflictingSymbols(TestBase): mydir = TestBase.compute_mydir(__file__) NO_DEBUG_INFO_TESTCASE = True - @skipUnlessDarwin def test_conflicting_symbols(self): self.build() - self.common_setup() + exe = os.path.join(os.getcwd(), "a.out") + target = self.dbg.CreateTarget("a.out") + self.assertTrue(target, VALID_TARGET) + + # Register our shared libraries for remote targets so they get + # automatically uploaded + environment = self.registerSharedLibrariesWithTarget( + target, ['One', 'Two']) One_line = line_number('One/One.c', '// break here') Two_line = line_number('Two/Two.c', '// break here') @@ -31,7 +37,9 @@ class TestConflictingSymbols(TestBase): lldbutil.run_break_set_by_file_and_line( self, 'main.c', main_line, num_expected_locations=1, loc_exact=True) - self.runCmd("run", RUN_SUCCEEDED) + process = target.LaunchSimple( + None, environment, self.get_process_working_directory()) + self.assertTrue(process, PROCESS_IS_VALID) # The stop reason of the thread should be breakpoint. self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT, @@ -80,7 +88,3 @@ class TestConflictingSymbols(TestBase): error=True, substrs=[ "Multiple internal symbols"]) - - def common_setup(self): - exe = os.path.join(os.getcwd(), "a.out") - self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET) diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index bc0fb1b686a..f1d65cf2076 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -1934,7 +1934,7 @@ class TestBase(Base): # "libFoo.dylib" or "libFoo.so", or "Foo.so" for "Foo.so" or "libFoo.so", or just a # basename like "libFoo.so". So figure out which one it is and resolve the local copy # of the shared library accordingly - if os.path.exists(name): + if os.path.isfile(name): local_shlib_path = name # name is the full path to the local shared library else: # Check relative names -- cgit v1.2.3