Skip to content

キャッシュのテストに関する問題 #23

@ptr-yudai

Description

@ptr-yudai

問題

_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度目の呼び出しはテストとして不適切である。

解決案

キャッシュを無効化する機能を用意し、有効・無効両方でテストする。

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions