問題
_offset_main_arena 等のいくつかのメソッドはキャッシュされている。
テストを以下のように書くと、1度目の内部の main_arena 内で _offset_main_arena がキャッシュされる。
def test_main_arena(self):
self.elf.base = 0
self.assertEqual(self.elf.main_arena(), 0x21ac80)
self.elf.base = BASE
self.assertEqual(self.elf.main_arena(), BASE + 0x21ac80)
したがって、ベースアドレスの変更に依存して _offset_main_arena の計算結果が変わる(というバグがある)場合、2度目の呼び出しはテストとして不適切である。
解決案
キャッシュを無効化する機能を用意し、有効・無効両方でテストする。
問題
_offset_main_arena等のいくつかのメソッドはキャッシュされている。テストを以下のように書くと、1度目の内部の
main_arena内で_offset_main_arenaがキャッシュされる。したがって、ベースアドレスの変更に依存して
_offset_main_arenaの計算結果が変わる(というバグがある)場合、2度目の呼び出しはテストとして不適切である。解決案
キャッシュを無効化する機能を用意し、有効・無効両方でテストする。