aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects/rustls
diff options
context:
space:
mode:
authorGravatar DavidKorczynski <david@adalogics.com>2021-11-18 16:03:30 +0000
committerGravatar GitHub <noreply@github.com>2021-11-18 16:03:30 +0000
commitbcfd36c3a1ae94f90a48909e41d16c7a50eb117b (patch)
treeb7cdd1798d2c6650db8d2424121279d55db248d0 /projects/rustls
parent16be1f2fb8b98973144803d90376bb1da5656cd9 (diff)
rustls: fix coverage build (#6852)
* rustls: fix coverage build * rustls: copy over the py script
Diffstat (limited to 'projects/rustls')
-rw-r--r--projects/rustls/Dockerfile8
-rwxr-xr-xprojects/rustls/build.sh8
-rw-r--r--projects/rustls/rustc.py28
3 files changed, 44 insertions, 0 deletions
diff --git a/projects/rustls/Dockerfile b/projects/rustls/Dockerfile
index 361e30a3..26d56771 100644
--- a/projects/rustls/Dockerfile
+++ b/projects/rustls/Dockerfile
@@ -16,9 +16,17 @@
FROM gcr.io/oss-fuzz-base/base-builder-rust
RUN apt-get update && apt-get install -y make autoconf automake libtool curl cmake python llvm-dev libclang-dev clang
+RUN apt-get --yes update \
+ && apt-get install --no-install-recommends --yes \
+ libssl-dev \
+ pkg-config \
+ python \
+ && apt-get clean \
+ && rm --recursive --force /var/lib/apt/lists/*
RUN git clone https://github.com/ctz/rustls
WORKDIR $SRC
COPY build.sh $SRC/
+COPY *.py $SRC/
diff --git a/projects/rustls/build.sh b/projects/rustls/build.sh
index 1f16177d..3e05fe4d 100755
--- a/projects/rustls/build.sh
+++ b/projects/rustls/build.sh
@@ -15,6 +15,14 @@
#
################################################################################
+if [ "$SANITIZER" = "coverage" ]
+then
+ export RUSTFLAGS="$RUSTFLAGS -C debug-assertions=no"
+ chmod +x $SRC/rustc.py
+ export RUSTC="$SRC/rustc.py"
+ export CFLAGS=""
+fi
+
cd $SRC/rustls
cargo fuzz build -O
cp fuzz/target/x86_64-unknown-linux-gnu/release/client $OUT/
diff --git a/projects/rustls/rustc.py b/projects/rustls/rustc.py
new file mode 100644
index 00000000..55ce4c40
--- /dev/null
+++ b/projects/rustls/rustc.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+# Copyright 2021 Google LLC
+#
+# 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.
+
+import sys
+import subprocess
+
+#Disable coverage for troubling crates.
+sys.argv[0] = "rustc"
+if "tokio_util" in sys.argv or "hyper" in sys.argv:
+ try:
+ sys.argv.remove("-Zinstrument-coverage")
+ except:
+ pass
+ print(sys.argv)
+subprocess.call(sys.argv)