xref: /netbsd-src/external/apache2/llvm/dist/libcxx/utils/ci/oss-fuzz.sh (revision 4d6fc14bc9b0c5bf3e30be318c143ee82cadd108)
1*4d6fc14bSjoerg#!/bin/bash -eu
2*4d6fc14bSjoerg
3*4d6fc14bSjoerg#
4*4d6fc14bSjoerg# This script runs the continuous fuzzing tests on OSS-Fuzz.
5*4d6fc14bSjoerg#
6*4d6fc14bSjoerg
7*4d6fc14bSjoergif [[ ${SANITIZER} = *undefined* ]]; then
8*4d6fc14bSjoerg  CXXFLAGS="${CXXFLAGS} -fsanitize=unsigned-integer-overflow -fsanitize-trap=unsigned-integer-overflow"
9*4d6fc14bSjoergfi
10*4d6fc14bSjoerg
11*4d6fc14bSjoergfor test in libcxx/test/libcxx/fuzzing/*.pass.cpp; do
12*4d6fc14bSjoerg    exe="$(basename ${test})"
13*4d6fc14bSjoerg    exe="${exe%.pass.cpp}"
14*4d6fc14bSjoerg    ${CXX} ${CXXFLAGS} \
15*4d6fc14bSjoerg        -std=c++14 \
16*4d6fc14bSjoerg        -DLIBCPP_OSS_FUZZ \
17*4d6fc14bSjoerg        -D_LIBCPP_HAS_NO_VENDOR_AVAILABILITY_ANNOTATIONS \
18*4d6fc14bSjoerg        -nostdinc++ -cxx-isystem libcxx/include \
19*4d6fc14bSjoerg        -lpthread -ldl \
20*4d6fc14bSjoerg        -o "${OUT}/${exe}" \
21*4d6fc14bSjoerg        ${test} \
22*4d6fc14bSjoerg        ${LIB_FUZZING_ENGINE}
23*4d6fc14bSjoergdone
24