Prepare UI tests for rust 1.55 (#9637)

* Prepare UI tests for rust 1.54

* Delete wrong_page.stderr

* CI: run with a staging CI image

* Revert "CI: run with a staging CI image"

This reverts commit 66f5b00d14b50fd9d8fbf773f7e884f380697591.

* CI: debug, again

* LOG_TARGET is only used in std

* Remove unnecessary unsafe

* Fixes

* Use correct rustc locally

* FMT

* Compile with benchmarking

* Review feedback

* Some ui tests

* I know...

* Fix wasm tests

Co-authored-by: Denis P <denis.pisarev@parity.io>
Co-authored-by: thiolliere <gui.thiolliere@gmail.com>
This commit is contained in:
Bastian Köcher
2021-09-24 13:42:08 +03:00
committed by GitHub
parent 1879a2d04f
commit 62187b5916
60 changed files with 431 additions and 335 deletions
@@ -41,7 +41,7 @@ use std::{cell::RefCell, panic::UnwindSafe, result, sync::Arc};
pub struct LocalCallExecutor<Block: BlockT, B, E> {
backend: Arc<B>,
executor: E,
wasm_override: Option<WasmOverride<E>>,
wasm_override: Option<WasmOverride>,
wasm_substitutes: WasmSubstitutes<Block, E, B>,
spawn_handle: Box<dyn SpawnNamed>,
client_config: ClientConfig<Block>,
@@ -62,7 +62,7 @@ where
let wasm_override = client_config
.wasm_runtime_overrides
.as_ref()
.map(|p| WasmOverride::new(p.clone(), executor.clone()))
.map(|p| WasmOverride::new(p.clone(), &executor))
.transpose()?;
let wasm_substitutes = WasmSubstitutes::new(
@@ -371,7 +371,7 @@ mod tests {
1,
);
let overrides = crate::client::wasm_override::dummy_overrides(&executor);
let overrides = crate::client::wasm_override::dummy_overrides();
let onchain_code = WrappedRuntimeCode(substrate_test_runtime::wasm_binary_unwrap().into());
let onchain_code = RuntimeCode {
code_fetcher: &onchain_code,
@@ -104,22 +104,19 @@ impl From<WasmOverrideError> for sp_blockchain::Error {
/// Scrapes WASM from a folder and returns WASM from that folder
/// if the runtime spec version matches.
#[derive(Clone, Debug)]
pub struct WasmOverride<E> {
pub struct WasmOverride {
// Map of runtime spec version -> Wasm Blob
overrides: HashMap<u32, WasmBlob>,
executor: E,
}
impl<E> WasmOverride<E>
where
E: RuntimeVersionOf + Clone + 'static,
{
pub fn new<P>(path: P, executor: E) -> Result<Self>
impl WasmOverride {
pub fn new<P, E>(path: P, executor: &E) -> Result<Self>
where
P: AsRef<Path>,
E: RuntimeVersionOf,
{
let overrides = Self::scrape_overrides(path.as_ref(), &executor)?;
Ok(Self { overrides, executor })
let overrides = Self::scrape_overrides(path.as_ref(), executor)?;
Ok(Self { overrides })
}
/// Gets an override by it's runtime spec version.
@@ -131,7 +128,10 @@ where
/// Scrapes a folder for WASM runtimes.
/// Returns a hashmap of the runtime version and wasm runtime code.
fn scrape_overrides(dir: &Path, executor: &E) -> Result<HashMap<u32, WasmBlob>> {
fn scrape_overrides<E>(dir: &Path, executor: &E) -> Result<HashMap<u32, WasmBlob>>
where
E: RuntimeVersionOf,
{
let handle_err = |e: std::io::Error| -> sp_blockchain::Error {
WasmOverrideError::Io(dir.to_owned(), e).into()
};
@@ -176,11 +176,14 @@ where
Ok(overrides)
}
fn runtime_version(
fn runtime_version<E>(
executor: &E,
code: &WasmBlob,
heap_pages: Option<u64>,
) -> Result<RuntimeVersion> {
) -> Result<RuntimeVersion>
where
E: RuntimeVersionOf,
{
let mut ext = BasicExternalities::default();
executor
.runtime_version(&mut ext, &code.runtime_code(heap_pages))
@@ -190,15 +193,12 @@ where
/// Returns a WasmOverride struct filled with dummy data for testing.
#[cfg(test)]
pub fn dummy_overrides<E>(executor: &E) -> WasmOverride<E>
where
E: RuntimeVersionOf + Clone + 'static,
{
pub fn dummy_overrides() -> WasmOverride {
let mut overrides = HashMap::new();
overrides.insert(0, WasmBlob::new(vec![0, 0, 0, 0, 0, 0, 0, 0]));
overrides.insert(1, WasmBlob::new(vec![1, 1, 1, 1, 1, 1, 1, 1]));
overrides.insert(2, WasmBlob::new(vec![2, 2, 2, 2, 2, 2, 2, 2]));
WasmOverride { overrides, executor: executor.clone() }
WasmOverride { overrides }
}
#[cfg(test)]