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() |