aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDiego Nehab <diego.nehab@gmail.com>2016-02-23 14:30:35 -0300
committerDiego Nehab <diego.nehab@gmail.com>2016-02-23 14:30:35 -0300
commit9ffd96724da09352abe99c8525bbccb6bc34cb48 (patch)
tree8d55377133839458dba7ff55b494146ab667e31d /test
parentbf13ec7fd4fb05666964cf629e9b10591356ff67 (diff)
parent7cab8a5006da807d83f427217e2158079bb78145 (diff)
downloadluasocket-9ffd96724da09352abe99c8525bbccb6bc34cb48.tar.gz
luasocket-9ffd96724da09352abe99c8525bbccb6bc34cb48.tar.bz2
luasocket-9ffd96724da09352abe99c8525bbccb6bc34cb48.zip
Merge pull request #162 from siffiejoe/exception-meta
Support table errors in LuaSockets LTN13 C implementation.
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")