Skip to content

Commit 8bcacd0

Browse files
committed
skip thread test in mac
1 parent c3a4c60 commit 8bcacd0

File tree

1 file changed

+46
-43
lines changed

1 file changed

+46
-43
lines changed

tests/test_thread.nim

Lines changed: 46 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import std/[tables, random, os, times, strformat]
1+
import std/[unittest, tables, random, os, times, strformat]
22

33
import easy_sqlite3
44
import easy_sqlite3/memfs
@@ -37,53 +37,56 @@ proc connectDatabase(): Database =
3737
else:
3838
initDatabase("file:memdb1?mode=memory&cache=shared", {so_readwrite, so_create, so_uri})
3939

40+
test "threads":
41+
if defined(macosx):
42+
skip()
43+
else:
44+
var gdb = connectDatabase()
45+
gdb.create_table()
46+
gdb.exec "VACUUM"
4047

41-
var gdb = connectDatabase()
42-
gdb.create_table()
43-
gdb.exec "VACUUM"
44-
45-
const COUNT = 1000000
46-
const GROUP = 100
48+
const COUNT = 1000000
49+
const GROUP = 100
4750

48-
proc worker_fn() {.thread.} =
49-
echo "thread start"
50-
var tdb = connectDatabase()
51-
var r = initRand(42)
52-
for _ in 0..<(COUNT div GROUP):
53-
retry:
54-
tdb.transactionImmediate:
55-
for _ in 0..<GROUP:
56-
let val = r.rand(1048576)
57-
# increase the chance of collision
58-
if val < 1024:
59-
sleep(1)
60-
tdb.insert_data(val)
51+
proc worker_fn() {.thread.} =
52+
echo "thread start"
53+
var tdb = connectDatabase()
54+
var r = initRand(42)
55+
for _ in 0..<(COUNT div GROUP):
6156
retry:
62-
commit()
57+
tdb.transactionImmediate:
58+
for _ in 0..<GROUP:
59+
let val = r.rand(1048576)
60+
# increase the chance of collision
61+
if val < 1024:
62+
sleep(1)
63+
tdb.insert_data(val)
64+
retry:
65+
commit()
6366

64-
var worker: Thread[void]
65-
createThread(worker, worker_fn)
67+
var worker: Thread[void]
68+
createThread(worker, worker_fn)
69+
70+
let init = cpuTime()
71+
var prev = init
72+
while true:
73+
var c: int
74+
retry:
75+
c = gdb.count_items().count
76+
let curr = cpuTime()
77+
let diff = curr - prev - 0.2
78+
if diff > 0:
79+
when useMemFs:
80+
echo fmt"{curr - init:>6.1f}s: {c:>7}"
81+
else:
82+
echo fmt"{curr - init:>6.1f}s: {c:>7} failures: {failedCount}"
83+
prev = curr - diff
84+
if c == COUNT:
85+
break
6686

67-
let init = cpuTime()
68-
var prev = init
69-
while true:
70-
var c: int
71-
retry:
72-
c = gdb.count_items().count
73-
let curr = cpuTime()
74-
let diff = curr - prev - 0.2
75-
if diff > 0:
7687
when useMemFs:
77-
echo fmt"{curr - init:>6.1f}s: {c:>7}"
88+
echo fmt"time: {cpuTime() - init:>9.4f}s"
7889
else:
79-
echo fmt"{curr - init:>6.1f}s: {c:>7} failures: {failedCount}"
80-
prev = curr - diff
81-
if c == COUNT:
82-
break
83-
84-
when useMemFs:
85-
echo fmt"time: {cpuTime() - init:>9.4f}s"
86-
else:
87-
echo fmt"time: {cpuTime() - init:>9.4f}s failures: {failedCount}"
90+
echo fmt"time: {cpuTime() - init:>9.4f}s failures: {failedCount}"
8891

89-
worker.joinThread()
92+
worker.joinThread()

0 commit comments

Comments
 (0)