about summary refs log tree commit diff
path: root/tests/ui/str/nul-char-equivalence.rs
diff options
context:
space:
mode:
authorKivooeo <Kivooeo123@gmail.com>2025-07-01 00:41:51 +0500
committerKivooeo <Kivooeo123@gmail.com>2025-07-05 00:39:50 +0500
commit9ad98f78d4485f6f7f9615c1961bb75b281bfceb (patch)
treedaadbde2637ad72e2b6a55e61b2870110c55c16e /tests/ui/str/nul-char-equivalence.rs
parent5ca574e85b67cec0a6fc3fddfe398cbe676c9c69 (diff)
downloadrust-9ad98f78d4485f6f7f9615c1961bb75b281bfceb.tar.gz
rust-9ad98f78d4485f6f7f9615c1961bb75b281bfceb.zip
moved tests
Diffstat (limited to 'tests/ui/str/nul-char-equivalence.rs')
-rw-r--r--tests/ui/str/nul-char-equivalence.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/ui/str/nul-char-equivalence.rs b/tests/ui/str/nul-char-equivalence.rs
new file mode 100644
index 00000000000..eb83f440d3e
--- /dev/null
+++ b/tests/ui/str/nul-char-equivalence.rs
@@ -0,0 +1,36 @@
+//@ run-pass
+
+pub fn main()
+{
+    let all_nuls1 = "\0\x00\u{0}\u{0}";
+    let all_nuls2 = "\u{0}\u{0}\x00\0";
+    let all_nuls3 = "\u{0}\u{0}\x00\0";
+    let all_nuls4 = "\x00\u{0}\0\u{0}";
+
+    // sizes for two should suffice
+    assert_eq!(all_nuls1.len(), 4);
+    assert_eq!(all_nuls2.len(), 4);
+
+    // string equality should pass between the strings
+    assert_eq!(all_nuls1, all_nuls2);
+    assert_eq!(all_nuls2, all_nuls3);
+    assert_eq!(all_nuls3, all_nuls4);
+
+    // all extracted characters in all_nuls are equivalent to each other
+    for c1 in all_nuls1.chars()
+    {
+        for c2 in all_nuls1.chars()
+        {
+            assert_eq!(c1,c2);
+        }
+    }
+
+    // testing equality between explicit character literals
+    assert_eq!('\0', '\x00');
+    assert_eq!('\u{0}', '\x00');
+    assert_eq!('\u{0}', '\u{0}');
+
+    // NUL characters should make a difference
+    assert!("Hello World" != "Hello \0World");
+    assert!("Hello World" != "Hello World\0");
+}