Skip to content

Commit 7820196

Browse files
committed
fix: schemas pallet benchmarks/weights
1 parent b91f059 commit 7820196

File tree

3 files changed

+135
-101
lines changed

3 files changed

+135
-101
lines changed

pallets/schemas/src/benchmarking.rs

Lines changed: 105 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ mod benchmarks {
3737
use super::*;
3838

3939
#[benchmark]
40-
fn create_schema_v3(
40+
fn create_schema_v3_with_name(
4141
m: Linear<
4242
{ T::MinSchemaModelSizeBytes::get() + 8 },
4343
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
@@ -61,7 +61,7 @@ mod benchmarks {
6161
let schema_input = generate_schema::<T>(m as usize);
6262

6363
#[extrinsic_call]
64-
_(
64+
create_schema_v3(
6565
RawOrigin::Signed(sender),
6666
schema_input,
6767
model_type,
@@ -78,6 +78,40 @@ mod benchmarks {
7878
Ok(())
7979
}
8080

81+
#[benchmark]
82+
fn create_schema_v3_without_name(
83+
m: Linear<
84+
{ T::MinSchemaModelSizeBytes::get() + 8 },
85+
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
86+
>,
87+
) -> Result<(), BenchmarkError> {
88+
let sender: T::AccountId = whitelisted_caller();
89+
let model_type = ModelType::AvroBinary;
90+
let payload_location = PayloadLocation::OnChain;
91+
assert_ok!(SchemasPallet::<T>::set_max_schema_model_bytes(
92+
RawOrigin::Root.into(),
93+
T::SchemaModelMaxBytesBoundedVecLimit::get()
94+
));
95+
let schema_input = generate_schema::<T>(m as usize);
96+
97+
#[extrinsic_call]
98+
create_schema_v3(
99+
RawOrigin::Signed(sender),
100+
schema_input,
101+
model_type,
102+
payload_location,
103+
BoundedVec::default(),
104+
None,
105+
);
106+
107+
ensure!(
108+
CurrentSchemaIdentifierMaximum::<T>::get() > 0,
109+
"Created schema count should be > 0"
110+
);
111+
ensure!(SchemaInfos::<T>::get(1).is_some(), "Created schema should exist");
112+
Ok(())
113+
}
114+
81115
#[benchmark]
82116
fn set_max_schema_model_bytes() -> Result<(), BenchmarkError> {
83117
let sender = RawOrigin::Root;
@@ -95,7 +129,7 @@ mod benchmarks {
95129
}
96130

97131
#[benchmark]
98-
fn create_schema_via_governance_v2(
132+
fn create_schema_via_governance_v2_with_name(
99133
m: Linear<
100134
{ T::MinSchemaModelSizeBytes::get() + 8 },
101135
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
@@ -119,7 +153,7 @@ mod benchmarks {
119153
let schema_input = generate_schema::<T>(m as usize);
120154

121155
#[extrinsic_call]
122-
_(
156+
create_schema_via_governance_v2(
123157
RawOrigin::Root,
124158
sender.clone(),
125159
schema_input,
@@ -138,7 +172,42 @@ mod benchmarks {
138172
}
139173

140174
#[benchmark]
141-
fn propose_to_create_schema_v2(
175+
fn create_schema_via_governance_v2_without_name(
176+
m: Linear<
177+
{ T::MinSchemaModelSizeBytes::get() + 8 },
178+
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
179+
>,
180+
) -> Result<(), BenchmarkError> {
181+
let sender: T::AccountId = whitelisted_caller();
182+
let model_type = ModelType::AvroBinary;
183+
let payload_location = PayloadLocation::OnChain;
184+
assert_ok!(SchemasPallet::<T>::set_max_schema_model_bytes(
185+
RawOrigin::Root.into(),
186+
T::SchemaModelMaxBytesBoundedVecLimit::get()
187+
));
188+
let schema_input = generate_schema::<T>(m as usize);
189+
190+
#[extrinsic_call]
191+
create_schema_via_governance_v2(
192+
RawOrigin::Root,
193+
sender.clone(),
194+
schema_input,
195+
model_type,
196+
payload_location,
197+
BoundedVec::default(),
198+
None,
199+
);
200+
201+
ensure!(
202+
CurrentSchemaIdentifierMaximum::<T>::get() > 0,
203+
"Created schema count should be > 0"
204+
);
205+
ensure!(SchemaInfos::<T>::get(1).is_some(), "Created schema should exist");
206+
Ok(())
207+
}
208+
209+
#[benchmark]
210+
fn propose_to_create_schema_v2_with_name(
142211
m: Linear<
143212
{ T::MinSchemaModelSizeBytes::get() + 8 },
144213
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
@@ -162,7 +231,7 @@ mod benchmarks {
162231
let schema_input = generate_schema::<T>(m as usize);
163232

164233
#[extrinsic_call]
165-
_(
234+
propose_to_create_schema_v2(
166235
RawOrigin::Signed(sender),
167236
schema_input,
168237
model_type,
@@ -175,6 +244,36 @@ mod benchmarks {
175244
Ok(())
176245
}
177246

247+
#[benchmark]
248+
fn propose_to_create_schema_v2_without_name(
249+
m: Linear<
250+
{ T::MinSchemaModelSizeBytes::get() + 8 },
251+
{ T::SchemaModelMaxBytesBoundedVecLimit::get() - 1 },
252+
>,
253+
) -> Result<(), BenchmarkError> {
254+
let sender: T::AccountId = whitelisted_caller();
255+
let model_type = ModelType::AvroBinary;
256+
let payload_location = PayloadLocation::OnChain;
257+
assert_ok!(SchemasPallet::<T>::set_max_schema_model_bytes(
258+
RawOrigin::Root.into(),
259+
T::SchemaModelMaxBytesBoundedVecLimit::get()
260+
));
261+
let schema_input = generate_schema::<T>(m as usize);
262+
263+
#[extrinsic_call]
264+
propose_to_create_schema_v2(
265+
RawOrigin::Signed(sender),
266+
schema_input,
267+
model_type,
268+
payload_location,
269+
BoundedVec::default(),
270+
None,
271+
);
272+
273+
assert_eq!(T::ProposalProvider::proposal_count(), 1);
274+
Ok(())
275+
}
276+
178277
#[benchmark]
179278
fn propose_to_create_schema_name() -> Result<(), BenchmarkError> {
180279
let sender: T::AccountId = whitelisted_caller();

pallets/schemas/src/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,8 @@ pub mod pallet {
333333
#[pallet::call_index(5)]
334334
#[pallet::weight(
335335
match schema_name {
336-
Some(_) => T::WeightInfo::propose_to_create_schema_v2(model.len() as u32),
337-
None => T::WeightInfo::propose_to_create_schema(model.len() as u32)
336+
Some(_) => T::WeightInfo::propose_to_create_schema_v2_with_name(model.len() as u32),
337+
None => T::WeightInfo::propose_to_create_schema_v2_without_name(model.len() as u32)
338338
}
339339
)]
340340
pub fn propose_to_create_schema_v2(
@@ -384,8 +384,8 @@ pub mod pallet {
384384
#[pallet::call_index(6)]
385385
#[pallet::weight(
386386
match schema_name {
387-
Some(_) => T::WeightInfo::create_schema_via_governance_v2(model.len() as u32+ settings.len() as u32),
388-
None => T::WeightInfo::create_schema_via_governance(model.len() as u32+ settings.len() as u32)
387+
Some(_) => T::WeightInfo::create_schema_via_governance_v2_with_name(model.len() as u32+ settings.len() as u32),
388+
None => T::WeightInfo::create_schema_via_governance_v2_without_name(model.len() as u32+ settings.len() as u32)
389389
}
390390
)]
391391
pub fn create_schema_via_governance_v2(
@@ -443,8 +443,8 @@ pub mod pallet {
443443
#[pallet::call_index(7)]
444444
#[pallet::weight(
445445
match schema_name {
446-
Some(_) => T::WeightInfo::create_schema_v3(model.len() as u32 + settings.len() as u32),
447-
None => T::WeightInfo::create_schema_v2(model.len() as u32 + settings.len() as u32)
446+
Some(_) => T::WeightInfo::create_schema_v3_with_name(model.len() as u32 + settings.len() as u32),
447+
None => T::WeightInfo::create_schema_v3_without_name(model.len() as u32 + settings.len() as u32)
448448
}
449449
)]
450450
pub fn create_schema_v3(

0 commit comments

Comments
 (0)