[lldb] Update TestModuleLoadedNotifys.py for macOS Ventura

On macOS Ventura and later, dyld and the main binary will be loaded
again when dyld moves itself into the shared cache. Update the test
accordingly.

Differential revision: https://reviews.llvm.org/D127331
This commit is contained in:
Jonas Devlieghere 2022-06-08 14:37:00 -07:00
parent 0f02dd34f2
commit c9b55eb807
No known key found for this signature in database
GPG Key ID: 49CC0BD90FDEED4D
1 changed files with 10 additions and 8 deletions

View File

@ -80,14 +80,16 @@ class ModuleLoadedNotifysTestCase(TestBase):
total_modules_added_events += 1
total_solibs_added += solib_count
added_files = []
i = 0
while i < solib_count:
for i in range (solib_count):
module = lldb.SBTarget.GetModuleAtIndexFromEvent(i, event)
self.assertTrue(module not in already_loaded_modules)
# 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]:
self.assertTrue(module not in already_loaded_modules, '{} is already loaded'.format(module))
already_loaded_modules.append(module)
if self.TraceOn():
added_files.append(module.GetFileSpec().GetFilename())
i = i + 1
if self.TraceOn():
# print all of the binaries that have been added
print("Loaded files: %s" % (', '.join(added_files)))
@ -105,11 +107,11 @@ class ModuleLoadedNotifysTestCase(TestBase):
removed_files.append(module.GetFileSpec().GetFilename())
i = i + 1
print("Unloaded files: %s" % (', '.join(removed_files)))
# This is testing that we get back a small number of events with the loaded
# binaries in batches. Check that we got back more than 1 solib per event.
# In practice on Darwin today, we get back two events for a do-nothing c
# This is testing that we get back a small number of events with the loaded
# binaries in batches. Check that we got back more than 1 solib per event.
# In practice on Darwin today, we get back two events for a do-nothing c
# program: a.out and dyld, and then all the rest of the system libraries.
# On Linux we get events for ld.so, [vdso], the binary and then all libraries.