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