Statically register host WASM functions (#10394)

* Statically register host WASM functions

* Fix `substrate-test-client` compilation

* Move `ExtendedHostFunctions` to `sp-wasm-interface`

* Fix `sp-runtime-interface` tests' compilation

* Fix `sc-executor-wasmtime` tests' compilation

* Use `runtime_interface` macro in `test-runner`

* Fix `sc-executor` tests' compilation

* Reformatting/`rustfmt`

* Add an extra comment regarding the `H` generic arg in `create_runtime`

* Even more `rustfmt`

* Depend on `wasmtime` without default features in `sp-wasm-interface`

* Bump version of `sp-wasm-interface` to 4.0.1

* Bump `sp-wasm-interface` in `Cargo.lock` too

* Bump all of the `sp-wasm-interface` requirements to 4.0.1

Maybe this will appease cargo-unleash?

* Revert "Bump all of the `sp-wasm-interface` requirements to 4.0.1"

This reverts commit 0f7ccf8e0f371542861121b145ab87af6541ac30.

* Make `cargo-unleash` happy (maybe)

* Use `cargo-unleash` to bump the crates' versions

* Align to review comments
This commit is contained in:
Koute
2021-12-14 17:26:40 +09:00
committed by GitHub
parent 23c5b6755b
commit 7711f5266e
36 changed files with 742 additions and 570 deletions
@@ -78,7 +78,7 @@ impl RuntimeBuilder {
.expect("failed to create a runtime blob out of test runtime")
};
let rt = crate::create_runtime(
let rt = crate::create_runtime::<HostFunctions>(
blob,
crate::Config {
heap_pages: self.heap_pages,
@@ -98,10 +98,6 @@ impl RuntimeBuilder {
parallel_compilation: true,
},
},
{
use sp_wasm_interface::HostFunctions as _;
HostFunctions::host_functions()
},
)
.expect("cannot create runtime");
@@ -316,9 +312,7 @@ fn test_max_memory_pages() {
#[cfg_attr(build_type = "debug", ignore)]
#[test]
fn test_instances_without_reuse_are_not_leaked() {
use sp_wasm_interface::HostFunctions;
let runtime = crate::create_runtime(
let runtime = crate::create_runtime::<HostFunctions>(
RuntimeBlob::uncompress_if_needed(&wasm_binary_unwrap()[..]).unwrap(),
crate::Config {
heap_pages: 2048,
@@ -332,7 +326,6 @@ fn test_instances_without_reuse_are_not_leaked() {
parallel_compilation: true,
},
},
sp_io::SubstrateHostFunctions::host_functions(),
)
.unwrap();