difftreelog
test can't schedule too big tasks
in: master
2 files changed
pallets/scheduler-v2/src/mock.rsdiffbeforeafterboth187 fn service_task_named() -> Weight {187 fn service_task_named() -> Weight {188 Weight::from_ref_time(0b0001_0100)188 Weight::from_ref_time(0b0001_0100)189 }189 }190 fn service_task_fetched(s: u32) -> Weight {190 // fn service_task_fetched(s: u32) -> Weight {191 Weight::from_ref_time((s << 8) as u64 + 0b0010_0100)191 // Weight::from_ref_time((s << 8) as u64 + 0b0010_0100)192 }192 // }193 fn execute_dispatch_signed() -> Weight {193 fn execute_dispatch_signed() -> Weight {194 Weight::from_ref_time(0b0100_0000)194 Weight::from_ref_time(0b0100_0000)195 }195 }265265266pub type LoggerCall = logger::Call<Test>;266pub type LoggerCall = logger::Call<Test>;267268pub type SystemCall = frame_system::Call<Test>;267269268pub fn new_test_ext() -> sp_io::TestExternalities {270pub fn new_test_ext() -> sp_io::TestExternalities {269 let t = system::GenesisConfig::default()271 let t = system::GenesisConfig::default()pallets/scheduler-v2/src/tests.rsdiffbeforeafterboth--- a/pallets/scheduler-v2/src/tests.rs
+++ b/pallets/scheduler-v2/src/tests.rs
@@ -40,7 +40,7 @@
};
use frame_support::{
assert_noop, assert_ok,
- traits::{Contains, OnInitialize},
+ traits::{Contains, OnInitialize}, assert_err,
};
#[test]
@@ -871,3 +871,20 @@
assert_eq!(logger::log().len() as u32, max);
});
}
+
+#[test]
+fn cannot_schedule_too_big_tasks() {
+ new_test_ext().execute_with(|| {
+ let call = Box::new(<<Test as Config>::RuntimeCall>::from(SystemCall::remark {
+ remark: vec![0; EncodedCall::bound() - 4],
+ }));
+
+ assert_ok!(Scheduler::schedule(RuntimeOrigin::root(), 4, None, Some(127), call));
+
+ let call = Box::new(<<Test as Config>::RuntimeCall>::from(SystemCall::remark {
+ remark: vec![0; EncodedCall::bound() - 3],
+ }));
+
+ assert_err!(Scheduler::schedule(RuntimeOrigin::root(), 4, None, Some(127), call), <Error<Test>>::TooBigScheduledCall);
+ });
+}