Skip to content

Commit

Permalink
Update sys.platform switched behavior in tests to use self.getPlatfor…
Browse files Browse the repository at this point in the history
…m (remote target platform)

Uses target platform when determining which platform specific behavior to use
or expect in tests. TestHelp.py was unchanged because this is asserting
behavior of the local lldb binary.

Test Plan:
Run tests on different remote os. Several previously failing tests now pass:
TestArrayTypes.py
TestInferiorChanged.py
TestInferiorCrashing.py
TestIvarProtocols.py
TestProcessIO.py
TestPublicAPIHeaders.py
TestRecursiveInferior.py

Differential Revision: http://reviews.llvm.org/D8747

llvm-svn: 233805
  • Loading branch information
flackr committed Apr 1, 2015
1 parent 3a610eb commit 8f4c4d5
Show file tree
Hide file tree
Showing 15 changed files with 26 additions and 26 deletions.
Expand Up @@ -25,7 +25,7 @@ def test_sb_api_directory(self):
"""Test the SB API directory and make sure there's no unwanted stuff."""

# Only proceed if this is "darwin", "x86_64", and local platform.
if not (sys.platform.startswith("darwin") and self.getArchitecture() == "x86_64" and not lldb.test_remote):
if not (self.getPlatform() == "darwin" and self.getArchitecture() == "x86_64" and not lldb.test_remote):
self.skipTest("This test is only for LLDB.framework built 64-bit and !lldb.test_remote")
if self.getArchitecture() == "i386":
self.skipTest("LLDB is 64-bit and cannot be linked to 32-bit test program.")
Expand All @@ -47,9 +47,9 @@ def generate_main_cpp(self):
# for all the SB API headers.
public_headers = os.listdir(public_api_dir)
# For different platforms, the include statement can vary.
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
include_stmt = "'#include <%s>' % os.path.join('LLDB', header)"
if sys.platform.startswith('freebsd') or sys.platform.startswith("linux") or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile':
if self.getPlatform() == "freebsd" or self.getPlatform() == "linux" or os.environ.get('LLDB_BUILD_TYPE') == 'Makefile':
include_stmt = "'#include <%s>' % os.path.join(public_api_dir, header)"
list = [eval(include_stmt) for header in public_headers if (header.startswith("SB") and
header.endswith(".h"))]
Expand Down
Expand Up @@ -174,7 +174,7 @@ def running_abbreviations (self):
self.expect("i d symt",
patterns = ["Dumping symbol table for [0-9]+ modules."])

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
self.expect("i li",
substrs = [ 'a.out',
'/usr/lib/dyld',
Expand Down
Expand Up @@ -49,7 +49,7 @@ def inferior_crashing(self):

self.runCmd("run", RUN_SUCCEEDED)

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
stop_reason = 'stop reason = EXC_BAD_ACCESS'
else:
stop_reason = 'stop reason = invalid address'
Expand All @@ -73,7 +73,7 @@ def inferior_not_crashing(self):
self.runCmd("run", RUN_SUCCEEDED)
self.runCmd("process status")

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
stop_reason = 'EXC_BAD_ACCESS'
else:
stop_reason = 'invalid address'
Expand Down
Expand Up @@ -87,7 +87,7 @@ def set_breakpoint(self, line):
lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True)

def check_stop_reason(self):
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
stop_reason = 'stop reason = EXC_BAD_ACCESS'
else:
stop_reason = 'stop reason = invalid address'
Expand Down
Expand Up @@ -90,7 +90,7 @@ def set_breakpoint(self, line):
lldbutil.run_break_set_by_file_and_line (self, "main.c", line, num_expected_locations=1, loc_exact=True)

def check_stop_reason(self):
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
stop_reason = 'stop reason = EXC_BAD_ACCESS'
else:
stop_reason = 'stop reason = invalid address'
Expand Down Expand Up @@ -209,13 +209,13 @@ def recursive_inferior_crashing_step_after_break(self):
self.check_stop_reason()

expected_state = 'exited' # Provide the exit code.
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
expected_state = 'stopped' # TODO: Determine why 'next' and 'continue' have no effect after a crash.

self.expect("next",
substrs = ['Process', expected_state])

if not(sys.platform.startswith("darwin")): # if stopped, we will have a process around
if self.getPlatform() != "darwin": # if stopped, we will have a process around
self.expect("thread list", error=True,substrs = ['Process must be launched'])

def recursive_inferior_crashing_expr_step_expr(self):
Expand Down
Expand Up @@ -108,7 +108,7 @@ def run_step_sequence(self, step_sequence):
test_stack_depth = True
# Work around for <rdar://problem/16363195>, the darwin unwinder seems flakey about whether it duplicates the first frame
# or not, which makes counting stack depth unreliable.
if "darwin" in sys.platform:
if self.getPlatform() == "darwin":
test_stack_depth = False

for step_pattern in step_sequence:
Expand Down
10 changes: 5 additions & 5 deletions lldb/test/functionalities/load_unload/TestLoadUnload.py
Expand Up @@ -24,7 +24,7 @@ def setUp(self):
'// Set break point at this line for test_lldb_process_load_and_unload_commands().')
self.line_d_function = line_number('d.c',
'// Find this line number within d_dunction().')
if not sys.platform.startswith("darwin"):
if self.getPlatform() != "darwin":
if "LD_LIBRARY_PATH" in os.environ:
self.runCmd("settings set target.env-vars " + self.dylibPath + "=" + os.environ["LD_LIBRARY_PATH"] + ":" + os.getcwd())
else:
Expand All @@ -38,7 +38,7 @@ def test_modules_search_paths(self):
# Invoke the default build rule.
self.buildDefault()

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
dylibName = 'libloadunload_d.dylib'
else:
dylibName = 'libloadunload_d.so'
Expand Down Expand Up @@ -93,7 +93,7 @@ def test_dyld_library_path(self):
exe = os.path.join(os.getcwd(), "a.out")
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
dylibName = 'libloadunload_d.dylib'
dsymName = 'libloadunload_d.dylib.dSYM'
else:
Expand All @@ -112,7 +112,7 @@ def test_dyld_library_path(self):
# we pick up the hidden dylib.

