17abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liaoimport unittest
27abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liaoimport Test
37abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
47abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao"""
57abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei LiaoTestCase adaptor for providing a 'unittest' compatible interface to 'lit' tests.
67abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao"""
77abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
87abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liaoclass UnresolvedError(RuntimeError):
97abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao    pass
107abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
117abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liaoclass LitTestCase(unittest.TestCase):
127abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao    def __init__(self, test, lit_config):
137abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        unittest.TestCase.__init__(self)
147abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        self._test = test
157abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        self._lit_config = lit_config
167abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
177abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao    def id(self):
187abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        return self._test.getFullName()
197abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
207abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao    def shortDescription(self):
217abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        return self._test.getFullName()
227abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
237abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao    def runTest(self):
247abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        tr, output = self._test.config.test_format.execute(
257abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao            self._test, self._lit_config)
267abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao
277abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        if tr is Test.UNRESOLVED:
287abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao            raise UnresolvedError(output)
297abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao        elif tr.isFailure:
307abe37e4aee38cc79d91dd069a37d7e91d5bef53Shih-wei Liao            self.fail(output)
31