diff --git a/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm b/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm index 838d3cb31..54977b9a1 100644 --- a/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm +++ b/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm @@ -371,6 +371,26 @@ namespace { return; } }); + + // Test shadowed regions. + bool shadowed = false; + int logical = 0; + for(NSNumber *next in test[@"shadowed"]) { + while(logical < [next intValue]) { + const auto ®ion = + self->_memoryMap.regions[self->_memoryMap.region_map[logical]]; + const bool isShadowed = + IsShadowed(_memoryMap, region, (logical << 8)); + + XCTAssertEqual( + isShadowed, + shadowed, + @"Logical page %04x %@ subject to shadowing", logical, shadowed ? @"should be" : @"should not be"); + + ++logical; + } + shadowed ^= true; + } }]; }