summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/luv/tests/test-thread.lua
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/luv/tests/test-thread.lua')
-rw-r--r--3rdparty/luv/tests/test-thread.lua47
1 files changed, 47 insertions, 0 deletions
diff --git a/3rdparty/luv/tests/test-thread.lua b/3rdparty/luv/tests/test-thread.lua
new file mode 100644
index 00000000000..838b51e4fff
--- /dev/null
+++ b/3rdparty/luv/tests/test-thread.lua
@@ -0,0 +1,47 @@
+return require('lib/tap')(function (test)
+
+ test("test thread create", function(print, p, expect, uv)
+ local delay = 1000
+ local before = os.time()
+ local thread = uv.new_thread(function(delay)
+ require('luv').sleep(delay)
+ end,delay)
+ uv.thread_join(thread)
+ local elapsed = (os.time() - before) * 1000
+ p({
+ delay = delay,
+ elapsed = elapsed
+ })
+ assert(elapsed >= delay, "elapsed should be at least delay ")
+ end)
+
+ test("test thread create with arguments", function(print, p, expect, uv)
+ local before = os.time()
+ local args = {500, 'string', nil, false, 5, "helloworld"}
+ local unpack = unpack or table.unpack
+ uv.new_thread(function(num,s,null,bool,five,hw)
+ assert(type(num) == "number")
+ assert(type(s) == "string")
+ assert(null == nil)
+ assert(bool == false)
+ assert(five == 5)
+ assert(hw == 'helloworld')
+ require('luv').sleep(1000)
+ end, unpack(args)):join()
+ local elapsed = (os.time() - before) * 1000
+ assert(elapsed >= 1000, "elapsed should be at least delay ")
+ end)
+
+ test("test thread sleep msecs in main thread", function(print, p, expect, uv)
+ local delay = 1000
+ local before = os.time()
+ uv.sleep(delay)
+ local elapsed = (os.time() - before) * 1000
+ p({
+ delay = delay,
+ elapsed = elapsed
+ })
+ assert(elapsed >= delay, "elapsed should be at least delay ")
+ end)
+
+end)