aboutsummaryrefslogtreecommitdiff
path: root/test/excepttest.lua
diff options
context:
space:
mode:
authorCaleb Maclennan <caleb@alerque.com>2023-11-10 09:12:04 +0300
committerCaleb Maclennan <caleb@alerque.com>2023-11-10 09:12:04 +0300
commit5c4fc93d5f4137bf4c22ddf1a048c907a4a26727 (patch)
treea9a68e1f6a9c3bfe2b64fa1c3a4098865b7d3b5d /test/excepttest.lua
parentccef3bc4e2aa6ee5b997a80aabb58f4ff0b0e98f (diff)
parent43a97b7f0053313b43906371dbdc226271e6c8ab (diff)
downloadluasocket-hjelmeland-patch-1.tar.gz
luasocket-hjelmeland-patch-1.tar.bz2
luasocket-hjelmeland-patch-1.zip
Merge branch 'master' into hjelmeland-patch-1hjelmeland-patch-1
Diffstat (limited to 'test/excepttest.lua')
-rw-r--r--test/excepttest.lua32
1 files changed, 28 insertions, 4 deletions
diff --git a/test/excepttest.lua b/test/excepttest.lua
index ce9f197..80c9cb8 100644
--- a/test/excepttest.lua
+++ b/test/excepttest.lua
@@ -1,6 +1,30 @@
1local socket = require("socket") 1local socket = require("socket")
2try = socket.newtry(function() 2
3 print("finalized!!!") 3local finalizer_called
4
5local func = socket.protect(function(err, ...)
6 local try = socket.newtry(function()
7 finalizer_called = true
8 end)
9
10 if err then
11 return error(err, 0)
12 else
13 return try(...)
14 end
4end) 15end)
5try = socket.protect(try) 16
6print(try(nil, "it works")) 17local ret1, ret2, ret3 = func(false, 1, 2, 3)
18assert(not finalizer_called, "unexpected finalizer call")
19assert(ret1 == 1 and ret2 == 2 and ret3 == 3, "incorrect return values")
20
21ret1, ret2, ret3 = func(false, false, "error message")
22assert(finalizer_called, "finalizer not called")
23assert(ret1 == nil and ret2 == "error message" and ret3 == nil, "incorrect return values")
24
25local err = {key = "value"}
26ret1, ret2 = pcall(func, err)
27assert(not ret1, "error not rethrown")
28assert(ret2 == err, "incorrect error rethrown")
29
30print("OK")