blob: db55a300dba6fcf4a54aed2d22ad878faaed3296 [file] [log] [blame]
# 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 imp
import os.path
import sys
import unittest
try:
imp.find_module("devtoolslib")
except ImportError:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from devtoolslib.apptest_gtest import _gtest_list_tests
class GTestListTestsTest(unittest.TestCase):
"""Tests |_gtest_list_tests()| handling of --gtest_list_tests output."""
def testSingleSuiteAndFixture(self):
"""Tests a single suite with a single fixture."""
gtest_output = "TestSuite.\n TestFixture\n"
expected_test_list = ["TestSuite.TestFixture"]
self.assertEquals(_gtest_list_tests(gtest_output), expected_test_list)
def testWindowsNewlines(self):
"""Tests handling of \r\n newlines."""
gtest_output = "TestSuite.\r\n TestFixture1\r\n"
expected_test_list = ["TestSuite.TestFixture1"]
self.assertEquals(_gtest_list_tests(gtest_output), expected_test_list)
def testSingleSuiteAndMultipleFixtures(self):
"""Tests a single suite with multiple fixtures."""
gtest_output = "TestSuite.\n TestFixture1\n TestFixture2\n"
expected_test_list = ["TestSuite.TestFixture1", "TestSuite.TestFixture2"]
self.assertEquals(_gtest_list_tests(gtest_output), expected_test_list)
def testMultipleSuitesAndFixtures(self):
"""Tests multiple suites each with multiple fixtures."""
gtest_output = ("TestSuite1.\n TestFixture1\n TestFixture2\n"
"TestSuite2.\n TestFixtureA\n TestFixtureB\n")
expected_test_list = ["TestSuite1.TestFixture1", "TestSuite1.TestFixture2",
"TestSuite2.TestFixtureA", "TestSuite2.TestFixtureB"]
self.assertEquals(_gtest_list_tests(gtest_output), expected_test_list)
def testUnrecognizedFormats(self):
"""Tests examples of unrecognized --gtest_list_tests output."""
self.assertRaises(Exception, _gtest_list_tests, "Foo")
self.assertRaises(Exception, _gtest_list_tests, "Foo\n")
self.assertRaises(Exception, _gtest_list_tests, "Foo.Bar\n")
self.assertRaises(Exception, _gtest_list_tests, "Foo.\nBar\n")
self.assertRaises(Exception, _gtest_list_tests, "Foo.\r\nBar\r\nGaz\r\n")
self.assertRaises(Exception, _gtest_list_tests, "Foo.\nBar.\n Gaz\n")
if __name__ == "__main__":
unittest.main()