folding coverage into base-libfuzzer since target images is where sources are

This commit is contained in:
Mike Aizatsky 2016-11-03 20:13:29 -07:00
parent 8f2935ccf1
commit 48778facde
8 changed files with 9 additions and 35 deletions

View File

@ -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"
}

View File

@ -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

View File

@ -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

View File

@ -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"]

View File

@ -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 /

View File

@ -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/

View File

@ -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))

View File

@ -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') {