1cdb3e2c8Sopenharmony_ci#![cfg(feature = "raw_os_str")] 2cdb3e2c8Sopenharmony_ci 3cdb3e2c8Sopenharmony_ciuse os_str_bytes::RawOsStr; 4cdb3e2c8Sopenharmony_ci 5cdb3e2c8Sopenharmony_cimod raw_common; 6cdb3e2c8Sopenharmony_ciuse raw_common::RAW_WTF8_STRING; 7cdb3e2c8Sopenharmony_ci 8cdb3e2c8Sopenharmony_cifn test(result: &str, string: &RawOsStr) { 9cdb3e2c8Sopenharmony_ci assert_eq!(format!("RawOsStr({})", result), format!("{:?}", string)); 10cdb3e2c8Sopenharmony_ci assert_eq!( 11cdb3e2c8Sopenharmony_ci format!("RawOsString({})", result), 12cdb3e2c8Sopenharmony_ci format!("{:?}", string.to_owned()), 13cdb3e2c8Sopenharmony_ci ); 14cdb3e2c8Sopenharmony_ci} 15cdb3e2c8Sopenharmony_ci 16cdb3e2c8Sopenharmony_ci#[test] 17cdb3e2c8Sopenharmony_cifn test_empty() { 18cdb3e2c8Sopenharmony_ci test("\"\"", RawOsStr::from_str("")); 19cdb3e2c8Sopenharmony_ci} 20cdb3e2c8Sopenharmony_ci 21cdb3e2c8Sopenharmony_ci#[test] 22cdb3e2c8Sopenharmony_cifn test_wft8() { 23cdb3e2c8Sopenharmony_ci let wchar = if cfg!(unix) { 24cdb3e2c8Sopenharmony_ci "\\xED\\xA0\\xBD" 25cdb3e2c8Sopenharmony_ci } else { 26cdb3e2c8Sopenharmony_ci "\\u{D83D}" 27cdb3e2c8Sopenharmony_ci }; 28cdb3e2c8Sopenharmony_ci test(&format!("\"foo{}\u{1F4A9}bar\"", wchar), RAW_WTF8_STRING); 29cdb3e2c8Sopenharmony_ci} 30cdb3e2c8Sopenharmony_ci 31cdb3e2c8Sopenharmony_ci#[test] 32cdb3e2c8Sopenharmony_cifn test_quote() { 33cdb3e2c8Sopenharmony_ci test("\"foo\\\"bar\"", RawOsStr::from_str("foo\"bar")); 34cdb3e2c8Sopenharmony_ci} 35