forked from OSchip/llvm-project
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
|
"""
|
||
|
Test that using a non-existent architecture name does not crash LLDB.
|
||
|
"""
|
||
|
import lldb
|
||
|
import unittest2
|
||
|
from lldbtest import *
|
||
|
import lldbutil
|
||
|
|
||
|
class NoSuchArchTestCase(TestBase):
|
||
|
|
||
|
mydir = TestBase.compute_mydir(__file__)
|
||
|
|
||
|
|
||
|
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
|
||
|
@dsym_test
|
||
|
def test_with_dsym (self):
|
||
|
self.buildDsym()
|
||
|
self.do_test ()
|
||
|
|
||
|
|
||
|
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
|
||
|
@dwarf_test
|
||
|
def test_with_dwarf (self):
|
||
|
self.buildDwarf()
|
||
|
self.do_test ()
|
||
|
|
||
|
def do_test (self):
|
||
|
exe = os.path.join (os.getcwd(), "a.out")
|
||
|
|
||
|
# Check that passing an invalid arch via the command-line fails but doesn't crash
|
||
|
self.expect("target crete --arch nothingtoseehere %s" % (exe), error=True)
|
||
|
|
||
|
|
||
|
# Check that passing an invalid arch via the SB API fails but doesn't crash
|
||
|
target = self.dbg.CreateTargetWithFileAndArch(exe,"nothingtoseehere")
|
||
|
|
||
|
self.assertFalse(target.IsValid(), "This target should not be valid")
|
||
|
|
||
|
# Now just create the target with the default arch and check it's fine
|
||
|
target = self.dbg.CreateTarget(exe)
|
||
|
self.assertTrue(target.IsValid(), "This target should now be valid")
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
import atexit
|
||
|
lldb.SBDebugger.Initialize()
|
||
|
atexit.register(lambda: lldb.SBDebugger.Terminate())
|
||
|
unittest2.main()
|
||
|
|