| Index: tools/telemetry/telemetry/unittest/gtest_output_formatter_unittest.py
|
| diff --git a/tools/telemetry/telemetry/unittest/gtest_output_formatter_unittest.py b/tools/telemetry/telemetry/unittest/gtest_output_formatter_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0eff246f0fb05480384170f9baed66cd703adda8
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/unittest/gtest_output_formatter_unittest.py
|
| @@ -0,0 +1,125 @@
|
| +# Copyright 2014 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import unittest
|
| +import sys
|
| +
|
| +from telemetry.unittest import gtest_output_formatter
|
| +from telemetry.unittest import simple_mock
|
| +
|
| +
|
| +class DummyException(Exception):
|
| + pass
|
| +try:
|
| + raise DummyException('Dummy exception')
|
| +except DummyException:
|
| + DUMMY_EXCEPTION = sys.exc_info()
|
| +
|
| +
|
| +class TestFoo(unittest.TestCase):
|
| + # Test method doesn't have test- prefix intentionally. This is so that
|
| + # run_test script won't run this test.
|
| + def runTezt(self):
|
| + pass
|
| +
|
| +
|
| +class TestOutputStream(object):
|
| + def __init__(self):
|
| + self._output_data = []
|
| +
|
| + @property
|
| + def output_data(self):
|
| + return ''.join(self._output_data)
|
| +
|
| + def write(self, data):
|
| + self._output_data.append(data)
|
| +
|
| + def flush(self):
|
| + pass
|
| +
|
| +
|
| +class TestResultWithSuccesses(unittest.TestResult):
|
| + def __init__(self):
|
| + super(TestResultWithSuccesses, self).__init__()
|
| + self.successes = []
|
| +
|
| + def addSuccess(self, test):
|
| + super(TestResultWithSuccesses, self).addSuccess(test)
|
| + self.successes.append(test)
|
| +
|
| +
|
| +class GTestOutputFormatterTest(unittest.TestCase):
|
| + def setUp(self):
|
| + super(GTestOutputFormatterTest, self).setUp()
|
| + self._stream = TestOutputStream()
|
| + self._formatter = gtest_output_formatter.GTestOutputFormatter(self._stream)
|
| +
|
| + self._mock_timer = simple_mock.MockTimer()
|
| + self._real_time_time = gtest_output_formatter.time.time
|
| + gtest_output_formatter.time.time = self._mock_timer.GetTime
|
| +
|
| + def tearDown(self):
|
| + gtest_output_formatter.time.time = self._real_time_time
|
| +
|
| + def testTestSuiteWithWrapperSuite(self):
|
| + suite = unittest.TestSuite()
|
| + suite.addTest(unittest.TestSuite())
|
| + self._formatter.StartTestSuite(suite)
|
| + self._formatter.StopTestSuite(suite)
|
| +
|
| + self.assertEqual(self._stream.output_data, '')
|
| +
|
| + def testTestSuiteWithTestCase(self):
|
| + suite = unittest.TestSuite()
|
| + suite.addTest(TestFoo(methodName='runTezt'))
|
| + self._formatter.StartTestSuite(suite)
|
| + self._mock_timer.SetTime(0.042)
|
| + self._formatter.StopTestSuite(suite)
|
| +
|
| + expected = ('[----------] 1 test\n'
|
| + '[----------] 1 test (42 ms total)\n\n')
|
| + self.assertEqual(self._stream.output_data, expected)
|
| +
|
| + def testCaseFailure(self):
|
| + test = TestFoo(methodName='runTezt')
|
| + self._formatter.StartTest(test)
|
| + self._mock_timer.SetTime(0.042)
|
| + self._formatter.Failure(test, DUMMY_EXCEPTION)
|
| +
|
| + expected = ('[ RUN ] gtest_output_formatter_unittest.TestFoo.runTezt\n'
|
| + '[ FAILED ] gtest_output_formatter_unittest.TestFoo.runTezt '
|
| + '(42 ms)\n')
|
| + self.assertEqual(self._stream.output_data, expected)
|
| +
|
| + def testCaseSuccess(self):
|
| + test = TestFoo(methodName='runTezt')
|
| + self._formatter.StartTest(test)
|
| + self._mock_timer.SetTime(0.042)
|
| + self._formatter.Success(test)
|
| +
|
| + expected = ('[ RUN ] gtest_output_formatter_unittest.TestFoo.runTezt\n'
|
| + '[ OK ] gtest_output_formatter_unittest.TestFoo.runTezt '
|
| + '(42 ms)\n')
|
| + self.assertEqual(self._stream.output_data, expected)
|
| +
|
| + def testStopTestRun(self):
|
| + result = TestResultWithSuccesses()
|
| + self._formatter.StopTestRun(result)
|
| +
|
| + expected = '[ PASSED ] 0 tests.\n\n'
|
| + self.assertEqual(self._stream.output_data, expected)
|
| +
|
| + def testStopTestRunWithFailureAndSuccess(self):
|
| + test = TestFoo(methodName='runTezt')
|
| + result = TestResultWithSuccesses()
|
| + result.addSuccess(test)
|
| + result.addFailure(test, DUMMY_EXCEPTION)
|
| + self._formatter.StopTestRun(result)
|
| +
|
| + expected = (
|
| + '[ PASSED ] 1 test.\n'
|
| + '[ FAILED ] 1 test, listed below:\n'
|
| + '[ FAILED ] gtest_output_formatter_unittest.TestFoo.runTezt\n\n'
|
| + '1 FAILED TEST\n\n')
|
| + self.assertEqual(self._stream.output_data, expected)
|
|
|