about summary refs log tree commit diff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/test-compcov.c3
-rwxr-xr-xtest/test.sh10
-rw-r--r--test/travis/bionic/Dockerfile43
-rw-r--r--test/travis/trusty/Dockerfile48
-rw-r--r--test/travis/xenial/Dockerfile45
5 files changed, 146 insertions, 3 deletions
diff --git a/test/test-compcov.c b/test/test-compcov.c
index f1743265..c8dd674e 100644
--- a/test/test-compcov.c
+++ b/test/test-compcov.c
@@ -25,11 +25,10 @@ int main(int argc, char **argv) {
     printf("your string was bugmenot\n");
   else if (strcmp(input, "BUFFEROVERFLOW") == 0) {
 
-    buf = malloc(16);
+    buf = (char *)malloc(16);
     strcpy(buf, "TEST");
     strcat(buf, input);
     printf("This will only crash with libdislocator: %s\n", buf);
-    return 0;
 
   } else if (*(unsigned int *)input == 0xabadcafe)
 
diff --git a/test/test.sh b/test/test.sh
index 5af35ec3..b8d4208f 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -951,7 +951,15 @@ test "1" = "`../afl-fuzz | grep -i 'without python' >/dev/null; echo $?`" && {
   test -e test-custom-mutator.c -a -e ${CUSTOM_MUTATOR_PATH}/example.c -a -e ${CUSTOM_MUTATOR_PATH}/example.py && {
     unset AFL_CC
     # Compile the vulnerable program
-    ../afl-clang-fast -o test-custom-mutator test-custom-mutator.c > /dev/null 2>&1
+    test -e ../afl-clang-fast && {
+      ../afl-clang-fast -o test-custom-mutator test-custom-mutator.c > /dev/null 2>&1
+    } || {
+      test -e ../afl-gcc-fast && {
+        ../afl-gcc-fast -o test-custom-mutator test-custom-mutator.c > /dev/null 2>&1
+      } || {
+        ../afl-gcc -o test-custom-mutator test-custom-mutator.c > /dev/null 2>&1
+      }
+    }
     # Compile the custom mutator
     make -C ../examples/custom_mutators libexamplemutator.so > /dev/null 2>&1
     test -e test-custom-mutator -a -e ${CUSTOM_MUTATOR_PATH}/libexamplemutator.so && {
diff --git a/test/travis/bionic/Dockerfile b/test/travis/bionic/Dockerfile
new file mode 100644
index 00000000..3883f775
--- /dev/null
+++ b/test/travis/bionic/Dockerfile
@@ -0,0 +1,43 @@
+# This is the Dockerfile for testing problems in Travis build
+# configuration #1.
+# This needs not to be rebuild everytime, most of the time it needs just to
+# be build once and then started when debugging issues and execute:
+#   cd /AFLplusplus/
+#   git pull
+#   make distrib
+#
+FROM ubuntu:bionic
+LABEL "about"="travis image 1"
+RUN apt-get update && apt-get -y install \
+    automake \
+    bison \
+    build-essential \
+    clang \
+    flex \
+    git \
+    python3.7 python3.7-dev \
+    libtool libtool-bin \
+    libglib2.0-dev \
+    python-setuptools \
+    wget \
+    ca-certificates \
+    libpixman-1-dev \
+    gcc-7 gcc-7-plugin-dev libc++-7-dev \
+    findutils \
+    libcmocka-dev \
+    joe nano vim locate \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV AFL_NO_UI=1
+ENV AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1
+
+RUN cd / && \
+    git clone https://github.com/AFLplusplus/AFLplusplus && \
+    cd AFLplusplus && \
+    git checkout dev && \
+    cd qemu_mode && wget http://download.qemu-project.org/qemu-3.1.1.tar.xz && \
+    cd ../unicorn_mode && git submodule init && git submodule update || true && \
+    cd /AFLplusplus && ASAN_BUILD=1 make source-only || true
+
+WORKDIR /AFLplusplus
+CMD ["/bin/bash"]
diff --git a/test/travis/trusty/Dockerfile b/test/travis/trusty/Dockerfile
new file mode 100644
index 00000000..7b86f3e7
--- /dev/null
+++ b/test/travis/trusty/Dockerfile
@@ -0,0 +1,48 @@
+# This is the Dockerfile for testing problems in Travis builds
+# configuration #3.
+# This needs not to be rebuild everytime, most of the time it needs just to
+# be build once and then started when debugging issues and execute:
+#   cd /AFLplusplus/
+#   git pull
+#   make distrib
+#
+FROM ubuntu:trusty
+LABEL "about"="travis image 3"
+RUN apt-get update && apt-get -y install \
+    automake \
+    bison \
+    build-essential \
+    clang \
+    flex \
+    git \
+    python2.7 python2.7-dev \
+    libtool \
+    libglib2.0-dev \
+    python-setuptools \
+    wget \
+    ca-certificates \
+    libpixman-1-dev \
+    gcc-4.8 gcc-4.8-plugin-dev \
+    libc++-dev \
+    findutils \
+    libcmocka-dev \
+    joe nano vim locate \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV TERM linux
+ENV DEBIAN_FRONTEND noninteractive
+ENV LLVM_CONFIG=llvm-config-3.4
+ENV AFL_NO_UI=1
+ENV AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1
+
+RUN cd / && \
+    git clone https://github.com/AFLplusplus/AFLplusplus && \
+    cd AFLplusplus && \
+    git checkout dev && \
+    cd qemu_mode && wget http://download.qemu-project.org/qemu-3.1.1.tar.xz && \
+    cd ../unicorn_mode && git submodule init && git submodule update || true && \
+    cd /AFLplusplus && ASAN_BUILD=1 make source-only || true
+
+WORKDIR /AFLplusplus
+CMD ["/bin/bash"]
+
diff --git a/test/travis/xenial/Dockerfile b/test/travis/xenial/Dockerfile
new file mode 100644
index 00000000..a5f8d359
--- /dev/null
+++ b/test/travis/xenial/Dockerfile
@@ -0,0 +1,45 @@
+# This is the Dockerfile for testing problems in Travis builds
+# configuration #2.
+# This needs not to be rebuild everytime, most of the time it needs just to
+# be build once and then started when debugging issues and execute:
+#   cd /AFLplusplus/
+#   git pull
+#   make distrib
+#
+FROM ubuntu:xenial
+LABEL "about"="travis image 2"
+RUN apt-get update && apt-get -y install \
+    automake \
+    bison \
+    build-essential \
+    clang-6.0 \
+    flex \
+    git \
+    python3 python3-dev \
+    libtool libtool-bin \
+    libglib2.0-dev \
+    python-setuptools \
+    wget \
+    ca-certificates \
+    libpixman-1-dev \
+    gcc-5 gcc-5-plugin-dev \
+    libc++-dev \
+    findutils \
+    libcmocka-dev \
+    joe nano vim locate \
+    && rm -rf /var/lib/apt/lists/*
+
+ENV LLVM_CONFIG=llvm-config-6.0
+ENV AFL_NO_UI=1
+ENV AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1
+
+RUN cd / && \
+    git clone https://github.com/AFLplusplus/AFLplusplus && \
+    cd AFLplusplus && \
+    git checkout dev && \
+    cd qemu_mode && wget http://download.qemu-project.org/qemu-3.1.1.tar.xz && \
+    cd ../unicorn_mode && git submodule init && git submodule update || true && \
+    cd /AFLplusplus && ASAN_BUILD=1 make source-only || true
+
+WORKDIR /AFLplusplus
+CMD ["/bin/bash"]