Skip to content

Commit d3530ca

Browse files
committed
also run a compression fuzzer
1 parent aeb4470 commit d3530ca

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

.github/workflows/checks.yaml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -254,13 +254,20 @@ jobs:
254254
RUST_BACKTRACE=1 cargo fuzz run --no-default-features --features="$features" $target -- -max_total_time=10
255255
done
256256
257-
fuzz-decompression:
258-
name: Fuzz decompression with a custom corpus
257+
fuzz-code-coverage:
258+
name: Fuzz with code coverage
259259
runs-on: ubuntu-latest
260260
strategy:
261261
matrix:
262-
features:
263-
- 'default'
262+
include:
263+
- fuzz_target: uncompress2
264+
corpus: "gzip-files/compressed"
265+
features: '--no-default-features --features="disable-checksum"'
266+
flags: fuzz-decompress
267+
- fuzz_target: compress
268+
corpus: ""
269+
features: ''
270+
flags: fuzz-compress
264271
steps:
265272
- name: Checkout sources
266273
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
@@ -275,30 +282,33 @@ jobs:
275282
uses: taiki-e/install-action@56ab7930c591507f833cbaed864d201386d518a8
276283
with:
277284
tool: cargo-fuzz,rustfilt
278-
- name: Fuzz decompression with custom corpus
279-
env:
280-
RUST_BACKTRACE: "1"
285+
- name: Download custom decompression corpus
286+
if: ${{ contains(matrix.corpus, 'gzip-files') }}
281287
run: |
282288
~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov show --help
283289
wget https://github.com/folkertdev/compression-corpus/releases/download/2025-04-09-154431/gzip-files.zip
284290
unzip gzip-files.zip -d gzip-files
285-
cargo fuzz run --no-default-features --features="disable-checksum" uncompress2 gzip-files/compressed -- -max_total_time=10
291+
- name: Run `cargo fuzz`
292+
env:
293+
RUST_BACKTRACE: "1"
294+
run: |
295+
cargo fuzz run ${{matrix.features}} ${{matrix.fuzz_target}} ${{matrix.corpus}} -- -max_total_time=10
286296
- name: Fuzz codecov
287297
run: |
288-
cargo fuzz coverage --no-default-features --features="disable-checksum" uncompress2 gzip-files/compressed
298+
cargo fuzz coverage ${{matrix.features}} ${{matrix.fuzz_target}} ${{matrix.corpus}}
289299
~/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/bin/llvm-cov export -Xdemangler=rustfilt \
290-
target/x86_64-unknown-linux-gnu/coverage/x86_64-unknown-linux-gnu/release/uncompress2 \
291-
-instr-profile=fuzz/coverage/uncompress2/coverage.profdata \
300+
target/x86_64-unknown-linux-gnu/coverage/x86_64-unknown-linux-gnu/release/${{matrix.fuzz_target}} \
301+
-instr-profile=fuzz/coverage/${{matrix.fuzz_target}}/coverage.profdata \
292302
--format=lcov \
293303
-ignore-filename-regex="\.cargo|\.rustup" > lcov.info
294304
- name: Upload coverage to Codecov
295305
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d
296306
with:
297307
files: ./lcov.info
298308
fail_ci_if_error: false
299-
flags: fuzz-decompress
309+
flags: ${{ matrix.flags }}
300310
token: ${{ secrets.CODECOV_TOKEN }}
301-
name: fuzz
311+
name: fuzz
302312

303313
link-c-dynamic-library:
304314
name: vanilla dynamic library

0 commit comments

Comments
 (0)