Mercurial > games > semicongine
comparison tests/test_storage.nim @ 986:5db7721395fc
add: final (for now) storage API
| author | sam <sam@basx.dev> |
|---|---|
| date | Sun, 07 Apr 2024 00:35:45 +0700 |
| parents | |
| children | 49d73ed5a1ec |
comparison
equal
deleted
inserted
replaced
| 985:0c02ca5de8e6 | 986:5db7721395fc |
|---|---|
| 1 import std/os | |
| 2 | |
| 3 import semicongine | |
| 4 | |
| 5 proc testSimple(storage: StorageType) = | |
| 6 const TEST_VALUE = 42 | |
| 7 const KEY = "test" | |
| 8 | |
| 9 # get default | |
| 10 var promise1 = load[int](storage, KEY) | |
| 11 assert promise1.awaitResult() == default(type(TEST_VALUE)) | |
| 12 | |
| 13 # save and load custom | |
| 14 var promise2 = store(storage, KEY, TEST_VALUE) | |
| 15 promise2.awaitStored() | |
| 16 promise1 = load[int](storage, KEY) | |
| 17 assert promise1.awaitResult() == TEST_VALUE | |
| 18 | |
| 19 proc testBusyWait(storage: StorageType) = | |
| 20 const TEST_VALUE = "43" | |
| 21 const KEY = "test2" | |
| 22 | |
| 23 # get default | |
| 24 var promise1 = load[string](storage, KEY) | |
| 25 while not promise1.hasResult(): | |
| 26 sleep(1) | |
| 27 assert promise1.getResult() == default(type(TEST_VALUE)) | |
| 28 | |
| 29 # save and load custom | |
| 30 var promise2 = store(storage, KEY, TEST_VALUE) | |
| 31 while not promise2.isStored(): | |
| 32 sleep(1) | |
| 33 promise1 = load[string](storage, KEY) | |
| 34 while not promise1.hasResult(): | |
| 35 sleep(1) | |
| 36 assert promise1.awaitResult() == TEST_VALUE | |
| 37 | |
| 38 proc main() = | |
| 39 echo "SystemStorage: Testing simple store/load" | |
| 40 SystemStorage.testSimple() | |
| 41 echo "SystemStorage: Testing store/load with busy wait" | |
| 42 SystemStorage.testBusyWait() | |
| 43 | |
| 44 UserStorage.purge() | |
| 45 echo "UserStorage: Testing simple store/load" | |
| 46 UserStorage.testSimple() | |
| 47 echo "UserStorage: Testing store/load with busy wait" | |
| 48 UserStorage.testBusyWait() | |
| 49 UserStorage.purge() | |
| 50 | |
| 51 when isMainModule: | |
| 52 main() |
