refactor out validation hosts to pool struct (#972)

* refactor out validation hosts to pool struct

* make web-wasm compatible

* typo

* remove now-unused static hosts
This commit is contained in:
Robert Habermeier
2020-04-04 15:15:54 -04:00
committed by GitHub
parent a2a4f4c755
commit 15a83079ba
11 changed files with 122 additions and 48 deletions
+8 -3
View File
@@ -70,6 +70,8 @@ pub fn execute_good_on_parent() {
add: 512,
};
let pool = parachain::wasm_executor::ValidationPool::new();
let ret = parachain::wasm_executor::validate_candidate(
TEST_CODE,
ValidationParams {
@@ -77,7 +79,7 @@ pub fn execute_good_on_parent() {
block_data: block_data.encode(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool),
).unwrap();
let new_head = HeadData::decode(&mut &ret.head_data[..]).unwrap();
@@ -92,6 +94,7 @@ fn execute_good_chain_on_parent() {
let mut number = 0;
let mut parent_hash = [0; 32];
let mut last_state = 0;
let pool = parachain::wasm_executor::ValidationPool::new();
for add in 0..10 {
let parent_head = HeadData {
@@ -112,7 +115,7 @@ fn execute_good_chain_on_parent() {
block_data: block_data.encode(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool),
).unwrap();
let new_head = HeadData::decode(&mut &ret.head_data[..]).unwrap();
@@ -129,6 +132,8 @@ fn execute_good_chain_on_parent() {
#[test]
fn execute_bad_on_parent() {
let pool = parachain::wasm_executor::ValidationPool::new();
let parent_head = HeadData {
number: 0,
parent_hash: [0; 32],
@@ -147,6 +152,6 @@ fn execute_bad_on_parent() {
block_data: block_data.encode(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool),
).unwrap_err();
}
@@ -25,6 +25,8 @@ const INFINITE_LOOP_CODE: &[u8] = halt::WASM_BINARY;
#[test]
fn terminates_on_timeout() {
let pool = parachain::wasm_executor::ValidationPool::new();
let result = parachain::wasm_executor::validate_candidate(
INFINITE_LOOP_CODE,
ValidationParams {
@@ -32,7 +34,7 @@ fn terminates_on_timeout() {
block_data: Vec::new(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool),
);
match result {
Err(parachain::wasm_executor::Error::Timeout) => {},
@@ -45,7 +47,11 @@ fn terminates_on_timeout() {
#[test]
fn parallel_execution() {
let pool = parachain::wasm_executor::ValidationPool::new();
let start = std::time::Instant::now();
let pool2 = pool.clone();
let thread = std::thread::spawn(move ||
parachain::wasm_executor::validate_candidate(
INFINITE_LOOP_CODE,
@@ -54,7 +60,7 @@ fn parallel_execution() {
block_data: Vec::new(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool2),
).ok());
let _ = parachain::wasm_executor::validate_candidate(
INFINITE_LOOP_CODE,
@@ -63,7 +69,7 @@ fn parallel_execution() {
block_data: Vec::new(),
},
DummyExt,
parachain::wasm_executor::ExecutionMode::RemoteTest,
parachain::wasm_executor::ExecutionMode::RemoteTest(&pool),
);
thread.join().unwrap();
// total time should be < 2 x EXECUTION_TIMEOUT_SEC