예제 #1
0
 def test_match_one_trace(self):
     """Check one trace can be extracted from a console log."""
     with self.request_get_mocked('x86_one_trace.txt'):
         consolelog = console.ConsoleLog('4-5-fake', 'someurl')
         traces = consolelog.gettraces()
         self.assertEqual(len(traces), 1)
     expected_trace = self.get_expected_traces('x86_one_trace.txt')[0]
     self.assertEqual(expected_trace, traces[0])
예제 #2
0
 def test_match_three_traces(self):
     """Check three traces can be extracted from a console log."""
     with self.request_get_mocked('x86_three_traces.txt'):
         consolelog = console.ConsoleLog('4.16-fake', 'someurl')
         traces = consolelog.gettraces()
         self.assertEqual(len(traces), 3)
     expected_traces = self.get_expected_traces('x86_three_traces.txt')
     for idx, trace in enumerate(traces):
         msg = ("Trace_{} doesn't match.\n"
                "{!r} != {!r}").format(idx, trace, expected_traces[idx])
         self.assertEqual(trace, expected_traces[idx], msg=msg)
예제 #3
0
    def test_getfulllog(self):
        """Ensure getfulllog() returns gzipped data."""
        consolelog = console.ConsoleLog(kver='4-4', url_or_path=None)
        consolelog.data = ['foo']
        result = consolelog.getfulllog()

        # Decompress the string and make sure it matches our test data
        tstr = StringIO.StringIO(result)
        with gzip.GzipFile(fileobj=tstr, mode="r") as fileh:
            data_test = fileh.read()

        self.assertEqual(data_test, consolelog.data[0])
예제 #4
0
    def test_fetchdata_normal(self):
        """Ensure __fetchdata() works."""
        # pylint: disable=W0212,E1101
        responses.add(responses.GET,
                      'http://whatever.example.com/console/log',
                      body=misc.get_asset_content('x86_one_trace.txt'),
                      status=200)

        # get path to trace asset
        real_path = misc.get_asset_path('x86_one_trace.txt')

        consolelog = console.ConsoleLog(kver='4-5-fake', url_or_path=real_path)
        result = consolelog._ConsoleLog__fetchdata()

        # check we got expected file content
        self.assertIn('Linux version 4-5-fake', result[0])
예제 #5
0
    def test_match_one_trace2(self):
        """ Check one trace can be extracted from a console log. Check
            that exclude pattern is skipped.
        """
        # pylint: disable=W0212,E1101

        # append OK line to the testing content
        content = misc.get_asset_content('x86_one_trace.txt').splitlines()
        content = [content[0], '[166357.530080] aa OK aa'] + content[1:]
        content = '\n'.join(content) + '\n'

        with tempfile.NamedTemporaryFile(delete=True) as temp:
            temp.write(content)
            temp.seek(0)

            consolelog = console.ConsoleLog('4-5-fake', temp.name)
            traces = consolelog.gettraces()
            self.assertEqual(len(traces), 1)
        expected_trace = self.get_expected_traces('x86_one_trace.txt')[0]
        self.assertEqual(expected_trace, traces[0])
예제 #6
0
    def test_fetchdata_gz(self):
        """Ensure __fetchdata() gzip handling works."""
        # pylint: disable=W0212,E1101
        content = misc.get_asset_content('x86_one_trace.txt')

        responses.add(responses.GET,
                      'http://whatever.example.com/console/log.bz',
                      body=content,
                      status=200)

        with tempfile.NamedTemporaryFile(delete=True, suffix='.gz') as temp:
            with gzip.open(temp.name, 'wb') as gzip_file:
                gzip_file.write(content)

            consolelog = console.ConsoleLog(kver='4-5-fake',
                                            url_or_path=temp.name)
            result = consolelog._ConsoleLog__fetchdata()

            # check we got expected file content
            self.assertIn('Linux version 4-5-fake', result[0])
예제 #7
0
 def test_fetchdata(self):
     """Ensure __fetchdata() returns an empty list with no URL."""
     # pylint: disable=W0212,E1101
     consolelog = console.ConsoleLog(kver='4-4', url_or_path=None)
     result = consolelog._ConsoleLog__fetchdata()
     self.assertItemsEqual([], result)
예제 #8
0
 def test_kernel_version_unmatch(self):
     """Ensure gettraces() doesn't catch trace when kver doesn't match."""
     with self.request_get_mocked('x86_one_trace.txt'):
         consolelog = console.ConsoleLog('4-4', 'someurl')
         traces = consolelog.gettraces()
     self.assertListEqual(traces, [])