diff options
| author | M Farkas-Dyck <mfdyck@google.com> | 2016-05-27 08:16:27 -0800 |
|---|---|---|
| committer | M Farkas-Dyck <mfdyck@google.com> | 2016-07-13 17:40:16 -0800 |
| commit | 837029fec146b4eb7af4dae3f002b00306af00db (patch) | |
| tree | d7a90d713528de58ee67a2956fead015ec8b0155 /src/libcoretest | |
| parent | fe96928d7de991e527a7ed7b88bb30aa965c8a08 (diff) | |
add core::char::DecodeUtf8
Diffstat (limited to 'src/libcoretest')
| -rw-r--r-- | src/libcoretest/char.rs | 29 | ||||
| -rw-r--r-- | src/libcoretest/lib.rs | 1 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/libcoretest/char.rs b/src/libcoretest/char.rs index 7da876b9459..c8906fed3d2 100644 --- a/src/libcoretest/char.rs +++ b/src/libcoretest/char.rs @@ -302,3 +302,32 @@ fn eu_iterator_specializations() { check('\u{12340}'); check('\u{10FFFF}'); } + +#[test] +fn test_decode_utf8() { + use core::char::*; + use core::iter::FromIterator; + + for &(str, bs) in [("", &[] as &[u8]), + ("A", &[0x41u8] as &[u8]), + ("�", &[0xC1u8, 0x81u8] as &[u8]), + ("♥", &[0xE2u8, 0x99u8, 0xA5u8]), + ("♥A", &[0xE2u8, 0x99u8, 0xA5u8, 0x41u8] as &[u8]), + ("�", &[0xE2u8, 0x99u8] as &[u8]), + ("�A", &[0xE2u8, 0x99u8, 0x41u8] as &[u8]), + ("�", &[0xC0u8] as &[u8]), + ("�A", &[0xC0u8, 0x41u8] as &[u8]), + ("�", &[0x80u8] as &[u8]), + ("�A", &[0x80u8, 0x41u8] as &[u8]), + ("�", &[0xFEu8] as &[u8]), + ("�A", &[0xFEu8, 0x41u8] as &[u8]), + ("�", &[0xFFu8] as &[u8]), + ("�A", &[0xFFu8, 0x41u8] as &[u8])].into_iter() { + assert!(Iterator::eq(str.chars(), + decode_utf8(bs.into_iter().map(|&b|b)) + .map(|r_b| r_b.unwrap_or('\u{FFFD}'))), + "chars = {}, bytes = {:?}, decoded = {:?}", str, bs, + Vec::from_iter(decode_utf8(bs.into_iter().map(|&b|b)) + .map(|r_b| r_b.unwrap_or('\u{FFFD}')))); + } +} diff --git a/src/libcoretest/lib.rs b/src/libcoretest/lib.rs index 88d73df937f..d46dcdb51e8 100644 --- a/src/libcoretest/lib.rs +++ b/src/libcoretest/lib.rs @@ -18,6 +18,7 @@ #![feature(core_private_bignum)] #![feature(core_private_diy_float)] #![feature(dec2flt)] +#![feature(decode_utf8)] #![feature(fixed_size_array)] #![feature(float_extras)] #![feature(flt2dec)] |
