aboutsummaryrefslogtreecommitdiff
path: root/tests/units
diff options
context:
space:
mode:
Diffstat (limited to 'tests/units')
-rw-r--r--tests/units/thread-buffer.lua21
-rw-r--r--tests/units/thread-local-return.lua13
-rw-r--r--tests/units/thread-locals.lua12
-rw-r--r--tests/units/thread-nested.lua22
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