mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
72 lines
2.0 KiB
Python
72 lines
2.0 KiB
Python
|
import os
|
||
|
|
||
|
# Test results.
|
||
|
|
||
|
class TestResult:
|
||
|
def __init__(self, name, isFailure):
|
||
|
self.name = name
|
||
|
self.isFailure = isFailure
|
||
|
|
||
|
PASS = TestResult('PASS', False)
|
||
|
XFAIL = TestResult('XFAIL', False)
|
||
|
FAIL = TestResult('FAIL', True)
|
||
|
XPASS = TestResult('XPASS', True)
|
||
|
UNRESOLVED = TestResult('UNRESOLVED', True)
|
||
|
UNSUPPORTED = TestResult('UNSUPPORTED', False)
|
||
|
|
||
|
# Test classes.
|
||
|
|
||
|
class TestFormat:
|
||
|
"""TestFormat - Test information provider."""
|
||
|
|
||
|
def __init__(self, name):
|
||
|
self.name = name
|
||
|
|
||
|
class TestSuite:
|
||
|
"""TestSuite - Information on a group of tests.
|
||
|
|
||
|
A test suite groups together a set of logically related tests.
|
||
|
"""
|
||
|
|
||
|
def __init__(self, name, source_root, exec_root, config):
|
||
|
self.name = name
|
||
|
self.source_root = source_root
|
||
|
self.exec_root = exec_root
|
||
|
# The test suite configuration.
|
||
|
self.config = config
|
||
|
|
||
|
def getSourcePath(self, components):
|
||
|
return os.path.join(self.source_root, *components)
|
||
|
|
||
|
def getExecPath(self, components):
|
||
|
return os.path.join(self.exec_root, *components)
|
||
|
|
||
|
class Test:
|
||
|
"""Test - Information on a single test instance."""
|
||
|
|
||
|
def __init__(self, suite, path_in_suite, config):
|
||
|
self.suite = suite
|
||
|
self.path_in_suite = path_in_suite
|
||
|
self.config = config
|
||
|
# The test result code, once complete.
|
||
|
self.result = None
|
||
|
# Any additional output from the test, once complete.
|
||
|
self.output = None
|
||
|
# The wall time to execute this test, if timing and once complete.
|
||
|
self.elapsed = None
|
||
|
|
||
|
def setResult(self, result, output, elapsed):
|
||
|
assert self.result is None, "Test result already set!"
|
||
|
self.result = result
|
||
|
self.output = output
|
||
|
self.elapsed = elapsed
|
||
|
|
||
|
def getFullName(self):
|
||
|
return self.suite.config.name + '::' + '/'.join(self.path_in_suite)
|
||
|
|
||
|
def getSourcePath(self):
|
||
|
return self.suite.getSourcePath(self.path_in_suite)
|
||
|
|
||
|
def getExecPath(self):
|
||
|
return self.suite.getExecPath(self.path_in_suite)
|