summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2012-05-13 19:15:01 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2012-05-13 19:15:01 +0100
commit2b6aa416742956d2a7924682ceff3827c439adb0 (patch)
tree596d7e29d4d984342434d5e3ba287c8e449233f2
parenta32726cb09861d1853375172e1b02ab8133b74da (diff)
downloadlace-2b6aa416742956d2a7924682ceff3827c439adb0.tar.gz
Top level module tests. Can also act as an example.
-rw-r--r--Makefile2
-rw-r--r--test/test-lace.lua49
2 files changed, 50 insertions, 1 deletions
diff --git a/Makefile b/Makefile
index 980a5f3..5a90199 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
all: test
-TEST_MODULES := lace.lex lace.compiler
+TEST_MODULES := lace lace.lex lace.compiler
LUA := LUA_PATH="$(shell pwd)/lib/?.lua;$(shell pwd)/extras/luacov/src/?.lua;$(HOME)/dev-bzr/luxio/?.lua;;" LUA_CPATH="$(HOME)/dev-bzr/luxio/?.so;;" lua5.1
diff --git a/test/test-lace.lua b/test/test-lace.lua
new file mode 100644
index 0000000..d4f458f
--- /dev/null
+++ b/test/test-lace.lua
@@ -0,0 +1,49 @@
+-- test/test-lace.lua
+--
+-- Lua Access Control Engine -- Tests for the core Lace module
+--
+-- Copyright 2012 Daniel Silverstone <dsilvers@digital-scurf.org>
+--
+-- For Licence terms, see COPYING
+--
+
+-- Step one, start coverage
+
+local luacov = require 'luacov'
+
+local lace = require 'lace'
+local lex = require 'lace.lex'
+local compiler = require 'lace.compiler'
+
+local testnames = {}
+
+local function add_test(suite, name, value)
+ rawset(suite, name, value)
+ testnames[#testnames+1] = name
+end
+
+local suite = setmetatable({}, {__newindex = add_test})
+
+function suite.lex_passed()
+ assert(lace.lex == lex, "Lace's lex entry is not lace.lex")
+end
+
+function suite.compiler_passed()
+ assert(lace.compiler == compiler, "Lace's compiler entry is not lace.compiler")
+end
+
+local count_ok = 0
+for _, testname in ipairs(testnames) do
+ print("Run: " .. testname)
+ local ok, err = xpcall(suite[testname], debug.traceback)
+ if not ok then
+ print(err)
+ print()
+ else
+ count_ok = count_ok + 1
+ end
+end
+
+print("Lace: " .. tostring(count_ok) .. "/" .. tostring(#testnames) .. " OK")
+
+os.exit(count_ok == #testnames and 0 or 1)