diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2013-07-29 15:22:07 -0400 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-08-21 11:00:18 +1000 |
commit | 1152052b3e27e3252f6685a369fce8a426710015 (patch) | |
tree | c7e31e108faa3cf8b464cd04fbe2123abe76b6e8 /test/pacman/tap.py | |
parent | 429b956fb2d21309cae0560d6d98225969447737 (diff) |
convert pactest to TAP output
Each test produces a single TAP result with the rules run in a sub-test.
This reduces output when run under automake and makes it possible to
continue setting expectfailure at the test level rather than per-rule.
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'test/pacman/tap.py')
-rw-r--r-- | test/pacman/tap.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/test/pacman/tap.py b/test/pacman/tap.py new file mode 100644 index 00000000..c70a5350 --- /dev/null +++ b/test/pacman/tap.py @@ -0,0 +1,64 @@ +# Copyright (c) 2013 Pacman Development Team <pacman-dev@archlinux.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +todo = None +count = 0 +level = 0 +failed = 0 + +def _output(msg): + print("%s%s" % (" "*level, msg)) + +def ok(ok, description=""): + global count, failed + count += 1 + if not ok: + failed += 1 + directive = " # TODO" if todo else "" + _output("%s %d - %s%s" % ("ok" if ok else "not ok", count, + description, directive)) + +def plan(count): + _output("1..%d" % (count)) + +def diag(msg): + _output("# %s" % (msg)) + +def bail(reason=""): + _output("Bail out! %s" % (reason)) + +def subtest(func, description=""): + global todo, count, level, failed + + save_todo = todo + save_count = count + save_level = level + save_failed = failed + + todo = None + count = 0 + level += 1 + failed = 0 + + func() + + subtest_ok = not failed + + todo = save_todo + count = save_count + level = save_level + failed = save_failed + + ok(subtest_ok, description) |