Skip to content

Commit

Permalink
add verify statement & testing utils
Browse files Browse the repository at this point in the history
  • Loading branch information
Raid5594 committed Nov 16, 2023
1 parent 36d18bf commit c441e11
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 36 deletions.
53 changes: 17 additions & 36 deletions pallets/ddc-nodes/src/benchmarking.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
//! DdcStaking pallet benchmarking.

use super::*;
use crate::{cdn_node::CDNNodeParams, node::NodeParams, Pallet as DdcNodes};
use crate::{cdn_node::CDNNodeProps, Pallet as DdcNodes};
use ddc_primitives::CDNNodePubKey;
use testing_utils::*;

use sp_std::prelude::*;

Expand All @@ -15,60 +16,40 @@ const USER_SEED: u32 = 999666;

benchmarks! {
create_node {
let user: T::AccountId = account("user", USER_SEED, 0u32);
let node = NodePubKey::CDNPubKey(CDNNodePubKey::new([0; 32]));
let cdn_node_params = NodeParams::CDNParams(CDNNodeParams {
host: vec![1u8, 255],
http_port: 35000u16,
grpc_port: 25000u16,
p2p_port: 15000u16,
});
let (user, node, cdn_node_params, _) = create_user_and_config::<T>("user", USER_SEED);

whitelist_account!(user);
whitelist_account!(user);
}: _(RawOrigin::Signed(user.clone()), node, cdn_node_params)
verify {
assert!(CDNNodes::<T>::contains_key(CDNNodePubKey::new([0; 32])));
}

delete_node {
let user: T::AccountId = account("user", USER_SEED, 0u32);
let node = NodePubKey::CDNPubKey(CDNNodePubKey::new([0; 32]));
let (user, node, cdn_node_params, _) = create_user_and_config::<T>("user", USER_SEED);

let cdn_node_params = NodeParams::CDNParams(CDNNodeParams {
host: vec![1u8, 255],
http_port: 35000u16,
grpc_port: 25000u16,
p2p_port: 15000u16,
});

DdcNodes::<T>::create_node(RawOrigin::Signed(user.clone()).into(),node.clone(), cdn_node_params)?;
DdcNodes::<T>::create_node(RawOrigin::Signed(user.clone()).into(),node.clone(), cdn_node_params)?;

whitelist_account!(user);
}: _(RawOrigin::Signed(user.clone()), node)
verify {
assert!(!CDNNodes::<T>::contains_key(CDNNodePubKey::new([0; 32])));
assert!(!CDNNodes::<T>::contains_key(CDNNodePubKey::new([0; 32])));
}

set_node_params {
let user: T::AccountId = account("user", USER_SEED, 0u32);
let node = NodePubKey::CDNPubKey(CDNNodePubKey::new([0; 32]));
let cdn_node_params = NodeParams::CDNParams(CDNNodeParams {
host: vec![1u8, 255],
http_port: 35000u16,
grpc_port: 25000u16,
p2p_port: 15000u16,
});
let (user, node, cdn_node_params, cdn_node_params_new) = create_user_and_config::<T>("user", USER_SEED);

DdcNodes::<T>::create_node(RawOrigin::Signed(user.clone()).into(),node.clone(), cdn_node_params)?;

let cdn_node_params_new = NodeParams::CDNParams(CDNNodeParams {
host: vec![2u8, 255],
whitelist_account!(user);
}: _(RawOrigin::Signed(user.clone()), node, cdn_node_params_new)
verify {
assert_eq!(CDNNodes::<T>::try_get(
CDNNodePubKey::new([0; 32])).unwrap().props,
CDNNodeProps {
host: vec![2u8, 255].try_into().unwrap(),
http_port: 45000u16,
grpc_port: 55000u16,
p2p_port: 65000u16,
});
DdcNodes::<T>::create_node(RawOrigin::Signed(user.clone()).into(),node.clone(), cdn_node_params)?;

whitelist_account!(user);
}: _(RawOrigin::Signed(user.clone()), node, cdn_node_params_new)
verify {
}
}
2 changes: 2 additions & 0 deletions pallets/ddc-nodes/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ use crate::weights::WeightInfo;

#[cfg(feature = "runtime-benchmarks")]
pub mod benchmarking;
#[cfg(any(feature = "runtime-benchmarks", test))]
pub mod testing_utils;

use ddc_primitives::{CDNNodePubKey, ClusterId, NodePubKey, StorageNodePubKey};
use ddc_traits::node::{NodeVisitor, NodeVisitorError};
Expand Down
31 changes: 31 additions & 0 deletions pallets/ddc-nodes/src/testing_utils.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
//! Testing utils for ddc-staking.

use crate::{cdn_node::CDNNodeParams, node::NodeParams, Config, NodePubKey};
use ddc_primitives::CDNNodePubKey;
use frame_benchmarking::account;
use sp_std::vec;

const SEED: u32 = 0;

/// Grab a funded user.
pub fn create_user_and_config<T: Config>(
string: &'static str,
n: u32,
) -> (T::AccountId, NodePubKey, NodeParams, NodeParams) {
let user = account(string, n, SEED);
let node = NodePubKey::CDNPubKey(CDNNodePubKey::new([0; 32]));
let cdn_node_params = NodeParams::CDNParams(CDNNodeParams {
host: vec![1u8, 255],
http_port: 35000u16,
grpc_port: 25000u16,
p2p_port: 15000u16,
});

let cdn_node_params_new = NodeParams::CDNParams(CDNNodeParams {
host: vec![2u8, 255],
http_port: 45000u16,
grpc_port: 55000u16,
p2p_port: 65000u16,
});
(user, node, cdn_node_params, cdn_node_params_new)
}

0 comments on commit c441e11

Please sign in to comment.