1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
#!/bin/bash
cd $SRC/ada-url
mkdir build
AMALGAMATE_OUTPUT_PATH=./build/singleheader python3 singleheader/amalgamate.py
$CXX $CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c fuzz/parse.cc -o parse.o
$CXX $CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE parse.o \
-o $OUT/parse
$CXX $CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c fuzz/can_parse.cc -o can_parse.o
$CXX $CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE can_parse.o \
-o $OUT/can_parse
$CXX $CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c fuzz/idna.cc -o idna.o
$CXX $CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE idna.o \
-o $OUT/idna
$CXX $CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c fuzz/url_search_params.cc -o url_search_params.o
$CXX $CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE url_search_params.o \
-o $OUT/url_search_params
# IMPORTANT
#
# We use std_regex_provider for testing purposes.
# It is not encouraged or recommended to be used within production
# environments due to security problems.
#
# Please do not enable it on production systems!
#
$CXX -DADA_USE_UNSAFE_STD_REGEX_PROVIDER=1 \
$CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c fuzz/url_pattern.cc -o url_pattern.o
$CXX -DADA_USE_UNSAFE_STD_REGEX_PROVIDER=1 \
$CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE \
url_pattern.o \
-o $OUT/url_pattern
$CXX $CFLAGS $CXXFLAGS \
-std=c++20 \
-I build/singleheader \
-c build/singleheader/ada.cpp -o ada.o
$CC $CFLAGS $CXXFLAGS \
-I build/singleheader \
-c fuzz/ada_c.c -o ada_c.o
$CXX $CFLAGS $CXXFLAGS $LIB_FUZZING_ENGINE ./ada.o ada_c.o \
-o $OUT/ada_c
cp $SRC/ada-url/fuzz/*.dict $SRC/ada-url/fuzz/*.options $OUT/
# Build unit test
mkdir build-tests
cd build-tests
cmake -DADA_TESTING=True ..
make
|