summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/tests
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sanitizer_common/tests')
-rw-r--r--lib/sanitizer_common/tests/sanitizer_procmaps_test.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc b/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc
index ae7c5d531..4ac55c706 100644
--- a/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc
+++ b/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc
@@ -52,5 +52,26 @@ TEST(MemoryMappingLayout, DumpListOfModules) {
EXPECT_TRUE(found);
}
+TEST(MemoryMapping, LoadedModuleArchAndUUID) {
+ if (SANITIZER_MAC) {
+ MemoryMappingLayout memory_mapping(false);
+ const uptr kMaxModules = 100;
+ InternalMmapVector<LoadedModule> modules(kMaxModules);
+ memory_mapping.DumpListOfModules(&modules);
+ for (uptr i = 0; i < modules.size(); ++i) {
+ ModuleArch arch = modules[i].arch();
+ // Darwin unit tests are only run on i386/x86_64/x86_64h.
+ if (SANITIZER_WORDSIZE == 32) {
+ EXPECT_EQ(arch, kModuleArchI386);
+ } else if (SANITIZER_WORDSIZE == 64) {
+ EXPECT_TRUE(arch == kModuleArchX86_64 || arch == kModuleArchX86_64H);
+ }
+ const u8 *uuid = modules[i].uuid();
+ u8 null_uuid[kModuleUUIDSize] = {0};
+ EXPECT_NE(memcmp(null_uuid, uuid, kModuleUUIDSize), 0);
+ }
+ }
+}
+
} // namespace __sanitizer
#endif // !defined(_WIN32)