mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-02-25 23:30:59 +01:00
Now that all of the core functionality for anchor outputs has landed, we're ready to remove the config flag that was temporarily hiding it from our API.
107 lines
4.2 KiB
Bash
Executable file
107 lines
4.2 KiB
Bash
Executable file
#!/bin/bash
|
|
set -eox pipefail
|
|
|
|
RUSTC_MINOR_VERSION=$(rustc --version | awk '{ split($2,a,"."); print a[2] }')
|
|
HOST_PLATFORM="$(rustc --version --verbose | grep "host:" | awk '{ print $2 }')"
|
|
|
|
# Tokio MSRV on versions 1.17 through 1.26 is rustc 1.49. Above 1.26 MSRV is 1.56.
|
|
[ "$RUSTC_MINOR_VERSION" -lt 49 ] && cargo update -p tokio --precise "1.14.1" --verbose
|
|
[[ "$RUSTC_MINOR_VERSION" -gt 48 && "$RUSTC_MINOR_VERSION" -lt 56 ]] && cargo update -p tokio --precise "1.25.1" --verbose
|
|
|
|
# Sadly the log crate is always a dependency of tokio until 1.20, and has no reasonable MSRV guarantees
|
|
[ "$RUSTC_MINOR_VERSION" -lt 49 ] && cargo update -p log --precise "0.4.18" --verbose
|
|
|
|
[ "$LDK_COVERAGE_BUILD" != "" ] && export RUSTFLAGS="-C link-dead-code"
|
|
|
|
export RUST_BACKTRACE=1
|
|
|
|
echo -e "\n\nBuilding and testing all workspace crates..."
|
|
cargo build --verbose --color always
|
|
cargo test --verbose --color always
|
|
|
|
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"
|
|
done
|
|
popd
|
|
|
|
if [ "$RUSTC_MINOR_VERSION" -gt 51 ]; then # Current `object` MSRV, subject to change
|
|
echo -e "\n\nTest backtrace-debug builds"
|
|
pushd lightning
|
|
cargo test --verbose --color always --features backtrace
|
|
popd
|
|
fi
|
|
|
|
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
|
|
# check if there is a conflict between no-std and the default std feature
|
|
cargo test --verbose --color always --features no-std
|
|
# 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
|
|
done
|
|
# 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
|
|
popd
|
|
# This one only works for lightning-invoice
|
|
pushd lightning-invoice
|
|
# check that compile with no-std and serde works in lightning-invoice
|
|
cargo test --verbose --color always --no-default-features --features no-std --features serde
|
|
popd
|
|
|
|
echo -e "\n\nTesting no-std build on a downstream no-std crate"
|
|
# check no-std compatibility across dependencies
|
|
pushd no-std-check
|
|
cargo check --verbose --color always --features lightning-transaction-sync
|
|
popd
|
|
|
|
if [ -f "$(which arm-none-eabi-gcc)" ]; then
|
|
pushd no-std-check
|
|
cargo build --target=thumbv7m-none-eabi
|
|
popd
|
|
fi
|
|
|
|
echo -e "\n\nBuilding and testing Block Sync Clients with features"
|
|
pushd lightning-block-sync
|
|
cargo build --verbose --color always --features rest-client
|
|
cargo test --verbose --color always --features rest-client
|
|
cargo build --verbose --color always --features rpc-client
|
|
cargo test --verbose --color always --features rpc-client
|
|
cargo build --verbose --color always --features rpc-client,rest-client
|
|
cargo test --verbose --color always --features rpc-client,rest-client
|
|
cargo build --verbose --color always --features rpc-client,rest-client,tokio
|
|
cargo test --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 build --verbose --color always --features esplora-blocking
|
|
cargo test --verbose --color always --features esplora-blocking
|
|
cargo build --verbose --color always --features esplora-async
|
|
cargo test --verbose --color always --features esplora-async
|
|
cargo build --verbose --color always --features esplora-async-https
|
|
cargo test --verbose --color always --features esplora-async-https
|
|
popd
|
|
fi
|
|
|
|
echo -e "\n\nTest futures builds"
|
|
pushd lightning-background-processor
|
|
cargo test --verbose --color always --features futures
|
|
popd
|
|
|
|
if [ "$RUSTC_MINOR_VERSION" -gt 55 ]; then
|
|
echo -e "\n\nTest Custom Message Macros"
|
|
pushd lightning-custom-message
|
|
cargo test --verbose --color always
|
|
popd
|
|
fi
|
|
|
|
echo -e "\n\nTest Taproot builds"
|
|
pushd lightning
|
|
RUSTFLAGS="$RUSTFLAGS --cfg=taproot" cargo test --verbose --color always -p lightning
|
|
popd
|