Esempio n. 1
0
 def check_kernel_messages(self, connection, max_end_time, fail_msg):
     """
     Use the additional pexpect expressions to detect warnings
     and errors during the kernel boot. Ensure all test jobs using
     auto-login-action have a result set so that the duration is
     always available when the action completes successfully.
     """
     if isinstance(connection, SShSession):
         self.logger.debug("Skipping kernel messages")
         return
     self.logger.info("Parsing kernel messages")
     self.logger.debug(connection.prompt_str)
     parsed = LinuxKernelMessages.parse_failures(connection,
                                                 self,
                                                 max_end_time=max_end_time,
                                                 fail_msg=fail_msg)
     if len(parsed) and "success" in parsed[0]:
         self.results = {"success": parsed[0]["success"]}
         if len(parsed) > 1:
             # errors detected.
             self.logger.warning("Kernel warnings or errors detected.")
             self.results = {"extra": parsed}
     elif not parsed:
         self.results = {
             "success": "No kernel warnings or errors detected."
         }
     else:
         self.results = {"fail": parsed}
         self.logger.warning("Kernel warnings or errors detected.")
Esempio n. 2
0
 def test_kernel_4(self):
     logfile = os.path.join(os.path.dirname(__file__), 'kernel-4.txt')
     self.assertTrue(os.path.exists(logfile))
     child = pexpect.spawn('cat', [logfile])
     message_list = LinuxKernelMessages.get_init_prompts()
     self.assertIsNotNone(message_list)
     connection = FakeConnection(child, message_list)
     with self.assertRaises(JobError):
         results = LinuxKernelMessages.parse_failures(connection, max_end_time=self.max_end_time)
Esempio n. 3
0
 def test_kernel_4(self):
     logfile = os.path.join(os.path.dirname(__file__), 'kernel-4.txt')
     self.assertTrue(os.path.exists(logfile))
     child = pexpect.spawn('cat', [logfile])
     message_list = LinuxKernelMessages.get_init_prompts()
     self.assertIsNotNone(message_list)
     connection = FakeConnection(child, message_list)
     results = LinuxKernelMessages.parse_failures(connection, max_end_time=self.max_end_time)
     self.assertIn('Stack', results[0]['message'].decode('utf-8'))
     self.assertIn('Kernel panic', results[1]['message'].decode('utf-8'))
Esempio n. 4
0
 def test_kernel_4(self):
     logfile = os.path.join(os.path.dirname(__file__), 'kernel-4.txt')
     self.assertTrue(os.path.exists(logfile))
     child = pexpect.spawn('cat', [logfile])
     message_list = LinuxKernelMessages.get_init_prompts()
     self.assertIsNotNone(message_list)
     connection = FakeConnection(child, message_list)
     results = LinuxKernelMessages.parse_failures(
         connection, max_end_time=self.max_end_time)
     self.assertIn('Stack', results[0]['message'].decode('utf-8'))
     self.assertIn('Kernel panic', results[1]['message'].decode('utf-8'))
Esempio n. 5
0
 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)
Esempio n. 6
0
 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'})
Esempio n. 7
0
 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)
Esempio n. 8
0
 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'})
Esempio n. 9
0
 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']))
Esempio n. 10
0
 def test_kernel_ramdisk_alert(self):
     logfile = os.path.join(os.path.dirname(__file__), 'kernel-3.txt')
     self.assertTrue(os.path.exists(logfile))
     child = pexpect.spawn('cat', [logfile])
     message_list = LinuxKernelMessages.get_init_prompts()
     self.assertIsNotNone(message_list)
     connection = FakeConnection(child, message_list)
     results = LinuxKernelMessages.parse_failures(connection, max_end_time=self.max_end_time)
     self.assertEqual(len(list(results)), 1)
     self.assertIn('message', results[0])
     self.assertIn('alert', results[0])
     self.assertNotIn('success', results[0])
     self.assertNotIn('panic', results[0])
Esempio n. 11
0
 def test_kernel_ramdisk_alert(self):
     logfile = os.path.join(os.path.dirname(__file__), 'kernel-3.txt')
     self.assertTrue(os.path.exists(logfile))
     child = pexpect.spawn('cat', [logfile])
     message_list = LinuxKernelMessages.get_init_prompts()
     self.assertIsNotNone(message_list)
     connection = FakeConnection(child, message_list)
     results = LinuxKernelMessages.parse_failures(
         connection, max_end_time=self.max_end_time)
     self.assertEqual(len(list(results)), 1)
     self.assertIn('message', results[0])
     self.assertIn('alert', results[0])
     self.assertNotIn('success', results[0])
     self.assertNotIn('panic', results[0])
Esempio n. 12
0
 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"},
     )
Esempio n. 13
0
 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']))
Esempio n. 14
0
    def check_kernel_messages(self, connection, max_end_time, fail_msg):
        """
        Use the additional pexpect expressions to detect warnings
        and errors during the kernel boot. Ensure all test jobs using
        auto-login-action have a result set so that the duration is
        always available when the action completes successfully.
        """
        if isinstance(connection, SShSession):
            self.logger.debug("Skipping kernel messages")
            return
        self.logger.info("Parsing kernel messages")
        self.logger.debug(connection.prompt_str)

        # Nexell extensions
        '''
        nexell booting test needs enter commands for check connection prompts
        '''
        self.logger.debug("[SEOJI] self.parameters: " + str(self.parameters))
        params = self.parameters.get('nexell_ext')
        if 'command_param3' in params:
            nexell_cmd = [
                params['command'], params['command_param3'],
                params['dir_name'], params['device_path']
            ]
            self.logger.debug("[SEOJI] nexell_cmd: " + str(nexell_cmd))
            command_output = self.run_command(nexell_cmd)

        parsed = LinuxKernelMessages.parse_failures(connection,
                                                    self,
                                                    max_end_time=max_end_time,
                                                    fail_msg=fail_msg)
        if len(parsed) and 'success' in parsed[0]:
            self.results = {'success': parsed[0]['success']}
            if len(parsed) > 1:
                # errors detected.
                self.logger.warning("Kernel warnings or errors detected.")
                self.results = {'extra': parsed}
        elif not parsed:
            self.results = {
                'success': "No kernel warnings or errors detected."
            }
        else:
            self.results = {'fail': parsed}
            self.logger.warning("Kernel warnings or errors detected.")
Esempio n. 15
0
 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)
Esempio n. 16
0
 def check_kernel_messages(self, connection, max_end_time):
     """
     Use the additional pexpect expressions to detect warnings
     and errors during the kernel boot. Ensure all test jobs using
     auto-login-action have a result set so that the duration is
     always available when the action completes successfully.
     """
     if isinstance(connection, SShSession):
         self.logger.debug("Skipping kernel messages")
         return
     self.logger.info("Parsing kernel messages")
     self.logger.debug(connection.prompt_str)
     parsed = LinuxKernelMessages.parse_failures(connection, self, max_end_time=max_end_time)
     if len(parsed) and 'success' in parsed[0]:
         self.results = {'success': parsed[0]['success']}
         if len(parsed) > 1:
             # errors detected.
             self.logger.warning("Kernel warnings or errors detected.")
             self.results = {'extra': parsed}
     elif not parsed:
         self.results = {'success': "No kernel warnings or errors detected."}
     else:
         self.results = {'fail': parsed}
         self.logger.warning("Kernel warnings or errors detected.")