def test_dyld_library(self): for k in ( "DYLD_LIBRARY_PATH", "DYLD_FALLBACK_LIBRARY_PATH", "DYLD_IMAGE_SUFFIX", ): if k in os.environ: del os.environ[k] orig = os.path.exists try: os.path.exists = lambda fn: l.append(fn) l = [] self.assertRaises( ValueError, dyld.dyld_library, "/usr/lib/libSystem.dylib", "libXSystem.dylib", ) self.assertEqual( l, [ "/usr/lib/libSystem.dylib", os.path.expanduser("~/lib/libXSystem.dylib"), "/usr/local/lib/libXSystem.dylib", "/lib/libXSystem.dylib", "/usr/lib/libXSystem.dylib", ], ) os.environ["DYLD_IMAGE_SUFFIX"] = "_debug" l = [] self.assertRaises( ValueError, dyld.dyld_library, "/usr/lib/libSystem.dylib", "libXSystem.dylib", ) self.assertEqual( l, [ "/usr/lib/libSystem_debug.dylib", "/usr/lib/libSystem.dylib", os.path.expanduser("~/lib/libXSystem_debug.dylib"), os.path.expanduser("~/lib/libXSystem.dylib"), "/usr/local/lib/libXSystem_debug.dylib", "/usr/local/lib/libXSystem.dylib", "/lib/libXSystem_debug.dylib", "/lib/libXSystem.dylib", "/usr/lib/libXSystem_debug.dylib", "/usr/lib/libXSystem.dylib", ], ) del os.environ["DYLD_IMAGE_SUFFIX"] os.environ["DYLD_LIBRARY_PATH"] = "/slib:/usr/slib" l = [] self.assertRaises( ValueError, dyld.dyld_library, "/usr/lib/libSystem.dylib", "libXSystem.dylib", ) self.assertEqual( l, [ "/slib/libXSystem.dylib", "/usr/slib/libXSystem.dylib", "/usr/lib/libSystem.dylib", os.path.expanduser("~/lib/libXSystem.dylib"), "/usr/local/lib/libXSystem.dylib", "/lib/libXSystem.dylib", "/usr/lib/libXSystem.dylib", ], ) del os.environ["DYLD_LIBRARY_PATH"] os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = "/slib:/usr/slib" l = [] self.assertRaises( ValueError, dyld.dyld_library, "/usr/lib/libSystem.dylib", "libXSystem.dylib", ) self.assertEqual( l, [ "/usr/lib/libSystem.dylib", "/slib/libXSystem.dylib", "/usr/slib/libXSystem.dylib", ], ) del os.environ["DYLD_FALLBACK_LIBRARY_PATH"] os.environ["DYLD_LIBRARY_PATH"] = "/lib2:/lib3" os.environ["DYLD_FALLBACK_LIBRARY_PATH"] = "/lib4:/lib5" os.environ["DYLD_IMAGE_SUFFIX"] = "_profile" l = [] self.assertRaises( ValueError, dyld.dyld_library, "/usr/lib/libSystem.dylib", "libXSystem.dylib", ) self.assertEqual( l, [ "/lib2/libXSystem_profile.dylib", "/lib2/libXSystem.dylib", "/lib3/libXSystem_profile.dylib", "/lib3/libXSystem.dylib", "/usr/lib/libSystem_profile.dylib", "/usr/lib/libSystem.dylib", "/lib4/libXSystem_profile.dylib", "/lib4/libXSystem.dylib", "/lib5/libXSystem_profile.dylib", "/lib5/libXSystem.dylib", ], ) del os.environ["DYLD_LIBRARY_PATH"] del os.environ["DYLD_FALLBACK_LIBRARY_PATH"] del os.environ["DYLD_IMAGE_SUFFIX"] finally: os.path.exists = orig self.assertEqual( dyld.dyld_library("/usr/lib/libSystem.dylib", "libXSystem.dylib"), "/usr/lib/libSystem.dylib", ) # When the 'command line tools for xcode' are not installed there is no debug version of libsystem in the system wide # library directory. In that case we look in the SDK instead. if os.path.exists("/usr/lib/libSystem_debug.dylib"): os.environ["DYLD_IMAGE_SUFFIX"] = "_debug" self.assertEqual( dyld.dyld_library("/usr/lib/libSystem.dylib", "libSystem.dylib"), "/usr/lib/libSystem_debug.dylib", ) else: p = subprocess.check_output(["xcrun", "--show-sdk-path"]).strip() os.environ["DYLD_LIBRARY_PATH"] = os.path.join( (p.decode("utf-8") if sys.version_info[0] == 3 else p), "usr", "lib" ) os.environ["DYLD_IMAGE_SUFFIX"] = "_debug" # The OSX 10.11 SDK no longer contains ".dylib" files, which makes the test useless when running up-to-date # tools on OSX 10.10 or later. if os_level_key(os_release()) < os_level_key("10.10"): self.assertEqual( dyld.dyld_library("/usr/lib/libSystem.dylib", "libSystem.dylib"), os.path.join( os.environ["DYLD_LIBRARY_PATH"], "libSystem_debug.dylib" ), )
def test_dyld_library(self): for k in ('DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_IMAGE_SUFFIX'): if k in os.environ: del os.environ[k] orig = os.path.exists try: os.path.exists = lambda fn: l.append(fn) l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) os.environ['DYLD_IMAGE_SUFFIX'] = '_debug' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem_debug.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem_debug.dylib'), os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem_debug.dylib', '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem_debug.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem_debug.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_IMAGE_SUFFIX'] os.environ['DYLD_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', ]) del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] os.environ['DYLD_LIBRARY_PATH'] = "/lib2:/lib3" os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = "/lib4:/lib5" os.environ['DYLD_IMAGE_SUFFIX'] = "_profile" l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/lib2/libXSystem_profile.dylib', '/lib2/libXSystem.dylib', '/lib3/libXSystem_profile.dylib', '/lib3/libXSystem.dylib', '/usr/lib/libSystem_profile.dylib', '/usr/lib/libSystem.dylib', '/lib4/libXSystem_profile.dylib', '/lib4/libXSystem.dylib', '/lib5/libXSystem_profile.dylib', '/lib5/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] del os.environ['DYLD_IMAGE_SUFFIX'] finally: os.path.exists = orig self.assertEqual(dyld.dyld_library('/usr/lib/libSystem.dylib', 'libXSystem.dylib'), '/usr/lib/libSystem.dylib') os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual(dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), '/usr/lib/libSystem_debug.dylib')
def test_dyld_library(self): for k in ('DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_IMAGE_SUFFIX'): if k in os.environ: del os.environ[k] orig = os.path.exists try: os.path.exists = lambda fn: l.append(fn) l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) os.environ['DYLD_IMAGE_SUFFIX'] = '_debug' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem_debug.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem_debug.dylib'), os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem_debug.dylib', '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem_debug.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem_debug.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_IMAGE_SUFFIX'] os.environ['DYLD_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', ]) del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] os.environ['DYLD_LIBRARY_PATH'] = "/lib2:/lib3" os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = "/lib4:/lib5" os.environ['DYLD_IMAGE_SUFFIX'] = "_profile" l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/lib2/libXSystem_profile.dylib', '/lib2/libXSystem.dylib', '/lib3/libXSystem_profile.dylib', '/lib3/libXSystem.dylib', '/usr/lib/libSystem_profile.dylib', '/usr/lib/libSystem.dylib', '/lib4/libXSystem_profile.dylib', '/lib4/libXSystem.dylib', '/lib5/libXSystem_profile.dylib', '/lib5/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] del os.environ['DYLD_IMAGE_SUFFIX'] finally: os.path.exists = orig self.assertEqual(dyld.dyld_library('/usr/lib/libSystem.dylib', 'libXSystem.dylib'), '/usr/lib/libSystem.dylib') # When the 'command line tools for xcode' are not installed there is no debug version of libsystem in the system wide # library directory. In that case we look in the SDK instead. if os.path.exists('/usr/lib/libSystem_debug.dylib'): os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual(dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), '/usr/lib/libSystem_debug.dylib') else: p = subprocess.check_output(['xcrun', '--show-sdk-path']).strip() os.environ['DYLD_LIBRARY_PATH'] = os.path.join( (p.decode('utf-8') if sys.version_info[0] == 3 else p), 'usr', 'lib') os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual(dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), os.path.join(os.environ['DYLD_LIBRARY_PATH'], 'libSystem_debug.dylib'))
def test_dyld_library(self): for k in ('DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_IMAGE_SUFFIX'): if k in os.environ: del os.environ[k] orig = os.path.exists try: os.path.exists = lambda fn: l.append(fn) l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) os.environ['DYLD_IMAGE_SUFFIX'] = '_debug' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem_debug.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem_debug.dylib'), os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem_debug.dylib', '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem_debug.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem_debug.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_IMAGE_SUFFIX'] os.environ['DYLD_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', ]) del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] os.environ['DYLD_LIBRARY_PATH'] = "/lib2:/lib3" os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = "/lib4:/lib5" os.environ['DYLD_IMAGE_SUFFIX'] = "_profile" l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/lib2/libXSystem_profile.dylib', '/lib2/libXSystem.dylib', '/lib3/libXSystem_profile.dylib', '/lib3/libXSystem.dylib', '/usr/lib/libSystem_profile.dylib', '/usr/lib/libSystem.dylib', '/lib4/libXSystem_profile.dylib', '/lib4/libXSystem.dylib', '/lib5/libXSystem_profile.dylib', '/lib5/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] del os.environ['DYLD_IMAGE_SUFFIX'] finally: os.path.exists = orig self.assertEqual( dyld.dyld_library('/usr/lib/libSystem.dylib', 'libXSystem.dylib'), '/usr/lib/libSystem.dylib') os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual( dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), '/usr/lib/libSystem_debug.dylib')
def test_dyld_library(self): for k in ('DYLD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH', 'DYLD_IMAGE_SUFFIX'): if k in os.environ: del os.environ[k] orig = os.path.exists try: os.path.exists = lambda fn: l.append(fn) l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) os.environ['DYLD_IMAGE_SUFFIX'] = '_debug' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem_debug.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem_debug.dylib'), os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem_debug.dylib', '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem_debug.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem_debug.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_IMAGE_SUFFIX'] os.environ['DYLD_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', '/usr/lib/libSystem.dylib', os.path.expanduser('~/lib/libXSystem.dylib'), '/usr/local/lib/libXSystem.dylib', '/lib/libXSystem.dylib', '/usr/lib/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = '/slib:/usr/slib' l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/usr/lib/libSystem.dylib', '/slib/libXSystem.dylib', '/usr/slib/libXSystem.dylib', ]) del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] os.environ['DYLD_LIBRARY_PATH'] = "/lib2:/lib3" os.environ['DYLD_FALLBACK_LIBRARY_PATH'] = "/lib4:/lib5" os.environ['DYLD_IMAGE_SUFFIX'] = "_profile" l = [] self.assertRaises(ValueError, dyld.dyld_library, '/usr/lib/libSystem.dylib', 'libXSystem.dylib') self.assertEqual(l, [ '/lib2/libXSystem_profile.dylib', '/lib2/libXSystem.dylib', '/lib3/libXSystem_profile.dylib', '/lib3/libXSystem.dylib', '/usr/lib/libSystem_profile.dylib', '/usr/lib/libSystem.dylib', '/lib4/libXSystem_profile.dylib', '/lib4/libXSystem.dylib', '/lib5/libXSystem_profile.dylib', '/lib5/libXSystem.dylib', ]) del os.environ['DYLD_LIBRARY_PATH'] del os.environ['DYLD_FALLBACK_LIBRARY_PATH'] del os.environ['DYLD_IMAGE_SUFFIX'] finally: os.path.exists = orig self.assertEqual( dyld.dyld_library('/usr/lib/libSystem.dylib', 'libXSystem.dylib'), '/usr/lib/libSystem.dylib') # When the 'command line tools for xcode' are not installed there is no debug version of libsystem in the system wide # library directory. In that case we look in the SDK instead. if os.path.exists('/usr/lib/libSystem_debug.dylib'): os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual( dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), '/usr/lib/libSystem_debug.dylib') else: p = subprocess.check_output(['xcrun', '--show-sdk-path']).strip() os.environ['DYLD_LIBRARY_PATH'] = os.path.join( (p.decode('utf-8') if sys.version_info[0] == 3 else p), 'usr', 'lib') os.environ['DYLD_IMAGE_SUFFIX'] = "_debug" self.assertEqual( dyld.dyld_library('/usr/lib/libSystem.dylib', 'libSystem.dylib'), os.path.join(os.environ['DYLD_LIBRARY_PATH'], 'libSystem_debug.dylib'))