• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env bash
2
3set -eux
4cd $(dirname $0)/..
5
6export CARGO_TARGET_DIR=$(pwd)/target
7
8cargo test --doc
9
10pushd ./example
11cargo rustc \
12      --release \
13      -- \
14      -Cpasses='sancov' \
15      -Cllvm-args=-sanitizer-coverage-level=3 \
16      -Cllvm-args=-sanitizer-coverage-trace-compares \
17      -Cllvm-args=-sanitizer-coverage-inline-8bit-counters \
18      -Cllvm-args=-sanitizer-coverage-stack-depth \
19      -Cllvm-args=-sanitizer-coverage-trace-geps \
20      -Cllvm-args=-sanitizer-coverage-prune-blocks=0 \
21      -Zsanitizer=address
22(! $CARGO_TARGET_DIR/release/example -runs=100000)
23popd
24
25pushd ./example_arbitrary
26cargo rustc \
27      --release \
28      -- \
29      -Cpasses='sancov' \
30      -Cllvm-args=-sanitizer-coverage-level=3 \
31      -Cllvm-args=-sanitizer-coverage-trace-compares \
32      -Cllvm-args=-sanitizer-coverage-inline-8bit-counters \
33      -Cllvm-args=-sanitizer-coverage-stack-depth \
34      -Cllvm-args=-sanitizer-coverage-trace-geps \
35      -Cllvm-args=-sanitizer-coverage-prune-blocks=0 \
36      -Zsanitizer=address
37(! $CARGO_TARGET_DIR/release/example_arbitrary -runs=10000000)
38RUST_LIBFUZZER_DEBUG_PATH=$(pwd)/debug_output \
39    $CARGO_TARGET_DIR/release/example_arbitrary \
40    $(ls ./crash-* | head -n 1)
41cat $(pwd)/debug_output
42grep -q Rgb $(pwd)/debug_output
43popd
44
45pushd ./example_mutator
46cargo rustc \
47      --release \
48      -- \
49      -Cpasses='sancov' \
50      -Cllvm-args=-sanitizer-coverage-level=3 \
51      -Cllvm-args=-sanitizer-coverage-trace-compares \
52      -Cllvm-args=-sanitizer-coverage-inline-8bit-counters \
53      -Cllvm-args=-sanitizer-coverage-stack-depth \
54      -Cllvm-args=-sanitizer-coverage-trace-geps \
55      -Cllvm-args=-sanitizer-coverage-prune-blocks=0 \
56      -Zsanitizer=address
57(! $CARGO_TARGET_DIR/release/example_mutator -runs=10000000)
58popd
59
60echo "All good!"
61