xref: /netbsd-src/external/bsd/libfido2/dist/fuzz/build-coverage (revision 82d56013d7b633d116a93943de88e08335357a7c)
1#!/bin/sh -eux
2
3# Copyright (c) 2019 Yubico AB. All rights reserved.
4# Use of this source code is governed by a BSD-style
5# license that can be found in the LICENSE file.
6
7LIBCBOR="$1"
8LIBFIDO2="$2"
9
10CC="${CC:-clang}"
11CXX="${CXX:-clang++}"
12PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-${LIBCBOR}/install/lib/pkgconfig}"
13export CC PKG_CONFIG_PATH
14
15# Clean up.
16rm -rf "${LIBCBOR}/build" "${LIBCBOR}/install" "${LIBFIDO2}/build"
17
18# Patch, build, and install libcbor.
19(cd "${LIBCBOR}" && patch -N -l -s -p0 < "${LIBFIDO2}/fuzz/README") || true
20mkdir "${LIBCBOR}/build" "${LIBCBOR}/install"
21(cd "${LIBCBOR}/build" && cmake -DCMAKE_INSTALL_PREFIX="${LIBCBOR}/install" ..)
22make -C "${LIBCBOR}/build" all install
23
24# Build libfido2.
25mkdir -p "${LIBFIDO2}/build"
26export CFLAGS="-fprofile-instr-generate -fcoverage-mapping"
27export LDFLAGS="${CFLAGS}"
28(cd "${LIBFIDO2}/build" && cmake -DFUZZ=1 -DLIBFUZZER=1 \
29    -DCMAKE_BUILD_TYPE=Debug ..)
30make -C "${LIBFIDO2}/build"
31