xref: /aosp_15_r20/external/AFLplusplus/test/test-libextensions.sh (revision 08b48e0b10e97b33e7b60c5b6e2243bd915777f2)
1*08b48e0bSAndroid Build Coastguard Worker#!/bin/sh
2*08b48e0bSAndroid Build Coastguard Worker
3*08b48e0bSAndroid Build Coastguard Worker. ./test-pre.sh
4*08b48e0bSAndroid Build Coastguard Worker
5*08b48e0bSAndroid Build Coastguard Workertest -z "$AFL_CC" && unset AFL_CC
6*08b48e0bSAndroid Build Coastguard Worker
7*08b48e0bSAndroid Build Coastguard Worker$ECHO "$BLUE[*] Testing: shared library extensions"
8*08b48e0bSAndroid Build Coastguard Workercc $CFLAGS -O0 -o test-compcov test-compcov.c > /dev/null 2>&1
9*08b48e0bSAndroid Build Coastguard Workertest -e ../libtokencap.so && {
10*08b48e0bSAndroid Build Coastguard Worker  AFL_TOKEN_FILE=token.out LD_PRELOAD=../libtokencap.so DYLD_INSERT_LIBRARIES=../libtokencap.so DYLD_FORCE_FLAT_NAMESPACE=1 ./test-compcov foobar > /dev/null 2>&1
11*08b48e0bSAndroid Build Coastguard Worker  grep -q BUGMENOT token.out > /dev/null 2>&1 && {
12*08b48e0bSAndroid Build Coastguard Worker    $ECHO "$GREEN[+] libtokencap did successfully capture tokens"
13*08b48e0bSAndroid Build Coastguard Worker  } || {
14*08b48e0bSAndroid Build Coastguard Worker    $ECHO "$RED[!] libtokencap did not capture tokens"
15*08b48e0bSAndroid Build Coastguard Worker    CODE=1
16*08b48e0bSAndroid Build Coastguard Worker  }
17*08b48e0bSAndroid Build Coastguard Worker  rm -f token.out
18*08b48e0bSAndroid Build Coastguard Worker} || {
19*08b48e0bSAndroid Build Coastguard Worker  $ECHO "$YELLOW[-] libtokencap is not compiled, cannot test"
20*08b48e0bSAndroid Build Coastguard Worker  INCOMPLETE=1
21*08b48e0bSAndroid Build Coastguard Worker}
22*08b48e0bSAndroid Build Coastguard Workertest -e ../libdislocator.so && {
23*08b48e0bSAndroid Build Coastguard Worker  {
24*08b48e0bSAndroid Build Coastguard Worker    ulimit -c 1
25*08b48e0bSAndroid Build Coastguard Worker    # DYLD_INSERT_LIBRARIES and DYLD_FORCE_FLAT_NAMESPACE is used on Darwin/MacOSX
26*08b48e0bSAndroid Build Coastguard Worker    LD_PRELOAD=../libdislocator.so DYLD_INSERT_LIBRARIES=../libdislocator.so DYLD_FORCE_FLAT_NAMESPACE=1 ./test-compcov BUFFEROVERFLOW > test.out 2>/dev/null
27*08b48e0bSAndroid Build Coastguard Worker  } > /dev/null 2>&1
28*08b48e0bSAndroid Build Coastguard Worker  grep -q BUFFEROVERFLOW test.out > /dev/null 2>&1 && {
29*08b48e0bSAndroid Build Coastguard Worker    $ECHO "$RED[!] libdislocator did not detect the memory corruption"
30*08b48e0bSAndroid Build Coastguard Worker    CODE=1
31*08b48e0bSAndroid Build Coastguard Worker  } || {
32*08b48e0bSAndroid Build Coastguard Worker    $ECHO "$GREEN[+] libdislocator did successfully detect the memory corruption"
33*08b48e0bSAndroid Build Coastguard Worker  }
34*08b48e0bSAndroid Build Coastguard Worker  rm -f test.out core test-compcov.core core.test-compcov
35*08b48e0bSAndroid Build Coastguard Worker} || {
36*08b48e0bSAndroid Build Coastguard Worker  $ECHO "$YELLOW[-] libdislocator is not compiled, cannot test"
37*08b48e0bSAndroid Build Coastguard Worker  INCOMPLETE=1
38*08b48e0bSAndroid Build Coastguard Worker}
39*08b48e0bSAndroid Build Coastguard Workerrm -f test-compcov
40*08b48e0bSAndroid Build Coastguard Worker
41*08b48e0bSAndroid Build Coastguard Worker. ./test-post.sh
42