summaryrefslogtreecommitdiff
path: root/test/pacman/tap.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/pacman/tap.py')
-rw-r--r--test/pacman/tap.py64
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)