From 379067de0467196ad03c75ac74627b9117c02858 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Sun, 29 Mar 2026 21:48:12 -0600 Subject: [PATCH] fix: remove dead COBS test module from usb/task.rs (tests live in donglora-cobs crate) --- src/usb/task.rs | 133 ------------------------------------------------ 1 file changed, 133 deletions(-) diff --git a/src/usb/task.rs b/src/usb/task.rs index c7ccbabf..a4e8e1e7 100644 --- a/src/usb/task.rs +++ b/src/usb/task.rs @@ -212,136 +212,3 @@ async fn route_command( } } } - - -// ── COBS compliance tests (IEEE/ACM Cheshire & Baker 1999) ────── - -#[cfg(test)] -mod tests { - use super::cobs_decode; - - fn decode(encoded: &[u8]) -> Option> { - let mut buf = vec![0u8; 512]; - cobs_decode(encoded, &mut buf).map(|n| buf[..n].to_vec()) - } - - // Wikipedia canonical vectors - #[test] - fn empty_input() { - assert_eq!(decode(&[0x01]), Some(vec![])); - } - - #[test] - fn single_zero() { - assert_eq!(decode(&[0x01, 0x01]), Some(vec![0x00])); - } - - #[test] - fn two_zeros() { - assert_eq!(decode(&[0x01, 0x01, 0x01]), Some(vec![0x00, 0x00])); - } - - #[test] - fn single_nonzero() { - assert_eq!(decode(&[0x02, 0x11]), Some(vec![0x11])); - } - - #[test] - fn zero_delimited() { - assert_eq!( - decode(&[0x01, 0x02, 0x11, 0x01]), - Some(vec![0x00, 0x11, 0x00]) - ); - } - - #[test] - fn mixed_with_zero() { - assert_eq!( - decode(&[0x03, 0x11, 0x22, 0x02, 0x33]), - Some(vec![0x11, 0x22, 0x00, 0x33]) - ); - } - - #[test] - fn no_zeros() { - assert_eq!( - decode(&[0x05, 0x11, 0x22, 0x33, 0x44]), - Some(vec![0x11, 0x22, 0x33, 0x44]) - ); - } - - #[test] - fn nonzero_then_trailing_zeros() { - assert_eq!( - decode(&[0x02, 0x11, 0x01, 0x01, 0x01]), - Some(vec![0x11, 0x00, 0x00, 0x00]) - ); - } - - #[test] - fn all_zeros_4() { - assert_eq!( - decode(&[0x01, 0x01, 0x01, 0x01, 0x01]), - Some(vec![0x00, 0x00, 0x00, 0x00]) - ); - } - - #[test] - fn all_ff_4() { - assert_eq!( - decode(&[0x05, 0xFF, 0xFF, 0xFF, 0xFF]), - Some(vec![0xFF, 0xFF, 0xFF, 0xFF]) - ); - } - - #[test] - fn alternating_zero_nonzero() { - assert_eq!( - decode(&[0x01, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03]), - Some(vec![0x00, 0x01, 0x00, 0x02, 0x00, 0x03]) - ); - } - - // The Ping case that caught the original bug - #[test] - fn ping_command_tag_zero() { - assert_eq!(decode(&[0x01, 0x01]), Some(vec![0x00])); - } - - // 254-byte block boundary (code 0xFF = 254 data bytes, no implicit zero) - #[test] - fn block_254_nonzero() { - let input: Vec = (1..=254).collect(); - let mut encoded = vec![0xFF]; - encoded.extend(1u8..=254); - assert_eq!(decode(&encoded), Some(input)); - } - - // 255 non-zero bytes: first 254 as one block, then 1 leftover - #[test] - fn block_255_nonzero() { - let input: Vec = (1..=255).map(|i| i as u8).collect(); - let mut encoded = vec![0xFF]; - encoded.extend(1u8..=254); - encoded.push(0x02); // code for 1 data byte - encoded.push(0xFF); // the 255th byte - assert_eq!(decode(&encoded), Some(input)); - } - - // Error cases - #[test] - fn unexpected_zero_in_data() { - assert_eq!(decode(&[0x00]), None); - } - - #[test] - fn truncated_input() { - // Code says 3 data bytes follow, but only 1 available - assert_eq!(decode(&[0x04, 0x11]), None); - } - - #[test] - fn empty_encoded() { - assert_eq!(decode(&[]), Some(vec![])); - } -}