Mercurial > games > semicongine
diff tests/test_storage.nim @ 1464:3e3192241ea7
add: API for world/level storage
author | sam <sam@basx.dev> |
---|---|
date | Mon, 24 Mar 2025 22:57:47 +0700 |
parents | 676fc13685a9 |
children | 7b2ec9f3d0f6 |
line wrap: on
line diff
--- a/tests/test_storage.nim Mon Mar 24 00:15:08 2025 +0700 +++ b/tests/test_storage.nim Mon Mar 24 22:57:47 2025 +0700 @@ -14,6 +14,28 @@ store(storage, KEY, TEST_VALUE) assert storage.load(KEY, 0) == TEST_VALUE +proc testWorldAPI() = + assert listWorlds().len == 0 + + "testWorld".storeWorld(42) + assert listWorlds() == @["testWorld"] + assert loadWorld[int]("testWorld") == 42 + + "testWorld".storeWorld("hello") + assert listWorlds() == @["testWorld"] + assert loadWorld[string]("testWorld") == "hello" + + "earth".storeWorld("hello") + assert "earth" in listWorlds() + assert "testWorld" in listWorlds() + assert loadWorld[string]("earth") == "hello" + + "earth".purgeWorld() + assert listWorlds() == @["testWorld"] + + "testWorld".purgeWorld() + assert listWorlds().len == 0 + proc stressTest(storage: StorageType) = for i in 1 .. 10000: let key = &"key-{i}" @@ -30,6 +52,9 @@ echo "UserStorage: Testing simple store/load" UserStorage.testSimple() + echo "Testing world-storage API" + testWorldAPI() + echo "Stress test with 10'000 saves/loads" SystemStorage.stressTest()