#!/bin/bash # # Copyright (c) 2021, The OpenThread Authors. # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. Neither the name of the copyright holder nor the # names of its contributors may be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # set -euxo pipefail ( mkdir build cd build || exit cmake -GNinja \ -DCMAKE_C_FLAGS="${CFLAGS}" \ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \ -DBUILD_TESTING=OFF \ -DOT_BUILD_EXECUTABLES=OFF \ -DOT_FUZZ_TARGETS=ON \ -DOT_MTD=OFF \ -DOT_PLATFORM=external \ -DOT_RCP=OFF \ -DOT_BORDER_AGENT=ON \ -DOT_BORDER_ROUTER=ON \ -DOT_BORDER_ROUTING=ON \ -DOT_CHANNEL_MANAGER=ON \ -DOT_CHANNEL_MONITOR=ON \ -DOT_COAP=ON \ -DOT_COAPS=ON \ -DOT_COAP_BLOCK=ON \ -DOT_COAP_OBSERVE=ON \ -DOT_COMMISSIONER=ON \ -DOT_DATASET_UPDATER=ON \ -DOT_DHCP6_CLIENT=ON \ -DOT_DHCP6_SERVER=ON \ -DOT_DNS_CLIENT=ON \ -DOT_DNSSD_SERVER=ON \ -DOT_ECDSA=ON \ -DOT_HISTORY_TRACKER=ON \ -DOT_IP6_FRAGM=ON \ -DOT_JAM_DETECTION=ON \ -DOT_JOINER=ON \ -DOT_LINK_RAW=ON \ -DOT_LOG_OUTPUT=APP \ -DOT_MAC_FILTER=ON \ -DOT_MDNS=ON \ -DOT_NETDATA_PUBLISHER=ON \ -DOT_NETDIAG_CLIENT=ON \ -DOT_PING_SENDER=ON \ -DOT_SERVICE=ON \ -DOT_SLAAC=ON \ -DOT_SNTP_CLIENT=ON \ -DOT_SRP_ADV_PROXY=ON \ -DOT_SRP_CLIENT=ON \ -DOT_SRP_SERVER=ON \ -DOT_THREAD_VERSION=1.3 \ -DOT_UPTIME=ON \ .. ninja ) find . -name '*-fuzzer' -exec cp -v '{}' "$OUT" ';' find . -name '*-fuzzer.dict' -exec cp -v '{}' "$OUT" ';' find . -name '*-fuzzer.options' -exec cp -v '{}' "$OUT" ';' fuzzers=$(find build/tests/fuzz -name "*-fuzzer") for f in $fuzzers; do fuzzer=$(basename "$f" -fuzzer) if [ -d "tests/fuzz/corpora/${fuzzer}" ]; then zip -j "$OUT/$(basename "$f")"_seed_corpus.zip tests/fuzz/corpora/"${fuzzer}"/* fi done