Child storage tests and genesis fix. (#3185)

* Using child storage, (srml-support only), test failing .

* fix simple tests.

* Enumerable by requiring owned struct (previous form only allow
&'static).
Broken tests are from genesis init.

* implement for_child_keys_with_prefix

* indent

* clear_child_prefix fix.

* clear_child_prefix fix 2.

* fix for storage_impl, if/when allowing child and not child this could be
reverted.

* Fix lot of urlinked child genesis, still need to look upon actual
genesis srml module code.
Probably still a lot of broken code needing debugging.

* switch well_known_key to their associated module child trie.
Fix a genesis init (balance).
Complete some testing.
Comment some tests before using.

* fixing test runtime child keys

* latest commit fix broken genesis init

* fix system balances child name.

* Important fix: storage_root from test externalities need children (it is
already the case for ext).

* executive root with child calculation

* Avoid empty trie on test ext.

* Symetric removal of key for system.

* commenting changes related tests.

* Remove child module specifics.

* fix issues.

* fix some formatting

* fix bench and bump runtime

* Remove extend_storage_overlays, assimilate_storage do the same as is
proper considering srml macro.

* Fix warning for assimilate.

* Removing kill as they do not impact any test cases.

* Use tuple of storage map instead of two parameters. This changes the
behavior of decl_storage genesis build closure (breaking api).

* Do not use build storage before assimilate.

* fix error

* Update core/state-machine/src/backend.rs
This commit is contained in:
cheme
2019-08-08 15:05:25 +02:00
committed by Gavin Wood
parent 0067b2d9a2
commit b0e1212d48
59 changed files with 523 additions and 271 deletions
+15 -15
View File
@@ -174,7 +174,7 @@ mod tests {
#[test]
fn panic_execution_with_foreign_code_gives_error() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
69_u128.encode()
},
@@ -187,7 +187,7 @@ mod tests {
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => {
vec![0u8; 32]
}
]);
], map![]));
let r = executor().call::<_, NeverNativeValue, fn() -> _>(
&mut t,
@@ -210,7 +210,7 @@ mod tests {
#[test]
fn bad_extrinsic_with_native_equivalent_code_gives_error() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
69_u128.encode()
},
@@ -223,7 +223,7 @@ mod tests {
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => {
vec![0u8; 32]
}
]);
], map![]));
let r = executor().call::<_, NeverNativeValue, fn() -> _>(
&mut t,
@@ -246,7 +246,7 @@ mod tests {
#[test]
fn successful_execution_with_native_equivalent_code_gives_ok() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
(111 * DOLLARS).encode()
},
@@ -255,7 +255,7 @@ mod tests {
},
twox_128(<indices::NextEnumSet<Runtime>>::key()).to_vec() => vec![0u8; 16],
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => vec![0u8; 32]
]);
], map![]));
let r = executor().call::<_, NeverNativeValue, fn() -> _>(
&mut t,
@@ -282,7 +282,7 @@ mod tests {
#[test]
fn successful_execution_with_foreign_code_gives_ok() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
(111 * DOLLARS).encode()
},
@@ -291,7 +291,7 @@ mod tests {
},
twox_128(<indices::NextEnumSet<Runtime>>::key()).to_vec() => vec![0u8; 16],
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => vec![0u8; 32]
]);
], map![]));
let r = executor().call::<_, NeverNativeValue, fn() -> _>(
&mut t,
@@ -328,7 +328,7 @@ mod tests {
}
fn new_test_ext(code: &[u8], support_changes_trie: bool) -> TestExternalities<Blake2Hasher> {
let mut ext = TestExternalities::new_with_code_with_children(code, GenesisConfig {
let mut ext = TestExternalities::new_with_code(code, GenesisConfig {
system: Some(SystemConfig {
changes_trie_config: if support_changes_trie { Some(ChangesTrieConfiguration {
digest_interval: 2,
@@ -875,7 +875,7 @@ mod tests {
#[test]
fn panic_execution_gives_error() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(BLOATY_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
0_u128.encode()
},
@@ -884,7 +884,7 @@ mod tests {
},
twox_128(<indices::NextEnumSet<Runtime>>::key()).to_vec() => vec![0u8; 16],
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => vec![0u8; 32]
]);
], map![]));
let r = WasmExecutor::new()
.call(&mut t, 8, COMPACT_CODE, "Core_initialize_block", &vec![].and(&from_block_number(1u64)));
@@ -897,7 +897,7 @@ mod tests {
#[test]
fn successful_execution_gives_ok() {
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
(111 * DOLLARS).encode()
},
@@ -906,7 +906,7 @@ mod tests {
},
twox_128(<indices::NextEnumSet<Runtime>>::key()).to_vec() => vec![0u8; 16],
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => vec![0u8; 32]
]);
], map![]));
let r = WasmExecutor::new()
.call(&mut t, 8, COMPACT_CODE, "Core_initialize_block", &vec![].and(&from_block_number(1u64)));
@@ -1057,7 +1057,7 @@ mod tests {
// - 1 MILLICENTS in substrate node.
// - 1 milldot based on current polkadot runtime.
// (this baed on assigning 0.1 CENT to the cheapest tx with `weight = 100`)
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, map![
let mut t = TestExternalities::<Blake2Hasher>::new_with_code(COMPACT_CODE, (map![
blake2_256(&<balances::FreeBalance<Runtime>>::key_for(alice())).to_vec() => {
(100 * DOLLARS).encode()
},
@@ -1069,7 +1069,7 @@ mod tests {
},
twox_128(<indices::NextEnumSet<Runtime>>::key()).to_vec() => vec![0u8; 16],
blake2_256(&<system::BlockHash<Runtime>>::key_for(0)).to_vec() => vec![0u8; 32]
]);
], map![]));
let tip = 1_000_000;
let xt = sign(CheckedExtrinsic {