From 2ab1b5490ba78c0566da6151ca40bb58e40df1f4 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sun, 13 May 2012 23:12:10 +0100 Subject: Complex ruleset test with defines, includes and conditional allow/deny --- .../test-lace.engine-complexruleset-allowsecond.rules | 1 + .../test-lace.engine-complexruleset-definitions.rules | 3 +++ test/test-lace.engine-complexruleset.rules | 19 +++++++++++++++++++ test/test-lace.engine.lua | 12 ++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 test/test-lace.engine-complexruleset-allowsecond.rules create mode 100644 test/test-lace.engine-complexruleset-definitions.rules create mode 100644 test/test-lace.engine-complexruleset.rules diff --git a/test/test-lace.engine-complexruleset-allowsecond.rules b/test/test-lace.engine-complexruleset-allowsecond.rules new file mode 100644 index 0000000..688ae69 --- /dev/null +++ b/test/test-lace.engine-complexruleset-allowsecond.rules @@ -0,0 +1 @@ +allow two diff --git a/test/test-lace.engine-complexruleset-definitions.rules b/test/test-lace.engine-complexruleset-definitions.rules new file mode 100644 index 0000000..7feea7b --- /dev/null +++ b/test/test-lace.engine-complexruleset-definitions.rules @@ -0,0 +1,3 @@ +define first equal state one +define second equal state two +define third equal state three diff --git a/test/test-lace.engine-complexruleset.rules b/test/test-lace.engine-complexruleset.rules new file mode 100644 index 0000000..ad3c449 --- /dev/null +++ b/test/test-lace.engine-complexruleset.rules @@ -0,0 +1,19 @@ +// This is a complex ruleset intended to use +# All of the features of lace +-- So that we can be sure it all works + +// Error cases are covered in individual tests +-- So the purpose of these tests is to compile +# and to work + +default deny "four" + +include complexruleset-definitions + +allow one first + +include complexruleset-allowsecond second + +deny three third + +-- Expect four denial, despite last action being a deny diff --git a/test/test-lace.engine.lua b/test/test-lace.engine.lua index 7273a2b..18c21a0 100644 --- a/test/test-lace.engine.lua +++ b/test/test-lace.engine.lua @@ -168,6 +168,18 @@ function suite.test_allow_with_define_used_works_and_passes() assert(msg == "because", "Because") end +function suite.test_complex_ruleset() + local ruleset, msg = lace.compiler.compile(comp_context, "complexruleset") + assert(type(ruleset) == "table", "Ruleset did not compile") + for _, s in ipairs{"one","two","three","four"} do + local expect = (s == "one" or s == "two") and "allow" or "deny" + local ectx = {state=s} + local result, msg = lace.engine.run(ruleset, ectx) + assert(result == expect, "Expected " .. expect) + assert(msg == s, "Reason expected " .. s) + end +end + local count_ok = 0 for _, testname in ipairs(testnames) do print("Run: " .. testname) -- cgit v1.2.1