From ff0f488c97fe8b554b909a0057cebc4c860eac8f Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 20 Oct 2021 13:40:34 +0800 Subject: +luasocket src --- ThirdParty/luasocket/test/excepttest.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 ThirdParty/luasocket/test/excepttest.lua (limited to 'ThirdParty/luasocket/test/excepttest.lua') diff --git a/ThirdParty/luasocket/test/excepttest.lua b/ThirdParty/luasocket/test/excepttest.lua new file mode 100644 index 0000000..80c9cb8 --- /dev/null +++ b/ThirdParty/luasocket/test/excepttest.lua @@ -0,0 +1,30 @@ +local socket = require("socket") + +local finalizer_called + +local func = socket.protect(function(err, ...) + local try = socket.newtry(function() + finalizer_called = true + end) + + if err then + return error(err, 0) + else + return try(...) + end +end) + +local ret1, ret2, ret3 = func(false, 1, 2, 3) +assert(not finalizer_called, "unexpected finalizer call") +assert(ret1 == 1 and ret2 == 2 and ret3 == 3, "incorrect return values") + +ret1, ret2, ret3 = func(false, false, "error message") +assert(finalizer_called, "finalizer not called") +assert(ret1 == nil and ret2 == "error message" and ret3 == nil, "incorrect return values") + +local err = {key = "value"} +ret1, ret2 = pcall(func, err) +assert(not ret1, "error not rethrown") +assert(ret2 == err, "incorrect error rethrown") + +print("OK") -- cgit v1.1-26-g67d0