old_contents: 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)
  
new_contents: import os
  
  # Test results.
  
  class TestResult:
      def __init__(self, name, isFailure):
          self.name = name
          self.isFailure = isFailure
  
      def __repr__(self):
          return '%s%r' % (self.__class__.__name__,
                           (self.name, self.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)
  
subject: Add a display function for lit.Test.TestResult.