aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormpeterv <mpeterval@gmail.com>2016-01-25 15:14:34 +0300
committerPhilipp Janda <siffiejoe@gmx.net>2016-02-21 12:09:58 +0100
commitfb713cdedb16f8eb67523f17b0d66262b4e9dca1 (patch)
treec816a4b421ec45dbfa4952389d8acfd791e8f113 /test
parentd075e7322f0ac1de505b025fd3004b8d4123cc56 (diff)
downloadluasocket-fb713cdedb16f8eb67523f17b0d66262b4e9dca1.tar.gz
luasocket-fb713cdedb16f8eb67523f17b0d66262b4e9dca1.tar.bz2
luasocket-fb713cdedb16f8eb67523f17b0d66262b4e9dca1.zip
Add more tests for socket.try/protect
Diffstat (limited to 'test')
-rw-r--r--test/excepttest.lua33
1 files changed, 29 insertions, 4 deletions
diff --git a/test/excepttest.lua b/test/excepttest.lua
index ce9f197..6904545 100644
--- a/test/excepttest.lua
+++ b/test/excepttest.lua
@@ -1,6 +1,31 @@
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 error("ignored")
9 end)
10
11 if err then
12 return error(err, 0)
13 else
14 return try(...)
15 end
4end) 16end)
5try = socket.protect(try) 17
6print(try(nil, "it works")) 18local ret1, ret2, ret3 = func(false, 1, 2, 3)
19assert(not finalizer_called, "unexpected finalizer call")
20assert(ret1 == 1 and ret2 == 2 and ret3 == 3, "incorrect return values")
21
22ret1, ret2, ret3 = func(false, false, "error message")
23assert(finalizer_called, "finalizer not called")
24assert(ret1 == nil and ret2 == "error message" and ret3 == nil, "incorrect return values")
25
26local err = {key = "value"}
27ret1, ret2 = pcall(func, err)
28assert(not ret1, "error not rethrown")
29assert(ret2 == err, "incorrect error rethrown")
30
31print("OK")