diff options
author | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-07-17 16:19:19 +0100 |
---|---|---|
committer | Daniel Silverstone <dsilvers@digital-scurf.org> | 2012-07-17 16:19:19 +0100 |
commit | 6423be495b1d6ca90ffaf2b9aab9913885504c15 (patch) | |
tree | 3ef54197bf970274ff704d98c08c74d00abd991b | |
parent | 2b31b3f1342d591cdf69860f633914e950d764f5 (diff) | |
download | lace-6423be495b1d6ca90ffaf2b9aab9913885504c15.tar.gz |
TEST: Test for basic error normalisation at runtime
-rw-r--r-- | test/test-lace.engine-runtimeerror.rules | 5 | ||||
-rw-r--r-- | test/test-lace.engine.lua | 21 |
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) |