Continuous integration for fuzzing (#1297)
* Continuous integration for fuzzing
* Simplify fuzz testing output
* Makefile for suite fuzz
* fixup
* Code review taken into acount
* More readable fuzz harness
Inputs specify only on first line the mode
diff --git a/.travis.yml b/.travis.yml
index aa8f5a1..d6909bb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,10 +7,24 @@
- make check
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp libcapstone.so.* bindings/python/libcapstone.so; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp libcapstone.*.dylib bindings/python/libcapstone.dylib; fi
- - cd bindings/python && make check
+ - if [[ "$NOPYTEST" != "true" ]]; then cd bindings/python && make check; fi
compiler:
- clang
- gcc
os:
- linux
- osx
+matrix:
+ include:
+ - name: fuzza
+ env: ASAN_OPTIONS=detect_leaks=0 CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address" LDFLAGS="-fsanitize=address" NOPYTEST=true
+ compiler: clang
+ os: linux
+ - name: fuzzm
+ env: CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory" LDFLAGS="-fsanitize=memory" NOPYTEST=true
+ compiler: clang
+ os: linux
+ - name: fuzzu
+ env: CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fno-sanitize-recover=undefined,integer" LDFLAGS="-fsanitize=undefined" NOPYTEST=true
+ compiler: clang
+ os: linux