Codex Handbook
core/src/unified_exec/async_watcher_tests.rs 39 lines
use super::split_valid_utf8_prefix_with_max;use pretty_assertions::assert_eq;#[test]fn split_valid_utf8_prefix_respects_max_bytes_for_ascii() {    let mut buf = b"hello word!".to_vec();    let first =        split_valid_utf8_prefix_with_max(&mut buf, /*max_bytes*/ 5).expect("expected prefix");    assert_eq!(first, b"hello".to_vec());    assert_eq!(buf, b" word!".to_vec());    let second =        split_valid_utf8_prefix_with_max(&mut buf, /*max_bytes*/ 5).expect("expected prefix");    assert_eq!(second, b" word".to_vec());    assert_eq!(buf, b"!".to_vec());}#[test]fn split_valid_utf8_prefix_avoids_splitting_utf8_codepoints() {    // "é" is 2 bytes in UTF-8. With a max of 3 bytes, we should only emit 1 char (2 bytes).    let mut buf = "ééé".as_bytes().to_vec();    let first =        split_valid_utf8_prefix_with_max(&mut buf, /*max_bytes*/ 3).expect("expected prefix");    assert_eq!(std::str::from_utf8(&first).unwrap(), "é");    assert_eq!(buf, "éé".as_bytes().to_vec());}#[test]fn split_valid_utf8_prefix_makes_progress_on_invalid_utf8() {    let mut buf = vec![0xff, b'a', b'b'];    let first =        split_valid_utf8_prefix_with_max(&mut buf, /*max_bytes*/ 2).expect("expected prefix");    assert_eq!(first, vec![0xff]);    assert_eq!(buf, b"ab".to_vec());}