aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3/run-ptest
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/python/python3/run-ptest')
-rw-r--r--meta/recipes-devtools/python/python3/run-ptest56
1 files changed, 56 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3/run-ptest b/meta/recipes-devtools/python/python3/run-ptest
new file mode 100644
index 0000000000..bd3ea1107c
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/run-ptest
@@ -0,0 +1,56 @@
+#! /usr/bin/env python3
+
+from test import support
+from test import regrtest
+import unittest
+import sys
+
+# Define a test result class which outputs results in the desired format.
+class ptestResult(unittest.TestResult):
+ def __init__(self, runner):
+ super(ptestResult, self).__init__()
+ self.runner = runner
+
+ def addError(self, test, err):
+ super(ptestResult, self).addError(test, err)
+ self.runner.write("ERROR: %s: %s\n" % (str(test), str(err[1])))
+
+ def addSuccess(self, test):
+ super(ptestResult, self).addSuccess(test)
+ self.runner.write("PASS: %s\n" % str(test))
+
+ def addFailure(self, test, err):
+ super(ptestResult, self).addFailure(test, err)
+ self.runner.write("FAIL: %s: %s\n" % (str(test), str(err[1])))
+
+ def addSkip(self, test, reason):
+ super(ptestResult, self).addSkip(test, reason)
+ self.runner.write("SKIP: %s: %s\n" % (str(test), str(reason)))
+
+ def addExpectedFailure(self, test, err):
+ super(ptestResult, self).addExpectedFailure(test, err)
+ self.runner.write("XFAIL: %s\n" % (str(test)))
+
+ def addUnexpectedSuccess(self, test):
+ super(ptestResult, self).addUnexpectedSuccess(test)
+ self.runner.write("XPASS: %s\n" % str(test))
+
+# Define a test runner which uses the above output class.
+class ptestRunner:
+ def __init__(self, stream=sys.stderr):
+ self.stream = stream
+
+ def write(self, message):
+ self.stream.write(message)
+
+ def run(self, test):
+ result = ptestResult(self)
+ test(result)
+ return result
+
+# Replace the test runner in python's standard library 'test.support'.
+support.BasicTestRunner = ptestRunner
+
+# Run the python regression test suite - the replacement test runner will be
+# used.
+regrtest.main()