[lldb] Make TestModuleLoadedNotifys work with dyld from the shared cache
Make TestModuleLoadedNotifys work with a dyld from the expanded shared
cache in the DeviceSupport directory. In that case the module path is:
~/Library/Developer/Xcode/iOS DeviceSupport/<...>/Symbols/usr/lib/dyld
instead of just:
/usr/lib/dyld
This makes the test pass when running against an embedded Darwin device.
GitOrigin-RevId: 2b61b770df813539b38b620efcae8fd3d11faad2
diff --git a/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py b/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py
index 06169b0..7f26e5e 100644
--- a/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py
+++ b/test/API/functionalities/target-new-solib-notifications/TestModuleLoadedNotifys.py
@@ -82,8 +82,10 @@
module = lldb.SBTarget.GetModuleAtIndexFromEvent(i, event)
# On macOS Ventura and later, dyld and the main binary
# will be loaded again when dyld moves itself into the
- # shared cache.
- if module.file.fullpath not in ['/usr/lib/dyld', exe]:
+ # shared cache. Use the basename so this also works
+ # when reading dyld from the expanded shared cache.
+ exe_basename = lldb.SBFileSpec(exe).basename
+ if module.file.basename not in ['dyld', exe_basename]:
self.assertTrue(module not in already_loaded_modules, '{} is already loaded'.format(module))
already_loaded_modules.append(module)
if self.TraceOn():