aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorosch <oliver at luced de>2018-08-22 09:29:19 +0200
committerosch <oliver at luced de>2018-08-22 09:29:19 +0200
commite09400b21d004b174d1a6e07ed4a98c5648a2ab8 (patch)
treea4ec344669286395730be6d0f60e065e595009a0 /test
parent535e00626b7e93b32d5a99638d784ede66313cf6 (diff)
downloadlua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.gz
lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.bz2
lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.zip
test_interrupt.lua
Diffstat (limited to 'test')
-rw-r--r--test/test_interrupt.lua58
1 files changed, 58 insertions, 0 deletions
diff --git a/test/test_interrupt.lua b/test/test_interrupt.lua
new file mode 100644
index 0000000..6a7a255
--- /dev/null
+++ b/test/test_interrupt.lua
@@ -0,0 +1,58 @@
1local llthreads = require"llthreads"
2local utils = require "utils"
3local sleep = utils.sleep
4
5local include = utils.thread_init .. [[
6local llthreads = require"llthreads"
7local sleep = require "utils".sleep
8]]
9
10do
11 local thread = llthreads.new(include .. [[
12 for i = 1, 10 do sleep(1) end
13 ]])
14
15 thread:start()
16 sleep(1)
17 thread:interrupt()
18
19 local ok, err = thread:join()
20 print("thread1:join(): ", ok, err)
21 assert(ok == false and err:match("interrupted!"), "thread1 result")
22 print("--- Done interrupt1!")
23end
24
25
26do
27 local thread = llthreads.new(include .. [[
28 local ok, err = pcall(function() for i = 1, 10 do sleep(1) end end)
29 print("thread2:", ok, err)
30 assert(ok == false and err:match("interrupted!"), "interrupt2 result")
31 ]])
32
33 thread:start()
34 sleep(1)
35 thread:interrupt()
36
37 local ok, err = thread:join()
38 print("thread2:join(): ", ok, err)
39 assert(ok, "thread2 result")
40 print("--- Done interrupt2!")
41end
42
43do
44 local thread = llthreads.new(include .. [[
45 local ok, err = pcall(function() for i = 1, 10 do sleep(1) end end)
46 print("thread3:", ok, err)
47 ]])
48
49 thread:start()
50 sleep(1)
51 thread:interrupt(true)
52
53 local ok, err = thread:join()
54 print("thread3:join(): ", ok, err)
55 assert(ok == false and err:match("interrupted!"), "thread3 result")
56 print("--- Done interrupt3!")
57end
58