Skip to content

Commit 4788a93

Browse files
std: test a variety of ways to extend a Wtf8Buf
1 parent 57c2de8 commit 4788a93

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

std/src/sys_common/wtf8/tests.rs

+24
Original file line numberDiff line numberDiff line change
@@ -725,3 +725,27 @@ fn wtf8_utf8_boundary_between_surrogates() {
725725
string.push(CodePoint::from_u32(0xD800).unwrap());
726726
check_utf8_boundary(&string, 3);
727727
}
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+
}

0 commit comments

Comments
 (0)