From 915c9627f67f4f10ee2bfc903afba11cffa672d7 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Sat, 4 May 2024 08:45:11 +1000 Subject: [PATCH 1/3] Put feature gate attribute under test attribute Either way is fine, just pick one and be uniform. --- bitcoin/src/blockdata/transaction.rs | 2 +- bitcoin/src/crypto/key.rs | 2 +- bitcoin/src/network/mod.rs | 2 +- bitcoin/src/pow.rs | 4 ++-- hashes/src/hash160.rs | 2 +- hashes/src/hmac.rs | 2 +- hashes/src/ripemd160.rs | 2 +- hashes/src/sha1.rs | 2 +- hashes/src/sha256.rs | 2 +- hashes/src/sha256d.rs | 2 +- hashes/src/sha512.rs | 2 +- 11 files changed, 12 insertions(+), 12 deletions(-) diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs index 3dc203dab..6512d7e83 100644 --- a/bitcoin/src/blockdata/transaction.rs +++ b/bitcoin/src/blockdata/transaction.rs @@ -1361,8 +1361,8 @@ mod tests { } // We temporarily abuse `Transaction` for testing consensus serde adapter. - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn consensus_serde() { use crate::consensus::serde as con_serde; let json = "\"010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff3603da1b0e00045503bd5704c7dd8a0d0ced13bb5785010800000000000a636b706f6f6c122f4e696e6a61506f6f6c2f5345475749542fffffffff02b4e5a212000000001976a914876fbb82ec05caa6af7a3b5e5a983aae6c6cc6d688ac0000000000000000266a24aa21a9edf91c46b49eb8a29089980f02ee6b57e7d63d33b18b4fddac2bcd7db2a39837040120000000000000000000000000000000000000000000000000000000000000000000000000\""; diff --git a/bitcoin/src/crypto/key.rs b/bitcoin/src/crypto/key.rs index 4ebf4f82e..247065d0b 100644 --- a/bitcoin/src/crypto/key.rs +++ b/bitcoin/src/crypto/key.rs @@ -1222,8 +1222,8 @@ mod tests { assert!(upk.wpubkey_hash().is_err()); } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn test_key_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/bitcoin/src/network/mod.rs b/bitcoin/src/network/mod.rs index fc130dc62..7f691f74c 100644 --- a/bitcoin/src/network/mod.rs +++ b/bitcoin/src/network/mod.rs @@ -490,8 +490,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn serde_as_core_arg() { #[derive(Serialize, Deserialize, PartialEq, Debug)] struct T { diff --git a/bitcoin/src/pow.rs b/bitcoin/src/pow.rs index 4e2bce91a..21019e1de 100644 --- a/bitcoin/src/pow.rs +++ b/bitcoin/src/pow.rs @@ -1643,8 +1643,8 @@ mod tests { assert_eq!(got, want); } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn u256_serde() { let check = |uint, hex| { let json = format!("\"{}\"", hex); @@ -1932,8 +1932,8 @@ mod tests { assert_eq!(back, target) } - #[cfg(feature = "std")] #[test] + #[cfg(feature = "std")] fn work_log2() { // Compare work log2 to historical Bitcoin Core values found in Core logs. let tests: &[(u128, f64)] = &[ diff --git a/hashes/src/hash160.rs b/hashes/src/hash160.rs index a0a8f715c..49410bc70 100644 --- a/hashes/src/hash160.rs +++ b/hashes/src/hash160.rs @@ -101,8 +101,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn ripemd_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/hmac.rs b/hashes/src/hmac.rs index b3f931a12..a14a54455 100644 --- a/hashes/src/hmac.rs +++ b/hashes/src/hmac.rs @@ -289,8 +289,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn hmac_sha512_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/ripemd160.rs b/hashes/src/ripemd160.rs index 3732cfb0b..a0791904a 100644 --- a/hashes/src/ripemd160.rs +++ b/hashes/src/ripemd160.rs @@ -493,8 +493,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn ripemd_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/sha1.rs b/hashes/src/sha1.rs index 134a6178a..63d7293be 100644 --- a/hashes/src/sha1.rs +++ b/hashes/src/sha1.rs @@ -197,8 +197,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn sha1_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/sha256.rs b/hashes/src/sha256.rs index 4aa2c6467..6cdad22c9 100644 --- a/hashes/src/sha256.rs +++ b/hashes/src/sha256.rs @@ -1063,8 +1063,8 @@ mod tests { assert_eq!(got, want); } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn sha256_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/sha256d.rs b/hashes/src/sha256d.rs index 44e6580f3..380a6bf24 100644 --- a/hashes/src/sha256d.rs +++ b/hashes/src/sha256d.rs @@ -107,8 +107,8 @@ mod tests { assert_eq!(rinsed, hash) } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn sha256_serde() { use serde_test::{assert_tokens, Configure, Token}; diff --git a/hashes/src/sha512.rs b/hashes/src/sha512.rs index 793687abf..0b2e42d28 100644 --- a/hashes/src/sha512.rs +++ b/hashes/src/sha512.rs @@ -384,8 +384,8 @@ mod tests { } } - #[cfg(feature = "serde")] #[test] + #[cfg(feature = "serde")] fn sha512_serde() { use serde_test::{assert_tokens, Configure, Token}; From 6a4e219c5550fcfb0c1900c7f659be81d13d5c72 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Mon, 4 Nov 2024 15:25:16 +1100 Subject: [PATCH 2/3] hashes: embedded: Remove unused import Clear clippy warning by removing unused import statement. --- hashes/embedded/src/main.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/hashes/embedded/src/main.rs b/hashes/embedded/src/main.rs index f5d916307..027563d00 100644 --- a/hashes/embedded/src/main.rs +++ b/hashes/embedded/src/main.rs @@ -11,7 +11,6 @@ extern crate bitcoin_hashes; use bitcoin_hashes::{sha256, HashEngine}; use bitcoin_io::Write; -use core::str::FromStr; use cortex_m_rt::entry; use cortex_m_semihosting::{debug, hprintln}; use panic_halt as _; From ba124757c419aef38019ee7825c32af540b9dcd0 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Mon, 4 Nov 2024 15:26:54 +1100 Subject: [PATCH 3/3] hashes: Default to no_std `hashes` is `no_std` ready, lets default to `no_std`. --- hashes/src/lib.rs | 5 ++++- hashes/src/sha256.rs | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/hashes/src/lib.rs b/hashes/src/lib.rs index 00ca7fd70..cc5d191bc 100644 --- a/hashes/src/lib.rs +++ b/hashes/src/lib.rs @@ -50,7 +50,7 @@ //! # } //! ``` -#![cfg_attr(not(feature = "std"), no_std)] +#![no_std] // Experimental features we need. #![cfg_attr(docsrs, feature(doc_auto_cfg))] #![cfg_attr(bench, feature(test))] @@ -70,6 +70,9 @@ extern crate alloc; extern crate core; +#[cfg(feature = "std")] +extern crate std; + #[cfg(feature = "bitcoin-io")] extern crate bitcoin_io as io; diff --git a/hashes/src/sha256.rs b/hashes/src/sha256.rs index 6cdad22c9..42fe5cf24 100644 --- a/hashes/src/sha256.rs +++ b/hashes/src/sha256.rs @@ -491,10 +491,10 @@ impl HashEngine { fn process_block(&mut self) { #[cfg(all(feature = "std", any(target_arch = "x86", target_arch = "x86_64")))] { - if is_x86_feature_detected!("sse4.1") - && is_x86_feature_detected!("sha") - && is_x86_feature_detected!("sse2") - && is_x86_feature_detected!("ssse3") + if std::is_x86_feature_detected!("sse4.1") + && std::is_x86_feature_detected!("sha") + && std::is_x86_feature_detected!("sse2") + && std::is_x86_feature_detected!("ssse3") { return unsafe { self.process_block_simd_x86_intrinsics() }; }