mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
behavior: add test coverage for slice and array-related issues
Closes #10684 Closes #6905 Closes #8646
This commit is contained in:
parent
7a8f7dcb8c
commit
bf863878ac
@ -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");
|
||||
|
||||
19
test/behavior/bugs/10684.zig
Normal file
19
test/behavior/bugs/10684.zig
Normal file
@ -0,0 +1,19 @@
|
||||
const std = @import("std");
|
||||
const builtin = @import("builtin");
|
||||
const expectEqualStrings = std.testing.expectEqualStrings;
|
||||
|
||||
test "slicing slices" {
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
|
||||
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]);
|
||||
}
|
||||
23
test/behavior/bugs/6905.zig
Normal file
23
test/behavior/bugs/6905.zig
Normal file
@ -0,0 +1,23 @@
|
||||
const expect = @import("std").testing.expect;
|
||||
const builtin = @import("builtin");
|
||||
|
||||
test "sentinel-terminated 0-length slices" {
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
|
||||
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);
|
||||
}
|
||||
18
test/behavior/bugs/8646.zig
Normal file
18
test/behavior/bugs/8646.zig
Normal file
@ -0,0 +1,18 @@
|
||||
const std = @import("std");
|
||||
const builtin = @import("builtin");
|
||||
|
||||
const array = [_][]const []const u8{
|
||||
&.{"hello"},
|
||||
&.{ "world", "hello" },
|
||||
};
|
||||
|
||||
test {
|
||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||
|
||||
try std.testing.expect(array[0].len == 1);
|
||||
try std.testing.expectEqualStrings("hello", array[0][0]);
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user