From 2f8f3871b98d0a431ca90372f318df67e5b7d01f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Fri, 3 Mar 2017 11:09:37 +0100 Subject: test/lua: add infrastructure for busted based unit tests --- lua/visrc.lua | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'lua/visrc.lua') diff --git a/lua/visrc.lua b/lua/visrc.lua index af40306..16aa8b9 100644 --- a/lua/visrc.lua +++ b/lua/visrc.lua @@ -1,13 +1,28 @@ -dofile("utils.lua") +package.path = '../../lua/?.lua;'..package.path +dofile("../../lua/vis.lua") -vis.events = {} -vis.events.win_open = function(win) +-- redirect output to stdout, stderr is used by the vis UI +io.stderr = io.stdout + +-- make sure we gracefully terminate, cleanup terminal state etc. +os.exit = function(status) + vis:exit(status) +end + +vis.events.subscribe(vis.events.WIN_OPEN, function(win) -- test.in file passed to vis local in_file = win.file.name if in_file then -- use the corresponding test.lua file lua_file = string.gsub(in_file, '%.in$', '.lua') - dofile(lua_file) - vis:command('qall!') + local ok, msg = pcall(dofile, lua_file) + if not ok then + if type(msg) == 'string' then + print(msg) + end + vis:exit(1) + return + end end -end + vis:exit(0) +end) -- cgit v1.2.3