diff options
Diffstat (limited to 'tests/threads')
-rw-r--r-- | tests/threads/t7172.nim | 6 | ||||
-rw-r--r-- | tests/threads/t8535.nim | 1 | ||||
-rw-r--r-- | tests/threads/threadex.nim | 1 | ||||
-rw-r--r-- | tests/threads/tjsthreads.nim | 4 | ||||
-rw-r--r-- | tests/threads/tmanyjoin.nim | 1 | ||||
-rw-r--r-- | tests/threads/tmembug.nim | 51 | ||||
-rw-r--r-- | tests/threads/tonthreadcreation.nim | 2 | ||||
-rw-r--r-- | tests/threads/tracy_allocator.nim | 1 | ||||
-rw-r--r-- | tests/threads/treusetvar.nim | 1 | ||||
-rw-r--r-- | tests/threads/tthreadvars.nim | 1 | ||||
-rw-r--r-- | tests/threads/ttryrecv.nim | 1 |
11 files changed, 66 insertions, 4 deletions
diff --git a/tests/threads/t7172.nim b/tests/threads/t7172.nim index 983765dba..87e89417b 100644 --- a/tests/threads/t7172.nim +++ b/tests/threads/t7172.nim @@ -1,15 +1,17 @@ discard """ + disabled: i386 output: ''' In doStuff() In initProcess() -initProcess() done TEST +initProcess() done Crashes before getting here! ''' joinable: false """ import std/os +import std/typedthreads proc whatever() {.thread, nimcall.} = echo("TEST") @@ -18,8 +20,8 @@ proc initProcess(): void = echo("In initProcess()") var thread: Thread[void] createThread(thread, whatever) - echo("initProcess() done") joinThread(thread) + echo("initProcess() done") proc doStuff(): void = echo("In doStuff()") diff --git a/tests/threads/t8535.nim b/tests/threads/t8535.nim index 1af11f9ad..a4296df11 100644 --- a/tests/threads/t8535.nim +++ b/tests/threads/t8535.nim @@ -1,4 +1,5 @@ discard """ + disabled: i386 output: '''0 hello''' """ diff --git a/tests/threads/threadex.nim b/tests/threads/threadex.nim index 50a1a4d34..90119aee7 100644 --- a/tests/threads/threadex.nim +++ b/tests/threads/threadex.nim @@ -1,4 +1,5 @@ discard """ + disabled: i386 outputsub: "Just a simple text for test" """ diff --git a/tests/threads/tjsthreads.nim b/tests/threads/tjsthreads.nim index 1085d9157..5122c9cd6 100644 --- a/tests/threads/tjsthreads.nim +++ b/tests/threads/tjsthreads.nim @@ -1,6 +1,6 @@ discard """ - targets: "c cpp js" - matrix: "--threads" + targets: "js" + matrix: "--threads:on" """ echo 123 diff --git a/tests/threads/tmanyjoin.nim b/tests/threads/tmanyjoin.nim index aca284965..af5bc460e 100644 --- a/tests/threads/tmanyjoin.nim +++ b/tests/threads/tmanyjoin.nim @@ -1,4 +1,5 @@ discard """ + disabled: i386 outputsub: "129" """ diff --git a/tests/threads/tmembug.nim b/tests/threads/tmembug.nim new file mode 100644 index 000000000..3618f0ecc --- /dev/null +++ b/tests/threads/tmembug.nim @@ -0,0 +1,51 @@ + +import std / [atomics, strutils, sequtils] + +type + BackendMessage* = object + field*: seq[int] + +var + chan1: Channel[BackendMessage] + chan2: Channel[BackendMessage] + +chan1.open() +chan2.open() + +proc routeMessage*(msg: BackendMessage) = + discard chan2.trySend(msg) + +var + recv: Thread[void] + stopToken: Atomic[bool] + +proc recvMsg() = + while not stopToken.load(moRelaxed): + let resp = chan1.tryRecv() + if resp.dataAvailable: + routeMessage(resp.msg) + echo "child consumes ", formatSize getOccupiedMem() + +createThread[void](recv, recvMsg) + +const MESSAGE_COUNT = 100 + +proc main() = + let msg: BackendMessage = BackendMessage(field: (0..500).toSeq()) + for j in 0..0: #100: + echo "New iteration" + + for _ in 1..MESSAGE_COUNT: + chan1.send(msg) + echo "After sending" + + var counter = 0 + while counter < MESSAGE_COUNT: + let resp = recv(chan2) + counter.inc + echo "After receiving ", formatSize getOccupiedMem() + + stopToken.store true, moRelaxed + joinThreads(recv) + +main() diff --git a/tests/threads/tonthreadcreation.nim b/tests/threads/tonthreadcreation.nim index f588a21c9..61529477d 100644 --- a/tests/threads/tonthreadcreation.nim +++ b/tests/threads/tonthreadcreation.nim @@ -1,4 +1,6 @@ discard """ + disabled: i386 + matrix: "--mm:refc; --mm:orc --deepcopy:on" output: '''some string here dying some string here''' """ diff --git a/tests/threads/tracy_allocator.nim b/tests/threads/tracy_allocator.nim index e8f0ec927..f3b39f4dc 100644 --- a/tests/threads/tracy_allocator.nim +++ b/tests/threads/tracy_allocator.nim @@ -1,4 +1,5 @@ discard """ + disabled: i386 output: '''true''' """ diff --git a/tests/threads/treusetvar.nim b/tests/threads/treusetvar.nim index 2b0017595..f0337801a 100644 --- a/tests/threads/treusetvar.nim +++ b/tests/threads/treusetvar.nim @@ -1,4 +1,5 @@ discard """ + disabled: i386 outputsub: "65" """ diff --git a/tests/threads/tthreadvars.nim b/tests/threads/tthreadvars.nim index 81aa2e5ec..745e3562c 100644 --- a/tests/threads/tthreadvars.nim +++ b/tests/threads/tthreadvars.nim @@ -1,4 +1,5 @@ discard """ +disabled: i386 output: ''' 10 1111 diff --git a/tests/threads/ttryrecv.nim b/tests/threads/ttryrecv.nim index cadf6c550..fcff94e78 100644 --- a/tests/threads/ttryrecv.nim +++ b/tests/threads/ttryrecv.nim @@ -1,4 +1,5 @@ discard """ + matrix: "--mm:refc" outputsub: "channel is empty" """ |