1 // run-pass 2 main()3pub fn main() 4 { 5 let all_nuls1 = "\0\x00\u{0}\u{0}"; 6 let all_nuls2 = "\u{0}\u{0}\x00\0"; 7 let all_nuls3 = "\u{0}\u{0}\x00\0"; 8 let all_nuls4 = "\x00\u{0}\0\u{0}"; 9 10 // sizes for two should suffice 11 assert_eq!(all_nuls1.len(), 4); 12 assert_eq!(all_nuls2.len(), 4); 13 14 // string equality should pass between the strings 15 assert_eq!(all_nuls1, all_nuls2); 16 assert_eq!(all_nuls2, all_nuls3); 17 assert_eq!(all_nuls3, all_nuls4); 18 19 // all extracted characters in all_nuls are equivalent to each other 20 for c1 in all_nuls1.chars() 21 { 22 for c2 in all_nuls1.chars() 23 { 24 assert_eq!(c1,c2); 25 } 26 } 27 28 // testing equality between explicit character literals 29 assert_eq!('\0', '\x00'); 30 assert_eq!('\u{0}', '\x00'); 31 assert_eq!('\u{0}', '\u{0}'); 32 33 // NUL characters should make a difference 34 assert!("Hello World" != "Hello \0World"); 35 assert!("Hello World" != "Hello World\0"); 36 } 37