diff options
author | osch <oliver at luced de> | 2018-08-22 09:29:19 +0200 |
---|---|---|
committer | osch <oliver at luced de> | 2018-08-22 09:29:19 +0200 |
commit | e09400b21d004b174d1a6e07ed4a98c5648a2ab8 (patch) | |
tree | a4ec344669286395730be6d0f60e065e595009a0 | |
parent | 535e00626b7e93b32d5a99638d784ede66313cf6 (diff) | |
download | lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.gz lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.tar.bz2 lua-llthreads2-e09400b21d004b174d1a6e07ed4a98c5648a2ab8.zip |
test_interrupt.lua
-rw-r--r-- | appveyor.yml | 1 | ||||
-rw-r--r-- | lakefile | 1 | ||||
-rw-r--r-- | test/test_interrupt.lua | 58 |
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 | ||
77 | after_test: | 78 | after_test: |
@@ -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 @@ | |||
1 | local llthreads = require"llthreads" | ||
2 | local utils = require "utils" | ||
3 | local sleep = utils.sleep | ||
4 | |||
5 | local include = utils.thread_init .. [[ | ||
6 | local llthreads = require"llthreads" | ||
7 | local sleep = require "utils".sleep | ||
8 | ]] | ||
9 | |||
10 | do | ||
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!") | ||
23 | end | ||
24 | |||
25 | |||
26 | do | ||
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!") | ||
41 | end | ||
42 | |||
43 | do | ||
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!") | ||
57 | end | ||
58 | |||