X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=ci%2Fci-tests.sh;h=2db32a1081c2c07d5a4f7e30c03e40ce79fbe9ff;hb=refs%2Fheads%2F2023-12-2314-cleanups-3;hp=ef9ecf7b86d8653d5bdf1b7ab758032425bd33d6;hpb=3dffe54258a374d15571d4ec72f5faa02477b770;p=rust-lightning diff --git a/ci/ci-tests.sh b/ci/ci-tests.sh index ef9ecf7b..2db32a10 100755 --- a/ci/ci-tests.sh +++ b/ci/ci-tests.sh @@ -29,38 +29,47 @@ PIN_RELEASE_DEPS # pin the release dependencies in our main workspace # The quote crate switched to Rust edition 2021 starting with v1.0.31, i.e., has MSRV of 1.56 [ "$RUSTC_MINOR_VERSION" -lt 56 ] && cargo update -p quote --precise "1.0.30" --verbose +# The syn crate depends on too-new proc-macro2 starting with v2.0.33, i.e., has MSRV of 1.56 +if [ "$RUSTC_MINOR_VERSION" -lt 56 ]; then + SYN_2_DEP=$(grep -o '"syn 2.*' Cargo.lock | tr -d '",' | tr ' ' ':') + cargo update -p "$SYN_2_DEP" --precise "2.0.32" --verbose +fi + # The proc-macro2 crate switched to Rust edition 2021 starting with v1.0.66, i.e., has MSRV of 1.56 [ "$RUSTC_MINOR_VERSION" -lt 56 ] && cargo update -p proc-macro2 --precise "1.0.65" --verbose -[ "$LDK_COVERAGE_BUILD" != "" ] && export RUSTFLAGS="-C link-dead-code" +# The memchr crate switched to an MSRV of 1.60 starting with v2.6.0 +[ "$RUSTC_MINOR_VERSION" -lt 60 ] && cargo update -p memchr --precise "2.5.0" --verbose export RUST_BACKTRACE=1 echo -e "\n\nBuilding and testing all workspace crates..." cargo test --verbose --color always -cargo build --verbose --color always +cargo check --verbose --color always echo -e "\n\nBuilding and testing Block Sync Clients with features" pushd lightning-block-sync cargo test --verbose --color always --features rest-client -cargo build --verbose --color always --features rest-client +cargo check --verbose --color always --features rest-client cargo test --verbose --color always --features rpc-client -cargo build --verbose --color always --features rpc-client +cargo check --verbose --color always --features rpc-client cargo test --verbose --color always --features rpc-client,rest-client -cargo build --verbose --color always --features rpc-client,rest-client +cargo check --verbose --color always --features rpc-client,rest-client cargo test --verbose --color always --features rpc-client,rest-client,tokio -cargo build --verbose --color always --features rpc-client,rest-client,tokio +cargo check --verbose --color always --features rpc-client,rest-client,tokio popd if [[ $RUSTC_MINOR_VERSION -gt 67 && "$HOST_PLATFORM" != *windows* ]]; then echo -e "\n\nBuilding and testing Transaction Sync Clients with features" pushd lightning-transaction-sync cargo test --verbose --color always --features esplora-blocking - cargo build --verbose --color always --features esplora-blocking + cargo check --verbose --color always --features esplora-blocking cargo test --verbose --color always --features esplora-async - cargo build --verbose --color always --features esplora-async + cargo check --verbose --color always --features esplora-async cargo test --verbose --color always --features esplora-async-https - cargo build --verbose --color always --features esplora-async-https + cargo check --verbose --color always --features esplora-async-https + cargo test --verbose --color always --features electrum + cargo check --verbose --color always --features electrum popd fi @@ -73,6 +82,7 @@ if [ "$RUSTC_MINOR_VERSION" -gt 55 ]; then echo -e "\n\nTest Custom Message Macros" pushd lightning-custom-message cargo test --verbose --color always + [ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean popd fi @@ -86,20 +96,22 @@ fi echo -e "\n\nBuilding with all Log-Limiting features" pushd lightning grep '^max_level_' Cargo.toml | awk '{ print $1 }'| while read -r FEATURE; do - cargo build --verbose --color always --features "$FEATURE" + cargo check --verbose --color always --features "$FEATURE" done popd echo -e "\n\nTesting no-std flags in various combinations" for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do - pushd $DIR - cargo test --verbose --color always --no-default-features --features no-std + [ "$RUSTC_MINOR_VERSION" -gt 50 ] && cargo test -p $DIR --verbose --color always --no-default-features --features no-std # check if there is a conflict between no-std and the default std feature - cargo test --verbose --color always --features no-std + [ "$RUSTC_MINOR_VERSION" -gt 50 ] && cargo test -p $DIR --verbose --color always --features no-std +done +for DIR in lightning lightning-invoice lightning-rapid-gossip-sync; do # check if there is a conflict between no-std and the c_bindings cfg - RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always --no-default-features --features=no-std - popd + [ "$RUSTC_MINOR_VERSION" -gt 50 ] && RUSTFLAGS="--cfg=c_bindings" cargo test -p $DIR --verbose --color always --no-default-features --features=no-std done +RUSTFLAGS="--cfg=c_bindings" cargo test --verbose --color always + # Note that outbound_commitment_test only runs in this mode because of hardcoded signature values pushd lightning cargo test --verbose --color always --no-default-features --features=std,_test_vectors @@ -117,19 +129,26 @@ if [[ $RUSTC_MINOR_VERSION -gt 67 ]]; then # lightning-transaction-sync's MSRV is 1.67 cargo check --verbose --color always --features lightning-transaction-sync else + # The memchr crate switched to an MSRV of 1.60 starting with v2.6.0 + # This is currently only a release dependency via core2, which we intend to work with + # rust-bitcoin to remove soon. + [ "$RUSTC_MINOR_VERSION" -lt 60 ] && cargo update -p memchr --precise "2.5.0" --verbose cargo check --verbose --color always fi +[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean popd # Test that we can build downstream code with only the "release pins". pushd msrv-no-dev-deps-check PIN_RELEASE_DEPS cargo check +[ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean popd if [ -f "$(which arm-none-eabi-gcc)" ]; then pushd no-std-check cargo build --target=thumbv7m-none-eabi + [ "$CI_MINIMIZE_DISK_USAGE" != "" ] && cargo clean popd fi