| name: dev-long-tests |
| # Tests longer than 10mn |
| |
| concurrency: |
| group: long-${{ github.ref }} |
| cancel-in-progress: true |
| |
| on: |
| pull_request: |
| branches: [ dev, release, actionsTest ] |
| |
| jobs: |
| make-test: |
| runs-on: ubuntu-latest |
| env: |
| DEVNULLRIGHTS: 1 |
| READFROMBLOCKDEVICE: 1 |
| steps: |
| - uses: actions/checkout@v2 |
| - name: make test |
| run: make test |
| |
| make-test-osx: |
| runs-on: macos-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: OS-X test |
| run: make test # make -c lib all doesn't work because of the fact that it's not a tty |
| |
| no-intrinsics-fuzztest: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: no intrinsics fuzztest |
| run: MOREFLAGS="-DZSTD_NO_INTRINSICS" make -C tests fuzztest |
| |
| tsan-zstreamtest: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: thread sanitizer zstreamtest |
| run: CC=clang ZSTREAM_TESTTIME=-T3mn make tsan-test-zstream |
| |
| tsan-fuzztest: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: thread sanitizer fuzztest |
| run: CC=clang make tsan-fuzztest |
| |
| gcc-8-asan-ubsan-testzstd: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: gcc-8 + ASan + UBSan + Test Zstd |
| run: | |
| sudo apt-get -qqq update |
| make gcc8install |
| CC=gcc-8 make -j uasan-test-zstd </dev/null V=1 |
| |
| gcc-asan-ubsan-testzstd-32bit: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: ASan + UBSan + Test Zstd, 32bit mode |
| run: | |
| make libc6install |
| make -j uasan-test-zstd32 V=1 |
| |
| # Note : external libraries must be turned off when using MSAN tests, |
| # because they are not msan-instrumented, |
| # so any data coming from these libraries is always considered "uninitialized" |
| |
| gcc-8-asan-ubsan-fuzz: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: gcc-8 + ASan + UBSan + Fuzz Test |
| run: | |
| make gcc8install |
| CC=gcc-8 FUZZER_FLAGS="--long-tests" make clean uasan-fuzztest |
| |
| gcc-asan-ubsan-fuzz32: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: ASan + UBSan + Fuzz Test 32bit |
| run: | |
| make libc6install |
| CFLAGS="-O3 -m32" FUZZER_FLAGS="--long-tests" make uasan-fuzztest |
| |
| asan-ubsan-regression: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: ASan + UBSan + Regression Test |
| run: make -j uasanregressiontest |
| |
| msan-regression: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: MSan + Regression Test |
| run: make -j msanregressiontest |
| |
| clang-msan-fuzz: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: clang + MSan + Fuzz Test |
| run: | |
| sudo apt-get -qqq update |
| sudo apt-get install clang |
| CC=clang FUZZER_FLAGS="--long-tests" make clean msan-fuzztest |
| |
| clang-msan-testzstd: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: clang + MSan + Test Zstd |
| run: | |
| sudo apt-get update |
| sudo apt-get install clang |
| CC=clang make msan-test-zstd HAVE_ZLIB=0 HAVE_LZ4=0 HAVE_LZMA=0 V=1 |
| |
| armfuzz: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: Qemu ARM emulation + Fuzz Test |
| run: | |
| sudo apt-get -qqq update |
| make arminstall |
| make armfuzz |
| |
| valgrind-fuzz-test: |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v2 |
| - name: valgrind + fuzz test stack mode # ~ 7mn |
| shell: 'script -q -e -c "bash {0}"' |
| run: | |
| make valgrindinstall |
| make -C tests valgrindTest |
| make clean |
| make -C tests test-fuzzer-stackmode |
| |
| oss-fuzz: |
| runs-on: ubuntu-latest |
| strategy: |
| fail-fast: false |
| matrix: |
| sanitizer: [address, undefined, memory] |
| steps: |
| - name: Build Fuzzers (${{ matrix.sanitizer }}) |
| id: build |
| uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master |
| with: |
| oss-fuzz-project-name: 'zstd' |
| dry-run: false |
| sanitizer: ${{ matrix.sanitizer }} |
| - name: Run Fuzzers (${{ matrix.sanitizer }}) |
| uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master |
| with: |
| oss-fuzz-project-name: 'zstd' |
| fuzz-seconds: 600 |
| dry-run: false |
| sanitizer: ${{ matrix.sanitizer }} |
| - name: Upload Crash |
| uses: actions/upload-artifact@v1 |
| if: failure() && steps.build.outcome == 'success' |
| with: |
| name: ${{ matrix.sanitizer }}-artifacts |
| path: ./out/artifacts |