forked from OSchip/llvm-project
Ensure that if some unspecified person were to pass in an invalid architecture when trying to create a target, that it would fail, but not cause LLDB to crash.
llvm-svn: 213781
This commit is contained in:
parent
11d08548fd
commit
d75303581f
|
@ -0,0 +1,5 @@
|
|||
LEVEL = ../../make
|
||||
|
||||
CXX_SOURCES := main.cpp
|
||||
|
||||
include $(LEVEL)/Makefile.rules
|
|
@ -0,0 +1,48 @@
|
|||
"""
|
||||
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()
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
int main() {
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue