Merge rust-bitcoin/rust-bitcoin#4012: primitives: Add tests to `block.rs`
ff3b3ddb67
Add a test for Header size (Jamil Lambert, PhD)0df15d5cfd
Add version test (Jamil Lambert, PhD)927251ef8e
Expand version signalling test (Jamil Lambert, PhD) Pull request description: Running `cargo mutants` on `primitives/src/block.rs` found multiple mutants. Add tests to kill the mutants and replace one verbosely written out sum with the result. ACKs for top commit: apoelstra: ACK ff3b3ddb675446fd21f3f7488749fc7fb26c7ef2; successfully ran local tests tcharding: ACKff3b3ddb67
Tree-SHA512: a30cabf699b5c1c5f1b3507385f1041795316c8a5739454b219719aafe24d1f10e20b69b3cb2330290b7df71d5fedfd0d353b63404f47bef9476e0be2b115295
This commit is contained in:
commit
94c3fa4ca7
|
@ -365,6 +365,8 @@ mod tests {
|
||||||
fn version_is_signalling() {
|
fn version_is_signalling() {
|
||||||
let version = Version::from_consensus(0b00100000000000000000000000000010);
|
let version = Version::from_consensus(0b00100000000000000000000000000010);
|
||||||
assert!(Version::is_signalling_soft_fork(&version, 1));
|
assert!(Version::is_signalling_soft_fork(&version, 1));
|
||||||
|
let version = Version::from_consensus(0b00110000000000000000000000000000);
|
||||||
|
assert!(Version::is_signalling_soft_fork(&version, 28));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -372,4 +374,34 @@ mod tests {
|
||||||
let version = Version::from_consensus(0b00100000000000000000000000000010);
|
let version = Version::from_consensus(0b00100000000000000000000000000010);
|
||||||
assert!(!Version::is_signalling_soft_fork(&version, 0));
|
assert!(!Version::is_signalling_soft_fork(&version, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn version_to_consensus() {
|
||||||
|
let version = Version::from_consensus(1234567890);
|
||||||
|
assert_eq!(version.to_consensus(), 1234567890);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that the size of the header consensus serialization matches the const SIZE value
|
||||||
|
#[test]
|
||||||
|
fn header_size() {
|
||||||
|
let header = Header {
|
||||||
|
version: Version::ONE,
|
||||||
|
prev_blockhash: BlockHash::from_byte_array([0x99; 32]),
|
||||||
|
merkle_root: TxMerkleNode::from_byte_array([0x77; 32]),
|
||||||
|
time: 2,
|
||||||
|
bits: CompactTarget::from_consensus(3),
|
||||||
|
nonce: 4,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Calculate the size of the block header in bytes from the sum of the serialized lengths
|
||||||
|
// it's fields: version, prev_blockhash, merkle_root, time, bits, nonce.
|
||||||
|
let header_size = header.version.to_consensus().to_le_bytes().len()
|
||||||
|
+ header.prev_blockhash.as_byte_array().len()
|
||||||
|
+ header.merkle_root.as_byte_array().len()
|
||||||
|
+ header.time.to_le_bytes().len()
|
||||||
|
+ header.bits.to_consensus().to_le_bytes().len()
|
||||||
|
+ header.nonce.to_le_bytes().len();
|
||||||
|
|
||||||
|
assert_eq!(header_size, Header::SIZE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue