Add test skipping to disable arch specific tests conditionally
This commit is contained in:
parent
1f7b9e3922
commit
a82e876f93
8 changed files with 130 additions and 79 deletions
|
|
@ -1,14 +1,20 @@
|
|||
from __future__ import print_function, division
|
||||
import sys
|
||||
import platform
|
||||
import unittest
|
||||
import contextlib
|
||||
import types
|
||||
from llvm.tests import tests, isolated_tests # re-expose symbol
|
||||
|
||||
IS_PY3K = sys.version_info[0] >= 3
|
||||
BITS = tuple.__itemsize__ * 8
|
||||
OS = sys.platform
|
||||
MACHINE = platform.machine()
|
||||
INTEL_CPUS = 'i386', 'x86_64'
|
||||
|
||||
if sys.version_info[:2] <= (2, 6):
|
||||
# create custom TestCase
|
||||
class TestCase(unittest.TestCase):
|
||||
class _TestCase(unittest.TestCase):
|
||||
def assertIn(self, item, container):
|
||||
self.assertTrue(item in container)
|
||||
|
||||
|
|
@ -31,4 +37,42 @@ if sys.version_info[:2] <= (2, 6):
|
|||
raise self.failureException("Did not raise %s" % exc)
|
||||
|
||||
else:
|
||||
TestCase = unittest.TestCase
|
||||
_TestCase = unittest.TestCase
|
||||
|
||||
class TestCase(_TestCase):
|
||||
def assertClose(self, got, expect):
|
||||
rel = abs(got - expect) / expect
|
||||
self.assertTrue(rel < 1e-6, 'relative error = %f' % rel)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Tests decorators
|
||||
|
||||
def _skipped(name, msg):
|
||||
def _test(self):
|
||||
if hasattr(unittest, 'SkipTest'):
|
||||
raise unittest.SkipTest(msg)
|
||||
else:
|
||||
print('skipped %s' % name, msg)
|
||||
return _test
|
||||
|
||||
def skip_if(cond, msg=''):
|
||||
def skipper(test):
|
||||
if not isinstance(test, types.FunctionType):
|
||||
repl = None
|
||||
else:
|
||||
repl = _skipped(test, msg)
|
||||
return repl if cond else test
|
||||
return skipper
|
||||
|
||||
skip_if_not_64bits = skip_if(BITS != 64, msg='skipped not 64-bit')
|
||||
|
||||
skip_if_not_32bits = skip_if(BITS != 32, msg='skipped not 32-bits')
|
||||
|
||||
skip_if_win32 = skip_if(OS.startswith('win32'), msg='skipped win32')
|
||||
|
||||
skip_if_not_win32 = skip_if(not OS.startswith('win32'),
|
||||
msg='skipped not win32')
|
||||
skip_if_not_intel_cpu = skip_if(MACHINE not in INTEL_CPUS,
|
||||
msg='skipped not Intel CPU')
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue