summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-17 16:19:19 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2012-07-17 16:19:19 +0100
commit6423be495b1d6ca90ffaf2b9aab9913885504c15 (patch)
tree3ef54197bf970274ff704d98c08c74d00abd991b
parent2b31b3f1342d591cdf69860f633914e950d764f5 (diff)
downloadlace-6423be495b1d6ca90ffaf2b9aab9913885504c15.tar.gz
TEST: Test for basic error normalisation at runtime
-rw-r--r--test/test-lace.engine-runtimeerror.rules5
-rw-r--r--test/test-lace.engine.lua21
2 files changed, 26 insertions, 0 deletions
diff --git a/test/test-lace.engine-runtimeerror.rules b/test/test-lace.engine-runtimeerror.rules
new file mode 100644
index 0000000..391a515
--- /dev/null
+++ b/test/test-lace.engine-runtimeerror.rules
@@ -0,0 +1,5 @@
+-- The following causes an error at runtime
+
+define will_error error
+
+allow "yay" will_error
diff --git a/test/test-lace.engine.lua b/test/test-lace.engine.lua
index a547280..8cdd3ea 100644
--- a/test/test-lace.engine.lua
+++ b/test/test-lace.engine.lua
@@ -126,6 +126,17 @@ local comp_context = {
args = { key, value },
}
end,
+ error = function(ctx, err)
+ return {
+ fn = function(ectx)
+ if ectx.error then
+ return nil, { msg = "woah", words = {1} }
+ end
+ return false
+ end,
+ args = {},
+ }
+ end,
},
},
}
@@ -178,6 +189,16 @@ function suite.test_complex_ruleset()
end
end
+function suite.test_runtime_error()
+ local ruleset, msg = lace.compiler.compile(comp_context, "runtimeerror")
+ assert(type(ruleset) == "table", "Ruleset did not compile")
+ local ectx = {error=true}
+ local result, msg = lace.engine.run(ruleset, ectx)
+ assert(result == false, "Did not error out")
+ assert(type(msg) == "string", "Generated a non-string error")
+ assert(msg:find("woah"), "Did not generate the right error: " .. msg)
+end
+
local count_ok = 0
for _, testname in ipairs(testnames) do
-- print("Run: " .. testname)