Skip to content
Snippets Groups Projects
Commit d0f01417 authored by Anthony GRAIGNIC's avatar Anthony GRAIGNIC
Browse files

Add unit tests to reproduce issue #123

parent b3bb4535
1 merge request!93Add unit tests to reproduce issue #123
Pipeline #6089 failed
......@@ -213,6 +213,11 @@ pub type BlockRewardSchedule = BlockSchedule<U256>;
#[cfg(test)]
mod tests {
use std::{
thread::sleep,
time::{Duration, UNIX_EPOCH},
};
use crate::res::chainspec::MAINNET;
use super::*;
......@@ -334,4 +339,73 @@ mod tests {
assert_eq!(schedule.for_block(BlockNumber(block)), expected_reward);
}
}
#[test]
fn validate_block_header_error_future_block_issue_123() {
// ARRANGE
let consensus_engine_base = ConsensusEngineBase::new(ChainId(63), None, None);
let now = SystemTime::now()
.duration_since(SystemTime::UNIX_EPOCH)
.unwrap()
.as_secs();
sleep(Duration::from_secs(3));
let mut header = BlockHeader::default();
header.timestamp = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs()
+ 5;
let parent = BlockHeader::default();
sleep(Duration::from_secs(3));
// ACT
let result = consensus_engine_base.validate_block_header(&header, &parent, true);
// ASSERT
assert!(result.is_err());
}
#[test]
fn validate_block_header_error_future_block() {
// ARRANGE
let consensus_engine_base = ConsensusEngineBase::new(ChainId(63), None, None);
let mut header = BlockHeader::default();
header.timestamp = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs()
+ 1_000_000;
let parent = BlockHeader::default();
// ACT
let result = consensus_engine_base.validate_block_header(&header, &parent, true);
// ASSERT
assert!(result.is_err());
}
#[test]
fn validate_block_header_should_work() {
// ARRANGE
let consensus_engine_base = ConsensusEngineBase::new(ChainId(63), None, None);
let mut header = BlockHeader::default();
header.timestamp = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs()
- 3600;
let parent = BlockHeader::default();
// ACT
let result = consensus_engine_base.validate_block_header(&header, &parent, true);
// ASSERT
assert!(result.is_ok());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment