summaryrefslogtreecommitdiff
path: root/ci/script.sh
blob: 8e2c7e1fa0ffd915dea18d0f0fe0050d671c6651 (plain)
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
#!/usr/bin/env bash

set -xeu
cd "$(dirname "$0")/.."

# Note that `$BINDGEN_PROFILE` is never in quotes so that it expands to nothing
# (not even an empty string argument) when the variable is empty. This is
# necessary so we don't pass an unexpected flag to cargo.

export RUST_BACKTRACE=1

case "$BINDGEN_JOB" in
    "test")
        # Need rustfmt to compare the test expectations.
        rustup update nightly
        rustup run nightly cargo install -f rustfmt-nightly

        cargo test $BINDGEN_PROFILE --features "$BINDGEN_FEATURES"
        ./ci/assert-no-diff.sh
        ;;

    "integration")
        cd ./bindgen-integration
        cargo test $BINDGEN_PROFILE --features "$BINDGEN_FEATURES"
        ;;

    "expectations")
        cd ./tests/expectations
        cargo test $BINDGEN_PROFILE
        ;;

    "misc")
        ./ci/assert-docs.sh
        ./ci/test-book.sh
        ./ci/no-includes.sh
        # `rustfmt` isn't reaching a fixed point on bindgen
        # code... https://github.com/rust-lang/rustfmt/issues/1376
        # ./ci/assert-rustfmt.sh
        ;;

    "quickchecking")
        cd ./tests/quickchecking
        # TODO: Actually run quickchecks once `bindgen` is reliable enough.
        cargo test
        ;;
    *)
        echo "Error! Unknown \$BINDGEN_JOB: '$BINDGEN_JOB'"
        exit 1
esac