aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2007-12-24 07:04:40 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2007-12-24 07:04:40 -0500
commit09628cded4b1d5a47b82d0b13eaf1789adb35e91 (patch)
tree1045ee516a198867777a6f267f9adfdc2c674321
parent66d4b88e39b710b836bb40d34abefc5ade0a3462 (diff)
downloadluairc-master.tar.gz
luairc-master.zip
add signal handling to the luabot testHEADmaster
-rw-r--r--test/luabot.lua10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/luabot.lua b/test/luabot.lua
index 4563c49..456e118 100644
--- a/test/luabot.lua
+++ b/test/luabot.lua
@@ -1,5 +1,6 @@
#!/usr/bin/env lua
+local sig = require 'signal'
local irc = require 'irc'
irc.DEBUG = true
@@ -49,10 +50,17 @@ local commands = {
return
else
setfenv(fn, envs[from])
+ sig.signal("ALRM", error)
+ sig.alarm(5)
local result = {pcall(fn)}
+ sig.alarm(0)
+ sig.signal("ALRM", "default")
local success = table.remove(result, 1)
if not success then
- irc.say(target, from .. ": Error running code: " .. code .. result[1]:match(".*(:.-)$"))
+ local err = result[1]:match(".*: (.-)$")
+ if err == "ALRM" then err = "timed out" end
+ irc.say(target, from .. ": Error running code: " .. code ..
+ ": " .. err)
else
if result[1] == nil then
irc.say(target, from .. ": nil")