about summary refs log tree commit diff stats
path: root/.github/workflows/tests.yml
blob: 3d609cdb4c22431fb3d3189c78716324b89eb042 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
name: Miasm regression tests

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ['3.8', '3.10']

    steps:

    - name: Git checkout
      uses: actions/checkout@v3

    - name: Use Python ${{ matrix.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python-version }}

    - name: Update pip
      run: pip install pip --upgrade

    - name: Install requirements
      run: pip install -r requirements.txt

    - name: Install llvm 11 (llvmlite compatible)
      run: sudo apt-get install llvm-11

    - name: Install optional requirements
      run: pip install -r optional_requirements.txt

    - name: Install Miasm
      uses: ./.github/actions/install

    - name: Base tests
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py && git ls-files -o --exclude-standard

    - name: Regression tests
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o regression -t long,python,llvm,gcc,z3,qemu,cparser

    - name: Run examples
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o example -t long,python,llvm,gcc,z3,qemu,cparser

    - name: Test long tests
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o long

    - name: Test qemu jitter llvm/gcc
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o qemu -t llvm,gcc

    - name: Test qemu jitter python/gcc
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o qemu -t python,gcc

    - name: Test qemu jitter python/llvm
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o qemu -t python,llvm

    - name: Test llvm qemu/long
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o llvm -t qemu,long

    - name: Test gcc qemu/long
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o gcc -t qemu,long

    - name: Test python qemu/long
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o python -t qemu,long

    - name: Z3 tests
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o z3

    - name: Cparser tests
      run: cd test; python --version |& grep -q "Python 3" || flags="-W error"; python $flags test_all.py $MIASM_TEST_EXTRA_ARG && git ls-files -o --exclude-standard
      env:
        MIASM_TEST_EXTRA_ARG: -o cparser

    - name: Loader tests
      run: cd example/loader; python --version |& grep -q "Python 3" || flags="-W error"; for i in ../../miasm-extended-tests/loader/dll_win_xp/*.dll; do python get_exports.py $i; done
      env:
        MIASM_EXTENTED_TESTS_LOADER: loader

    - name: Loader tests
      run: cd "miasm-extended-tests/$MIASM_EXTENTED_TESTS_LOADER" && ./test_dll.py
      env:
        MIASM_EXTENTED_TESTS_LOADER: loader

    - name: IR tests
      run: cd "miasm-extended-tests/$MIASM_EXTENTED_TESTS_IR" && ./run.sh
      env:
        MIASM_EXTENTED_TESTS_IR: ir_tests