| author | |
| committer | |
| log | bf863878acb6ac65ef10064b8ffd457ef756eba8 |
| tree | afb514d4f77c2c1700b9733411e6abb37902a886 |
| parent | 7a8f7dcb8c25d4c78ac8f1190ab8e163ff1cb80d |
Closes #10684
Closes #6905
Closes #86464 files changed, 63 insertions(+), 0 deletions(-)
test/behavior.zig+3| ... | @@ -65,14 +65,17 @@ test { | ... | @@ -65,14 +65,17 @@ test { |
| 65 | _ = @import("behavior/bugs/6456.zig"); | 65 | _ = @import("behavior/bugs/6456.zig"); |
| 66 | _ = @import("behavior/bugs/6781.zig"); | 66 | _ = @import("behavior/bugs/6781.zig"); |
| 67 | _ = @import("behavior/bugs/6850.zig"); | 67 | _ = @import("behavior/bugs/6850.zig"); |
| 68 | _ = @import("behavior/bugs/6905.zig"); | ||
| 68 | _ = @import("behavior/bugs/7003.zig"); | 69 | _ = @import("behavior/bugs/7003.zig"); |
| 69 | _ = @import("behavior/bugs/7047.zig"); | 70 | _ = @import("behavior/bugs/7047.zig"); |
| 70 | _ = @import("behavior/bugs/7187.zig"); | 71 | _ = @import("behavior/bugs/7187.zig"); |
| 71 | _ = @import("behavior/bugs/7325.zig"); | 72 | _ = @import("behavior/bugs/7325.zig"); |
| 73 | _ = @import("behavior/bugs/8646.zig"); | ||
| 72 | _ = @import("behavior/bugs/9584.zig"); | 74 | _ = @import("behavior/bugs/9584.zig"); |
| 73 | _ = @import("behavior/bugs/10138.zig"); | 75 | _ = @import("behavior/bugs/10138.zig"); |
| 74 | _ = @import("behavior/bugs/10147.zig"); | 76 | _ = @import("behavior/bugs/10147.zig"); |
| 75 | _ = @import("behavior/bugs/10970.zig"); | 77 | _ = @import("behavior/bugs/10970.zig"); |
| 78 | _ = @import("behavior/bugs/10684.zig"); | ||
| 76 | _ = @import("behavior/bugs/11046.zig"); | 79 | _ = @import("behavior/bugs/11046.zig"); |
| 77 | _ = @import("behavior/bugs/11100.zig"); | 80 | _ = @import("behavior/bugs/11100.zig"); |
| 78 | _ = @import("behavior/bugs/11139.zig"); | 81 | _ = @import("behavior/bugs/11139.zig"); |
test/behavior/bugs/10684.zig created+19| ... | @@ -0,0 +1,19 @@ | ||
| 1 | const std = @import("std"); | ||
| 2 | const builtin = @import("builtin"); | ||
| 3 | const expectEqualStrings = std.testing.expectEqualStrings; | ||
| 4 | |||
| 5 | test "slicing slices" { | ||
| 6 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 7 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 8 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 10 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 11 | |||
| 12 | const foo = "1234"; | ||
| 13 | const bar = foo[0..4]; | ||
| 14 | try expectEqualStrings("1234", bar); | ||
| 15 | try expectEqualStrings("2", bar[1..2]); | ||
| 16 | try expectEqualStrings("3", bar[2..3]); | ||
| 17 | try expectEqualStrings("4", bar[3..4]); | ||
| 18 | try expectEqualStrings("34", bar[2..4]); | ||
| 19 | } | ||
test/behavior/bugs/6905.zig created+23| ... | @@ -0,0 +1,23 @@ | ||
| 1 | const expect = @import("std").testing.expect; | ||
| 2 | const builtin = @import("builtin"); | ||
| 3 | |||
| 4 | test "sentinel-terminated 0-length slices" { | ||
| 5 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 6 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 7 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 8 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 10 | |||
| 11 | var u32s: [4]u32 = [_]u32{ 0, 1, 2, 3 }; | ||
| 12 | |||
| 13 | var index: u8 = 2; | ||
| 14 | var slice = u32s[index..index :2]; | ||
| 15 | var array_ptr = u32s[2..2 :2]; | ||
| 16 | const comptime_known_array_value = u32s[2..2 :2].*; | ||
| 17 | var runtime_array_value = u32s[2..2 :2].*; | ||
| 18 | |||
| 19 | try expect(slice[0] == 2); | ||
| 20 | try expect(array_ptr[0] == 2); | ||
| 21 | try expect(comptime_known_array_value[0] == 2); | ||
| 22 | try expect(runtime_array_value[0] == 2); | ||
| 23 | } | ||
test/behavior/bugs/8646.zig created+18| ... | @@ -0,0 +1,18 @@ | ||
| 1 | const std = @import("std"); | ||
| 2 | const builtin = @import("builtin"); | ||
| 3 | |||
| 4 | const array = [_][]const []const u8{ | ||
| 5 | &.{"hello"}, | ||
| 6 | &.{ "world", "hello" }, | ||
| 7 | }; | ||
| 8 | |||
| 9 | test { | ||
| 10 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 11 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 12 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 13 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 14 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 15 | |||
| 16 | try std.testing.expect(array[0].len == 1); | ||
| 17 | try std.testing.expectEqualStrings("hello", array[0][0]); | ||
| 18 | } | ||