Skip to content

Commit d50e407

Browse files
authored
Merge pull request #6023 from jferrant/chore/fix-test-simple-signer
Make sure order doesn't matter when testing simple signer
2 parents 31d048c + 9427c3d commit d50e407

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

libsigner/src/tests/mod.rs

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -142,13 +142,6 @@ fn test_simple_signer() {
142142
chunks.push(chunk_event);
143143
}
144144

145-
chunks.sort_by(|ev1, ev2| {
146-
ev1.modified_slots[0]
147-
.slot_id
148-
.partial_cmp(&ev2.modified_slots[0].slot_id)
149-
.unwrap()
150-
});
151-
152145
let thread_chunks = chunks.clone();
153146

154147
// simulate a node that's trying to push data
@@ -186,41 +179,45 @@ fn test_simple_signer() {
186179

187180
let sent_events: Vec<SignerEvent<SignerMessage>> = chunks
188181
.iter()
189-
.map(|chunk| {
190-
let msg = chunk.modified_slots[0].data.clone();
191-
let pubkey = chunk.modified_slots[0]
192-
.recover_pk()
193-
.expect("Faield to recover public key of slot");
194-
let signer_message = read_next::<SignerMessage, _>(&mut &msg[..]).unwrap();
182+
.map(|event| {
183+
let messages: Vec<(StacksPublicKey, SignerMessage)> = event
184+
.modified_slots
185+
.iter()
186+
.filter_map(|chunk| {
187+
Some((
188+
chunk.recover_pk().ok()?,
189+
read_next::<SignerMessage, _>(&mut &chunk.data[..]).ok()?,
190+
))
191+
})
192+
.collect();
195193
SignerEvent::SignerMessages {
196194
signer_set: 0,
197-
messages: vec![(pubkey, signer_message)],
195+
messages,
198196
received_time: SystemTime::now(),
199197
}
200198
})
201199
.collect();
202200

203-
for (sent_event, accepted_event) in sent_events.iter().zip(accepted_events.iter()) {
201+
for event in sent_events {
204202
let SignerEvent::SignerMessages {
205-
signer_set,
206-
messages,
207-
received_time,
208-
} = sent_event
203+
signer_set: sent_signer_set,
204+
messages: sent_messages,
205+
..
206+
} = event
209207
else {
210-
panic!("BUG: should not have sent anything but a signer message");
208+
panic!("We expect ONLY signer messages");
211209
};
212-
let SignerEvent::SignerMessages {
213-
signer_set: accepted_signer_set,
214-
messages: accepted_messages,
215-
received_time: accepted_time,
216-
} = accepted_event
217-
else {
218-
panic!("BUG: should not have accepted anything but a signer message");
219-
};
220-
221-
assert_eq!(signer_set, accepted_signer_set);
222-
assert_eq!(messages, accepted_messages);
223-
assert_ne!(received_time, accepted_time);
210+
assert!(accepted_events.iter().any(|e| {
211+
let SignerEvent::SignerMessages {
212+
signer_set: accepted_signer_set,
213+
messages: accepted_messages,
214+
..
215+
} = e
216+
else {
217+
panic!("We expect ONLY signer messages");
218+
};
219+
*accepted_signer_set == sent_signer_set && *accepted_messages == sent_messages
220+
}))
224221
}
225222
mock_stacks_node.join().unwrap();
226223
}

0 commit comments

Comments
 (0)