mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-13 00:10:37 +00:00
[libFuzzer] move common parts of shell scripts into a separate file
llvm-svn: 282954
This commit is contained in:
parent
d7a929dcd9
commit
a9a320d2db
13
lib/Fuzzer/fuzzer-test-suite/build-and-test.sh
Executable file
13
lib/Fuzzer/fuzzer-test-suite/build-and-test.sh
Executable file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/common.sh
|
||||
BUILD=$SCRIPT_DIR/$1/build.sh
|
||||
TEST=$SCRIPT_DIR/$1/test.sh
|
||||
|
||||
[ ! -e $BUILD ] && echo "NO SUCH FILE: $BUILD" && exit 1
|
||||
[ ! -e $TEST ] && echo "NO SUCH FILE: $TEST" && exit 1
|
||||
|
||||
RUNDIR="RUNDIR-$1"
|
||||
mkdir -p $RUNDIR
|
||||
cd $RUNDIR
|
||||
$BUILD && $TEST
|
||||
|
@ -1,22 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
[ -e $(basename $0) ] && echo "PLEASE USE THIS SCRIPT FROM ANOTHER DIR" && exit 1
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
LIBFUZZER_SRC=$(dirname $(dirname $SCRIPT_DIR))
|
||||
|
||||
FUZZ_CXXFLAGS="-O2 -g -fsanitize=address -fsanitize-coverage=trace-pc-guard,trace-cmp,trace-gep,trace-div"
|
||||
|
||||
get() {
|
||||
[ ! -e SRC ] && git clone https://github.com/c-ares/c-ares.git SRC && (cd SRC && git reset --hard 51fbb479f7948fca2ace3ff34a15ff27e796afdd)
|
||||
}
|
||||
. $(dirname $0)/../common.sh
|
||||
build_lib() {
|
||||
rm -rf BUILD
|
||||
cp -rf SRC BUILD
|
||||
(cd BUILD && ./buildconf && ./configure CC="clang $FUZZ_CXXFLAGS" && make -j)
|
||||
}
|
||||
|
||||
get
|
||||
get_git_revision https://github.com/c-ares/c-ares.git 51fbb479f7948fca2ace3ff34a15ff27e796afdd SRC
|
||||
build_lib
|
||||
$LIBFUZZER_SRC/build.sh
|
||||
build_libfuzzer
|
||||
clang++ -g $SCRIPT_DIR/target.cc -I BUILD BUILD/.libs/libcares.a libFuzzer.a $FUZZ_CXXFLAGS -o $EXECUTABLE_NAME_BASE
|
||||
|
@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/../common.sh
|
||||
set -x
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
CORPUS=CORPUS-$EXECUTABLE_NAME_BASE
|
||||
[ -e $EXECUTABLE_NAME_BASE ] && ./$EXECUTABLE_NAME_BASE -max_total_time=10 2>&1 | tee log
|
||||
grep -Pzo "(?s)ERROR: AddressSanitizer: heap-buffer-overflow.*WRITE of size 1.*ares_create_query.*is located 0 bytes to the right of" log
|
||||
|
29
lib/Fuzzer/fuzzer-test-suite/common.sh
Normal file
29
lib/Fuzzer/fuzzer-test-suite/common.sh
Normal file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Don't allow to call these scripts from their directories.
|
||||
[ -e $(basename $0) ] && echo "PLEASE USE THIS SCRIPT FROM ANOTHER DIR" && exit 1
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
LIBFUZZER_SRC=$(dirname $(dirname $SCRIPT_DIR))
|
||||
FUZZ_CXXFLAGS="-O2 -g -fsanitize=address -fsanitize-coverage=trace-pc-guard,trace-cmp,trace-gep,trace-div"
|
||||
CORPUS=CORPUS-$EXECUTABLE_NAME_BASE
|
||||
JOBS=8
|
||||
|
||||
get_git_revision() {
|
||||
GIT_REPO="$1"
|
||||
GIT_REVISION="$2"
|
||||
TO_DIR="$3"
|
||||
[ ! -e $TO_DIR ] && git clone $GIT_REPO $TO_DIR && (cd $TO_DIR && git reset --hard $GIT_REVISION)
|
||||
}
|
||||
|
||||
get_git_tag() {
|
||||
GIT_REPO="$1"
|
||||
GIT_TAG="$2"
|
||||
TO_DIR="$3"
|
||||
[ ! -e $TO_DIR ] && git clone $GIT_REPO $TO_DIR && (cd $TO_DIR && git checkout $GIT_TAG)
|
||||
}
|
||||
|
||||
|
||||
build_libfuzzer() {
|
||||
$LIBFUZZER_SRC/build.sh
|
||||
}
|
@ -1,25 +1,13 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/../common.sh
|
||||
|
||||
[ -e $(basename $0) ] && echo "PLEASE USE THIS SCRIPT FROM ANOTHER DIR" && exit 1
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
LIBFUZZER_SRC=$(dirname $(dirname $SCRIPT_DIR))
|
||||
JOBS=20
|
||||
|
||||
# FUZZ_CXXFLAGS=" -g -fsanitize=address -fsanitize-coverage=edge"
|
||||
FUZZ_CXXFLAGS=" -g -fsanitize=address -fsanitize-coverage=trace-pc-guard,trace-cmp,trace-div,trace-gep"
|
||||
|
||||
get() {
|
||||
[ ! -e SRC ] && git clone https://github.com/openssl/openssl.git SRC && (cd SRC && git checkout OpenSSL_1_0_1f)
|
||||
# [ ! -e SRC ] && wget https://www.openssl.org/source/openssl-1.0.1f.tar.gz && tar xf openssl-1.0.1f.tar.gz && mv openssl-1.0.1f SRC
|
||||
}
|
||||
build_lib() {
|
||||
rm -rf BUILD
|
||||
cp -rf SRC BUILD
|
||||
(cd BUILD && ./config && make clean && make CC="clang $FUZZ_CXXFLAGS" -j $JOBS)
|
||||
}
|
||||
|
||||
get
|
||||
get_git_tag https://github.com/openssl/openssl.git OpenSSL_1_0_1f SRC
|
||||
build_lib
|
||||
$LIBFUZZER_SRC/build.sh
|
||||
build_libfuzzer
|
||||
clang++ -g $SCRIPT_DIR/target.cc -DCERT_PATH=\"$SCRIPT_DIR/\" $FUZZ_CXXFLAGS BUILD/libssl.a BUILD/libcrypto.a libFuzzer.a -o $EXECUTABLE_NAME_BASE
|
||||
|
@ -1,25 +1,13 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/../common.sh
|
||||
|
||||
[ -e $(basename $0) ] && echo "PLEASE USE THIS SCRIPT FROM ANOTHER DIR" && exit 1
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
LIBFUZZER_SRC=$(dirname $(dirname $SCRIPT_DIR))
|
||||
JOBS=20
|
||||
|
||||
# FUZZ_CXXFLAGS=" -g -fsanitize=address -fsanitize-coverage=edge"
|
||||
FUZZ_CXXFLAGS=" -g -fsanitize=address -fsanitize-coverage=trace-pc-guard,trace-cmp,trace-div,trace-gep"
|
||||
|
||||
get() {
|
||||
[ ! -e SRC ] && git clone https://github.com/openssl/openssl.git SRC && (cd SRC && git checkout OpenSSL_1_0_2d)
|
||||
# [ ! -e SRC ] && wget https://www.openssl.org/source/openssl-1.0.1f.tar.gz && tar xf openssl-1.0.1f.tar.gz && mv openssl-1.0.1f SRC
|
||||
}
|
||||
build_lib() {
|
||||
rm -rf BUILD
|
||||
cp -rf SRC BUILD
|
||||
(cd BUILD && ./config && make clean && make CC="clang $FUZZ_CXXFLAGS" -j $JOBS)
|
||||
}
|
||||
|
||||
get
|
||||
get_git_tag https://github.com/openssl/openssl.git OpenSSL_1_0_2d SRC
|
||||
build_lib
|
||||
$LIBFUZZER_SRC/build.sh
|
||||
echo clang++ -g $SCRIPT_DIR/target.cc -DCERT_PATH=\"$SCRIPT_DIR/\" $FUZZ_CXXFLAGS BUILD/libssl.a BUILD/libcrypto.a libFuzzer.a -lgcrypt -o $EXECUTABLE_NAME_BASE
|
||||
build_libfuzzer
|
||||
clang++ -g $SCRIPT_DIR/target.cc -DCERT_PATH=\"$SCRIPT_DIR/\" $FUZZ_CXXFLAGS BUILD/libssl.a BUILD/libcrypto.a libFuzzer.a -lgcrypt -o $EXECUTABLE_NAME_BASE
|
||||
|
@ -1,9 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -x
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
CORPUS=CORPUS-$EXECUTABLE_NAME_BASE
|
||||
JOBS=8
|
||||
. $(dirname $0)/../common.sh
|
||||
rm -rf $CORPUS
|
||||
mkdir $CORPUS
|
||||
[ -e $EXECUTABLE_NAME_BASE ] && ./$EXECUTABLE_NAME_BASE -artifact_prefix=$CORPUS/ -max_len=512 -jobs=$JOBS -workers=$JOBS $CORPUS
|
||||
|
@ -1,22 +1,13 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/../common.sh
|
||||
|
||||
[ -e $(basename $0) ] && echo "PLEASE USE THIS SCRIPT FROM ANOTHER DIR" && exit 1
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
LIBFUZZER_SRC=$(dirname $(dirname $SCRIPT_DIR))
|
||||
|
||||
FUZZ_CXXFLAGS="-O2 -g -fsanitize=address -fsanitize-coverage=trace-pc-guard,trace-cmp,trace-gep,trace-div"
|
||||
|
||||
get() {
|
||||
[ ! -e SRC ] && git clone https://github.com/google/re2.git SRC && (cd SRC && git reset --hard 499ef7eff7455ce9c9fae86111d4a77b6ac335de)
|
||||
}
|
||||
build_lib() {
|
||||
rm -rf BUILD
|
||||
cp -rf SRC BUILD
|
||||
(cd BUILD && make clean && CXX=clang++ CXXFLAGS="$FUZZ_CXXFLAGS" make -j)
|
||||
}
|
||||
|
||||
get
|
||||
get_git_revision https://github.com/google/re2.git 499ef7eff7455ce9c9fae86111d4a77b6ac335de SRC
|
||||
build_lib
|
||||
$LIBFUZZER_SRC/build.sh
|
||||
build_libfuzzer
|
||||
clang++ -g $SCRIPT_DIR/target.cc -I BUILD BUILD/obj/libre2.a libFuzzer.a $FUZZ_CXXFLAGS -o $EXECUTABLE_NAME_BASE
|
||||
|
@ -1,9 +1,6 @@
|
||||
#!/bin/bash
|
||||
. $(dirname $0)/../common.sh
|
||||
set -x
|
||||
SCRIPT_DIR=$(dirname $0)
|
||||
EXECUTABLE_NAME_BASE=$(basename $SCRIPT_DIR)
|
||||
CORPUS=CORPUS-$EXECUTABLE_NAME_BASE
|
||||
JOBS=8
|
||||
rm -rf $CORPUS
|
||||
mkdir $CORPUS
|
||||
[ -e $EXECUTABLE_NAME_BASE ] && ./$EXECUTABLE_NAME_BASE -exit_on_src_pos=re2/dfa.cc:474 -exit_on_src_pos=re2/dfa.cc:474 -runs=1000000 -jobs=$JOBS -workers=$JOBS $CORPUS
|
||||
|
Loading…
x
Reference in New Issue
Block a user