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()
|
|
|