Пример #1
0
    def test_reproducible_invalid_regression_range(self):
        """Test reproducible with invalid regression range."""
        testcase = test_utils.create_generic_testcase()
        testcase.one_time_crasher_flag = False
        testcase.regression = 'BAD'
        testcase.put()

        expected_result = {
            'result': {
                'error_message': 'Invalid regression range BAD.',
                'feedback_url': '',
                'found': False,
                'project': '',
                'suspected_components': '',
                'suspected_cls': '',
            }
        }

        self.assertIsNone(blame_task._prepare_predator_message(testcase))

        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        actual_result = testcase.get_metadata('predator_result')
        self.assertEqual(actual_result, expected_result)
Пример #2
0
    def test_custom_binary(self):
        """Test custom binary."""
        environment.set_value('CUSTOM_BINARY', True)

        testcase = test_utils.create_generic_testcase()
        expected_result = {
            'result': {
                'error_message': 'Not applicable to custom binaries.',
                'feedback_url': '',
                'found': False,
                'project': '',
                'suspected_components': '',
                'suspected_cls': '',
            }
        }

        self.assertIsNone(blame_task._prepare_predator_message(testcase))

        testcase = data_handler.get_testcase_by_id(testcase.key.id())
        actual_result = testcase.get_metadata('predator_result')
        self.assertEqual(actual_result, expected_result)

        environment.remove_key('CUSTOM_BINARY')
Пример #3
0
    def test_unreproducible(self):
        """Test unreproducible."""
        testcase = test_utils.create_generic_testcase()
        testcase.one_time_crasher_flag = True
        testcase.crash_revision = 399171
        testcase.regression = 'NA'
        testcase.put()

        expected_message = {
            'stack_trace': 'crashy_function()',
            'customized_data': {
                'crash_address':
                '0xdeadbeef',
                'job_type':
                'test_content_shell_drt',
                'dependencies': [{
                    'dep_path':
                    'src/v8',
                    'repo_url':
                    'https://chromium.googlesource.com/v8/v8',
                    'revision':
                    '3a590058de9b3640f73741b1e95f815f5c089988'
                }, {
                    'dep_path':
                    'src/third_party/gperf',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/deps/gperf',
                    'revision':
                    '97f2aa645b74c28c57eca56992235c79850fa9e0'
                }, {
                    'dep_path':
                    'src/third_party/skia',
                    'repo_url':
                    'https://skia.googlesource.com/skia',
                    'revision':
                    '4772bd537d153922cd772020e4ad4820090be51a'
                }, {
                    'dep_path':
                    'src/third_party/pdfium',
                    'repo_url':
                    'https://pdfium.googlesource.com/pdfium',
                    'revision':
                    '855665d4889853f8ac71519de8ff004dba8eb056'
                }, {
                    'dep_path':
                    'src',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/src',
                    'revision':
                    '52523d4e58d99cdb768791bf9ac532c917522460'
                }],
                'dependency_rolls': [],
                'regression_range': {
                    'old_revision': None,
                    'new_revision': None,
                    'dep_path': 'src',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/src'
                },
                'security_flag':
                False,
                'testcase_id':
                1,
                'sanitizer':
                'ASAN',
                'crash_type':
                'fake type'
            },
            'crash_revision': '52523d4e58d99cdb768791bf9ac532c917522460',
            'platform': 'linux',
            'client_id': 'clusterfuzz',
            'signature': 'crashy_function()'
        }

        actual_message = blame_task._prepare_predator_message(testcase)
        actual_message = json.loads(actual_message.data)
        self.assertDictEqual(actual_message, expected_message)
Пример #4
0
    def test_reproducible_regression_range(self):
        """Test reproducible with regression range."""
        testcase = test_utils.create_generic_testcase()
        testcase.crash_revision = 398287
        testcase.regression = '398287:399171'
        testcase.put()

        expected_message = {
            'stack_trace': 'crashy_function()',
            'customized_data': {
                'crash_address':
                '0xdeadbeef',
                'job_type':
                'test_content_shell_drt',
                'dependencies': [{
                    'dep_path':
                    'src/third_party/skia',
                    'repo_url':
                    'https://skia.googlesource.com/skia',
                    'revision':
                    'ee295645bd91fcbe1714847c5fe5341759037cc5'
                }, {
                    'dep_path':
                    'src/third_party/pdfium',
                    'repo_url':
                    'https://pdfium.googlesource.com/pdfium',
                    'revision':
                    'f7e108b2d0c2f67a143e99693df084bfff7037ec'
                }, {
                    'dep_path':
                    'src/third_party/bidichecker',
                    'repo_url':
                    'https://chromium.googlesource.com/'
                    'external/bidichecker/lib',
                    'revision':
                    '97f2aa645b74c28c57eca56992235c79850fa9e0'
                }, {
                    'dep_path':
                    'src/v8',
                    'repo_url':
                    'https://chromium.googlesource.com/v8/v8',
                    'revision':
                    'cba1fdd4d72e7c5b874f9eeb07901792f26c871a'
                }, {
                    'dep_path':
                    'src',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/src',
                    'revision':
                    'e4eb2a57c8667ab31903237e3c316fcaf4afe718'
                }],
                'dependency_rolls': [{
                    'old_revision':
                    'cba1fdd4d72e7c5b874f9eeb07901792f26c871a',
                    'new_revision':
                    '3a590058de9b3640f73741b1e95f815f5c089988',
                    'dep_path':
                    'src/v8',
                    'repo_url':
                    'https://chromium.googlesource.com/v8/v8'
                }, {
                    'new_revision':
                    '97f2aa645b74c28c57eca56992235c79850fa9e0',
                    'dep_path':
                    'src/third_party/gperf',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/deps/gperf'
                }, {
                    'old_revision':
                    'ee295645bd91fcbe1714847c5fe5341759037cc5',
                    'new_revision':
                    '4772bd537d153922cd772020e4ad4820090be51a',
                    'dep_path':
                    'src/third_party/skia',
                    'repo_url':
                    'https://skia.googlesource.com/skia'
                }, {
                    'old_revision':
                    'f7e108b2d0c2f67a143e99693df084bfff7037ec',
                    'new_revision':
                    '855665d4889853f8ac71519de8ff004dba8eb056',
                    'dep_path':
                    'src/third_party/pdfium',
                    'repo_url':
                    'https://pdfium.googlesource.com/pdfium'
                }, {
                    'old_revision':
                    'e4eb2a57c8667ab31903237e3c316fcaf4afe718',
                    'new_revision':
                    '52523d4e58d99cdb768791bf9ac532c917522460',
                    'dep_path':
                    'src',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/src'
                }],
                'regression_range': {
                    'old_revision': 'e4eb2a57c8667ab31903237e3c316fcaf4afe718',
                    'new_revision': '52523d4e58d99cdb768791bf9ac532c917522460',
                    'dep_path': 'src',
                    'repo_url':
                    'https://chromium.googlesource.com/chromium/src'
                },
                'security_flag':
                False,
                'testcase_id':
                1,
                'sanitizer':
                'ASAN',
                'crash_type':
                'fake type'
            },
            'crash_revision': 'e4eb2a57c8667ab31903237e3c316fcaf4afe718',
            'platform': 'linux',
            'client_id': 'clusterfuzz',
            'signature': 'crashy_function()'
        }

        actual_message = blame_task._prepare_predator_message(testcase)
        actual_message = json.loads(actual_message.data)
        self.assertDictEqual(actual_message, expected_message)