Browse Source

Update the oss-fuzz build script to try to get it to work with cmake.

tags/json-c-0.14-20200419
Eric Haszlakiewicz 5 years ago
parent
commit
0c60125211
1 changed files with 29 additions and 7 deletions
  1. +29
    -7
      fuzz/build.sh

+ 29
- 7
fuzz/build.sh View File

@@ -15,16 +15,38 @@
# #
################################################################################ ################################################################################


./autogen.sh
./configure --enable-static --disable-shared
make -j$(nproc) all
ar rc json_c.a *.o
# This should be run from the top of the json-c source tree.


cp $SRC/*.dict $OUT/
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=OFF ..
make -j$(nproc)


LIB=$(pwd)/libjson-c.a
cd ..

# These seem to be set externally, but let's assign defaults to
# make it possible to at least partially test this standalone.
: ${SRC:=$(dirname "$0")}
: ${OUT:=$SRC/out}
: ${CXX:=gcc}
: ${CXXFLAGS:=}

[ -d "$OUT" ] || mkdir "$OUT"
cp $SRC/*.dict $OUT/.

# XXX this doesn't seem to make much sense, since $SRC is presumably
# the "fuzz" directory, which is _inside_ the json-c repo, rather than
# the other way around, but I'm just preserving existing behavior. -erh
INCS=$SRC/json-c
# Compat when testing standalone
[ -e "${INCS}" ] || ln -s .. "${INCS}"

set -x
set -v
for f in $SRC/*_fuzzer.cc; do for f in $SRC/*_fuzzer.cc; do
fuzzer=$(basename "$f" _fuzzer.cc) fuzzer=$(basename "$f" _fuzzer.cc)
$CXX $CXXFLAGS -std=c++11 -I$SRC/json-c \
$CXX $CXXFLAGS -std=c++11 -I$INCS \
$SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \ $SRC/${fuzzer}_fuzzer.cc -o $OUT/${fuzzer}_fuzzer \
-lFuzzingEngine $SRC/json-c/json_c.a
-lFuzzingEngine $LIB
done done

Loading…
Cancel
Save