diff --git a/substrate/frame/asset-conversion/src/lib.rs b/substrate/frame/asset-conversion/src/lib.rs index 3db694a88e2f4c3694cc2d7f6a01f7717066fc1c..266c4eb77449f005e03a04d82a6ac1bfc216ee82 100644 --- a/substrate/frame/asset-conversion/src/lib.rs +++ b/substrate/frame/asset-conversion/src/lib.rs @@ -201,7 +201,7 @@ pub mod pallet { type WeightInfo: WeightInfo; /// The benchmarks need a way to create asset ids from u32s. - #[cfg(feature = "runtime-benchmarks")] + #[cfg(any(test, feature = "runtime-benchmarks"))] type BenchmarkHelper: BenchmarkHelper<Self::AssetId>; } @@ -352,24 +352,24 @@ pub mod pallet { #[pallet::hooks] impl<T: Config> Hooks<T::BlockNumber> for Pallet<T> { fn integrity_test() { - sp_std::if_std! { - sp_io::TestExternalities::new_empty().execute_with(|| { - // ensure that the `AccountId` is set properly and doesn't generate the same - // pool account for different pool ids. - let native = T::MultiAssetIdConverter::get_native(); - // Decode the asset ids from bytes. - let asset_1 = T::MultiAssetIdConverter::into_multiasset_id(&T::AssetId::decode(&mut vec![0u8, 0, 0, 1].as_slice()).unwrap()); - let asset_2 = T::MultiAssetIdConverter::into_multiasset_id(&T::AssetId::decode(&mut vec![255u8, 255, 255, 255].as_slice()).unwrap()); - assert!(asset_1 != asset_2, "unfortunatly decoded to be the same asset."); - let pool_account_1 = Self::get_pool_account(&(native.clone(), asset_1)); - let pool_account_2 = Self::get_pool_account(&(native, asset_2)); - assert!(sp_std::mem::size_of::<T::AccountId>() >= sp_std::mem::size_of::<u128>()); - assert!( - pool_account_1 != pool_account_2, - "AccountId should be set at least to u128" - ); - }); - } + #[cfg(test)] + sp_io::TestExternalities::new_empty().execute_with(|| { + // ensure that the `AccountId` is set properly and doesn't generate the same + // pool account for different pool ids. + let native = T::MultiAssetIdConverter::get_native(); + let asset_1 = + T::MultiAssetIdConverter::into_multiasset_id(&T::BenchmarkHelper::asset_id(1)); + let asset_2 = + T::MultiAssetIdConverter::into_multiasset_id(&T::BenchmarkHelper::asset_id(2)); + assert!(asset_1 != asset_2, "must return different assets for different ids."); + let pool_account_1 = Self::get_pool_account(&(native.clone(), asset_1)); + let pool_account_2 = Self::get_pool_account(&(native, asset_2)); + assert!(sp_std::mem::size_of::<T::AccountId>() >= sp_std::mem::size_of::<u128>()); + assert!( + pool_account_1 != pool_account_2, + "AccountId should be set at least to u128" + ); + }); } } diff --git a/substrate/frame/asset-conversion/src/mock.rs b/substrate/frame/asset-conversion/src/mock.rs index 34d2eeb273ca810d10bedd57825468eb631cbad1..9483cfca25c76a43e542d6fbe474640dbb63880f 100644 --- a/substrate/frame/asset-conversion/src/mock.rs +++ b/substrate/frame/asset-conversion/src/mock.rs @@ -178,7 +178,7 @@ impl Config for Test { type MultiAssetId = NativeOrAssetId<u32>; type MultiAssetIdConverter = NativeOrAssetIdConverter<u32>; - #[cfg(feature = "runtime-benchmarks")] + #[cfg(any(test, feature = "runtime-benchmarks"))] type BenchmarkHelper = (); } diff --git a/substrate/frame/asset-conversion/src/types.rs b/substrate/frame/asset-conversion/src/types.rs index 837b14be283ef5eb0ac413eac2f92fb763b2b75c..b370d410f82a255b60068b5a6919345028233b95 100644 --- a/substrate/frame/asset-conversion/src/types.rs +++ b/substrate/frame/asset-conversion/src/types.rs @@ -50,13 +50,13 @@ pub trait MultiAssetIdConverter<MultiAssetId, AssetId> { } /// Benchmark Helper -#[cfg(feature = "runtime-benchmarks")] +#[cfg(any(test, feature = "runtime-benchmarks"))] pub trait BenchmarkHelper<AssetId> { /// Returns an asset id from a given integer. fn asset_id(asset_id: u32) -> AssetId; } -#[cfg(feature = "runtime-benchmarks")] +#[cfg(any(test, feature = "runtime-benchmarks"))] impl<AssetId> BenchmarkHelper<AssetId> for () where AssetId: From<u32>,