|
6 | 6 | import unittest |
7 | 7 |
|
8 | 8 | from bkr.labcontroller.config import _conf |
9 | | -from bkr.labcontroller.proxy import PanicDetector |
| 9 | +from bkr.labcontroller.proxy import PanicDetector, ConsoleLogHelper, InstallFailureDetector |
10 | 10 |
|
11 | 11 |
|
12 | 12 | class TestPanicDetector(unittest.TestCase): |
@@ -49,3 +49,38 @@ def test_panic_detector_ignores_false_panic(self): |
49 | 49 | "Panic detector erroneously detected: %r" % (line)) |
50 | 50 | self.assertIsNone(match, |
51 | 51 | "feed result ( %r ) wasn't NoneType" % (match)) |
| 52 | + |
| 53 | + |
| 54 | +class TestConsoleLogHelper(unittest.TestCase): |
| 55 | + |
| 56 | + def test_strip_cntrl_regex(self): |
| 57 | + helper = ConsoleLogHelper( |
| 58 | + watchdog={'recipe_id': 1}, |
| 59 | + proxy=None, |
| 60 | + panic=_conf["PANIC_REGEX"], |
| 61 | + ) |
| 62 | + self.assertIsNone(helper.strip_cntrl.search('\t')) |
| 63 | + self.assertIsNone(helper.strip_cntrl.search('\n')) |
| 64 | + self.assertIsNotNone(helper.strip_cntrl.search('\x00')) |
| 65 | + self.assertIsNotNone(helper.strip_cntrl.search('\x01')) |
| 66 | + self.assertIsNotNone(helper.strip_cntrl.search('\x7f')) |
| 67 | + |
| 68 | + |
| 69 | +class TestInstallFailureDetector(unittest.TestCase): |
| 70 | + |
| 71 | + def test_loads_patterns(self): |
| 72 | + detector = InstallFailureDetector() |
| 73 | + self.assertTrue(len(detector.patterns) > 0) |
| 74 | + |
| 75 | + def test_detects_dracut_failure(self): |
| 76 | + detector = InstallFailureDetector() |
| 77 | + match = detector.feed( |
| 78 | + 'dracut-initqueue[123]: Warning: /dev/root does not exist') |
| 79 | + self.assertTrue(detector.fired) |
| 80 | + self.assertIsNotNone(match) |
| 81 | + |
| 82 | + def test_ignores_normal_output(self): |
| 83 | + detector = InstallFailureDetector() |
| 84 | + match = detector.feed('Starting installation process') |
| 85 | + self.assertFalse(detector.fired) |
| 86 | + self.assertIsNone(match) |
0 commit comments