def setUp(self): helpers.patch_environ(self) # Fake permissions. data_types.ExternalUserPermission( email='*****@*****.**', entity_name='fuzzer', entity_kind=data_types.PermissionEntityKind.FUZZER, auto_cc=data_types.AutoCCType.ALL).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='fuzz', entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.SECURITY).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='parent_', entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='parent', entity_kind=data_types.PermissionEntityKind.FUZZER, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='parent_cg', entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='parens', entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='parent', entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.ALL).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.ALL).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=True, auto_cc=data_types.AutoCCType.ALL).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job2', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.ALL).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job2', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE).put() data_types.ExternalUserPermission( email='*****@*****.**', entity_name='job3', entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE).put() # Fake fuzzers. data_types.Fuzzer(name='fuzzer').put() data_types.Fuzzer(name='parent', jobs=['job', 'job2', 'job3']).put() data_types.Job(name='job').put() data_types.Job(name='job2').put() data_types.Job(name='job3').put() data_types.FuzzTarget(engine='parent', binary='child', project='test-project').put() data_types.FuzzTargetJob(fuzz_target_name='parent_child', job='job', last_run=datetime.datetime.utcnow()).put() data_types.FuzzTarget(engine='parent', binary='child2', project='test-project').put() data_types.FuzzTargetJob(fuzz_target_name='parent_child2', job='job', last_run=datetime.datetime.utcnow()).put() data_types.FuzzTarget(engine='parent', binary='child', project='test-project').put() data_types.FuzzTargetJob(fuzz_target_name='parent_child', job='job3', last_run=datetime.datetime.utcnow()).put()
def setUp(self): """Set up method for strategy pool generator tests with patch.""" test_helpers.patch_environ(self) test_helpers.patch( self, ['bot.fuzzers.engine_common.decide_with_probability']) self.mock.decide_with_probability.return_value = True
def setUp(self): test_helpers.patch_environ(self) test_helpers.patch(self, [ 'base.utils.write_data_to_file', ]) environment.set_value('FAIL_RETRIES', 1)
def setUp(self): test_utils.set_up_pyfakefs(self) test_helpers.patch_environ(self) self.build_dir = '/test' self.fuzzer_name = 'fuzz_target' self.fs.create_dir(self.build_dir)
def setUp(self): helpers.patch_environ(self)
def setUp(self): test_utils.set_up_pyfakefs(self) helpers.patch_environ(self)
def setUp(self): helpers.patch_environ(self) project_config_get = local_config.ProjectConfig.get helpers.patch(self, [ 'base.utils.default_project_name', 'config.db_config.get', ('project_config_get', 'config.local_config.ProjectConfig.get'), ]) self.job = data_types.Job( name='linux_asan_chrome', environment_string=('SUMMARY_PREFIX = project\n' 'PROJECT_NAME = project\n' 'HELP_URL = help_url\n')) self.job2 = data_types.Job( name='windows_asan_chrome', environment_string=('SUMMARY_PREFIX = project\n' 'PROJECT_NAME = project\n' 'HELP_URL = help_url\n')) self.testcase = data_types.Testcase( job_type='linux_asan_chrome', fuzzer_name='libFuzzer', overridden_fuzzer_name='libfuzzer_binary_name', crash_type='Crash-type', crash_address='0x1337', crash_state='A\nB\nC\n', crash_revision=1337) self.testcase.set_metadata('fuzzer_binary_name', 'binary_name', update_testcase=False) self.testcase_assert = data_types.Testcase( job_type='linux_asan_chrome', fuzzer_name='libFuzzer', overridden_fuzzer_name='libfuzzer_binary_name', crash_type='ASSERT', crash_address='0x1337', crash_state='foo != bar\nB\nC\n', crash_revision=1337) self.testcase_assert.set_metadata('fuzzer_binary_name', 'binary_name', update_testcase=False) self.testcase_null = data_types.Testcase(job_type='linux_asan_chrome', fuzzer_name='fuzzer1', crash_type='UNKNOWN', crash_address='0x1337', crash_state='NULL', crash_revision=1337) self.testcase_empty = data_types.Testcase(job_type='linux_asan_chrome', fuzzer_name='fuzzer2', crash_type='', crash_address='', crash_state='', crash_revision=1337) self.testcase_bad_cast = data_types.Testcase( job_type='linux_asan_chrome', fuzzer_name='fuzzer3', crash_type='Bad-cast', crash_address='0x1337', crash_state= ('Bad-cast to blink::LayoutBlock from blink::LayoutTableSection\n' 'blink::LayoutObject::ContainerForFixedPosition\n' 'blink::LayoutObject::Container\n'), crash_revision=1337) self.testcase_bad_cast_without_crash_function = data_types.Testcase( job_type='linux_asan_chrome', fuzzer_name='fuzzer3', crash_type='Bad-cast', crash_address='0x1337', crash_state= ('Bad-cast to blink::LayoutBlock from blink::LayoutTableSection\n' ), crash_revision=1337) self.local_data_bundle = data_types.DataBundle( name='local_data_bundle') self.cloud_data_bundle = data_types.DataBundle( name='cloud_data_bundle') self.fuzzer1 = data_types.Fuzzer(name='fuzzer1', data_bundle_name=None, jobs=['linux_asan_chrome']) self.fuzzer2 = data_types.Fuzzer(name='fuzzer2', data_bundle_name='local_data_bundle', jobs=['linux_asan_chrome']) self.fuzzer3 = data_types.Fuzzer(name='fuzzer3', data_bundle_name='cloud_data_bundle', jobs=['linux_asan_chrome']) entities_to_put = [ self.testcase, self.testcase_assert, self.testcase_null, self.testcase_empty, self.testcase_bad_cast, self.testcase_bad_cast_without_crash_function, self.job, self.job2, self.local_data_bundle, self.cloud_data_bundle, self.fuzzer1, self.fuzzer2, self.fuzzer3 ] for entity in entities_to_put: entity.put() environment.set_value('FUZZ_DATA', '/tmp/inputs/fuzzer-common-data-bundles') environment.set_value('FUZZERS_DIR', '/tmp/inputs/fuzzers') self.mock.default_project_name.return_value = 'project' self.mock.project_config_get.side_effect = project_config_get
def setUp(self): helpers.patch_environ(self) # Fake permissions. data_types.ExternalUserPermission( email="*****@*****.**", entity_name="fuzzer", entity_kind=data_types.PermissionEntityKind.FUZZER, auto_cc=data_types.AutoCCType.ALL, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="fuzz", entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.SECURITY, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="parent_", entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="parent", entity_kind=data_types.PermissionEntityKind.FUZZER, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="parent_cg", entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="parens", entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="parent", entity_kind=data_types.PermissionEntityKind.FUZZER, is_prefix=True, auto_cc=data_types.AutoCCType.ALL, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.ALL, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=True, auto_cc=data_types.AutoCCType.ALL, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job2", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.ALL, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job2", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name="job3", entity_kind=data_types.PermissionEntityKind.JOB, is_prefix=False, auto_cc=data_types.AutoCCType.NONE, ).put() data_types.ExternalUserPermission( email="*****@*****.**", entity_name=None, entity_kind=data_types.PermissionEntityKind.UPLOADER, is_prefix=False, auto_cc=data_types.AutoCCType.NONE, ).put() # Fake fuzzers. data_types.Fuzzer(name="fuzzer").put() data_types.Fuzzer(name="parent", jobs=["job", "job2", "job3"]).put() data_types.Job(name="job").put() data_types.Job(name="job2").put() data_types.Job(name="job3").put() data_types.FuzzTarget(engine="parent", binary="child", project="test-project").put() data_types.FuzzTargetJob( fuzz_target_name="parent_child", job="job", last_run=datetime.datetime.utcnow(), ).put() data_types.FuzzTarget(engine="parent", binary="child2", project="test-project").put() data_types.FuzzTargetJob( fuzz_target_name="parent_child2", job="job", last_run=datetime.datetime.utcnow(), ).put() data_types.FuzzTarget(engine="parent", binary="child", project="test-project").put() data_types.FuzzTargetJob( fuzz_target_name="parent_child", job="job3", last_run=datetime.datetime.utcnow(), ).put()
def setUp(self): test_helpers.patch_environ(self) test_helpers.patch(self, [ 'handlers.cron.fuzzer_weights._query_helper', 'handlers.cron.fuzzer_weights.update_weight_for_target', ])
def setUp(self): test_helpers.patch_environ(self) flaskapp = flask.Flask('testflask') flaskapp.add_url_rule( '/schedule-ml-train-tasks', view_func=ml_train.Handler.as_view('/schedule-ml-train-tasks')) self.app = webtest.TestApp(flaskapp) test_helpers.patch( self, ['base.tasks.add_task', 'handlers.base_handler.Handler.is_cron']) # Create fake jobs. data_types.Job( name='libfuzzer_asan', environment_string='USE_CORPUS_FOR_ML = True\n' + 'USE_RNN_GENERATOR = True\n').put() data_types.Job( name='libfuzzer_msan', environment_string='USE_CORPUS_FOR_ML = True\n').put() data_types.Job( name='afl_asan', environment_string='USE_CORPUS_FOR_ML = False\n').put() data_types.Job( name='libfuzzer_asan_gradientfuzz', environment_string='USE_CORPUS_FOR_ML = True\n' + 'USE_GRADIENTFUZZ = True\n').put() data_types.Job( name='libfuzzer_asan_all', environment_string=( 'USE_CORPUS_FOR_ML = True\n' + 'USE_GRADIENTFUZZ = True\n' + 'USE_RNN_GENERATOR = True')).put() # Create fake fuzzers. data_types.Fuzzer( name='libFuzzer', jobs=['libfuzzer_asan', 'libfuzzer_asan_gradientfuzz']).put() data_types.Fuzzer(name='afl', jobs=['afl_asan']).put() # Create fake child fuzzers. data_types.FuzzTarget( engine='libFuzzer', binary='fake_fuzzer', project='test-project').put() data_types.FuzzTargetJob( fuzz_target_name='libFuzzer_fake_fuzzer', job='libfuzzer_asan').put() data_types.FuzzTarget( engine='afl', binary='fake_fuzzer', project='test-project').put() data_types.FuzzTargetJob( fuzz_target_name='afl_fake_fuzzer', job='afl_asan').put() data_types.FuzzTarget( engine='libFuzzer', binary='fake_gradientfuzzer', project='test-project').put() data_types.FuzzTargetJob( fuzz_target_name='libFuzzer_fake_gradientfuzzer', job='libfuzzer_asan_gradientfuzz').put() data_types.FuzzTarget( engine='libFuzzer', binary='fake_all_fuzzer', project='test-project').put() data_types.FuzzTargetJob( fuzz_target_name='libFuzzer_fake_all_fuzzer', job='libfuzzer_asan_all').put()
def setUp(self): super().setUp() test_helpers.patch_environ(self)
def setUp(self): test_helpers.patch_environ(self) test_helpers.patch(self, [ 'base.utils.is_oss_fuzz', 'handlers.cron.helpers.bot_manager.BotManager', 'system.environment.is_running_on_app_engine', 'google_cloud_utils.compute_engine_projects.load_project', ]) self.mock.is_oss_fuzz.return_value = True self.mock.is_running_on_app_engine.return_value = True self.mock.load_project.return_value = compute_engine_projects.Project( project_id='clusterfuzz-external', clusters=[ compute_engine_projects.Cluster( name='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', instance_count=997, instance_template='external-pre-zone2', distribute=True, worker=False, high_end=False), compute_engine_projects.Cluster( name='oss-fuzz-linux-zone3-host', gce_zone='us-central1-d', instance_count=2, instance_template='host-zone3', distribute=False, worker=False, high_end=False), compute_engine_projects.Cluster( name='oss-fuzz-linux-zone3-worker', gce_zone='us-central1-d', instance_count=16, instance_template='worker-zone3', distribute=True, worker=True, high_end=False), compute_engine_projects.Cluster( name='oss-fuzz-linux-zone3-host-high-end', gce_zone='us-central1-d', instance_count=1, instance_template='host-high-end-zone3', distribute=False, worker=False, high_end=True), compute_engine_projects.Cluster( name='oss-fuzz-linux-zone3-worker-high-end', gce_zone='us-central1-d', instance_count=2, instance_template='worker-zone3', distribute=True, worker=True, high_end=True), ], instance_templates=[ { 'name': 'external-pre-zone2', 'description': '{"version": 1}', 'properties': { 'metadata': { 'items': [], }, 'disks': [{ 'initializeParams': { 'diskSizeGb': 30, }, }], 'serviceAccounts': [{ 'email': 'email', 'scopes': [ 'https://www.googleapis.com/auth/' 'devstorage.full_control', 'https://www.googleapis.com/auth/logging.write', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/appengine.apis', 'https://www.googleapis.com/auth/prodxmon', 'https://www.googleapis.com/auth/bigquery', ] }], } }, { 'name': 'host-zone3', 'description': '{"version": 1}', 'properties': { 'metadata': { 'items': [], }, 'disks': [{ 'initializeParams': { 'diskSizeGb': 30, }, }], 'serviceAccounts': [{ 'email': 'email', 'scopes': [ 'https://www.googleapis.com/auth/' 'devstorage.full_control', 'https://www.googleapis.com/auth/logging.write', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/appengine.apis', 'https://www.googleapis.com/auth/prodxmon', 'https://www.googleapis.com/auth/bigquery', ] }], } }, { 'name': 'worker-zone3', 'description': '{"version": 1}', 'properties': { 'metadata': { 'items': [], }, 'disks': [{ 'initializeParams': { 'diskSizeGb': 30, }, }], 'serviceAccounts': [{ 'email': 'email', 'scopes': [ 'https://www.googleapis.com/auth/' 'devstorage.full_control', 'https://www.googleapis.com/auth/logging.write', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/prodxmon', ] }], } }, { 'name': 'host-high-end-zone3', 'description': '{"version": 1}', 'properties': { 'metadata': { 'items': [], }, 'disks': [{ 'initializeParams': { 'diskSizeGb': 100, }, }], 'serviceAccounts': [{ 'email': 'email', 'scopes': [ 'https://www.googleapis.com/auth/' 'devstorage.full_control', 'https://www.googleapis.com/auth/logging.write', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/prodxmon', ] }], } }, ], host_worker_assignments=[ compute_engine_projects.HostWorkerAssignment( host='oss-fuzz-linux-zone3-host', worker='oss-fuzz-linux-zone3-worker', workers_per_host=8), compute_engine_projects.HostWorkerAssignment( host='oss-fuzz-linux-zone3-host-high-end', worker='oss-fuzz-linux-zone3-worker-high-end', workers_per_host=2), ]) data_types.OssFuzzProject( id='proj1', name='proj1', cpu_weight=1.0, service_account='*****@*****.**').put() data_types.OssFuzzProject( id='proj2', name='proj2', cpu_weight=2.0, service_account='*****@*****.**').put() data_types.OssFuzzProject( id='proj3', name='proj3', cpu_weight=5.0, service_account='*****@*****.**').put() data_types.OssFuzzProject( id='proj4', name='proj4', cpu_weight=1.0, service_account='*****@*****.**').put() data_types.OssFuzzProject( id='proj5', name='proj5', cpu_weight=1.0, service_account='*****@*****.**', disk_size_gb=10).put() data_types.OssFuzzProject( id='proj6', name='proj6', cpu_weight=1.0, service_account='*****@*****.**', high_end=True).put() for j in range(1, 7): project_name = 'proj%d' % j data_types.WorkerTlsCert( id=project_name, project_name=project_name, cert_contents=project_name.encode() + b'_cert', key_contents=project_name.encode() + b'_key').put() data_types.OssFuzzProjectInfo(id='old_proj', name='old_proj').put() data_types.OssFuzzProjectInfo( id='proj2', name='proj2', clusters=[ data_types.OssFuzzProjectInfo.ClusterInfo( cluster='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', cpu_count=1, ), data_types.OssFuzzProjectInfo.ClusterInfo( cluster='old-cluster', gce_zone='us-east2-a', cpu_count=1, ), ]).put() data_types.OssFuzzProjectInfo( id='proj3', name='proj3', clusters=[ data_types.OssFuzzProjectInfo.ClusterInfo( cluster='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', cpu_count=499, ) ]).put() data_types.OssFuzzProjectInfo( id='proj4', name='proj4', clusters=[ data_types.OssFuzzProjectInfo.ClusterInfo( cluster='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', cpu_count=99, ) ]).put() data_types.OssFuzzProjectInfo( id='proj5', name='proj5', clusters=[ data_types.OssFuzzProjectInfo.ClusterInfo( cluster='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', cpu_count=99, ) ]).put() data_types.OssFuzzProjectInfo( id='old_proj', name='old_proj', clusters=[ data_types.OssFuzzProjectInfo.ClusterInfo( cluster='oss-fuzz-linux-zone2-pre', gce_zone='us-east2-a', cpu_count=5, ) ]).put() data_types.HostWorkerAssignment( id='old-host-0', host_name='old-host', worker_name='worker', instance_num=0).put() instance_groups = {} instance_templates = {} self.mock.BotManager.side_effect = functools.partial( MockBotManager, instance_groups=instance_groups, instance_templates=instance_templates)
def setUp(self): helpers.patch_environ(self) self.plugins_root_dir = '/plugins' os.environ['MUTATOR_PLUGINS_DIR'] = self.plugins_root_dir
def setUp(self): helpers.patch_environ(self) test_utils.set_up_pyfakefs(self) self.plugins_root_dir = '/plugins' os.environ['MUTATOR_PLUGINS_DIR'] = self.plugins_root_dir
def setUp(self): helpers.patch(self, [ 'bot.fuzzers.engine_common.unpack_seed_corpus_if_needed', 'bot.tasks.task_creation.create_tasks', 'bot.tasks.setup.update_fuzzer_and_data_bundles', 'build_management.build_manager.setup_build', 'fuzzing.corpus_manager.backup_corpus', 'fuzzing.corpus_manager.GcsCorpus.rsync_to_disk', 'fuzzing.corpus_manager.FuzzTargetCorpus.rsync_from_disk', 'datastore.ndb.transaction', 'google_cloud_utils.blobs.write_blob', 'google_cloud_utils.storage.write_data', ]) helpers.patch_environ(self) self.mock.setup_build.side_effect = self._mock_setup_build self.mock.rsync_to_disk.side_effect = self._mock_rsync_to_disk self.mock.rsync_from_disk.side_effect = self._mock_rsync_from_disk self.mock.update_fuzzer_and_data_bundles.return_value = True self.mock.write_blob.return_value = 'key' self.mock.backup_corpus.return_value = 'backup_link' def mocked_unpack_seed_corpus_if_needed(*args, **kwargs): """Mock's assert called methods are not powerful enough to ensure that unpack_seed_corpus_if_needed was called once with force_unpack=True. Instead, just assert that it was called once and during the call assert that it was called correctly. """ self.assertTrue(kwargs.get('force_unpack', False)) self.mock.unpack_seed_corpus_if_needed.side_effect = ( mocked_unpack_seed_corpus_if_needed) data_types.FuzzTarget( engine='libFuzzer', binary='test_fuzzer', project='test-project').put() data_types.FuzzTargetJob( fuzz_target_name='libFuzzer_test_fuzzer', engine='libFuzzer', job='libfuzzer_asan_job').put() self.fuzz_inputs_disk = tempfile.mkdtemp() self.bot_tmpdir = tempfile.mkdtemp() self.corpus_bucket = tempfile.mkdtemp() self.corpus_dir = os.path.join(self.corpus_bucket, 'corpus') self.quarantine_dir = os.path.join(self.corpus_bucket, 'quarantine') self.shared_corpus_dir = os.path.join(self.corpus_bucket, 'shared') shutil.copytree(os.path.join(TEST_DIR, 'corpus'), self.corpus_dir) shutil.copytree(os.path.join(TEST_DIR, 'quarantine'), self.quarantine_dir) shutil.copytree(os.path.join(TEST_DIR, 'shared'), self.shared_corpus_dir) os.environ['BOT_TMPDIR'] = self.bot_tmpdir os.environ['FUZZ_INPUTS'] = self.fuzz_inputs_disk os.environ['FUZZ_INPUTS_DISK'] = self.fuzz_inputs_disk os.environ['CORPUS_BUCKET'] = 'bucket' os.environ['QUARANTINE_BUCKET'] = 'bucket-quarantine' os.environ['SHARED_CORPUS_BUCKET'] = 'bucket-shared' os.environ['JOB_NAME'] = 'libfuzzer_asan_job' os.environ['FAIL_RETRIES'] = '1' os.environ['APP_REVISION'] = '1337' # ndb.transaction seems to cause hangs with testbed when run after another # test that uses testbed. self.mock.transaction.side_effect = lambda f, **_: f()
def setUp(self): super(SetSanitizerOptionsTest, self).setUp() test_helpers.patch_environ(self)
def setUp(self): test_helpers.patch_environ(self) self.temp_dir = tempfile.mkdtemp()
def setUp(self): test_helpers.patch(self, ['libs.handler.get_email_and_access_token']) self.app = webtest.TestApp( webapp2.WSGIApplication([('/', OAuthHandler)])) test_helpers.patch_environ(self) os.environ['AUTH_DOMAIN'] = 'localhost'
def setUp(self): helpers.patch_environ(self) os.environ['BOT_NAME'] = 'bot'
def setUp(self): helpers.patch(self, ['metrics.logs.update_entry_with_exc']) helpers.patch_environ(self) self.maxDiff = None # pylint: disable=invalid-name
def setUp(self): test_helpers.patch_environ(self) self.valid_hard_timeout = 500 self.invalid_hard_timeout = engine_common.POSTPROCESSING_TIME - 1 self.valid_merge_timeout = 15
def setUp(self): helpers.patch_environ(self) self.testcase = data_types.Testcase() self.testcase.one_time_crasher_flag = False self.testcase.crash_state = 'fake_crash'
def setUp(self): test_helpers.patch_environ(self)
def setUp(self): helpers.patch_environ(self) data_types.Job(name='job_linux', platform='LINUX').put() data_types.Job(name='job_project', platform='PROJECT_LINUX_LIB').put()
def setUp(self): self.maxDiff = None # pylint: disable=invalid-name test_helpers.patch_environ(self) os.environ["BUILD_DIR"] = DATA_DIR
def setUp(self): clear_temp_dir() create_temp_dir() test_helpers.patch_environ(self) afl_launcher_integration_test.dont_use_strategies(self)
def setUp(self): test_helpers.patch_environ(self) test_utils.set_up_pyfakefs(self) environment.set_value('FAIL_RETRIES', 1)
def setUp(self): test_helpers.patch_environ(self) self.valid_hard_timeout = 500 self.valid_merge_timeout = 15
def setUp(self): """Initialize path for a local copy of the dictionary and other values.""" test_helpers.patch_environ(self) self.local_dict_path = os.path.join( DATA_DIRECTORY, dictionary_manager.RECOMMENDED_DICTIONARY_FILENAME) environment.set_value('FAIL_RETRIES', 1)
def setUp(self): test_helpers.patch_environ(self) self.maxDiff = None # pylint: disable=invalid-name data_types.Fuzzer( name='testFuzzer', stats_columns=('sum(t.blah) as blah, custom(j.new_crashes) ' 'as new_crashes, _EDGE_COV as edge_coverage, ' '_FUNC_COV as func_coverage, ' '_CORPUS_SIZE as corpus_size, ' '_CORPUS_BACKUP as corpus_backup, ' '_QUARANTINE_SIZE as quarantine_size, ' '_COV_REPORT as coverage_report, ' '_FUZZER_RUN_LOGS as fuzzer_logs,' '_PERFORMANCE_REPORT as performance_report'), stats_column_descriptions=( 'blah: "blah description"\n' 'func_coverage: "func coverage description"\n')).put() data_types.Fuzzer( name='testFuzzer2', stats_columns=('sum(t.blah) as blah, custom(j.new_crashes) ' 'as new_crashes, _EDGE_COV as edge_coverage, ' '_FUNC_COV as func_coverage, ' '_CORPUS_SIZE as corpus_size, ' '_CORPUS_BACKUP as corpus_backup, ' '_QUARANTINE_SIZE as quarantine_size, ' '_COV_REPORT as coverage_report, ' '_FUZZER_RUN_LOGS as fuzzer_logs,' '_PERFORMANCE_REPORT as performance_report'), stats_column_descriptions=( 'blah: "blah description"\n' 'func_coverage: "func coverage description"\n')).put() data_types.Job(name='job', environment_string='FUZZ_LOGS_BUCKET = bucket').put() now = datetime.datetime.utcnow() data_types.FuzzTarget(engine='testFuzzer', project='test-project', binary='1_fuzzer').put() data_types.FuzzTargetJob(fuzz_target_name='testFuzzer_1_fuzzer', job='job', last_run=now).put() data_types.FuzzTarget(engine='testFuzzer', project='test-project', binary='2_fuzzer').put() data_types.FuzzTargetJob(fuzz_target_name='testFuzzer_2_fuzzer', job='job', last_run=now).put() data_types.FuzzTarget(engine='testFuzzer', project='test-project', binary='3_fuzzer').put() data_types.FuzzTargetJob(fuzz_target_name='testFuzzer_3_fuzzer', job='job', last_run=now).put() data_types.FuzzTarget(engine='testFuzzer2', project='test-project', binary='1_fuzzer').put() data_types.FuzzTargetJob(fuzz_target_name='testFuzzer2_1_fuzzer', job='job', last_run=now).put() cov_info = data_types.CoverageInformation(fuzzer='2_fuzzer', date=datetime.date( 2016, 10, 19)) cov_info.edges_covered = 11 cov_info.edges_total = 30 cov_info.functions_covered = 10 cov_info.functions_total = 15 cov_info.html_report_url = 'https://report_for_2_fuzzer/20161019' cov_info.corpus_size_units = 20 cov_info.corpus_size_bytes = 200 cov_info.quarantine_size_units = 0 cov_info.quarantine_size_bytes = 0 cov_info.corpus_location = 'gs://corpus' cov_info.corpus_backup_location = 'gs://corpus-backup/file.zip' cov_info.quarantine_location = 'gs://quarantine' cov_info.put() cov_info = data_types.CoverageInformation(fuzzer='2_fuzzer', date=datetime.date( 2016, 10, 21)) cov_info.edges_covered = 15 cov_info.edges_total = 30 cov_info.functions_covered = 11 cov_info.functions_total = 15 cov_info.html_report_url = 'https://report_for_2_fuzzer/20161021' cov_info.corpus_size_units = 40 cov_info.corpus_size_bytes = 400 cov_info.quarantine_size_units = 8 cov_info.quarantine_size_bytes = 80 cov_info.corpus_location = 'gs://corpus' cov_info.corpus_backup_location = 'gs://corpus-backup/file.zip' cov_info.quarantine_location = 'gs://quarantine' cov_info.put() cov_info = data_types.CoverageInformation(fuzzer='1_fuzzer', date=datetime.date( 2016, 10, 20)) cov_info.edges_covered = 17 cov_info.edges_total = 38 cov_info.functions_covered = 12 cov_info.functions_total = 19 cov_info.html_report_url = 'https://report_for_1_fuzzer/20161020' cov_info.corpus_size_units = 47 cov_info.corpus_size_bytes = 480 cov_info.quarantine_size_units = 3 cov_info.quarantine_size_bytes = 8 cov_info.corpus_location = 'gs://corpus' cov_info.corpus_backup_location = 'gs://corpus-backup/file.zip' cov_info.quarantine_location = 'gs://quarantine' cov_info.put() self.client = mock.Mock(spec_set=big_query.Client) test_helpers.patch(self, [ 'google_cloud_utils.big_query.Client', ]) self.mock.Client.return_value = self.client