Implement native PacketDump capture (#87)
Some checks failed
Native Rust workspace compile / compile (push) Has been cancelled
Some checks failed
Native Rust workspace compile / compile (push) Has been cancelled
This commit is contained in:
@@ -183,6 +183,42 @@ fn packet_callbacks_preserve_filtering_order_async_policy_and_reentrancy() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn decoded_packet_callbacks_preserve_optional_raw_datagrams() {
|
||||
let client = GridClient::new().expect("client");
|
||||
let sim = simulator(&client);
|
||||
let events = PacketEventDictionary::new(client).expect("packet events");
|
||||
let observed = Arc::new(Mutex::new(None));
|
||||
let captured = Arc::clone(&observed);
|
||||
events
|
||||
.register_event(
|
||||
PacketType::Default,
|
||||
Arc::new(move |event| *captured.lock().unwrap() = event.raw_data()),
|
||||
false,
|
||||
)
|
||||
.unwrap();
|
||||
let raw = vec![0x40, 0, 0, 0, 0, 0, 1, 7, 0, 0, 0, 0];
|
||||
events
|
||||
.invoke_raise_event_with_raw_data(
|
||||
PacketType::StartPingCheck,
|
||||
base_packet(PacketType::StartPingCheck),
|
||||
sim.clone(),
|
||||
raw.clone(),
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(*observed.lock().unwrap(), Some(raw));
|
||||
|
||||
*observed.lock().unwrap() = Some(vec![1]);
|
||||
events
|
||||
.invoke_raise_event(
|
||||
PacketType::StartPingCheck,
|
||||
base_packet(PacketType::StartPingCheck),
|
||||
sim,
|
||||
)
|
||||
.unwrap();
|
||||
assert_eq!(*observed.lock().unwrap(), None);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn synchronous_specific_dispatch_suppresses_default_async_chain_like_reference() {
|
||||
let mixed_events = PacketEventDictionary::new(GridClient::new().unwrap()).unwrap();
|
||||
|
||||
Reference in New Issue
Block a user