mirror of https://github.com/google/oss-fuzz.git
Add gRPC to oss-fuzz projects (#373)
This commit is contained in:
parent
8339132314
commit
c5245aa9df
|
@ -0,0 +1,39 @@
|
|||
# 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-builder
|
||||
MAINTAINER mattkwong@google.com
|
||||
|
||||
RUN apt-get install -y software-properties-common python-software-properties
|
||||
RUN add-apt-repository ppa:webupd8team/java
|
||||
RUN apt-get update
|
||||
RUN apt-get -y install \
|
||||
vim \
|
||||
build-essential \
|
||||
openjdk-8-jdk \
|
||||
make \
|
||||
curl \
|
||||
autoconf \
|
||||
libtool
|
||||
|
||||
# Install Bazel
|
||||
RUN echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | tee /etc/apt/sources.list.d/bazel.list
|
||||
RUN curl https://bazel.build/bazel-release.pub.gpg | apt-key add -
|
||||
RUN apt-get update && apt-get install -y bazel
|
||||
|
||||
RUN git clone --recursive https://github.com/grpc/grpc grpc
|
||||
WORKDIR /src/grpc/
|
||||
COPY build.sh $SRC/
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/bash -eu
|
||||
# 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.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
FUZZER_FILES="\
|
||||
test/core/end2end/fuzzers/api_fuzzer.c \
|
||||
test/core/json/fuzzer.c \
|
||||
test/core/client_channel/uri_fuzzer_test.c \
|
||||
test/core/http/request_fuzzer.c \
|
||||
test/core/http/response_fuzzer.c \
|
||||
test/core/nanopb/fuzzer_response.c \
|
||||
test/core/nanopb/fuzzer_serverlist.c \
|
||||
test/core/slice/percent_decode_fuzzer.c \
|
||||
test/core/slice/percent_encode_fuzzer.c \
|
||||
test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
|
||||
test/core/end2end/fuzzers/client_fuzzer.c \
|
||||
test/core/end2end/fuzzers/server_fuzzer.c \
|
||||
test/core/security/ssl_server_fuzzer.c \
|
||||
"
|
||||
|
||||
FUZZER_LIBRARIES="\
|
||||
bazel-bin/*.a \
|
||||
bazel-bin/test/core/util/*.a \
|
||||
bazel-bin/test/core/end2end/*.a \
|
||||
bazel-bin/external/submodule_boringssl/*.so \
|
||||
bazel-bin/external/submodule_zlib/_objs/z/external/submodule_zlib/*.o \
|
||||
bazel-bin/third_party/nanopb/*.so \
|
||||
bazel-bin/*.a \
|
||||
"
|
||||
|
||||
# build project
|
||||
bazel
|
||||
BAZEL build --spawn_strategy=standalone --genrule_strategy=standalone :all test/... examples/cpp/...
|
||||
|
||||
CFLAGS="${CFLAGS} -Iinclude -I."
|
||||
CXXFLAGS="${CXXFLAGS} -Iinclude -I. -stdlib=libc++"
|
||||
|
||||
for file in $FUZZER_FILES; do
|
||||
fuzzer_name=$(basename $file .c)
|
||||
fuzzer_object="${file::-1}o"
|
||||
echo "Building fuzzer $fuzzer_name"
|
||||
$CC $CFLAGS \
|
||||
$file -c -o $fuzzer_object
|
||||
$CXX $CXXFLAGS \
|
||||
$fuzzer_object -o $OUT/$fuzzer_name \
|
||||
-lFuzzingEngine ${FUZZER_LIBRARIES}
|
||||
done
|
|
@ -0,0 +1,2 @@
|
|||
homepage: "http://www.grpc.io/"
|
||||
primary_contact: "mattkwong@google.com"
|
Loading…
Reference in New Issue