aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to 'capstone/.travis.yml')
-rw-r--r--capstone/.travis.yml66
1 files changed, 66 insertions, 0 deletions
diff --git a/capstone/.travis.yml b/capstone/.travis.yml
new file mode 100644
index 000000000..65a32951a
--- /dev/null
+++ b/capstone/.travis.yml
@@ -0,0 +1,66 @@
+language: cpp
+sudo: false
+before_install:
+ - export LD_LIBRARY_PATH=`pwd`/tests/:$LD_LIBRARY_PATH
+before_script:
+ - wget https://github.com/groundx/capstonefuzz/raw/master/corpus/corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip
+ - unzip -q corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip -d suite/fuzz
+ # TODO remove built in cmocka compile and use system cmocka (including brewfile) once xenial is default
+ - git clone https://git.cryptomilk.org/projects/cmocka.git suite/cstest/cmocka
+ - chmod +x suite/cstest/build_cstest.sh
+ - if [[ ${TRAVIS_OS_NAME} = linux ]]; then export PATH="/usr/lib/llvm-9/bin:${PATH}"; fi
+script:
+ - ./make.sh
+ - make check
+ - sudo make install
+ - 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
+ - if [[ "$NOPYTEST" != "true" ]]; then cd bindings/python && make check; cd ../..; fi
+ - if [[ "$NOPYTEST" != "true" ]]; then cd suite/cstest && ./build_cstest.sh; fi
+ - if [[ "$NOPYTEST" != "true" ]]; then python cstest_report.py -D -t build/cstest -d ../MC; fi
+ - if [[ "$NOPYTEST" != "true" ]]; then python cstest_report.py -D -t build/cstest -f issues.cs; fi
+ - if [ -n "$QA_FUZZIT" ]; then suite/fuzz/fuzzit.sh; fi
+compiler:
+ - clang
+ - gcc
+os:
+ - linux
+ - osx
+matrix:
+ include:
+ - name: xenial gcc
+ os: linux
+ dist: xenial
+ compiler: gcc
+ addons:
+ apt:
+ packages:
+ - libcmocka-dev
+ - name: xenial clang
+ os: linux
+ dist: xenial
+ compiler: clang
+ addons:
+ apt:
+ packages:
+ - libcmocka-dev
+ - name: fuzza
+ env: ASAN_OPTIONS=detect_leaks=0 CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=address -fsanitize=fuzzer-no-link" LDFLAGS="-fsanitize=address" NOPYTEST=true QA_FUZZIT=asan
+ compiler: clang
+ os: linux
+ - name: fuzzm
+ env: CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize=fuzzer-no-link" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory -fsanitize=fuzzer-no-link" LDFLAGS="-fsanitize=memory" NOPYTEST=true QA_FUZZIT=msan
+ compiler: clang
+ os: linux
+ - name: fuzzu
+ env: CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fsanitize=fuzzer-no-link" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=undefined -fno-sanitize-recover=undefined,integer -fsanitize=fuzzer-no-link" LDFLAGS="-fsanitize=undefined" NOPYTEST=true QA_FUZZIT=ubsan
+ compiler: clang
+ os: linux
+
+addons:
+ apt:
+ sources:
+ - llvm-toolchain-trusty
+ - ubuntu-toolchain-r-test
+ packages:
+ - clang-9