Home | History | Annotate | Line # | Download | only in fuzz
build-coverage revision 1.1.1.3
      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 
      7 LIBCBOR="$1"
      8 LIBFIDO2="$2"
      9 
     10 CC="${CC:-clang}"
     11 CXX="${CXX:-clang++}"
     12 PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-${LIBCBOR}/install/lib/pkgconfig}"
     13 export CC PKG_CONFIG_PATH
     14 
     15 # Clean up.
     16 rm -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
     20 mkdir "${LIBCBOR}/build" "${LIBCBOR}/install"
     21 (cd "${LIBCBOR}/build" && cmake -DBUILD_SHARED_LIBS=ON \
     22 	-DCMAKE_INSTALL_PREFIX="${LIBCBOR}/install" ..)
     23 make -C "${LIBCBOR}/build" VERBOSE=1 all install
     24 
     25 # Build libfido2.
     26 mkdir -p "${LIBFIDO2}/build"
     27 export CFLAGS="-fprofile-instr-generate -fcoverage-mapping"
     28 export LDFLAGS="${CFLAGS}"
     29 (cd "${LIBFIDO2}/build" && cmake -DFUZZ=ON -DLIBFUZZER=ON \
     30     -DCMAKE_BUILD_TYPE=Debug ..)
     31 make -C "${LIBFIDO2}/build"
     32