Tests: massively improve the memory leak test performance (#4568)
* Tests: massively improve the memory leak test performance With the growing number of worlds, GC becomes the bottleneck and slows down the test. * Tests: fix typing in general/test_memory
This commit is contained in:
parent
41898ed640
commit
738c21c625
|
@ -1,5 +1,6 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
from BaseClasses import MultiWorld
|
||||||
from worlds.AutoWorld import AutoWorldRegister
|
from worlds.AutoWorld import AutoWorldRegister
|
||||||
from . import setup_solo_multiworld
|
from . import setup_solo_multiworld
|
||||||
|
|
||||||
|
@ -9,8 +10,12 @@ class TestWorldMemory(unittest.TestCase):
|
||||||
"""Tests that worlds don't leak references to MultiWorld or themselves with default options."""
|
"""Tests that worlds don't leak references to MultiWorld or themselves with default options."""
|
||||||
import gc
|
import gc
|
||||||
import weakref
|
import weakref
|
||||||
|
refs: dict[str, weakref.ReferenceType[MultiWorld]] = {}
|
||||||
for game_name, world_type in AutoWorldRegister.world_types.items():
|
for game_name, world_type in AutoWorldRegister.world_types.items():
|
||||||
with self.subTest("Game", game_name=game_name):
|
with self.subTest("Game creation", game_name=game_name):
|
||||||
weak = weakref.ref(setup_solo_multiworld(world_type))
|
weak = weakref.ref(setup_solo_multiworld(world_type))
|
||||||
gc.collect()
|
refs[game_name] = weak
|
||||||
|
gc.collect()
|
||||||
|
for game_name, weak in refs.items():
|
||||||
|
with self.subTest("Game cleanup", game_name=game_name):
|
||||||
self.assertFalse(weak(), "World leaked a reference")
|
self.assertFalse(weak(), "World leaked a reference")
|
||||||
|
|
Loading…
Reference in New Issue