Files
openbitdo/sdk/tests/firmware_chunk.rs

31 lines
936 B
Rust

use bitdo_proto::{BitdoError, DeviceSession, MockTransport, SessionConfig, VidPid};
#[test]
fn inferred_firmware_transfer_is_blocked_until_confirmed() {
let mut transport = MockTransport::default();
for _ in 0..4 {
transport.push_read_data(vec![0x02, 0x10, 0x00, 0x00]);
}
let mut session = DeviceSession::new(
transport,
VidPid::new(0x2dc8, 24585),
SessionConfig {
allow_unsafe: true,
brick_risk_ack: true,
experimental: true,
..SessionConfig::default()
},
)
.expect("session init");
let image = vec![0xAB; 120];
let err = session
.firmware_transfer(&image, 50, false)
.expect_err("inferred firmware chunk/commit must remain blocked");
assert!(matches!(err, BitdoError::UnsupportedForPid { .. }));
let transport = session.into_transport();
assert_eq!(transport.writes().len(), 0);
}