From b67caf72e31eefe08fe2dc8b17b4bca16e0e3cc6 Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Wed, 3 Jul 2024 21:41:11 -0700 Subject: [PATCH] Add behavior test: including the sentinel when dereferencing a string literal This test would have failed in the past, but this has been fixed sometime in the last year. Closes #15944 --- test/behavior/string_literals.zig | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/behavior/string_literals.zig b/test/behavior/string_literals.zig index 898de2167c..a45403af97 100644 --- a/test/behavior/string_literals.zig +++ b/test/behavior/string_literals.zig @@ -101,3 +101,14 @@ test "Peer type resolution with string literals and unknown length u8 pointers" try std.testing.expect(@TypeOf("", "a", @as([*:0]const u8, "")) == [*:0]const u8); try std.testing.expect(@TypeOf(@as([*:0]const u8, "baz"), "foo", "bar") == [*:0]const u8); } + +test "including the sentinel when dereferencing a string literal" { + var var_str = "abc"; + const var_derefed = var_str[0 .. var_str.len + 1].*; + + const const_str = "abc"; + const const_derefed = const_str[0 .. const_str.len + 1].*; + + try std.testing.expectEqualSlices(u8, &var_derefed, &const_derefed); + try std.testing.expectEqual(0, const_derefed[3]); +}