aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEdznux <edznux@gmail.com>2020-10-04 16:03:15 +0200
committerEdznux <edznux@gmail.com>2020-10-04 16:03:15 +0200
commit1e0bc2e5c3fff506bc8bdba9ba96530975c730f1 (patch)
tree6cfe62b78d6d91482a1f4c240246e14458735856 /test
parentb0de6fed11d4a8de8f016f1d8db0cb19a6b96eb2 (diff)
parent44c0dc6d961853806a07fa05b948686392ea93fc (diff)
downloadafl++-1e0bc2e5c3fff506bc8bdba9ba96530975c730f1.tar.gz
Merge remote-tracking branch 'origin/dev' into statsd_implem
Diffstat (limited to 'test')
-rwxr-xr-xtest/test-gcc-plugin.sh2
-rwxr-xr-xtest/test-performance.sh43
-rwxr-xr-xtest/test-unittests.sh2
-rw-r--r--test/unittests/unit_preallocable.c8
4 files changed, 47 insertions, 8 deletions
diff --git a/test/test-gcc-plugin.sh b/test/test-gcc-plugin.sh
index 2ed10a72..8b8cbd8e 100755
--- a/test/test-gcc-plugin.sh
+++ b/test/test-gcc-plugin.sh
@@ -3,7 +3,7 @@
. ./test-pre.sh
$ECHO "$BLUE[*] Testing: gcc_plugin"
-test -e ../afl-gcc-fast -a -e ../afl-gcc-rt.o && {
+test -e ../afl-gcc-fast -a -e ../afl-compiler-rt.o && {
SAVE_AFL_CC=${AFL_CC}
export AFL_CC=`command -v gcc`
../afl-gcc-fast -o test-instr.plain.gccpi ../test-instr.c > /dev/null 2>&1
diff --git a/test/test-performance.sh b/test/test-performance.sh
index cee46060..cd6eea64 100755
--- a/test/test-performance.sh
+++ b/test/test-performance.sh
@@ -117,6 +117,30 @@ test -e ../afl-clang-fast -a -e ../afl-fuzz && {
} || $ECHO "$RED[!] llvm_mode instrumentation failed"
} || $ECHO "$YELLOW[-] llvm_mode is not compiled, cannot test"
+$ECHO "$BLUE[*] Testing: gcc_plugin"
+GCCP=x
+test -e ../afl-gcc-fast -a -e ../afl-fuzz && {
+ ../afl-gcc-fast -o test-instr.gccp ../test-instr.c > /dev/null 2>&1
+ test -e test-instr.gccp && {
+ $ECHO "$GREEN[+] gcc_plugin compilation succeeded"
+ mkdir -p in
+ echo 0 > in/in
+ $ECHO "$GREY[*] running afl-fuzz for gcc_plugin for 30 seconds"
+ {
+ ../afl-fuzz -V 30 -s 123 -m ${MEM_LIMIT} -i in -o out-gccp -- ./test-instr.gccp
+ } >>errors 2>&1
+ test -n "$( ls out-gccp/queue/id:000002* 2> /dev/null )" && {
+ GCCP=`grep execs_done out-gccp/fuzzer_stats | awk '{print$3}'`
+ } || {
+ echo CUT----------------------------------------------------------------
+ cat errors
+ echo CUT----------------------------------------------------------------
+ $ECHO "$RED[!] afl-fuzz is not working correctly with gcc_plugin"
+ }
+ rm -rf in out-gccp errors test-instr.gccp
+ } || $ECHO "$RED[!] gcc_plugin instrumentation failed"
+} || $ECHO "$YELLOW[-] gcc_plugin is not compiled, cannot test"
+
$ECHO "$BLUE[*] Testing: qemu_mode"
QEMU=x
test -e ../afl-qemu-trace -a -e ../afl-fuzz && {
@@ -147,6 +171,9 @@ LAST_GCC=
LOW_LLVM=
HIGH_LLVM=
LAST_LLVM=
+LOW_GCCP=
+HIGH_GCCP=
+LAST_GCCP=
LOW_QEMU=
HIGH_QEMU=
LAST_QEMU=
@@ -155,12 +182,15 @@ test -s $FILE && {
while read LINE; do
G=`echo $LINE | awk '{print$1}'`
L=`echo $LINE | awk '{print$2}'`
- Q=`echo $LINE | awk '{print$3}'`
+ P=`echo $LINE | awk '{print$3}'`
+ Q=`echo $LINE | awk '{print$4}'`
test "$G" = x && G=
test "$L" = x && L=
+ test "$P" = x && P=
test "$Q" = x && Q=
test -n "$G" && LAST_GCC=$G
test -n "$L" && LAST_LLVM=$L
+ test -n "$P" && LAST_GCCP=$P
test -n "$Q" && LAST_QEMU=$Q
test -n "$G" -a -z "$LOW_GCC" && LOW_GCC=$G || {
test -n "$G" -a "$G" -lt "$LOW_GCC" 2> /dev/null && LOW_GCC=$G
@@ -168,6 +198,9 @@ test -s $FILE && {
test -n "$L" -a -z "$LOW_LLVM" && LOW_LLVM=$L || {
test -n "$L" -a "$L" -lt "$LOW_LLVM" 2> /dev/null && LOW_LLVM=$L
}
+ test -n "$P" -a -z "$LOW_GCCP" && LOW_GCCP=$P || {
+ test -n "$P" -a "$P" -lt "$LOW_GCCP" 2> /dev/null && LOW_GCCP=$P
+ }
test -n "$Q" -a -z "$LOW_QEMU" && LOW_QEMU=$Q || {
test -n "$Q" -a "$Q" -lt "$LOW_QEMU" 2> /dev/null && LOW_QEMU=$Q
}
@@ -177,6 +210,9 @@ test -s $FILE && {
test -n "$L" -a -z "$HIGH_LLVM" && HIGH_LLVM=$L || {
test -n "$L" -a "$L" -gt "$HIGH_LLVM" 2> /dev/null && HIGH_LLVM=$L
}
+ test -n "$P" -a -z "$HIGH_GCCP" && HIGH_GCCP=$P || {
+ test -n "$P" -a "$P" -gt "$HIGH_GCCP" 2> /dev/null && HIGH_GCCP=$P
+ }
test -n "$Q" -a -z "$HIGH_QEMU" && HIGH_QEMU=$Q || {
test -n "$Q" -a "$Q" -gt "$HIGH_QEMU" 2> /dev/null && HIGH_QEMU=$Q
}
@@ -184,11 +220,12 @@ test -s $FILE && {
$ECHO "$YELLOW[!] Reading saved data from $FILE completed, please compare the results:"
$ECHO "$BLUE[!] afl-cc: lowest=$LOW_GCC highest=$HIGH_GCC last=$LAST_GCC current=$GCC"
$ECHO "$BLUE[!] llvm_mode: lowest=$LOW_LLVM highest=$HIGH_LLVM last=$LAST_LLVM current=$LLVM"
+ $ECHO "$BLUE[!] gcc_plugin: lowest=$LOW_GCCP highest=$HIGH_GCCP last=$LAST_GCCP current=$GCCP"
$ECHO "$BLUE[!] qemu_mode: lowest=$LOW_QEMU highest=$HIGH_QEMU last=$LAST_QEMU current=$QEMU"
} || {
$ECHO "$YELLOW[!] First run, just saving data"
- $ECHO "$BLUE[!] afl-gcc=$GCC llvm_mode=$LLVM qemu_mode=$QEMU"
+ $ECHO "$BLUE[!] afl-gcc=$GCC llvm_mode=$LLVM gcc_plugin=$GCCP qemu_mode=$QEMU"
}
-echo "$GCC $LLVM $QEMU" >> $FILE
+echo "$GCC $LLVM $GCCP $QEMU" >> $FILE
$ECHO "$GREY[*] done."
$ECHO "$RESET"
diff --git a/test/test-unittests.sh b/test/test-unittests.sh
index f540b5f8..9a405e2f 100755
--- a/test/test-unittests.sh
+++ b/test/test-unittests.sh
@@ -5,5 +5,7 @@
$ECHO "$BLUE[*] Execution cmocka Unit-Tests $GREY"
unset AFL_CC
make -C .. unit || CODE=1 INCOMPLETE=1 :
+rm -rf unittests/unit_hash unittests/unit_rand
. ./test-post.sh
+
diff --git a/test/unittests/unit_preallocable.c b/test/unittests/unit_preallocable.c
index ea16da85..2f9c0b91 100644
--- a/test/unittests/unit_preallocable.c
+++ b/test/unittests/unit_preallocable.c
@@ -49,16 +49,16 @@ typedef struct prealloc_me
u8 *content[128];
-} prealloc_me_t;
+} element_t;
#define PREALLOCED_BUF_SIZE (64)
-prealloc_me_t prealloc_me_buf[PREALLOCED_BUF_SIZE];
+element_t prealloc_me_buf[PREALLOCED_BUF_SIZE];
s32 prealloc_me_size = 0;
static void test_alloc_free(void **state) {
(void)state;
- prealloc_me_t *prealloced = NULL;
+ element_t *prealloced = NULL;
PRE_ALLOC(prealloced, prealloc_me_buf, PREALLOCED_BUF_SIZE, prealloc_me_size);
assert_non_null(prealloced);
PRE_FREE(prealloced, prealloc_me_size);
@@ -69,7 +69,7 @@ static void test_prealloc_overflow(void **state) {
(void)state;
u32 i = 0;
- prealloc_me_t *prealloced[PREALLOCED_BUF_SIZE + 10];
+ element_t *prealloced[PREALLOCED_BUF_SIZE + 10];
for (i = 0; i < PREALLOCED_BUF_SIZE + 10; i++) {