segwit: basic serialization tests

This commit is contained in:
Svyatoslav Nikolsky 2017-08-23 13:14:19 +03:00
parent db46633ef8
commit 5fb35020f6
2 changed files with 25 additions and 1 deletions

View File

@ -84,3 +84,18 @@ impl From<&'static str> for IndexedBlock {
deserialize(&s.from_hex().unwrap() as &[u8]).unwrap()
}
}
#[cfg(test)]
mod tests {
use super::IndexedBlock;
#[test]
fn size_with_witness_not_equal_to_size() {
let block_without_witness: IndexedBlock = "000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000".into();
assert_eq!(block_without_witness.size(), block_without_witness.size_with_witness());
// bip143 block
let block_with_witness: IndexedBlock = "0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000000".into();
assert!(block_with_witness.size() != block_with_witness.size_with_witness());
}
}

View File

@ -262,7 +262,7 @@ impl Deserializable for Transaction {
#[cfg(test)]
mod tests {
use hash::H256;
use ser::Serializable;
use ser::{Serializable, serialize_with_flags, SERIALIZE_TRANSACTION_WITNESS};
use super::{Transaction, TransactionInput, OutPoint, TransactionOutput};
// real transaction from block 80000
@ -335,4 +335,13 @@ mod tests {
};
assert_eq!(actual, expected);
}
#[test]
fn test_serialization_with_flags() {
let transaction_without_witness: Transaction = "000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000".into();
assert_eq!(serialize_with_flags(&transaction_without_witness, 0), serialize_with_flags(&transaction_without_witness, SERIALIZE_TRANSACTION_WITNESS));
let transaction_with_witness: Transaction = "0000000000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000001010000000000".into();
assert!(serialize_with_flags(&transaction_with_witness, 0) != serialize_with_flags(&transaction_with_witness, SERIALIZE_TRANSACTION_WITNESS));
}
}