std: test a variety of ways to extend a Wtf8Buf · model-checking/verify-rust-std@4788a93 (original) (raw)
`@@ -725,3 +725,27 @@ fn wtf8_utf8_boundary_between_surrogates() {
`
725
725
` string.push(CodePoint::from_u32(0xD800).unwrap());
`
726
726
`check_utf8_boundary(&string, 3);
`
727
727
`}
`
``
728
+
``
729
`+
#[test]
`
``
730
`+
fn wobbled_wtf8_plus_bytes_isnt_utf8() {
`
``
731
`+
let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() };
`
``
732
`+
assert!(!string.is_known_utf8);
`
``
733
`+
string.extend_from_slice(b"some utf-8");
`
``
734
`+
assert!(!string.is_known_utf8);
`
``
735
`+
}
`
``
736
+
``
737
`+
#[test]
`
``
738
`+
fn wobbled_wtf8_plus_str_isnt_utf8() {
`
``
739
`+
let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() };
`
``
740
`+
assert!(!string.is_known_utf8);
`
``
741
`+
string.push_str("some utf-8");
`
``
742
`+
assert!(!string.is_known_utf8);
`
``
743
`+
}
`
``
744
+
``
745
`+
#[test]
`
``
746
`+
fn unwobbly_wtf8_plus_utf8_is_utf8() {
`
``
747
`+
let mut string: Wtf8Buf = Wtf8Buf::from_str("hello world");
`
``
748
`+
assert!(string.is_known_utf8);
`
``
749
`+
string.push_str("some utf-8");
`
``
750
`+
assert!(string.is_known_utf8);
`
``
751
`+
}
`