From 1af88102687e493cab40e62b0a2b8b7d42417ae6 Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Sat, 8 Jun 2019 13:34:02 +0800 Subject: improve test lib --- tests/test_utils/test_assert.lua | 66 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 tests/test_utils/test_assert.lua (limited to 'tests/test_utils/test_assert.lua') diff --git a/tests/test_utils/test_assert.lua b/tests/test_utils/test_assert.lua new file mode 100644 index 000000000..0fac45fe3 --- /dev/null +++ b/tests/test_utils/test_assert.lua @@ -0,0 +1,66 @@ + +import("print_error") +import("check") + +local test_assert = { print_error = print_error.main } + +function test_assert:require(value) + if not value then + self:print_error(vformat("require ${green}true${reset} but got ${red}%s${reset}", value), self.filename) + end +end + +function test_assert:require_not(value) + if value then + self:print_error(vformat("require ${green}false${reset} but got ${red}%s${reset}", value), self.filename) + end +end + +function test_assert:are_same(actual, expacted) + local r, ap, ep = check.same(actual, expacted) + if not r then + self:print_error(format("expacted: ${green}%s${reset}, actual ${red}%s${reset}", ep, ap), self.filename) + end +end + +function test_assert:are_not_same(actual, expacted) + local r, ap, ep = check.same(actual, expacted) + if r then + self:print_error(format("expacted: ${green}%s${reset}, actual ${red}%s${reset}", ep, ap), self.filename) + end +end + + +function test_assert:are_equal(actual, expacted) + local r, ap, ep = check.equal(actual, expacted) + if not r then + self:print_error(format("expacted: ${green}%s${reset}, actual ${red}%s${reset}", ep, ap), self.filename) + end +end + +function test_assert:are_not_equal(actual, expacted) + local r, ap, ep = check.equal(actual, expacted) + if r then + self:print_error(format("expacted: ${green}%s${reset}, actual ${red}%s${reset}", ep, ap), self.filename) + end +end + +function test_assert:will_raise(func, message_pattern) + try{ + func, + finally{ + function (ok, error) + if ok then + self:print_error("expected raise but finined successfully", func) + elseif message_pattern and not string.find(error, message_pattern) then + self:print_error(format("expected raise with message ${green}%s${reset} but got ${red}%s${reset}", message_pattern, error), func) + end + end + } + } +end + +function main(context) + table.join2(context, test_assert) + return context +end \ No newline at end of file -- cgit v1.3.1 From dca7c26579f7d7857810b58f95e177877f9933fa Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Sun, 9 Jun 2019 11:13:02 +0800 Subject: fix code style --- tests/runner.lua | 10 ++++++---- tests/test_utils/test_assert.lua | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'tests/test_utils/test_assert.lua') diff --git a/tests/runner.lua b/tests/runner.lua index 6ec74a35c..f84b453ba 100644 --- a/tests/runner.lua +++ b/tests/runner.lua @@ -36,7 +36,7 @@ function main(script) local old_dir = os.cd(root) -- get test functions - local data = import("test", { root_dir = root }) + local data = import("test", { anonymous = true }) if data.main then -- ignore everthing when we found a main function @@ -50,11 +50,13 @@ function main(script) if verbose then print(">> running %s ...", k) end context.func = v context.funcname = k - try{ + try + { function () v(context) end, - catch{ + catch + { function (error) if not error:find("aborting because of ") then print_error(error, v, "unhandled error") @@ -67,7 +69,7 @@ function main(script) succeed_count = succeed_count + 1 end end - if verbose then print(">> finined %d test method(s) ...", succeed_count) end + if verbose then print(">> finished %d test method(s) ...", succeed_count) end -- leave script directory os.cd(old_dir) diff --git a/tests/test_utils/test_assert.lua b/tests/test_utils/test_assert.lua index 0fac45fe3..f9af3c89a 100644 --- a/tests/test_utils/test_assert.lua +++ b/tests/test_utils/test_assert.lua @@ -51,7 +51,7 @@ function test_assert:will_raise(func, message_pattern) finally{ function (ok, error) if ok then - self:print_error("expected raise but finined successfully", func) + self:print_error("expected raise but finished successfully", func) elseif message_pattern and not string.find(error, message_pattern) then self:print_error(format("expected raise with message ${green}%s${reset} but got ${red}%s${reset}", message_pattern, error), func) end -- cgit v1.3.1 From 8049d92b3e9aef35e4f124e5ae361bdd1f5c5435 Mon Sep 17 00:00:00 2001 From: OpportunityLiu Date: Sun, 9 Jun 2019 11:46:22 +0800 Subject: fix --- tests/runner.lua | 2 +- tests/test_utils/test_assert.lua | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'tests/test_utils/test_assert.lua') diff --git a/tests/runner.lua b/tests/runner.lua index 177bb865a..b4325edc2 100644 --- a/tests/runner.lua +++ b/tests/runner.lua @@ -59,7 +59,7 @@ function main(script) { function (error) if not error:find("aborting because of ") then - print_error(error, v, "unhandled error") + context:print_error(error, v, "unhandled error") else raise(error) end diff --git a/tests/test_utils/test_assert.lua b/tests/test_utils/test_assert.lua index f9af3c89a..42a276d87 100644 --- a/tests/test_utils/test_assert.lua +++ b/tests/test_utils/test_assert.lua @@ -45,19 +45,23 @@ function test_assert:are_not_equal(actual, expacted) end end +test_assert._will_raise_stack = {} function test_assert:will_raise(func, message_pattern) + table.insert(self._will_raise_stack, 1, debug.getinfo(2).func) try{ func, finally{ function (ok, error) + local funcs = { func, unpack(self._will_raise_stack) } if ok then - self:print_error("expected raise but finished successfully", func) + self:print_error("expected raise but finished successfully", funcs) elseif message_pattern and not string.find(error, message_pattern) then - self:print_error(format("expected raise with message ${green}%s${reset} but got ${red}%s${reset}", message_pattern, error), func) + self:print_error(format("expected raise with message ${green}%s${reset} but got ${red}%s${reset}", message_pattern, error), funcs) end end } } + table.remove(self._will_raise_stack, 1) end function main(context) -- cgit v1.3.1