def prepare_test_connection(): logfile = os.path.join(os.path.dirname(__file__), 'kernel.txt') if not os.path.exists(logfile): raise OSError("Missing test support file.") child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() return FakeConnection(child, message_list)
def prepare_test_connection(): logfile = os.path.join(os.path.dirname(__file__), 'kernel.txt') if not os.path.exists(logfile): raise OSError("Missing test support file.") child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() return FakeConnection(child, message_list)
def run(self, prompt_list): if not self.existing_prompt: self.existing_prompt = prompt_list[:] prompt_list = LinuxKernelMessages.get_kernel_prompts() if isinstance(self.existing_prompt, list): prompt_list.extend(self.existing_prompt) else: prompt_list.append(self.existing_prompt) return prompt_list
def run(self, prompt_list): if not self.existing_prompt: self.existing_prompt = prompt_list[:] prompt_list = LinuxKernelMessages.get_kernel_prompts() if isinstance(self.existing_prompt, list): prompt_list.extend(self.existing_prompt) else: prompt_list.append(self.existing_prompt) return prompt_list
def test_kernel_1(self): logfile = os.path.join(os.path.dirname(__file__), 'kernel-1.txt') self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures( connection, max_end_time=self.max_end_time) self.assertEqual(len(results), 1) self.assertEqual( results[0], { 'message': 'kernel-messages', 'success': 'Freeing unused kernel memory' })
def test_kernel_2(self): logfile = os.path.join(os.path.dirname(__file__), "kernel-2.txt") self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn("cat", [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() self.assertIsNotNone(message_list) connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures(connection) # traces as far as da227214a82491bf occur before Freeing init memory: self.assertEqual(len(list(results)), 9) message_list = LinuxKernelMessages.get_init_prompts() connection.prompt_str = message_list results = LinuxKernelMessages.parse_failures(connection) # 5 more traces appear during init self.assertEqual(len(list(results)), 5)
def test_kernel_2(self): logfile = os.path.join(os.path.dirname(__file__), 'kernel-2.txt') self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() self.assertIsNotNone(message_list) connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures(connection) # traces as far as da227214a82491bf occur before Freeing init memory: self.assertEqual(len(list(results)), 9) message_list = LinuxKernelMessages.get_init_prompts() connection.prompt_str = message_list results = LinuxKernelMessages.parse_failures(connection) # 5 more traces appear during init self.assertEqual(len(list(results)), 5)
def test_kernel_txt(self): """ The same logfile passes kernel boot and fails to find init - so the panic needs to be caught by InitMessages """ logfile = os.path.join(os.path.dirname(__file__), 'kernel-panic.txt') self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() self.assertIsNotNone(message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[0][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[1][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[2][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[3][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[4][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[5][1], message_list) connection = FakeConnection(child, message_list) result = LinuxKernelMessages.parse_failures( connection, max_end_time=self.max_end_time) self.assertEqual(len(result), 2) self.assertIn('success', result[0]) self.assertIn('panic', result[1]) self.assertEqual(result[0]['success'], KERNEL_FREE_UNUSED_MSG) self.assertEqual(result[1]['panic'], KERNEL_PANIC_MSG) self.assertEqual(len(result), 2) self.assertIn('panic', result[1]) self.assertIn('message', result[1]) self.assertTrue('Attempted to kill init' in str(result[1]['message'])) self.assertTrue('(unwind_backtrace) from' in str(result[1]['message'])) message_list = LinuxKernelMessages.get_init_prompts() child = pexpect.spawn('cat', [logfile]) connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures( connection, max_end_time=self.max_end_time) self.assertEqual(len(results), 1) self.assertIn('panic', result[1]) self.assertIn('message', result[1]) self.assertTrue('Attempted to kill init' in str(result[1]['message'])) self.assertTrue('(unwind_backtrace) from' in str(result[1]['message']))
def test_kernel_2(self): logfile = os.path.join(os.path.dirname(__file__), 'kernel-2.txt') self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn('cat', [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() self.assertIsNotNone(message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[0][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[1][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[2][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[3][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[4][1], message_list) self.assertIn(LinuxKernelMessages.MESSAGE_CHOICES[5][1], message_list) connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures( connection, max_end_time=self.max_end_time) self.assertEqual(len(list(results)), 14) message_list = LinuxKernelMessages.get_init_prompts() child = pexpect.spawn('cat', [logfile]) connection = FakeConnection(child, message_list) results = LinuxKernelMessages.parse_failures( connection, max_end_time=self.max_end_time) self.assertEqual(len(list(results)), 13)
def test_kernel_txt(self): """ The same logfile passes kernel boot and fails to find init - so the panic needs to be caught by InitMessages """ logfile = os.path.join(os.path.dirname(__file__), "kernel.txt") self.assertTrue(os.path.exists(logfile)) child = pexpect.spawn("cat", [logfile]) message_list = LinuxKernelMessages.get_kernel_prompts() self.assertIsNotNone(message_list) connection = FakeConnection(child, message_list) result = LinuxKernelMessages.parse_failures(connection) self.assertIn("success", result[0]) self.assertEqual(result[0]["success"], KERNEL_FREE_UNUSED_MSG) message_list = LinuxKernelMessages.get_init_prompts() self.assertIn(KERNEL_PANIC_MSG, message_list) self.assertNotIn(KERNEL_FREE_UNUSED_MSG, message_list) connection.prompt_str = message_list result = LinuxKernelMessages.parse_failures(connection) self.assertEqual(len(result), 1) self.assertIn("panic", result[0]) self.assertIn("message", result[0]) self.assertTrue("Attempted to kill init" in str(result[0]["message"])) self.assertTrue("(unwind_backtrace) from" in str(result[0]["message"]))