From a5de3b1442691e05b2002e6e9843933703fcc208 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bastian=20K=C3=B6cher?= <git@kchr.de>
Date: Mon, 11 Nov 2024 17:00:54 +0100
Subject: [PATCH] pallet-membership: Do not verify the `MembershipChanged` in
 bechmarks (#6439)

There is no need to verify in the `pallet-membership` benchmark that the
`MemembershipChanged` implementation works as the pallet thinks it
should work. If you for example set it to `()`, `get_prime()` will
always return `None`.

TLDR: Remove the checks of `MembershipChanged` in the benchmarks to
support any kind of implementation.

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
---
 prdoc/pr_6439.prdoc                            | 10 ++++++++++
 substrate/frame/membership/src/benchmarking.rs |  5 ++---
 2 files changed, 12 insertions(+), 3 deletions(-)
 create mode 100644 prdoc/pr_6439.prdoc

diff --git a/prdoc/pr_6439.prdoc b/prdoc/pr_6439.prdoc
new file mode 100644
index 00000000000..fb3b6252357
--- /dev/null
+++ b/prdoc/pr_6439.prdoc
@@ -0,0 +1,10 @@
+title: 'pallet-membership: Do not verify the `MembershipChanged` in bechmarks'
+doc:
+- audience: Runtime Dev
+  description: |-
+    There is no need to verify in the `pallet-membership` benchmark that the `MemembershipChanged` implementation works as the pallet thinks it should work. If you for example set it to `()`, `get_prime()` will always return `None`.
+
+    TLDR: Remove the checks of `MembershipChanged` in the benchmarks to support any kind of implementation.
+crates:
+- name: pallet-membership
+  bump: patch
diff --git a/substrate/frame/membership/src/benchmarking.rs b/substrate/frame/membership/src/benchmarking.rs
index 515be7eb538..d752abaae86 100644
--- a/substrate/frame/membership/src/benchmarking.rs
+++ b/substrate/frame/membership/src/benchmarking.rs
@@ -99,7 +99,7 @@ benchmarks_instance_pallet! {
 		assert!(!Members::<T, I>::get().contains(&remove));
 		assert!(Members::<T, I>::get().contains(&add));
 		// prime is rejigged
-		assert!(Prime::<T, I>::get().is_some() && T::MembershipChanged::get_prime().is_some());
+		assert!(Prime::<T, I>::get().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}
 
@@ -119,7 +119,7 @@ benchmarks_instance_pallet! {
 		new_members.sort();
 		assert_eq!(Members::<T, I>::get(), new_members);
 		// prime is rejigged
-		assert!(Prime::<T, I>::get().is_some() && T::MembershipChanged::get_prime().is_some());
+		assert!(Prime::<T, I>::get().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}
 
@@ -157,7 +157,6 @@ benchmarks_instance_pallet! {
 		));
 	} verify {
 		assert!(Prime::<T, I>::get().is_some());
-		assert!(<T::MembershipChanged>::get_prime().is_some());
 		#[cfg(test)] crate::mock::clean();
 	}
 
-- 
GitLab