diff --git a/test/behavior.zig b/test/behavior.zig index 1bf03ee131e7..400dadf4ac06 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -65,14 +65,17 @@ test { _ = @import("behavior/bugs/6456.zig"); _ = @import("behavior/bugs/6781.zig"); _ = @import("behavior/bugs/6850.zig"); + _ = @import("behavior/bugs/6905.zig"); _ = @import("behavior/bugs/7003.zig"); _ = @import("behavior/bugs/7047.zig"); _ = @import("behavior/bugs/7187.zig"); _ = @import("behavior/bugs/7325.zig"); + _ = @import("behavior/bugs/8646.zig"); _ = @import("behavior/bugs/9584.zig"); _ = @import("behavior/bugs/10138.zig"); _ = @import("behavior/bugs/10147.zig"); _ = @import("behavior/bugs/10970.zig"); + _ = @import("behavior/bugs/10684.zig"); _ = @import("behavior/bugs/11046.zig"); _ = @import("behavior/bugs/11100.zig"); _ = @import("behavior/bugs/11139.zig"); diff --git a/test/behavior/bugs/10684.zig b/test/behavior/bugs/10684.zig new file mode 100644 index 000000000000..0ac6c69c158e --- /dev/null +++ b/test/behavior/bugs/10684.zig @@ -0,0 +1,12 @@ +const std = @import("std"); +const expectEqualStrings = std.testing.expectEqualStrings; + +test "slicing slices" { + const foo = "1234"; + const bar = foo[0..4]; + try expectEqualStrings("1234", bar); + try expectEqualStrings("2", bar[1..2]); + try expectEqualStrings("3", bar[2..3]); + try expectEqualStrings("4", bar[3..4]); + try expectEqualStrings("34", bar[2..4]); +} diff --git a/test/behavior/bugs/6905.zig b/test/behavior/bugs/6905.zig new file mode 100644 index 000000000000..8b55843e7b55 --- /dev/null +++ b/test/behavior/bugs/6905.zig @@ -0,0 +1,16 @@ +const expect = @import("std").testing.expect; + +test "sentinel-terminated 0-length slices" { + var u32s: [4]u32 = [_]u32{0, 1, 2, 3}; + + var index: u8 = 2; + var slice = u32s[index..index:2]; + var array_ptr = u32s[2..2:2]; + const comptime_known_array_value = u32s[2..2:2].*; + var runtime_array_value = u32s[2..2:2].*; + + try expect(slice[0] == 2); + try expect(array_ptr[0] == 2); + try expect(comptime_known_array_value[0] == 2); + try expect(runtime_array_value[0] == 2); +} diff --git a/test/behavior/bugs/8646.zig b/test/behavior/bugs/8646.zig new file mode 100644 index 000000000000..599222722513 --- /dev/null +++ b/test/behavior/bugs/8646.zig @@ -0,0 +1,11 @@ +const std = @import("std"); + +const array = [_][]const []const u8{ + &.{ "hello" }, + &.{ "world", "hello" }, +}; + +test { + try std.testing.expect(array[0].len == 1); + try std.testing.expectEqualStrings("hello", array[0][0]); +}