Lines Matching +full:sanitizer +full:- +full:test
7 # http://www.apache.org/licenses/LICENSE-2.0
43 GCB_LOGS_BUCKET = 'oss-fuzz-gcb-logs'
66 class Build: # pylint: disable=too-few-public-methods
69 def __init__(self, fuzzing_engine, sanitizer, architecture): argument
71 self.sanitizer = sanitizer
74 self.sanitizer)
81 f'{self.fuzzing_engine}-{self.sanitizer}-{self.architecture}')
102 class Project: # pylint: disable=too-many-instance-attributes
103 """Class representing an OSS-Fuzz project."""
125 for sanitizer in self._sanitizers:
126 if isinstance(sanitizer, six.string_types):
127 processed_sanitizers.append(sanitizer)
128 elif isinstance(sanitizer, dict):
129 for key in sanitizer.keys():
142 return steps[-1]['id']
159 if build.architecture == 'i386' and build.sanitizer != 'address':
161 return (build.sanitizer in fuzzing_engine_info.supported_sanitizers and
191 'SANITIZER': build.sanitizer,
194 # https://github.com/google/oss-fuzz/issues/6035).
207 'python infra/helper.py build_fuzzers --sanitizer '
208 f'{build.sanitizer} --engine {build.fuzzing_engine} --architecture '
215 '-c',
220 (f'rm -r /out && cd /src && cd {project.workdir} && '
221 f'mkdir -p {build.out} && compile || '
242 return (f'{step_type}-{build.fuzzing_engine}-{build.sanitizer}'
243 f'-{build.architecture}')
246 def get_build_steps( # pylint: disable=too-many-locals, too-many-statements, too-many-branches, to…
267 # Sort engines to make AFL first to test if libFuzzer has an advantage in
270 for sanitizer in project.sanitizers:
272 build = Build(fuzzing_engine, sanitizer, architecture)
285 'python infra/helper.py build_fuzzers --sanitizer '
286 f'{build.sanitizer} --engine {build.fuzzing_engine} '
287 f'--architecture {build.architecture} {project.name}\n'
288 'python infra/helper.py check_build --sanitizer '
289 f'{build.sanitizer} --engine {build.fuzzing_engine} '
290 f'--architecture {build.architecture} {project.name}\n' +
292 # Test fuzz targets.
300 'bash', '-c',
304 get_id('build-check', build)
324 if build.sanitizer == 'dataflow' and build.fuzzing_engine == 'dataflow':
343 'bash', '-c',
359 build_lib.get_targets_list_url(bucket, project.name, build.sanitizer))
380 stamped_name = '-'.join([project.name, build.sanitizer, timestamp])
388 latest_version_file = '-'.join(
389 [project.name, build.sanitizer, LATEST_VERSION_FILENAME])
400 'args': ['bash', '-c', f'cd {build.out} && zip -r {zip_file} *'],
435 '-c',
436 'rm -r ' + build.out,
444 image = f'gcr.io/{base_images_project}/base-runner'
446 image += '-' + test_image_suffix
468 'bash', '-c',
469 ('for f in /corpus/*.zip; do unzip -q $f -d ${f%%.*}; done && '
480 def get_logs_url(build_id, cloud_project='oss-fuzz'):
486 def get_gcb_url(build_id, cloud_project='oss-fuzz'):
488 return (f'https://console.cloud.google.com/cloud-build/builds/{build_id}'
492 # pylint: disable=no-member
497 cloud_project='oss-fuzz'):
508 tags = [oss_fuzz_project + '-' + build_type, build_type, oss_fuzz_project]
537 parser.add_argument('--testing',
542 parser.add_argument('--test-image-suffix',
545 help='Use testing base-images.')
546 parser.add_argument('--branch',
549 help='Use specified OSS-Fuzz branch.')
550 parser.add_argument('--parallel',
566 image_project = 'oss-fuzz'
567 base_images_project = 'oss-fuzz-base'