summaryrefslogtreecommitdiffstats
path: root/debuginfo-tests/dexter/dex/utils/UnitTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'debuginfo-tests/dexter/dex/utils/UnitTests.py')
-rw-r--r--debuginfo-tests/dexter/dex/utils/UnitTests.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/debuginfo-tests/dexter/dex/utils/UnitTests.py b/debuginfo-tests/dexter/dex/utils/UnitTests.py
new file mode 100644
index 00000000000..5a8a0a6aeb9
--- /dev/null
+++ b/debuginfo-tests/dexter/dex/utils/UnitTests.py
@@ -0,0 +1,62 @@
+# DExTer : Debugging Experience Tester
+# ~~~~~~ ~ ~~ ~ ~~
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+"""Unit test harness."""
+
+from fnmatch import fnmatch
+import os
+import unittest
+
+from io import StringIO
+
+from dex.utils import is_native_windows, has_pywin32
+from dex.utils import PreserveAutoColors, PrettyOutput
+from dex.utils import Timer
+
+
+class DexTestLoader(unittest.TestLoader):
+ def _match_path(self, path, full_path, pattern):
+ """Don't try to import platform-specific modules for the wrong platform
+ during test discovery.
+ """
+ d = os.path.basename(os.path.dirname(full_path))
+ if is_native_windows():
+ if d == 'posix':
+ return False
+ if d == 'windows':
+ return has_pywin32()
+ else:
+ if d == 'windows':
+ return False
+ return fnmatch(path, pattern)
+
+
+def unit_tests_ok(context):
+ unittest.TestCase.maxDiff = None # remove size limit from diff output.
+
+ with Timer('unit tests'):
+ suite = DexTestLoader().discover(
+ context.root_directory, pattern='*.py')
+ stream = StringIO()
+ result = unittest.TextTestRunner(verbosity=2, stream=stream).run(suite)
+
+ ok = result.wasSuccessful()
+ if not ok or context.options.unittest == 'show-all':
+ with PreserveAutoColors(context.o):
+ context.o.auto_reds.extend(
+ [r'FAIL(ED|\:)', r'\.\.\.\s(FAIL|ERROR)$'])
+ context.o.auto_greens.extend([r'^OK$', r'\.\.\.\sok$'])
+ context.o.auto_blues.extend([r'^Ran \d+ test'])
+ context.o.default('\n')
+ for line in stream.getvalue().splitlines(True):
+ context.o.auto(line, stream=PrettyOutput.stderr)
+
+ return ok
+
+
+class TestUnitTests(unittest.TestCase):
+ def test_sanity(self):
+ self.assertEqual(1, 1)
OpenPOWER on IntegriCloud