199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtRead in a library with a version number of 0.0.0, make sure we produce a good version. 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprecht 599451b44SJordan Rupprecht 699451b44SJordan Rupprechtimport lldb 7e5bb5423SJonas Devliegherefrom lldbsuite.test.decorators import * 899451b44SJordan Rupprechtimport lldbsuite.test.lldbutil as lldbutil 999451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import * 1099451b44SJordan Rupprecht 1199451b44SJordan Rupprecht 1299451b44SJordan Rupprechtclass TestGetVersionForZero(TestBase): 13*c6ad6901SVenkata Ramanaiah Nalamothu # If your test case doesn't stress debug info, then 1499451b44SJordan Rupprecht # set this to true. That way it won't be run once for 1599451b44SJordan Rupprecht # each debug info format. 1699451b44SJordan Rupprecht NO_DEBUG_INFO_TESTCASE = True 1799451b44SJordan Rupprecht 1899451b44SJordan Rupprecht def test_get_version_zero(self): 1999451b44SJordan Rupprecht """Read in a library with a version of 0.0.0. Test SBModule::GetVersion""" 2099451b44SJordan Rupprecht self.yaml2obj("libDylib.dylib.yaml", self.getBuildArtifact("libDylib.dylib")) 2199451b44SJordan Rupprecht self.do_test() 2299451b44SJordan Rupprecht 2399451b44SJordan Rupprecht def do_test(self): 2499451b44SJordan Rupprecht lib_name = "libDylib.dylib" 2599451b44SJordan Rupprecht target = lldbutil.run_to_breakpoint_make_target(self, exe_name=lib_name) 2699451b44SJordan Rupprecht module = target.FindModule(lldb.SBFileSpec(lib_name)) 2799451b44SJordan Rupprecht self.assertTrue(module.IsValid(), "Didn't find the libDylib.dylib module") 2899451b44SJordan Rupprecht # For now the actual version numbers are wrong for a library of 0.0.0 2999451b44SJordan Rupprecht # but the previous code would crash iterating over the resultant 3099451b44SJordan Rupprecht # list. So we are testing that that doesn't happen. 3199451b44SJordan Rupprecht did_iterate = False 3299451b44SJordan Rupprecht for elem in module.GetVersion(): 3399451b44SJordan Rupprecht did_iterate = True 3499451b44SJordan Rupprecht self.assertTrue(did_iterate, "Didn't get into the GetVersion loop") 35