Mercurial > games > semicongine
comparison tests/test_storage.nim @ 988:46778940c1d7
tmp: move stuff to notebook
author | sam <sam@basx.dev> |
---|---|
date | Sun, 07 Apr 2024 20:12:52 +0700 |
parents | 49d73ed5a1ec |
children | 3e0116b5d2ed |
comparison
equal
deleted
inserted
replaced
987:49d73ed5a1ec | 988:46778940c1d7 |
---|---|
1 import std/os | 1 import std/os |
2 import std/strformat | 2 import std/strformat |
3 | 3 |
4 import semicongine | 4 import semicongine |
5 | 5 |
6 #[ | |
6 proc testSimple(storage: StorageType) = | 7 proc testSimple(storage: StorageType) = |
7 const TEST_VALUE = 42 | 8 const TEST_VALUE = 42 |
8 const KEY = "test" | 9 const KEY = "test" |
9 | 10 |
10 # get default | 11 # get default |
41 let key = &"key-{i}" | 42 let key = &"key-{i}" |
42 var p = store(storage, key, i) | 43 var p = store(storage, key, i) |
43 p.awaitStored() | 44 p.awaitStored() |
44 var p1 = load[int](storage, key) | 45 var p1 = load[int](storage, key) |
45 assert p1.awaitResult() == i | 46 assert p1.awaitResult() == i |
47 ]# | |
46 | 48 |
47 proc concurrentStressTest(storage: StorageType) = | 49 proc concurrentStressTest(storage: StorageType) = |
48 var storeFutures: seq[StoreFuture[int]] | 50 var storeFutures: seq[StoreFuture[int]] |
49 | 51 |
50 for i in 1 .. 10000: | 52 for i in 1 .. 10000: |
51 let key = &"key-{i}" | 53 let key = &"key-{i}" |
52 echo key | 54 echo key |
53 storeFutures.add store(storage, key, i) | 55 store() |
56 # storeFutures.add store(storage, key, i) | |
54 | 57 |
55 for i in 1 .. 10000: | 58 for i in 1 .. 10000: |
56 echo i | 59 echo i |
57 let key = &"key-{i}" | 60 let key = &"key-{i}" |
58 storeFutures[i - 1].awaitStored() | 61 storeFutures[i - 1].awaitStored() |
59 var p1 = load[int](storage, key) | 62 var p1 = load[int](storage, key) |
60 assert p1.awaitResult() == i | 63 assert p1.awaitResult() == i |
61 | 64 |
65 #[ | |
62 proc main() = | 66 proc main() = |
63 SystemStorage.purge() | 67 SystemStorage.purge() |
64 echo "SystemStorage: Testing simple store/load" | 68 echo "SystemStorage: Testing simple store/load" |
65 SystemStorage.testSimple() | 69 SystemStorage.testSimple() |
66 echo "SystemStorage: Testing store/load with busy wait" | 70 echo "SystemStorage: Testing store/load with busy wait" |
79 UserStorage.purge() | 83 UserStorage.purge() |
80 | 84 |
81 # TODO: fails currently, but is likely not too important | 85 # TODO: fails currently, but is likely not too important |
82 # echo "Stress test with 10'000 saves/loads and a little concurrency" | 86 # echo "Stress test with 10'000 saves/loads and a little concurrency" |
83 # SystemStorage.concurrentStressTest() | 87 # SystemStorage.concurrentStressTest() |
88 ]# | |
84 | 89 |
85 when isMainModule: | 90 when isMainModule: |
86 main() | 91 echo "Stress test with 10'000 saves/loads and a little concurrency" |
92 SystemStorage.concurrentStressTest() | |
93 # main() |