2 # Copyright 2022 The Chromium Authors
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
8 from make_gtest_filter import PascalCaseSplit, CompressWithWildcards, GetFiltersForTests
11 class Foo(unittest.TestCase):
13 self.assertEqual(list(PascalCaseSplit('testTerm')), ['test', 'Term'])
14 self.assertEqual(list(PascalCaseSplit('TestTerm')), ['Test', 'Term'])
15 self.assertEqual(list(PascalCaseSplit('TestTerm80')),
16 ['Test', 'Term', '80'])
17 self.assertEqual(list(PascalCaseSplit('TestTerm80Foo')),
18 ['Test', 'Term', '80', 'Foo'])
19 self.assertEqual(list(PascalCaseSplit('TestTerm80/Foo')),
20 ['Test', 'Term', '80', '/', 'Foo'])
23 melons = ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz']
24 self.assertEqual(list(CompressWithWildcards(melons, 1, 0)), ['A.Doom*'])
25 self.assertEqual(list(CompressWithWildcards(melons, 2, 0)),
27 self.assertEqual(list(CompressWithWildcards(melons, 3, 0)),
29 self.assertEqual(list(CompressWithWildcards(melons, 4, 0)),
30 ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz'])
32 def testDontWildcardAcrossSuites(self):
33 self.assertEqual(list(CompressWithWildcards(['A.X', 'B.X'], 1, 0)),
36 def testCaseNumBoundaryBeforeWildcard(self):
37 fruit = ['A.DoomMelonFooBar', 'A.DoomMelonFooBaz', 'A.DoomBanana']
38 self.assertEqual(list(CompressWithWildcards(fruit, 2, 0)),
39 ['A.DoomBanana', 'A.DoomMelon*'])
40 self.assertEqual(list(CompressWithWildcards(fruit, 2, 1)),
41 ['A.DoomBanana', 'A.DoomMelon*'])
42 self.assertEqual(list(CompressWithWildcards(fruit, 2, 2)),
43 ['A.DoomBanana', 'A.DoomMelonFooBar', 'A.DoomMelonFooBaz'])
45 def testGetFiltersForTests(self):
46 tests = ['TestSuite.TestName']
47 self.assertEqual(list(GetFiltersForTests(tests, class_only=True)), [
48 'TestSuite.*', '*/TestSuite.*/*', '*/TestSuite/*.*', 'TestSuite.*/*',
51 self.assertEqual(list(GetFiltersForTests(tests, class_only=False)), [
52 'TestSuite.TestName', '*/TestSuite.TestName/*', 'TestSuite.TestName/*',
53 'TestSuite/*.TestName'
57 if __name__ == '__main__':