Update assert_weight test to account for a range up to 8 bytes.

Weights fluctuate because of the length of the signatures. Valid ecdsa signatures can have 68, 69, 70, 71, or 72 bytes. Since most of our transactions have 2 signatures the weight can be up to 8 bytes less than the static weight (4 bytes per signature).
pull/485/head
Philipp Hoenisch 3 years ago
parent d96e20a5b0
commit 330269a1e9
No known key found for this signature in database
GPG Key ID: E5F8E74C672BC666

@ -393,40 +393,26 @@ mod tests {
.unwrap();
let refund_transaction = bob_state6.signed_refund_transaction().unwrap();
assert_weight(
redeem_transaction.get_weight(),
TxRedeem::weight(),
"TxRedeem",
);
assert_weight(
cancel_transaction.get_weight(),
TxCancel::weight(),
"TxCancel",
);
assert_weight(
punish_transaction.get_weight(),
TxPunish::weight(),
"TxPunish",
);
assert_weight(
refund_transaction.get_weight(),
TxRefund::weight(),
"TxRefund",
);
assert_weight(redeem_transaction, TxRedeem::weight(), "TxRedeem");
assert_weight(cancel_transaction, TxCancel::weight(), "TxCancel");
assert_weight(punish_transaction, TxPunish::weight(), "TxPunish");
assert_weight(refund_transaction, TxRefund::weight(), "TxRefund");
}
// Weights fluctuate -+1 wu because of the length of the signatures.
// Some of our transactions have 2 signatures and hence the weight can fluctuate
// +-2
fn assert_weight(is_weight: usize, expected_weight: usize, tx_name: &str) {
// Weights fluctuate because of the length of the signatures. Valid ecdsa
// signatures can have 68, 69, 70, 71, or 72 bytes. Since most of our
// transactions have 2 signatures the weight can be up to 8 bytes less than
// the static weight (4 bytes per signature).
fn assert_weight(transaction: Transaction, expected_weight: usize, tx_name: &str) {
let is_weight = transaction.get_weight();
assert!(
is_weight + 1 == expected_weight
|| is_weight + 2 == expected_weight
|| is_weight == expected_weight,
"{} to have weight {}, but was {}",
expected_weight - is_weight <= 8,
"{} to have weight {}, but was {}. Transaction: {:#?}",
tx_name,
expected_weight,
is_weight
is_weight,
transaction
)
}
}

Loading…
Cancel
Save