Skip to content

Commit c834f2a

Browse files
committed
behavior and cases: more test coverage for old issues
Closes ziglang#2622 Closes ziglang#2727 Closes ziglang#6047 Closes ziglang#6947 Closes ziglang#6656
1 parent 4ad4506 commit c834f2a

File tree

6 files changed

+85
-2
lines changed

6 files changed

+85
-2
lines changed

test/behavior.zig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ test {
4343
_ = @import("behavior/bugs/2346.zig");
4444
_ = @import("behavior/bugs/2557.zig");
4545
_ = @import("behavior/bugs/2578.zig");
46+
_ = @import("behavior/bugs/2622.zig");
4647
_ = @import("behavior/bugs/2692.zig");
48+
_ = @import("behavior/bugs/2727.zig");
4749
_ = @import("behavior/bugs/2889.zig");
4850
_ = @import("behavior/bugs/3007.zig");
4951
_ = @import("behavior/bugs/3046.zig");
@@ -62,10 +64,12 @@ test {
6264
_ = @import("behavior/bugs/5413.zig");
6365
_ = @import("behavior/bugs/5474.zig");
6466
_ = @import("behavior/bugs/5487.zig");
67+
_ = @import("behavior/bugs/6047.zig");
6568
_ = @import("behavior/bugs/6456.zig");
6669
_ = @import("behavior/bugs/6781.zig");
6770
_ = @import("behavior/bugs/6850.zig");
6871
_ = @import("behavior/bugs/6905.zig");
72+
_ = @import("behavior/bugs/6947.zig");
6973
_ = @import("behavior/bugs/7003.zig");
7074
_ = @import("behavior/bugs/7047.zig");
7175
_ = @import("behavior/bugs/7187.zig");

test/behavior/bugs/2622.zig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const builtin = @import("builtin");
2+
3+
var buf: []u8 = undefined;
4+
5+
test "reslice of undefined global var slice" {
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+
var mem: [100]u8 = [_]u8{0} ** 100;
13+
buf = &mem;
14+
const x = buf[0..1];
15+
try @import("std").testing.expect(x.len == 1 and x[0] == 0);
16+
}

test/behavior/bugs/2727.zig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
const builtin = @import("builtin");
2+
3+
fn t() bool {
4+
return true;
5+
}
6+
7+
test {
8+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
11+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
13+
14+
comptime var i: usize = 0;
15+
inline while (i < 2) : (i += 1) {
16+
if (t()) {} else return;
17+
}
18+
}

test/behavior/bugs/6047.zig

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
const builtin = @import("builtin");
2+
3+
fn getError() !void {
4+
return error.Test;
5+
}
6+
7+
fn getError2() !void {
8+
var a: u8 = 'c';
9+
try if (a == 'a') getError() else if (a == 'b') getError() else getError();
10+
}
11+
12+
test "`try`ing an if/else expression" {
13+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
14+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
15+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
16+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
17+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
18+
19+
try @import("std").testing.expectError(error.Test, getError2());
20+
}

test/behavior/bugs/6947.zig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const builtin = @import("builtin");
2+
3+
fn destroy(ptr: *void) void {
4+
_ = ptr;
5+
}
6+
7+
test {
8+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
9+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
10+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
11+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
12+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
13+
14+
var slice: []void = undefined;
15+
destroy(&slice[0]);
16+
}

test/cases/compile_errors/invalid_store_to_comptime_field.zig

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub export fn entry4() void {
4141
_ = U.foo(.{ .foo = 2, .bar = 2 });
4242
}
4343
pub export fn entry5() void {
44-
comptime var y = .{ 1, 2};
44+
comptime var y = .{ 1, 2 };
4545
y = .{ 3, 4 };
4646
}
4747
// pub export fn entry5() void {
@@ -52,7 +52,15 @@ pub export fn entry5() void {
5252
// };
5353
// _ = S.foo(.{ -1234, 5679, x });
5454
// }
55-
55+
pub export fn entry6() void {
56+
const State = struct {
57+
comptime id: bool = true,
58+
fn init(comptime id: bool) @This() {
59+
return @This(){ .id = id };
60+
}
61+
};
62+
_ = State.init(false);
63+
}
5664

5765
// error
5866
// target=native
@@ -65,3 +73,4 @@ pub export fn entry5() void {
6573
// :25:29: note: default value set here
6674
// :41:16: error: value stored in comptime field does not match the default value of the field
6775
// :45:12: error: value stored in comptime field does not match the default value of the field
76+
// :59:35: error: value stored in comptime field does not match the default value of the field

0 commit comments

Comments
 (0)