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

`+

}

`