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
|
#!/bin/sh
set -ex
# For musl on CI always use openssl-src dependency and build from there.
if [ "$TARGET" = "x86_64-unknown-linux-musl" ]; then
features="--features static-ssl"
fi
cargo test --target $TARGET --no-run $features
# First test with no extra protocols enabled.
cargo test --target $TARGET --no-run --features static-curl $features
# Then with rustls TLS backend.
#
# Note: Cross-compiling rustls on windows doesn't work due to requiring some
# NASM build stuff in aws_lc_rs, which may soon be fixed by
# https://github.com/aws/aws-lc-rs/pull/528.
#
# Compiling on i686-windows requires nasm to be installed (other platforms
# have pre-compiled object files), which is just slightly too much
# inconvenience for me.
if [ "$TARGET" != "x86_64-pc-windows-gnu" ] && [ "$TARGET" != "i686-pc-windows-msvc" ]
then
cargo test --target $TARGET --no-run --features rustls,static-curl $features
fi
# Then with all extra protocols enabled.
cargo test --target $TARGET --no-run --features static-curl,protocol-ftp,ntlm $features
if [ -z "$NO_RUN" ]; then
cargo test --target $TARGET $features
cargo test --target $TARGET --features static-curl $features
cargo test --target $TARGET --features static-curl,protocol-ftp $features
# Note that `-Clink-dead-code` is passed here to suppress `--gc-sections` to
# help confirm that we're compiling everything necessary for curl itself.
RUSTFLAGS=-Clink-dead-code \
cargo run --manifest-path systest/Cargo.toml --target $TARGET $features
RUSTFLAGS=-Clink-dead-code \
cargo run --manifest-path systest/Cargo.toml --target $TARGET --features curl-sys/static-curl,curl-sys/protocol-ftp $features
cargo doc --no-deps --target $TARGET $features
cargo doc --no-deps -p curl-sys --target $TARGET $features
fi
|