Пример #1
0
  def test_no_linkify(self):
    """Ensure that we don't linkify a non-stack frame line."""
    revisions_dict = {
        '/src': {
            'url': 'https://chromium.googlesource.com/chromium/src.git',
            'rev': '1d783bc2a3629b94c963debfa3feaee27092dd92',
        },
        'src/v8': {
            'url': 'https://chromium.googlesource.com/v8/v8.git',
            'rev': '7fb2c3b6db3f889ea95851ca11dcb731b07a7925',
        }
    }
    stack = '\n'.join([
        ('../../net/spdy/chromium/spdy_stream.cc:227:21: runtime error: '
         'signed integer overflow:159714659 + 1996488831 cannot be represented '
         'in type \'int\''), 'random'
    ])
    expected = '\n'.join([
        ('../../net/spdy/chromium/spdy_stream.cc:227:21: runtime error: '
         'signed integer overflow:159714659 + 1996488831 cannot be represented '
         'in type 'int''), 'random'
    ])

    self.assertEqual(
        show.filter_stacktrace(stack, 'type', revisions_dict, '', ''), expected)
Пример #2
0
    def test_asan_oss_fuzz(self):
        """Ensure it linkifies asan trace for oss-fuzz."""
        revisions_dict = {
            '/src/libass': {
                'url': 'https://github.com/libass/libass.git',
                'rev': '35dc4dd0e14e3afb4a2c7e319a3f4110e20c7cf2',
                'type': 'git'
            },
            '/src/fribidi': {
                'url': 'https://github.com/behdad/fribidi.git',
                'rev': '881b8d891cc61989ab8811b74d0e721f72bf913b',
                'type': 'git'
            }
        }
        stack = '\n'.join(
            [r'#1 0xa6760 in Test /src/fribidi/lib/common.h:3', r'random'])

        expected = (
            '#1 0xa6760 in Test <a href="'
            'https://github.com/behdad/fribidi/blob/'
            '881b8d891cc61989ab8811b74d0e721f72bf913b/lib/common.h#L3">'
            'fribidi/lib/common.h:3'
            '</a>\n'
            'random')
        self.assertEqual(
            show.filter_stacktrace(stack, 'type', '', revisions_dict),
            expected)
Пример #3
0
 def test_linkify_if_needed(self):
   """Ensure that we don't escape prelinked kernel links."""
   stack = ('[<ffffff90082bf4bc>] SyS_fchownat+0xdc/0x168 http://go/pakernel/'
            'msm-google/+/40e9b2ff3a280a8775cfcd5841e530ce78f94355/fs/open.c'
            '#622;msm-google/fs/open.c;')
   expected_stack = ('[&lt;ffffff90082bf4bc&gt;] SyS_fchownat+0xdc/0x168 '
                     '<a href="http://go/pakernel/'
                     'msm-google/+/'
                     '40e9b2ff3a280a8775cfcd5841e530ce78f94355/fs/open.c#622">'
                     'msm-google/fs/open.c</a>')
   self.assertEqual(
       show.filter_stacktrace(stack, 'type', {}, 'android', ''),
       expected_stack)
Пример #4
0
  def test_asan_v8(self):
    """Ensure it linkifies v8 win trace for chromium."""
    revisions_dict = {
        '/src': {
            'url': 'https://chromium.googlesource.com/v8/v8.git',
            'rev': '7fb2c3b6db3f889ea95851ca11dcb731b07a7925',
        }
    }
    stack = '\n'.join([(r'v8::internal::RootVisitor::VisitRootPointer '
                        r'[0x011517C5+53] (C:\b\c\b\win_asan_release\src\v8'
                        r'\src\visitors.h:69)'), r'random'])
    expected = ('v8::internal::RootVisitor::VisitRootPointer [0x011517C5+53] '
                '(<a href="https://chromium.googlesource.com/v8/v8/+/'
                '7fb2c3b6db3f889ea95851ca11dcb731b07a7925/v8/src/visitors.h#69"'
                '>v8/src/visitors.h:69</a>)\n'
                'random')

    self.assertEqual(
        show.filter_stacktrace(stack, 'type', revisions_dict, '', ''), expected)
Пример #5
0
  def test_asan_chromium(self):
    """Ensure it linkifies asan trace for chromium."""
    revisions_dict = {
        '/src': {
            'url': 'https://chromium.googlesource.com/chromium/src.git',
            'rev': '1d783bc2a3629b94c963debfa3feaee27092dd92',
        },
        'src/v8': {
            'url': 'https://chromium.googlesource.com/v8/v8.git',
            'rev': '7fb2c3b6db3f889ea95851ca11dcb731b07a7925',
        }
    }
    stack = '\n'.join(
        [r'#1 0xa6760 in Test /build/src/v8/src/api.cc:3', r'random'])

    expected = ('#1 0xa6760 in Test <a href="'
                'https://chromium.googlesource.com/v8/v8/+/'
                '7fb2c3b6db3f889ea95851ca11dcb731b07a7925/src/api.cc#3">'
                'v8/src/api.cc:3'
                '</a>\n'
                'random')
    self.assertEqual(
        show.filter_stacktrace(stack, 'type', revisions_dict, '', ''), expected)
Пример #6
0
 def test_xss(self):
     """Ensure that we escape untrusted stacktrace."""
     stack = 'aaaa\n<script>alert("XSS")</script>\ncccc'
     expected = 'aaaa\n&lt;script&gt;alert(&quot;XSS&quot;)&lt;/script&gt;\ncccc'
     self.assertEqual(show.filter_stacktrace(stack, 'type', '', {}),
                      expected)
Пример #7
0
 def test_clean(self):
     """Ensure it cleans trace with stack_clean_regex."""
     stack = 'aaaa\nbbbb\ncccc\naaaa\nbbbb\ncccc'
     expected = 'aaaa\ncccc\naaaa\ncccc'
     self.assertEqual(show.filter_stacktrace(stack, 'type', 'bb', {}),
                      expected)