blob: 4c830ce7634ccd147d66da44c5e3d3542acb058b [file] [log] [blame]
name: Run Test
on:
push:
paths-ignore:
- ".gitignore"
- "docs/**"
- "ChangeLog"
- "CREDITS.TXT"
- "COMPILE.TXT"
- "COMPILE_MSVC.TXT"
- "COMPILE_CMAKE.TXT"
- "HACK.TXT"
- "LICENSE.TXT"
- "LICENSE_LLVM.TXT"
- "README.md"
- "RELEASE_NOTES"
- "SPONSORS.TXT"
- "TODO"
pull_request:
env:
CI: true
jobs:
Linux:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.name }}
strategy:
fail-fast: false
matrix:
config:
- {
name: 'ubuntu-18.04 x64 python2.7 make',
os: ubuntu-18.04,
arch: x64,
python-arch: x64,
python-version: '2.7',
build-system: 'make',
}
- {
name: 'ubuntu-18.04 x64 python3.6 make',
os: ubuntu-18.04,
arch: x64,
python-arch: x64,
python-version: '3.6',
build-system: 'make',
}
- {
name: 'ubuntu-20.04 x64 python2.7 make',
os: ubuntu-20.04,
arch: x64,
python-arch: x64,
python-version: '2.7',
build-system: 'make',
}
- {
name: 'ubuntu-20.04 x64 python3.9 make',
os: ubuntu-20.04,
arch: x64,
python-arch: x64,
python-version: '3.9',
build-system: 'make',
}
- {
name: 'ubuntu-20.04 x64 python3.9 cmake',
os: ubuntu-20.04,
arch: x64,
python-arch: x64,
python-version: '3.9',
build-system: 'cmake',
}
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.config.python-version }}
- name: prepare
shell: 'script -q -e -c "bash {0}"'
run: |
export LD_LIBRARY_PATH=`pwd`/tests/:$LD_LIBRARY_PATH
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
git clone https://git.cryptomilk.org/projects/cmocka.git suite/cstest/cmocka
chmod +x suite/cstest/build_cstest.sh
- name: make
if: startsWith(matrix.config.build-system, 'make')
shell: 'script -q -e -c "bash {0}"'
run: |
./make.sh
make check
sudo make install
- name: cmake
if: startsWith(matrix.config.build-system, 'cmake')
shell: 'script -q -e -c "bash {0}"'
run: |
mkdir build
cd build
cmake -DCAPSTONE_INSTALL=1 ..
cmake --build . --config Release
sudo make install
- name: build python binding
shell: 'script -q -e -c "bash {0}"'
run: |
cp libcapstone.so.* bindings/python/libcapstone.so
cd bindings/python && make check; cd ../..;
- name: cstest
shell: 'script -q -e -c "bash {0}"'
run: |
cd suite/cstest && ./build_cstest.sh;
python cstest_report.py -D -t build/cstest -d ../MC;
python cstest_report.py -D -t build/cstest -f issues.cs; cd ..;
# Windows:
# runs-on: ${{ matrix.config.os }}
# name: ${{ matrix.config.name }}
# strategy:
# fail-fast: false
# matrix:
# config:
# - {
# name: 'windows x64 MSVC 64bit',
# os: windows-latest,
# arch: x64,
# python-arch: x64,
# python-version: '3.9',
# }
# steps:
# - uses: actions/checkout@v2
# - name: '🛠️ Win MSVC 64 setup'
# if: contains(matrix.config.name, 'MSVC 64')
# uses: microsoft/setup-msbuild@v1
# - name: '🚧 Win MSVC 64 build'
# if: contains(matrix.config.name, 'MSVC 64')
# shell: bash
# run: |
# # choco install cmake
# cmake --version
# mkdir build
# cd build
# cmake ..
# cmake --build . --config Release --target install