git.delta.rocks / unique-network / refs/commits / 77675a90c449

difftreelog

test can't schedule too big tasks

Daniel Shiposha2022-10-28parent: #fb7facd.patch.diff
in: master

2 files changed

modifiedpallets/scheduler-v2/src/mock.rsdiffbeforeafterboth
187 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 }
265265
266pub type LoggerCall = logger::Call<Test>;266pub type LoggerCall = logger::Call<Test>;
267
268pub type SystemCall = frame_system::Call<Test>;
267269
268pub 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()
modifiedpallets/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);
+	});
+}