Merge rust-bitcoin/rust-bitcoin#1935: Infrastructure fixes
7b402e930c
schemars: Add pinning docs (Tobin C. Harding)0848ab7e25
Fix clippy warnings for embedded build (Tobin C. Harding)5b1443a91c
hashes/embedded: Add script dir and README (Tobin C. Harding)94732aecbf
Add patch section to test crates (Tobin C. Harding)512d982275
Remove path field from internals dependency (Tobin C. Harding) Pull request description: Do a bunch of infrastructure fixes that either are needed for adding additional crate deps (hex) or updating deps (internals, hashes), or just make the tests more maintainable. ACKs for top commit: apoelstra: ACK7b402e930c
sanket1729: ACK7b402e930c
Tree-SHA512: 9349bb20225363914acc774cca672a23e6562fb02aea644777c558074d5eeb65289d68a93b5be59a93e9b32167e2494f6599caedc8a0d9cfbee2f94d406edbfc
This commit is contained in:
commit
894c926f56
|
@ -6,3 +6,6 @@ path = "bitcoin"
|
||||||
|
|
||||||
[patch.crates-io.bitcoin_hashes]
|
[patch.crates-io.bitcoin_hashes]
|
||||||
path = "hashes"
|
path = "hashes"
|
||||||
|
|
||||||
|
[patch.crates-io.bitcoin-internals]
|
||||||
|
path = "internals"
|
||||||
|
|
|
@ -34,7 +34,7 @@ all-features = true
|
||||||
rustdoc-args = ["--cfg", "docsrs"]
|
rustdoc-args = ["--cfg", "docsrs"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
internals = { package = "bitcoin-internals", version = "0.2.0", path = "../internals" }
|
internals = { package = "bitcoin-internals", version = "0.2.0" }
|
||||||
bech32 = { version = "0.9.0", default-features = false }
|
bech32 = { version = "0.9.0", default-features = false }
|
||||||
hashes = { package = "bitcoin_hashes", version = "0.12.0", default-features = false }
|
hashes = { package = "bitcoin_hashes", version = "0.12.0", default-features = false }
|
||||||
secp256k1 = { version = "0.27.0", default-features = false, features = ["bitcoin_hashes"] }
|
secp256k1 = { version = "0.27.0", default-features = false, features = ["bitcoin_hashes"] }
|
||||||
|
|
|
@ -30,3 +30,6 @@ lto = true # better optimizations
|
||||||
|
|
||||||
[patch.crates-io.bitcoin_hashes]
|
[patch.crates-io.bitcoin_hashes]
|
||||||
path = "../../hashes"
|
path = "../../hashes"
|
||||||
|
|
||||||
|
[patch.crates-io.bitcoin-internals]
|
||||||
|
path = "../../internals"
|
||||||
|
|
|
@ -25,7 +25,7 @@ mod primitive {
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
|
|
||||||
#[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))]
|
#[cfg(any(target_pointer_width = "16", target_pointer_width = "32"))]
|
||||||
fn check_limit(len: usize) -> Result<(), PushBytesError> { Ok(()) }
|
fn check_limit(_: usize) -> Result<(), PushBytesError> { Ok(()) }
|
||||||
|
|
||||||
#[cfg(not(any(target_pointer_width = "16", target_pointer_width = "32")))]
|
#[cfg(not(any(target_pointer_width = "16", target_pointer_width = "32")))]
|
||||||
fn check_limit(len: usize) -> Result<(), PushBytesError> {
|
fn check_limit(len: usize) -> Result<(), PushBytesError> {
|
||||||
|
@ -380,7 +380,7 @@ mod error {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for PushBytesError {
|
impl fmt::Display for PushBytesError {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { match self.never {} }
|
fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result { match self.never {} }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ all-features = true
|
||||||
rustdoc-args = ["--cfg", "docsrs"]
|
rustdoc-args = ["--cfg", "docsrs"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
internals = { path = "../internals", package = "bitcoin-internals", version = "0.2.0" }
|
internals = { package = "bitcoin-internals", version = "0.2.0" }
|
||||||
|
|
||||||
core2 = { version = "0.3.0", default_features = false, optional = true }
|
core2 = { version = "0.3.0", default_features = false, optional = true }
|
||||||
schemars = { version = "0.8.3", optional = true }
|
schemars = { version = "0.8.3", optional = true }
|
||||||
|
|
|
@ -30,3 +30,6 @@ bench = false
|
||||||
codegen-units = 1 # better optimizations
|
codegen-units = 1 # better optimizations
|
||||||
debug = true # symbols are nice and they don't increase the size on Flash
|
debug = true # symbols are nice and they don't increase the size on Flash
|
||||||
lto = true # better optimizations
|
lto = true # better optimizations
|
||||||
|
|
||||||
|
[patch.crates-io.bitcoin-internals]
|
||||||
|
path = "../../internals"
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
# Running
|
||||||
|
|
||||||
|
To run the embedded test, first prepare your environment:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sudo ./scripts/install-deps
|
||||||
|
rustup +nightly target add thumbv7m-none-eabi
|
||||||
|
```
|
||||||
|
|
||||||
|
Then:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
source ./scripts/env.sh && cargo +nightly run --target thumbv7m-none-eabi
|
||||||
|
```
|
||||||
|
|
||||||
|
Output should be something like:
|
||||||
|
|
||||||
|
```text
|
||||||
|
hash:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad hash_check:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
|
||||||
|
hash:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad hash_check:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
|
||||||
|
```
|
||||||
|
|
||||||
|
## Cleanup
|
||||||
|
|
||||||
|
After sourcing `scripts/env.sh` and _before_ building again using another target
|
||||||
|
you'll want to unset `RUSTFLAGS` otherwise you'll get linker errors.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
unset RUSTFLAGS
|
||||||
|
```
|
|
@ -0,0 +1,2 @@
|
||||||
|
export RUSTFLAGS="-C link-arg=-Tlink.x"
|
||||||
|
export CARGO_TARGET_THUMBV7M_NONE_EABI_RUNNER="qemu-system-arm -cpu cortex-m3 -machine mps2-an385 -nographic -semihosting-config enable=on,target=native -kernel"
|
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
apt install gcc-arm-none-eabi qemu-system-arm gdb-multiarch
|
|
@ -18,3 +18,6 @@ serde = { version = "1.0", default-features = false}
|
||||||
schemars = "0.8.3"
|
schemars = "0.8.3"
|
||||||
serde_test = "1.0"
|
serde_test = "1.0"
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
|
||||||
|
[patch.crates-io.bitcoin-internals]
|
||||||
|
path = "../../../internals"
|
||||||
|
|
|
@ -7,3 +7,5 @@ Run as usual with `cargo test`.
|
||||||
To run the tests with the MSRV you will need to pin `serde`:
|
To run the tests with the MSRV you will need to pin `serde`:
|
||||||
|
|
||||||
- `cargo update -p serde --precise 1.0.156`
|
- `cargo update -p serde --precise 1.0.156`
|
||||||
|
- `cargo update -p regex --precise 1.7.3`
|
||||||
|
- `cargo update -p chrono --precise 0.4.24`
|
||||||
|
|
Loading…
Reference in New Issue