def prepare_test_connection(): logfile = os.path.join(os.path.dirname(__file__), 'kernel-1.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-1.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 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, action=Action(), max_end_time=self.max_end_time, fail_msg="", ) 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, action=Action(), max_end_time=self.max_end_time, fail_msg="" ) self.assertEqual(len(list(results)), 13)
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_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, action=Action(), max_end_time=self.max_end_time, fail_msg="" ) self.assertEqual(len(results), 1) self.assertEqual( results[0], {"message": "kernel-messages", "success": "Freeing unused kernel memory"}, )
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) with self.assertRaises(JobError): result = LinuxKernelMessages.parse_failures(connection, max_end_time=self.max_end_time)
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-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_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']))