map_entry1 = memory_map.MapEntry(4096, 8191, 'rw--', '/foo', 0)
map_entry2 = memory_map.MapEntry(65536, 81919, 'rw--', '/bar', 4096)
- # Test the de-offset logic.
- self.assertEqual(map_entry1.GetRelativeOffset(4096), 0)
- self.assertEqual(map_entry1.GetRelativeOffset(4100), 4)
- self.assertEqual(map_entry2.GetRelativeOffset(65536), 4096)
+ # Test the file de-offset logic.
+ self.assertEqual(map_entry1.GetRelativeFileOffset(4096), 0)
+ self.assertEqual(map_entry1.GetRelativeFileOffset(4100), 4)
+ self.assertEqual(map_entry2.GetRelativeFileOffset(65536), 4096)
+
+ # Test the mm de-offset logic (address to relative page_index + offset).
+ self.assertEqual(map_entry1.GetRelativeMMOffset(4096), (0, 0))
+ self.assertEqual(map_entry1.GetRelativeMMOffset(4097), (0, 1))
+ self.assertEqual(map_entry1.GetRelativeMMOffset(8191), (0, 4095))
+ self.assertEqual(map_entry2.GetRelativeMMOffset(69632), (1, 0))
+ self.assertEqual(map_entry2.GetRelativeMMOffset(69633), (1, 1))
+ self.assertEqual(map_entry2.GetRelativeMMOffset(81919), (3, 4095))
# Test the page-resident logic.
map_entry2.resident_pages = [5] # 5 -> 101b.