]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Drop the `_test_vectors` feature in favor of a `cfg` flag
authorMatt Corallo <git@bluematt.me>
Sat, 17 Aug 2024 21:06:52 +0000 (21:06 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 19 Aug 2024 15:09:40 +0000 (15:09 +0000)
This exists just for tests, so there's no reason for it to be
publicly visible.

Cargo.toml
ci/ci-tests.sh
lightning/Cargo.toml
lightning/src/crypto/utils.rs
lightning/src/ln/channel.rs
lightning/src/ln/channelmanager.rs
lightning/src/ln/monitor_tests.rs

index d1e2f0e054a0e31d4d95fc5240ae75e281cde11b..ae5d1bc8f0c9c4b6d6328a70bc3360a94891f7d3 100644 (file)
@@ -55,6 +55,7 @@ check-cfg = [
     "cfg(debug_assertions)",
     "cfg(c_bindings)",
     "cfg(ldk_bench)",
+    "cfg(ldk_test_vectors)",
     "cfg(taproot)",
     "cfg(async_signing)",
     "cfg(require_route_graph_test)",
index d6c8f05174460a03409c3fac7a757be04e190e96..22d0783a97f74a40956a143c7fe61fa0958518ed 100755 (executable)
@@ -101,7 +101,7 @@ RUSTFLAGS="$RUSTFLAGS --cfg=c_bindings" cargo test -p lightning --verbose --colo
 
 echo -e "\n\nTesting other crate-specific builds"
 # Note that outbound_commitment_test only runs in this mode because of hardcoded signature values
-cargo test -p lightning --verbose --color always --no-default-features --features=std,_test_vectors
+RUSTFLAGS="$RUSTFLAGS --cfg=ldk_test_vectors" cargo test -p lightning --verbose --color always --no-default-features --features=std
 # This one only works for lightning-invoice
 # check that compile with no-std and serde works in lightning-invoice
 cargo test -p lightning-invoice --verbose --color always --no-default-features --features serde
index d642b6fbd803c040a6690cff4e365b5906eb318f..b8ebfdca210672fd91ffc958f1b2acf205c567e4 100644 (file)
@@ -28,8 +28,6 @@ max_level_trace = []
 # Allow signing of local transactions that may have been revoked or will be revoked, for functional testing (e.g. justice tx handling).
 # This is unsafe to use in production because it may result in the counterparty publishing taking our funds.
 unsafe_revoked_tx_signing = []
-# Override signing to not include randomness when generating signatures for test vectors.
-_test_vectors = []
 
 no-std = ["hashbrown", "possiblyrandom", "libm"]
 std = ["lightning-invoice/std", "bech32/std"]
index 98963c7c2bd4fd823c614e25b50dd1785d8dbab2..aab406157f81092ee08f9ff311ac83961055d13e 100644 (file)
@@ -75,9 +75,9 @@ pub fn sign_with_aux_rand<C: Signing, ES: Deref>(
                        break sig;
                }
        };
-       #[cfg(all(not(feature = "grind_signatures"), not(feature = "_test_vectors")))]
+       #[cfg(all(not(feature = "grind_signatures"), not(ldk_test_vectors)))]
        let sig = ctx.sign_ecdsa_with_noncedata(msg, sk, &entropy_source.get_secure_random_bytes());
-       #[cfg(all(not(feature = "grind_signatures"), feature = "_test_vectors"))]
+       #[cfg(all(not(feature = "grind_signatures"), ldk_test_vectors))]
        let sig = sign(ctx, msg, sk);
        sig
 }
index 907a505876649da93af8108c301257c45be7dd31..226fb50826d4497b9e5d65b59b130a8ac60607c8 100644 (file)
@@ -9659,8 +9659,9 @@ mod tests {
                }
        }
 
-       #[cfg(all(feature = "_test_vectors", not(feature = "grind_signatures")))]
+       #[cfg(ldk_test_vectors)]
        fn public_from_secret_hex(secp_ctx: &Secp256k1<bitcoin::secp256k1::All>, hex: &str) -> PublicKey {
+               assert!(cfg!(not(feature = "grind_signatures")));
                PublicKey::from_secret_key(&secp_ctx, &SecretKey::from_slice(&<Vec<u8>>::from_hex(hex).unwrap()[..]).unwrap())
        }
 
@@ -10237,9 +10238,11 @@ mod tests {
                assert_eq!(decoded_chan.context.holding_cell_htlc_updates, holding_cell_htlc_updates);
        }
 
-       #[cfg(all(feature = "_test_vectors", not(feature = "grind_signatures")))]
+       #[cfg(ldk_test_vectors)]
        #[test]
        fn outbound_commitment_test() {
+               assert!(cfg!(not(feature = "grind_signatures")));
+
                use bitcoin::sighash;
                use bitcoin::consensus::encode::serialize;
                use bitcoin::sighash::EcdsaSighashType;
index b0bf7611119990ee92708b4d020acf913c9ae95e..2684bb0f3a2deb7fa9d67737f8a7b18e2ce708ed 100644 (file)
@@ -532,9 +532,9 @@ impl core::hash::Hash for HTLCSource {
        }
 }
 impl HTLCSource {
-       #[cfg(all(feature = "_test_vectors", not(feature = "grind_signatures")))]
-       #[cfg(test)]
+       #[cfg(all(ldk_test_vectors, test))]
        pub fn dummy() -> Self {
+               assert!(cfg!(not(feature = "grind_signatures")));
                HTLCSource::OutboundRoute {
                        path: Path { hops: Vec::new(), blinded_tail: None },
                        session_priv: SecretKey::from_slice(&[1; 32]).unwrap(),
index 16f3b49262eaaa836f06b904a488ee959003be94..3fbcef3449b2ea83a17cda9e3506105d4f1ac1a2 100644 (file)
@@ -2990,7 +2990,7 @@ fn test_anchors_monitor_fixes_counterparty_payment_script_on_reload() {
        do_test_anchors_monitor_fixes_counterparty_payment_script_on_reload(true);
 }
 
-#[cfg(not(feature = "_test_vectors"))]
+#[cfg(not(ldk_test_vectors))]
 fn do_test_monitor_claims_with_random_signatures(anchors: bool, confirm_counterparty_commitment: bool) {
        // Tests that our monitor claims will always use fresh random signatures (ensuring a unique
        // wtxid) to prevent certain classes of transaction replacement at the bitcoin P2P layer.
@@ -3089,7 +3089,7 @@ fn do_test_monitor_claims_with_random_signatures(anchors: bool, confirm_counterp
        }
 }
 
-#[cfg(not(feature = "_test_vectors"))]
+#[cfg(not(ldk_test_vectors))]
 #[test]
 fn test_monitor_claims_with_random_signatures() {
        do_test_monitor_claims_with_random_signatures(false, false);