diff options
Diffstat (limited to 'tests/units')
| -rw-r--r-- | tests/units/thread-buffer.lua | 21 | ||||
| -rw-r--r-- | tests/units/thread-local-return.lua | 13 | ||||
| -rw-r--r-- | tests/units/thread-locals.lua | 12 | ||||
| -rw-r--r-- | tests/units/thread-nested.lua | 22 |
4 files changed, 68 insertions, 0 deletions
diff --git a/tests/units/thread-buffer.lua b/tests/units/thread-buffer.lua new file mode 100644 index 0000000..e83ad4a --- /dev/null +++ b/tests/units/thread-buffer.lua @@ -0,0 +1,21 @@ +local h1 = llby.thread.buffer(llby.crypto.md5()) +local h2 = llby.thread.buffer(llby.crypto.sha256()) +local h3 = llby.thread.buffer(llby.crypto.sha1()) + +local tthread = llby.thread.async(function(res) + h1:set(h1:get():update("mrrp")) + h2:set(h2:get():update("mrrp")) + + h3:mod(function(M) + return M:update("mrrp") + end) + + res(h1:get(), h2:get(), h3:get()) +end) + +local h4, h5, h6 = tthread:await() + +return h1:get():final() == h4:final() and h2:get():final() == h5:final() and h3:get():final() == h6:final() + and h4:final() == "be40416e1491ae73fee43a0cf01132fa" + and h5:final() == "a4ba2864e6dcc988c6df73cdfbee6d308e39174dd86dddc4e328c4f2df1c48e9" + and h6:final() == "7bf0ffbd68005c35faa12f5ba6df54288969220c" diff --git a/tests/units/thread-local-return.lua b/tests/units/thread-local-return.lua new file mode 100644 index 0000000..cc6c417 --- /dev/null +++ b/tests/units/thread-local-return.lua @@ -0,0 +1,13 @@ +local a = 224 + +local thread = llby.thread.async(function(res) + local b = 948 + + res(function(c) + return a * b * c + end) +end) + +local fun = thread:await() + +return fun(448) == 224 * 948 * 448 diff --git a/tests/units/thread-locals.lua b/tests/units/thread-locals.lua new file mode 100644 index 0000000..6f328f2 --- /dev/null +++ b/tests/units/thread-locals.lua @@ -0,0 +1,12 @@ +local lvar = 224400 +_G.gvar = 33220 + +function lfun(a, b) + return (a + lvar) * (b + gvar) +end + +local thread = llby.thread.async(function(res) + res(lfun(lvar, gvar)) +end) + +return thread:await() == lfun(lvar, gvar) diff --git a/tests/units/thread-nested.lua b/tests/units/thread-nested.lua new file mode 100644 index 0000000..e0227c6 --- /dev/null +++ b/tests/units/thread-nested.lua @@ -0,0 +1,22 @@ +local mutex = llby.thread.mutex() +mutex:lock() + +local t1 = llby.thread.async(function(res) + + local t2 = llby.thread.async(function(res) + + local t3 = llby.thread.async(function(res) + mutex:lock() + + res(254) + end) + + + res(t3) + end) + + res(t2) +end) + +mutex:unlock() +return t1:await():await():await() == 254 |
