From b74211ecf917a0d2fbec9b74d4baa59ab44a855a Mon Sep 17 00:00:00 2001 From: Abhishek Arya Date: Mon, 6 Jul 2020 13:13:02 -0700 Subject: [PATCH] Skip coverage build in CI for non C/C++ projects. (#4075) * Skip coverage build in CI for non C/C++ projects. Fixes https://github.com/google/oss-fuzz/issues/4074 * Test wasmtime. --- infra/ci/build.py | 11 +++++++++++ projects/wasmtime/build.sh | 1 + 2 files changed, 12 insertions(+) diff --git a/infra/ci/build.py b/infra/ci/build.py index 98624d461..7d695acab 100755 --- a/infra/ci/build.py +++ b/infra/ci/build.py @@ -28,6 +28,9 @@ DEFAULT_ARCHITECTURES = ['x86_64'] DEFAULT_ENGINES = ['afl', 'honggfuzz', 'libfuzzer'] DEFAULT_SANITIZERS = ['address', 'undefined'] +# Languages from project.yaml that have code coverage support. +LANGUAGES_WITH_COVERAGE_SUPPORT = ['c', 'c++'] + def get_modified_buildable_projects(): """Returns a list of all the projects modified in this commit that have a @@ -112,6 +115,14 @@ def build_project(project): engine = os.getenv('ENGINE') sanitizer = os.getenv('SANITIZER') architecture = os.getenv('ARCHITECTURE') + language = project_yaml.get('language') + + if (sanitizer == 'coverage' and + language not in LANGUAGES_WITH_COVERAGE_SUPPORT): + print(('Project "{project}" is written in "{language}", ' + 'coverage is not supported yet.').format(project=project, + language=language)) + return if sanitizer != 'coverage' and not should_build(project_yaml): print(('Specified build: engine: {0}, sanitizer: {1}, architecture: {2} ' diff --git a/projects/wasmtime/build.sh b/projects/wasmtime/build.sh index c4f504598..59b5df68e 100755 --- a/projects/wasmtime/build.sh +++ b/projects/wasmtime/build.sh @@ -23,6 +23,7 @@ PROJECT_DIR=$SRC/wasmtime cd $PROJECT_DIR/fuzz && cargo fuzz build -O --debug-assertions --all-features FUZZ_TARGET_OUTPUT_DIR=$PROJECT_DIR/target/x86_64-unknown-linux-gnu/release + for f in $SRC/wasmtime/fuzz/fuzz_targets/*.rs do FUZZ_TARGET_NAME=$(basename ${f%.*})