| """ |
| 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__) |
| |
| |
| @skipUnlessDarwin |
| @dsym_test |
| def test_with_dsym (self): |
| self.buildDsym() |
| self.do_test () |
| |
| |
| @skipUnlessDarwin |
| @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() |
| |