Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Copyright 2016 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 from crash.flag_manager import ParsingFlag | |
| 6 from crash.flag_manager import FlagManager | |
| 7 from crash.test.stacktrace_test_suite import StacktraceTestSuite | |
| 8 | |
| 9 | |
| 10 class ParsingFlagTest(StacktraceTestSuite): | |
| 11 | |
| 12 def setUp(self): | |
| 13 super(ParsingFlagTest, self).setUp() | |
| 14 self.flag = ParsingFlag('test_flag', lambda line: 'turn on flag' in line, | |
| 15 value=False) | |
| 16 | |
| 17 def testParsingFlagNameProperty(self): | |
| 18 """Tests name property of ``ParsingFlag``""" | |
|
wrengr
2016/12/28 23:34:10
"name property" -> "the ``name`` property"
Sharu Jiang
2016/12/29 18:20:22
Done.
| |
| 19 self.assertEqual(self.flag.name, 'test_flag') | |
| 20 | |
| 21 def testParsingFlagValueProperty(self): | |
| 22 """Tests value property of ``ParsingFlag``""" | |
|
wrengr
2016/12/28 23:34:10
"value property" -> "the ``value`` property"
Sharu Jiang
2016/12/29 18:20:22
Done.
| |
| 23 self.assertFalse(self.flag.value) | |
| 24 self.flag.On() | |
| 25 self.assertTrue(self.flag.value) | |
| 26 self.assertTrue(bool(self.flag)) | |
| 27 self.flag.Off() | |
| 28 self.assertFalse(self.flag.value) | |
| 29 self.assertFalse(bool(self.flag)) | |
| 30 | |
| 31 def testConditionallyTurOn(self): | |
| 32 """Tests that ``ConditionallyTurnOn`` turns on flag if condiions met.""" | |
|
wrengr
2016/12/28 23:34:10
"condiions" -> "conditions"
Sharu Jiang
2016/12/29 18:20:22
Done.
| |
| 33 self.assertFalse(bool(self.flag)) | |
| 34 self.flag.ConditionallyTurnOn('line: turn on flag') | |
| 35 self.assertTrue(bool(self.flag)) | |
| 36 | |
| 37 | |
| 38 class FlagManagerTest(StacktraceTestSuite): | |
| 39 | |
| 40 def setUp(self): | |
| 41 super(FlagManagerTest, self).setUp() | |
| 42 self.flag_manager = FlagManager() | |
| 43 | |
| 44 def testClearFlags(self): | |
| 45 """Tests that ``ClearFlags`` deletes all flags.""" | |
| 46 self.flag_manager.Register('test', ParsingFlag('test_flag', value=True)) | |
| 47 self.assertEqual(len(self.flag_manager.flags), 1) | |
| 48 self.flag_manager.ClearFlags() | |
| 49 self.assertEqual(len(self.flag_manager.flags), 0) | |
| 50 | |
| 51 def testRegister(self): | |
| 52 """Tests that ``Register`` add new flags with a certain group.""" | |
| 53 self.flag_manager.Register('dummy', ParsingFlag('dummy_flag', value=True)) | |
| 54 self.assertEqual(len(self.flag_manager.flag_groups['dummy']), 1) | |
| 55 self.assertEqual(len(self.flag_manager.flags), 1) | |
| 56 | |
| 57 def testGetAllFlags(self): | |
| 58 """Tests that ``GetAllFlags`` returns all registered flags.""" | |
| 59 flag1 = ParsingFlag('group_flag1', value=True) | |
| 60 flag2 = ParsingFlag('group_flag2', value=True) | |
| 61 self.flag_manager.Register('group1', flag1) | |
| 62 self.flag_manager.Register('group2', flag2) | |
| 63 self.assertListEqual(self.flag_manager.GetAllFlags(), [flag1, flag2]) | |
| 64 | |
| 65 def testGetGroupFlags(self): | |
| 66 """Tests that ``GetGroupFlags`` returns all flags with a certain group.""" | |
| 67 flag1 = ParsingFlag('group_flag1', value=True) | |
| 68 flag2 = ParsingFlag('group_flag2', value=True) | |
| 69 self.flag_manager.Register('group1', flag1) | |
| 70 self.flag_manager.Register('group2', flag2) | |
| 71 self.assertListEqual(self.flag_manager.GetGroupFlags('group1'), [flag1]) | |
| 72 self.assertListEqual(self.flag_manager.GetGroupFlags('group2'), [flag2]) | |
| 73 | |
| 74 def testResetAllFlags(self): | |
| 75 """Tests that ``ResetAllFlags`` turns off all the flags.""" | |
| 76 self.flag_manager.Register('group', ParsingFlag('dummy_flag1', value=True)) | |
| 77 self.flag_manager.Register('group', ParsingFlag('dummy_flag2', value=True)) | |
| 78 self.flag_manager.ResetAllFlags() | |
| 79 for flag in self.flag_manager.GetAllFlags(): | |
| 80 self.assertFalse(flag.value) | |
| 81 | |
| 82 def testResetGroupFlags(self): | |
| 83 """Tests that ``ResetGroupFlags`` turns off flags with a certain group.""" | |
| 84 self.flag_manager.Register('group1', ParsingFlag('dummy_flag1', value=True)) | |
| 85 self.flag_manager.Register('group2', ParsingFlag('dummy_flag2', value=True)) | |
| 86 self.flag_manager.ResetGroupFlags('group1') | |
| 87 self.assertFalse(self.flag_manager.Get('dummy_flag1')) | |
| 88 self.assertTrue(self.flag_manager.Get('dummy_flag2')) | |
| 89 | |
| 90 def testConditionallyTurOnFlags(self): | |
|
wrengr
2016/12/28 23:34:10
"...TurOn..." -> "...TurnOn..."
Sharu Jiang
2016/12/29 18:20:22
Done.
| |
| 91 """Tests turning on flags if their conditions met.""" | |
| 92 self.flag_manager.Register( | |
| 93 'group', | |
| 94 ParsingFlag('flag1', condition=lambda line: 'flag1 marker' in line, | |
| 95 value=False)) | |
| 96 self.flag_manager.Register( | |
| 97 'group', | |
| 98 ParsingFlag('flag2', condition=lambda line: 'flag2 marker' in line, | |
| 99 value=False)) | |
| 100 line = 'line: flag1 marker flag2 marker' | |
| 101 self.flag_manager.ConditionallyTurnOnFlags(line) | |
| 102 self.assertTrue(bool(self.flag_manager.Get('flag1'))) | |
| 103 self.assertTrue(bool(self.flag_manager.Get('flag2'))) | |
| 104 | |
| 105 def testDoNothingWhenConditionsNotMet(self): | |
| 106 """Tests doing nothing if flag's condition is not met.""" | |
| 107 self.flag_manager.Register( | |
| 108 'group', | |
| 109 ParsingFlag('flag', condition=lambda line: 'flag marker' in line, | |
| 110 value=False)) | |
| 111 line = 'dummy line' | |
| 112 self.flag_manager.ConditionallyTurnOnFlags(line) | |
| 113 self.assertFalse(bool(self.flag_manager.Get('flag'))) | |
| 114 | |
| 115 def testSettingFlag(self): | |
| 116 """Tests using ``TurnOn`` and ``TurnOff`` to set flags.""" | |
| 117 self.flag_manager.Register('group', ParsingFlag('flag', value=False)) | |
| 118 self.flag_manager.TurnOn('flag') | |
| 119 self.flag_manager.TurnOn('dummy_flag') | |
| 120 self.assertTrue(self.flag_manager.Get('flag')) | |
| 121 self.flag_manager.TurnOff('flag') | |
| 122 self.flag_manager.TurnOff('dummy_flag') | |
| 123 self.assertFalse(self.flag_manager.Get('flag')) | |
| OLD | NEW |