diff --git a/client/network/tests/sync_blocks_from_tip_without_connected_collator.rs b/client/network/tests/sync_blocks_from_tip_without_connected_collator.rs
deleted file mode 100644
index 6b4f17bc528..00000000000
--- a/client/network/tests/sync_blocks_from_tip_without_connected_collator.rs
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2021 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-use cumulus_primitives_core::ParaId;
-use cumulus_test_service::{initial_head_data, run_relay_chain_validator_node, Keyring::*};
-use futures::join;
-
-#[substrate_test_utils::test(flavor = "multi_thread")]
-#[ignore]
-async fn sync_blocks_from_tip_without_being_connected_to_a_collator() {
- let mut builder = sc_cli::LoggerBuilder::new("");
- builder.with_colors(false);
- let _ = builder.init();
-
- let para_id = ParaId::from(100);
- let tokio_handle = tokio::runtime::Handle::current();
-
- let ws_port = portpicker::pick_unused_port().expect("No free ports");
- // start alice
- let alice = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Alice,
- || {},
- Vec::new(),
- Some(ws_port),
- );
-
- // start bob
- let bob = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- None,
- );
-
- // register parachain
- alice
- .register_parachain(
- para_id,
- cumulus_test_service::runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec(),
- initial_head_data(para_id),
- )
- .await
- .unwrap();
-
- // run charlie as parachain collator
- let charlie =
- cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Charlie)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run dave as parachain full node
- let dave = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Dave)
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run eve as parachain full node that is only connected to dave
- let eve = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Eve)
- .connect_to_parachain_node(&dave)
- .exclusively_connect_to_registered_parachain_nodes()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run eve as parachain full node that is only connected to dave
- let ferdie = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle, Ferdie)
- .connect_to_parachain_node(&dave)
- .exclusively_connect_to_registered_parachain_nodes()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .use_external_relay_chain_node_at_port(ws_port)
- .build()
- .await;
-
- join!(ferdie.wait_for_blocks(7), eve.wait_for_blocks(7));
-}
diff --git a/client/pov-recovery/tests/pov_recovery.rs b/client/pov-recovery/tests/pov_recovery.rs
deleted file mode 100644
index dd8be634896..00000000000
--- a/client/pov-recovery/tests/pov_recovery.rs
+++ /dev/null
@@ -1,140 +0,0 @@
-// Copyright 2021 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-use cumulus_primitives_core::ParaId;
-use cumulus_test_service::{initial_head_data, Keyring::*};
-use futures::join;
-use std::sync::Arc;
-
-/// Tests the PoV recovery.
-///
-/// If there is a block of the parachain included/backed by the relay chain that isn't circulated in
-/// the parachain network, we need to recover the PoV from the relay chain. Using this PoV we can
-/// recover the block, import it and share it with the other nodes of the parachain network.
-#[substrate_test_utils::test(flavor = "multi_thread")]
-#[ignore]
-async fn pov_recovery() {
- let mut builder = sc_cli::LoggerBuilder::new("");
- builder.with_colors(false);
- let _ = builder.init();
-
- let para_id = ParaId::from(100);
- let tokio_handle = tokio::runtime::Handle::current();
-
- // Start alice
- let ws_port = portpicker::pick_unused_port().expect("No free ports");
- let alice = cumulus_test_service::run_relay_chain_validator_node(
- tokio_handle.clone(),
- Alice,
- || {},
- Vec::new(),
- Some(ws_port),
- );
-
- // Start bob
- let bob = cumulus_test_service::run_relay_chain_validator_node(
- tokio_handle.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- None,
- );
-
- // Register parachain
- alice
- .register_parachain(
- para_id,
- cumulus_test_service::runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec(),
- initial_head_data(para_id),
- )
- .await
- .unwrap();
-
- // Run charlie as parachain collator
- let charlie =
- cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Charlie)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .wrap_announce_block(|_| {
- // Never announce any block
- Arc::new(|_, _| {})
- })
- .build()
- .await;
-
- // Run dave as parachain collator and eve as parachain full node
- //
- // They will need to recover the pov blocks through availability recovery.
- let dave = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Dave)
- .enable_collator()
- .use_null_consensus()
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .wrap_announce_block(|_| {
- // Never announce any block
- Arc::new(|_, _| {})
- })
- .build()
- .await;
-
- let eve = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Eve)
- .use_null_consensus()
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .wrap_announce_block(|_| {
- // Never announce any block
- Arc::new(|_, _| {})
- })
- .build()
- .await;
-
- // Run ferdie as parachain RPC collator and one as parachain RPC full node
- //
- // They will need to recover the pov blocks through availability recovery.
- let ferdie = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Ferdie)
- .use_null_consensus()
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .use_external_relay_chain_node_at_port(ws_port)
- .wrap_announce_block(|_| {
- // Never announce any block
- Arc::new(|_, _| {})
- })
- .build()
- .await;
-
- let one = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle, One)
- .enable_collator()
- .use_null_consensus()
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .use_external_relay_chain_node_at_port(ws_port)
- .wrap_announce_block(|_| {
- // Never announce any block
- Arc::new(|_, _| {})
- })
- .build()
- .await;
-
- join!(
- dave.wait_for_blocks(7),
- eve.wait_for_blocks(7),
- ferdie.wait_for_blocks(7),
- one.wait_for_blocks(7)
- );
-}
diff --git a/test/service/tests/full_node_catching_up.rs b/test/service/tests/full_node_catching_up.rs
deleted file mode 100644
index 1dee360fc86..00000000000
--- a/test/service/tests/full_node_catching_up.rs
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2020-2021 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-use cumulus_primitives_core::ParaId;
-use cumulus_test_service::{initial_head_data, run_relay_chain_validator_node, Keyring::*};
-use futures::join;
-
-#[substrate_test_utils::test(flavor = "multi_thread")]
-#[ignore]
-async fn test_full_node_catching_up() {
- let mut builder = sc_cli::LoggerBuilder::new("");
- builder.with_colors(false);
- let _ = builder.init();
-
- let para_id = ParaId::from(100);
-
- let tokio_handle = tokio::runtime::Handle::current();
-
- let ws_port = portpicker::pick_unused_port().expect("No free ports");
- // start alice
- let alice = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Alice,
- || {},
- Vec::new(),
- Some(ws_port),
- );
-
- // start bob
- let bob = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- None,
- );
-
- // register parachain
- alice
- .register_parachain(
- para_id,
- cumulus_test_runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec(),
- initial_head_data(para_id),
- )
- .await
- .unwrap();
-
- // run cumulus charlie (a parachain collator)
- let charlie =
- cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Charlie)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
- charlie.wait_for_blocks(5).await;
-
- // run cumulus dave (a parachain full node) and wait for it to sync some blocks
- let dave = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Dave)
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run cumulus dave (a parachain full node) and wait for it to sync some blocks
- let eve = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle, Eve)
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .use_external_relay_chain_node_at_port(ws_port)
- .build()
- .await;
-
- join!(dave.wait_for_blocks(7), eve.wait_for_blocks(7));
-}
diff --git a/test/service/tests/migrate_solo_to_para.rs b/test/service/tests/migrate_solo_to_para.rs
deleted file mode 100644
index 89afd8d42b1..00000000000
--- a/test/service/tests/migrate_solo_to_para.rs
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2020-2021 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-//! Test migration from parachain A to parachain B by returning the header of parachain B.
-//!
-//! This can be seen as a test of the fundamentals of the solo to parachain migration use case.
-//! The prerequisite is to have a running solo chain and a running parachain. The idea is that
-//! the solo chain is being stopped at a given point and sends its last header to the running parachain.
-//! The parachain will return this header as part of the validation phase on the relay chain to enact
-//! this header as its current latest state. As the old running parachain doesn't know this header, it will
-//! stop to produce new blocks. However, the old solo chain can now produce blocks using the parachain slot.
-//! (Be aware, that this is just a highlevel description and some parts are omitted.)
-
-use codec::Encode;
-use cumulus_primitives_core::ParaId;
-use cumulus_test_service::{initial_head_data, run_relay_chain_validator_node, Keyring::*};
-use sc_client_api::{BlockBackend, UsageProvider};
-use sp_runtime::generic::BlockId;
-
-#[substrate_test_utils::test(flavor = "multi_thread")]
-#[ignore]
-async fn test_migrate_solo_to_para() {
- let mut builder = sc_cli::LoggerBuilder::new("");
- builder.with_colors(false);
- let _ = builder.init();
-
- let para_id = ParaId::from(100);
-
- let tokio_handle = tokio::runtime::Handle::current();
-
- // start alice
- let alice =
- run_relay_chain_validator_node(tokio_handle.clone(), Alice, || {}, Vec::new(), None);
-
- // start bob
- let bob = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- None,
- );
-
- // register parachain
- alice
- .register_parachain(
- para_id,
- cumulus_test_runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec(),
- initial_head_data(para_id),
- )
- .await
- .unwrap();
-
- // run the parachain that will be used to return the header of the solo chain.
- let parachain =
- cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Charlie)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run the solo chain (in our case this is also already a parachain, but as it has a different genesis it will not produce any blocks.)
- let solo = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle, Dave)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- // Set some random value in the genesis state to create a different genesis hash.
- .update_storage_parachain(|| {
- sp_io::storage::set(b"test", b"test");
- })
- .build()
- .await;
-
- parachain.wait_for_blocks(2).await;
-
- // Ensure that both chains have a different genesis hash.
- assert_ne!(
- parachain.client.block_hash(0).ok().flatten().unwrap(),
- solo.client.block_hash(0).ok().flatten().unwrap(),
- );
-
- let solo_chain_header = solo.client.header(&BlockId::Number(0)).ok().flatten().unwrap();
-
- // Send the transaction to set the custom header, aka the header of the solo chain.
- parachain
- .send_extrinsic(
- cumulus_test_runtime::TestPalletCall::set_custom_validation_head_data {
- custom_header: solo_chain_header.encode(),
- },
- Alice,
- )
- .await
- .unwrap();
-
- // Wait until the solo chain produced a block now as a parachain.
- solo.wait_for_blocks(1).await;
-
- let parachain_best = parachain.client.usage_info().chain.best_number;
-
- // Wait for some more blocks and check that the old parachain doesn't produced/imported any new blocks.
- solo.wait_for_blocks(2).await;
- assert_eq!(parachain_best, parachain.client.usage_info().chain.best_number);
-}
diff --git a/test/service/tests/runtime_upgrade.rs b/test/service/tests/runtime_upgrade.rs
deleted file mode 100644
index 37eb82d8e04..00000000000
--- a/test/service/tests/runtime_upgrade.rs
+++ /dev/null
@@ -1,102 +0,0 @@
-// Copyright 2021 Parity Technologies (UK) Ltd.
-// This file is part of Substrate.
-
-// Substrate is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-
-// Substrate is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-
-// You should have received a copy of the GNU General Public License
-// along with Substrate. If not, see .
-
-use cumulus_primitives_core::ParaId;
-use cumulus_test_service::{initial_head_data, run_relay_chain_validator_node, Keyring::*};
-use futures::StreamExt;
-use sc_client_api::BlockchainEvents;
-use sp_runtime::generic::BlockId;
-
-#[substrate_test_utils::test(flavor = "multi_thread")]
-#[ignore]
-async fn test_runtime_upgrade() {
- let mut builder = sc_cli::LoggerBuilder::new("runtime=debug");
- builder.with_colors(false);
- let _ = builder.init();
-
- let para_id = ParaId::from(100);
- let tokio_handle = tokio::runtime::Handle::current();
-
- // start alice
- let alice =
- run_relay_chain_validator_node(tokio_handle.clone(), Alice, || {}, Vec::new(), None);
-
- // start bob
- let bob = run_relay_chain_validator_node(
- tokio_handle.clone(),
- Bob,
- || {},
- vec![alice.addr.clone()],
- None,
- );
-
- // register parachain
- alice
- .register_parachain(
- para_id,
- cumulus_test_runtime::WASM_BINARY
- .expect("You need to build the WASM binary to run this test!")
- .to_vec(),
- initial_head_data(para_id),
- )
- .await
- .unwrap();
-
- // run cumulus charlie (a parachain collator)
- let charlie =
- cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle.clone(), Charlie)
- .enable_collator()
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // run cumulus dave (a parachain full node)
- let dave = cumulus_test_service::TestNodeBuilder::new(para_id, tokio_handle, Dave)
- .connect_to_parachain_node(&charlie)
- .connect_to_relay_chain_nodes(vec![&alice, &bob])
- .build()
- .await;
-
- // Wait for 2 blocks to be produced
- charlie.wait_for_blocks(2).await;
-
- let mut expected_runtime_version = charlie
- .client
- .runtime_version_at(&BlockId::number(0))
- .expect("Runtime version exists");
- expected_runtime_version.spec_version += 1;
-
- let wasm = cumulus_test_runtime::wasm_spec_version_incremented::WASM_BINARY
- .expect("Wasm binary with incremented spec version should have been built");
-
- // schedule runtime upgrade
- charlie.schedule_upgrade(wasm.into()).await.unwrap();
-
- let mut import_stream = dave.client.import_notification_stream();
-
- while let Some(notification) = import_stream.next().await {
- if notification.is_new_best {
- let runtime_version = dave
- .client
- .runtime_version_at(&BlockId::Hash(notification.hash))
- .expect("Runtime version exists");
-
- if expected_runtime_version == runtime_version {
- break
- }
- }
- }
-}