about summary refs log tree commit diff
path: root/src/tools/miri/tests/pass/wtf8.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/miri/tests/pass/wtf8.rs')
-rw-r--r--src/tools/miri/tests/pass/wtf8.rs22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tools/miri/tests/pass/wtf8.rs b/src/tools/miri/tests/pass/wtf8.rs
new file mode 100644
index 00000000000..be8348654a3
--- /dev/null
+++ b/src/tools/miri/tests/pass/wtf8.rs
@@ -0,0 +1,22 @@
+//@only-target-windows
+
+use std::ffi::{OsStr, OsString};
+use std::os::windows::ffi::{OsStrExt, OsStringExt};
+
+fn test1() {
+    let base = "a\té \u{7f}💩\r";
+    let mut base: Vec<u16> = OsStr::new(base).encode_wide().collect();
+    base.push(0xD800);
+    let _res = OsString::from_wide(&base);
+}
+
+fn test2() {
+    let mut base: Vec<u16> = OsStr::new("aé ").encode_wide().collect();
+    base.push(0xD83D);
+    let mut _res: Vec<u16> = OsString::from_wide(&base).encode_wide().collect();
+}
+
+fn main() {
+    test1();
+    test2();
+}