[llvm] r282954 - [libFuzzer] move common parts of shell scripts into a separate file

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 30 14:12:30 PDT 2016


Author: kcc
Date: Fri Sep 30 16:12:30 2016
New Revision: 282954

URL: http://llvm.org/viewvc/llvm-project?rev=282954&view=rev
Log:
[libFuzzer] move common parts of shell scripts into a separate file

Added:
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh   (with props)
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/common.sh
Modified:
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/build.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/test.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.1f/build.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/build.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/test.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/build.sh
    llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/test.sh

Added: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh?rev=282954&view=auto
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh (added)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh Fri Sep 30 16:12:30 2016
@@ -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
+

Propchange: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/build-and-test.sh
------------------------------------------------------------------------------
    svn:executable = *

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/build.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/build.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/build.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/build.sh Fri Sep 30 16:12:30 2016
@@ -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

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/test.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/test.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/test.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/c-ares-CVE-2016-5180/test.sh Fri Sep 30 16:12:30 2016
@@ -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

Added: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/common.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/common.sh?rev=282954&view=auto
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/common.sh (added)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/common.sh Fri Sep 30 16:12:30 2016
@@ -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
+}

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.1f/build.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.1f/build.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.1f/build.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.1f/build.sh Fri Sep 30 16:12:30 2016
@@ -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

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/build.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/build.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/build.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/build.sh Fri Sep 30 16:12:30 2016
@@ -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

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/test.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/test.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/test.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/openssl-1.0.2d/test.sh Fri Sep 30 16:12:30 2016
@@ -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

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/build.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/build.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/build.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/build.sh Fri Sep 30 16:12:30 2016
@@ -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

Modified: llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/test.sh
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/test.sh?rev=282954&r1=282953&r2=282954&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/test.sh (original)
+++ llvm/trunk/lib/Fuzzer/fuzzer-test-suite/re2-2014-12-09/test.sh Fri Sep 30 16:12:30 2016
@@ -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




More information about the llvm-commits mailing list