aboutsummaryrefslogtreecommitdiff
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
parent535e00626b7e93b32d5a99638d784ede66313cf6 (diff)
downloadlua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.gz
lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.bz2
lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.zip
test_interrupt.lua
-rw-r--r--appveyor.yml1
-rw-r--r--lakefile1
-rw-r--r--test/test_interrupt.lua58
3 files changed, 60 insertions, 0 deletions
diff --git a/appveyor.yml b/appveyor.yml
index db2206e..46a3235 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -72,6 +72,7 @@ test_script:
72 - lua test_threads_ex_opt_2.lua 72 - lua test_threads_ex_opt_2.lua
73 - lua test_threads_attr.lua 73 - lua test_threads_attr.lua
74 - lua test_integer.lua 74 - lua test_integer.lua
75 - lua test_interrupt.lua
75 # - lua test_register_llthreads.lua 76 # - lua test_register_llthreads.lua
76 77
77after_test: 78after_test:
diff --git a/lakefile b/lakefile
index fab4646..af9661e 100644
--- a/lakefile
+++ b/lakefile
@@ -44,6 +44,7 @@ target('test', install, function()
44 run_test('test_threads_ex_opt.lua') 44 run_test('test_threads_ex_opt.lua')
45 run_test('test_threads_ex_opt_2.lua') 45 run_test('test_threads_ex_opt_2.lua')
46 run_test('test_threads_attr.lua') 46 run_test('test_threads_attr.lua')
47 run_test('test_interrupt.lua')
47 48
48 49
49 if not test_summary() then 50 if not test_summary() then
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