1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
// This file is part of Substrate. // Copyright (C) 2017-2021 Parity Technologies (UK) Ltd. // SPDX-License-Identifier: Apache-2.0 // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //! Test utils #[doc(hidden)] pub use futures; /// Marks async function to be executed by an async runtime and provide a `TaskExecutor`, suitable /// to test environment. /// /// # Requirements /// /// You must have tokio in the `[dev-dependencies]` of your crate to use this macro. /// /// # Example /// /// ``` /// #[substrate_test_utils::test] /// async fn basic_test(task_executor: TaskExecutor) { /// assert!(true); /// // create your node in here and use task_executor /// // then don't forget to gracefully shutdown your node before exit /// } /// ``` pub use substrate_test_utils_derive::test; #[doc(hidden)] pub use tokio; /// Panic when the vectors are different, without taking the order into account. /// /// # Examples /// /// ```rust /// #[macro_use] /// # use substrate_test_utils::{assert_eq_uvec}; /// # fn main() { /// assert_eq_uvec!(vec![1,2], vec![2,1]); /// # } /// ``` /// /// ```rust,should_panic /// #[macro_use] /// # use substrate_test_utils::{assert_eq_uvec}; /// # fn main() { /// assert_eq_uvec!(vec![1,2,3], vec![2,1]); /// # } /// ``` #[macro_export] macro_rules! assert_eq_uvec { ( $x:expr, $y:expr $(,)? ) => { $crate::__assert_eq_uvec!($x, $y); $crate::__assert_eq_uvec!($y, $x); }; } #[macro_export] #[doc(hidden)] macro_rules! __assert_eq_uvec { ( $x:expr, $y:expr ) => { $x.iter().for_each(|e| { if !$y.contains(e) { panic!("vectors not equal: {:?} != {:?}", $x, $y); } }); }; }