| #!/usr/bin/env python3 |
| # Copyright 2022 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import unittest |
| |
| from make_gtest_filter import PascalCaseSplit, CompressWithWildcards, GetFiltersForTests |
| |
| |
| class Foo(unittest.TestCase): |
| def testSplit(self): |
| self.assertEqual(list(PascalCaseSplit('testTerm')), ['test', 'Term']) |
| self.assertEqual(list(PascalCaseSplit('TestTerm')), ['Test', 'Term']) |
| self.assertEqual(list(PascalCaseSplit('TestTerm80')), |
| ['Test', 'Term', '80']) |
| self.assertEqual(list(PascalCaseSplit('TestTerm80Foo')), |
| ['Test', 'Term', '80', 'Foo']) |
| self.assertEqual(list(PascalCaseSplit('TestTerm80/Foo')), |
| ['Test', 'Term', '80', '/', 'Foo']) |
| |
| def testDepth(self): |
| melons = ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz'] |
| self.assertEqual(list(CompressWithWildcards(melons, 1, 0)), ['A.Doom*']) |
| self.assertEqual(list(CompressWithWildcards(melons, 2, 0)), |
| ['A.DoomMelon*']) |
| self.assertEqual(list(CompressWithWildcards(melons, 3, 0)), |
| ['A.DoomMelonFoo*']) |
| self.assertEqual(list(CompressWithWildcards(melons, 4, 0)), |
| ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz']) |
| |
| def testDontWildcardAcrossSuites(self): |
| self.assertEqual(list(CompressWithWildcards(['A.X', 'B.X'], 1, 0)), |
| ['A.X', 'B.X']) |
| |
| def testCaseNumBoundaryBeforeWildcard(self): |
| fruit = ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz', 'A.DoomBanana'] |
| self.assertEqual(list(CompressWithWildcards(fruit, 2, 0)), |
| ['A.DoomBanana', 'A.DoomMelon*']) |
| self.assertEqual(list(CompressWithWildcards(fruit, 2, 1)), |
| ['A.DoomBanana', 'A.DoomMelon*']) |
| self.assertEqual(list(CompressWithWildcards(fruit, 2, 2)), |
| ['A.DoomBanana', 'A.DoomMelonFooBar', 'A.DoomMelonFooBaz']) |
| |
| def testGetFiltersForTests(self): |
| tests = ['TestSuite.TestName'] |
| self.assertEqual(list(GetFiltersForTests(tests, class_only=True)), [ |
| 'TestSuite.*', '*/TestSuite.*/*', '*/TestSuite/*.*', 'TestSuite.*/*', |
| 'TestSuite/*.*' |
| ]) |
| self.assertEqual(list(GetFiltersForTests(tests, class_only=False)), [ |
| 'TestSuite.TestName', '*/TestSuite.TestName/*', 'TestSuite.TestName/*', |
| 'TestSuite/*.TestName' |
| ]) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |