The existing silentpayment sender tests only pass a single invalid plain seckey, which parses to a zero scalar and is therefore also rejected by the later zero-sum check. Add a test with a valid key followed by an invalid one so that the early return in the seckey loop itself is exercised.
It kills the following mutant, the only one remaining within 229 ones :) - https://secp256k1.space/src/modules/silentpayments/main_impl.h
diff --git a/src/modules/silentpayments/main_impl.h b/src/modules/silentpayments/main_impl.h
index 415f2d2..489ec91 100644
--- a/src/modules/silentpayments/main_impl.h
+++ b/src/modules/silentpayments/main_impl.h
@@ -237,7 +237,7 @@ int secp256k1_silentpayments_sender_create_outputs(
for (i = 0; i < n_seckeys; i++) {
ret = secp256k1_scalar_set_b32_seckey(&addend, seckeys[i]);
secp256k1_declassify(ctx, &ret, sizeof(ret));
- if (!ret) {
+ if (1==0) {
secp256k1_scalar_clear(&addend);
secp256k1_scalar_clear(&seckey_sum_scalar);
return 0;