diff options
| author | Jubilee Young <workingjubilee@gmail.com> | 2024-06-25 22:29:37 -0700 |
|---|---|---|
| committer | Jubilee Young <workingjubilee@gmail.com> | 2024-06-25 23:44:49 -0700 |
| commit | 5aac24909c321dd4bb8d90380f9b2dd9f0162c68 (patch) | |
| tree | f69641bca715591fa85f02b89605a50866855092 | |
| parent | e5167fe7bd52a8eaebbf01d0b1469785306f4a96 (diff) | |
| download | rust-5aac24909c321dd4bb8d90380f9b2dd9f0162c68.tar.gz rust-5aac24909c321dd4bb8d90380f9b2dd9f0162c68.zip | |
std: test a variety of ways to extend a Wtf8Buf
| -rw-r--r-- | library/std/src/sys_common/wtf8/tests.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/library/std/src/sys_common/wtf8/tests.rs b/library/std/src/sys_common/wtf8/tests.rs index 6a1cc41a8fb..b57c99a8452 100644 --- a/library/std/src/sys_common/wtf8/tests.rs +++ b/library/std/src/sys_common/wtf8/tests.rs @@ -725,3 +725,27 @@ fn wtf8_utf8_boundary_between_surrogates() { string.push(CodePoint::from_u32(0xD800).unwrap()); check_utf8_boundary(&string, 3); } + +#[test] +fn wobbled_wtf8_plus_bytes_isnt_utf8() { + let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() }; + assert!(!string.is_known_utf8); + string.extend_from_slice(b"some utf-8"); + assert!(!string.is_known_utf8); +} + +#[test] +fn wobbled_wtf8_plus_str_isnt_utf8() { + let mut string: Wtf8Buf = unsafe { Wtf8::from_bytes_unchecked(b"\xED\xA0\x80").to_owned() }; + assert!(!string.is_known_utf8); + string.push_str("some utf-8"); + assert!(!string.is_known_utf8); +} + +#[test] +fn unwobbly_wtf8_plus_utf8_is_utf8() { + let mut string: Wtf8Buf = Wtf8Buf::from_str("hello world"); + assert!(string.is_known_utf8); + string.push_str("some utf-8"); + assert!(string.is_known_utf8); +} |
