diff --git a/infra/base-images/Jenkinsfile b/infra/base-images/Jenkinsfile index c8265e144..1b43143cb 100644 --- a/infra/base-images/Jenkinsfile +++ b/infra/base-images/Jenkinsfile @@ -32,7 +32,4 @@ node { stage name: 'ossfuzz/libfuzzer-runner', concurrency: 1 sh "docker build $dockerOptions -t ossfuzz/libfuzzer-runner infra/base-images/libfuzzer-runner" - - stage name: 'ossfuzz/coverage', concurrency: 1 - sh "docker build $dockerOptions -t ossfuzz/coverage infra/base-images/coverage" } diff --git a/infra/base-images/all.sh b/infra/base-images/all.sh index 45b142261..39f563887 100755 --- a/infra/base-images/all.sh +++ b/infra/base-images/all.sh @@ -19,4 +19,3 @@ docker build --pull -t ossfuzz/base $@ infra/base-images/base docker build -t ossfuzz/base-clang $@ infra/base-images/base-clang docker build -t ossfuzz/base-libfuzzer $@ infra/base-images/base-libfuzzer docker build -t ossfuzz/libfuzzer-runner $@ infra/base-images/libfuzzer-runner -docker build -t ossfuzz/coverage $@ infra/base-images/coverage diff --git a/infra/base-images/base-clang/checkout_build_install_llvm.sh b/infra/base-images/base-clang/checkout_build_install_llvm.sh index 359601b17..74a1dbc6b 100755 --- a/infra/base-images/base-clang/checkout_build_install_llvm.sh +++ b/infra/base-images/base-clang/checkout_build_install_llvm.sh @@ -40,6 +40,8 @@ rm -rf /work/llvm mkdir /src/libfuzzer cp -r /src/llvm/lib/Fuzzer/* /src/libfuzzer/ +cp /src/llvm/tools/sancov/coverage-report-server.py /usr/local/bin/ + # Cleanup rm -rf /src/llvm apt-get remove --purge -y $LLVM_DEP_PACKAGES diff --git a/infra/base-images/base-libfuzzer/Dockerfile b/infra/base-images/base-libfuzzer/Dockerfile index b2ecb5be9..61da4dec1 100644 --- a/infra/base-images/base-libfuzzer/Dockerfile +++ b/infra/base-images/base-libfuzzer/Dockerfile @@ -16,7 +16,7 @@ FROM ossfuzz/base-clang MAINTAINER mike.aizatsky@gmail.com -RUN apt-get install -y libc6-dev libtool git subversion jq zip +RUN apt-get install -y libc6-dev libtool git subversion jq zip python3 ENV SANITIZER_FLAGS="-fsanitize=address" ENV COV_FLAGS="-fsanitize-coverage=edge,indirect-calls,8bit-counters" @@ -27,7 +27,7 @@ ENV FUZZER_LDFLAGS "-Wl,-whole-archive /usr/local/lib/libc++.a /usr/local/lib/li RUN mkdir /out && chmod a+w /out RUN mkdir /src/bin -COPY compile srcmap reproduce run just_run test /src/bin/ +COPY coverage_report compile srcmap reproduce run just_run test /src/bin/ ENV PATH=/src/bin:$PATH WORKDIR /src CMD ["compile"] diff --git a/infra/base-images/coverage/coverage b/infra/base-images/base-libfuzzer/coverage_report similarity index 83% rename from infra/base-images/coverage/coverage rename to infra/base-images/base-libfuzzer/coverage_report index ae413846e..728f0fd3d 100755 --- a/infra/base-images/coverage/coverage +++ b/infra/base-images/base-libfuzzer/coverage_report @@ -17,8 +17,8 @@ BINARY=$1 -sancov -symbolize *.sancov -strip_path_prefix=/ $BINARY >> cov.symcov +sancov -symbolize *.sancov -strip_path_prefix=/ $BINARY > cov.symcov (sleep 3; echo ; echo "Navigate to see coverage: http://127.0.0.1:8001/"; echo) & -/src/coverage/coverage-report-server.py --host 0.0.0.0 --symcov cov.symcov --srcpath / +/usr/local/bin/coverage-report-server.py --host 0.0.0.0 --symcov cov.symcov --srcpath / diff --git a/infra/base-images/coverage/Dockerfile b/infra/base-images/coverage/Dockerfile deleted file mode 100644 index a9c13e2b6..000000000 --- a/infra/base-images/coverage/Dockerfile +++ /dev/null @@ -1,23 +0,0 @@ -# Copyright 2016 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -FROM ossfuzz/base-clang -MAINTAINER vitalybuka@gmail.com -RUN apt-get install -y python3 curl - -RUN mkdir -p /src/coverage/ -RUN cd /src/coverage/ && curl -O http://llvm.org/svn/llvm-project/llvm/trunk/tools/sancov/coverage-report-server.py && chmod +x coverage-report-server.py -COPY coverage /src/coverage/ diff --git a/infra/helper.py b/infra/helper.py index 64fd17293..f4f7ba417 100755 --- a/infra/helper.py +++ b/infra/helper.py @@ -216,11 +216,10 @@ def coverage(run_args): 'docker', 'run', '-i', '-v', '%s:/out' % os.path.join(BUILD_DIR, 'out', args.target_name), '-v', '%s:/cov' % temp_dir, - '-v', '%s:/scripts' % os.path.join(OSSFUZZ_DIR, 'scripts'), '-w', '/cov', '-p', '8001:8001', - '-t', 'ossfuzz/coverage', - '/src/coverage/coverage', '/out/%s' % args.fuzzer_name, + '-t', 'ossfuzz/%s' % args.target_name, + 'coverage_report', '/out/%s' % args.fuzzer_name, ] print('Running:', _get_command_string(command)) diff --git a/infra/push-images/Jenkinsfile b/infra/push-images/Jenkinsfile index a336dce71..9d294da00 100644 --- a/infra/push-images/Jenkinsfile +++ b/infra/push-images/Jenkinsfile @@ -17,7 +17,7 @@ // Jenkins build script to push docker images to docker repository. def images = ['ossfuzz/base', 'ossfuzz/base-clang', 'ossfuzz/base-libfuzzer', - 'ossfuzz/libfuzzer-runner', 'ossfuzz/coverage'] + 'ossfuzz/libfuzzer-runner'] node() { docker.withRegistry('', 'docker-login') {