diff options
author | Unknown <afd@afd-THINK> | 2012-07-10 10:21:22 +0100 |
---|---|---|
committer | Unknown <afd@afd-THINK> | 2012-07-10 10:21:22 +0100 |
commit | a569b0f631ef4e1cbac018ace216c4f7ea6f4d86 (patch) | |
tree | bc32bb3605d38fc8077cf5129d8d251cca0a93fd /Test/lit/lit/Test.py | |
parent | 8ef2d352b954540b756bb17d4c900a862509e094 (diff) | |
parent | 45ae88a214229a537f7f155c5f58eea7efd94519 (diff) |
Merge
Diffstat (limited to 'Test/lit/lit/Test.py')
-rw-r--r-- | Test/lit/lit/Test.py | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/Test/lit/lit/Test.py b/Test/lit/lit/Test.py new file mode 100644 index 00000000..db2e0324 --- /dev/null +++ b/Test/lit/lit/Test.py @@ -0,0 +1,79 @@ +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 + # The repeat index of this test, or None. + self.index = None + + def copyWithIndex(self, index): + import copy + res = copy.copy(self) + res.index = index + return res + + 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) |