env_cmd_string = "settings set target.env-vars " + self.dylibPath + "=" + new_dir
if not sys.platform.startswith("darwin"):
if self.getPlatform() != "darwin":
env_cmd_string += ":" + os.getcwd()

if self.TraceOn():
Expand Down Expand Up @@ -164,7 +164,7 @@ def test_lldb_process_load_and_unload_commands(self):
error=True, matching=False,
patterns = ["1 match found .* %s" % self.mydir])

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
dylibName = 'libloadunload_a.dylib'
else:
dylibName = 'libloadunload_a.so'
Expand Down
6 changes: 3 additions & 3 deletions lldb/test/functionalities/register/TestRegisters.py
Expand Up @@ -89,13 +89,13 @@ def remove_log(self):
# platform specific logging of the specified category
def log_enable(self, category):
self.platform = ""
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
self.platform = "" # TODO: add support for "log enable darwin registers"

if sys.platform.startswith("freebsd"):
if self.getPlatform() == "freebsd":
self.platform = "freebsd"

if sys.platform.startswith("linux"):
if self.getPlatform() == "linux":
self.platform = "linux"

if self.platform != "":
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/c/array_types/TestArrayTypes.py
Expand Up @@ -130,7 +130,7 @@ def array_types_python(self):

# Sanity check the print representation of thread.
thr = str(thread)
if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
tidstr = "tid = 0x%4.4x" % thread.GetThreadID()
else:
tidstr = "tid = %u" % thread.GetThreadID()
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/c/function_types/TestFunctionTypes.py
Expand Up @@ -86,7 +86,7 @@ def function_pointers(self):
self.expect("expr string_not_empty",
substrs = ['(int (*)(const char *)) $0 = ', '(a.out`'])

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
regexps = ['lib.*\.dylib`printf']
else:
regexps = ['printf']
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/c/tls_globals/TestTlsGlobals.py
Expand Up @@ -28,7 +28,7 @@ def test_with_dwarf(self):
def setUp(self):
TestBase.setUp(self)

if sys.platform.startswith("freebsd") or sys.platform.startswith("linux"):
if self.getPlatform() == "freebsd" or self.getPlatform() == "linux":
# LD_LIBRARY_PATH must be set so the shared libraries are found on startup
if "LD_LIBRARY_PATH" in os.environ:
self.runCmd("settings set target.env-vars " + self.dylibPath + "=" + os.environ["LD_LIBRARY_PATH"] + ":" + os.getcwd())
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/cpp/class_static/TestStaticVariables.py
Expand Up @@ -73,7 +73,7 @@ def static_variable_commands(self):

# On Mac OS X, gcc 4.2 emits the wrong debug info for A::g_points.
# A::g_points is an array of two elements.
if sys.platform.startswith("darwin") or sys.platform.startswith("linux"):
if self.getPlatform() == "darwin" or self.getPlatform() == "linux":
self.expect("target variable A::g_points[1].x", VARIABLES_DISPLAYED_CORRECTLY,
startstr = "(int) A::g_points[1].x = 11")

Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/cpp/namespace/TestNamespace.py
Expand Up @@ -54,7 +54,7 @@ def namespace_variable_commands(self):

# On Mac OS X, gcc 4.2 emits the wrong debug info with respect to types.
slist = ['(int) a = 12', 'anon_uint', 'a_uint', 'b_uint', 'y_uint']
if sys.platform.startswith("darwin") and self.getCompiler() in ['clang', 'llvm-gcc']:
if self.getPlatform() == "darwin" and self.getCompiler() in ['clang', 'llvm-gcc']:
slist = ['(int) a = 12',
'::my_uint_t', 'anon_uint = 0',
'(A::uint_t) a_uint = 1',
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/lang/objc/modules/TestObjCModules.py
Expand Up @@ -14,7 +14,7 @@ class ObjCModulesTestCase(TestBase):

mydir = TestBase.compute_mydir(__file__)

@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
@skipUnlessDarwin
@dsym_test
def test_expr_with_dsym(self):
self.buildDsym()
Expand Down
2 changes: 1 addition & 1 deletion lldb/test/terminal/TestSTTYBeforeAndAfter.py
Expand Up @@ -40,7 +40,7 @@ def test_stty_dash_a_before_and_afetr_invoking_lldb_command(self):
if self.TraceOn():
child.logfile = sys.stdout

if sys.platform.startswith("darwin"):
if self.getPlatform() == "darwin":
child.sendline('set env(TERM) xterm')
else:
child.sendline('set env(TERM) vt100')
Expand Down

0 comments on commit 8f4c4d5

Please sign in to comment.