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