• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1language: cpp
2sudo: false
3before_install:
4        - export LD_LIBRARY_PATH=`pwd`/tests/:$LD_LIBRARY_PATH
5before_script:
6        - wget https://github.com/groundx/capstonefuzz/raw/master/corpus/corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip
7        - unzip -q corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip -d suite/fuzz
8        # TODO remove built in cmocka compile and use system cmocka (including brewfile) once xenial is default
9        - git clone https://git.cryptomilk.org/projects/cmocka.git suite/cstest/cmocka
10        - chmod +x suite/cstest/build_cstest.sh
11script:
12        - ./make.sh
13        - make check
14        - sudo make install
15        - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp libcapstone.so.* bindings/python/libcapstone.so; fi
16        - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp libcapstone.*.dylib bindings/python/libcapstone.dylib; fi
17        - if [[ "$NOPYTEST" != "true" ]]; then cd bindings/python && make check; cd ../..; fi
18        - if [[ "$NOPYTEST" != "true" ]]; then cd suite/cstest && ./build_cstest.sh; fi
19        - if [[ "$NOPYTEST" != "true" ]]; then python cstest_report.py -D -t build/cstest -d ../MC; fi
20        - if [[ "$NOPYTEST" != "true" ]]; then python cstest_report.py -D -t build/cstest -f issues.cs; fi
21compiler:
22        - clang
23        - gcc
24os:
25        - linux
26        - osx
27matrix:
28    include:
29        - name: xenial gcc
30          os: linux
31          dist: xenial
32          compiler: gcc
33          addons:
34            apt:
35              packages:
36                - libcmocka-dev
37        - name: bionic gcc (ARM64)
38          arch: arm64
39          os: linux
40          dist: bionic
41          compiler: gcc
42          addons:
43            apt:
44              packages:
45                - libcmocka-dev
46                - unzip
47        - name: bionic gcc (System Z)
48          arch: s390x
49          os: linux
50          dist: bionic
51          compiler: gcc
52          addons:
53            apt:
54              packages:
55                - libcmocka-dev
56        - name: xenial clang
57          os: linux
58          dist: xenial
59          compiler: clang
60          addons:
61            apt:
62              packages:
63                - libcmocka-dev
64        - name: fuzza
65          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
66          compiler: clang
67          os: linux
68        - name: fuzzm
69          env: CXXFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory" CFLAGS="-DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -fsanitize=memory" LDFLAGS="-fsanitize=memory" NOPYTEST=true
70          compiler: clang
71          os: linux
72        - name: fuzzu
73          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
74          compiler: clang
75          os: linux
76