Skip to content

Commit 10ee7e1

Browse files
committed
behavior: more test coverage
Closes #12450 Closes #13113 Closes #12051 Closes #12092 Closes #12116 Closes #12119 Closes #12142 Closes #12450 Closes #13113 Closes #11995 Closes #12000
1 parent cf85462 commit 10ee7e1

File tree

11 files changed

+225
-0
lines changed

11 files changed

+225
-0
lines changed

test/behavior.zig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,20 @@ test {
9191
_ = @import("behavior/bugs/11213.zig");
9292
_ = @import("behavior/bugs/11787.zig");
9393
_ = @import("behavior/bugs/11816.zig");
94+
_ = @import("behavior/bugs/11995.zig");
95+
_ = @import("behavior/bugs/12000.zig");
9496
_ = @import("behavior/bugs/12003.zig");
9597
_ = @import("behavior/bugs/12025.zig");
9698
_ = @import("behavior/bugs/12033.zig");
9799
_ = @import("behavior/bugs/12043.zig");
100+
_ = @import("behavior/bugs/12051.zig");
101+
_ = @import("behavior/bugs/12092.zig");
102+
_ = @import("behavior/bugs/12119.zig");
103+
_ = @import("behavior/bugs/12116.zig");
104+
_ = @import("behavior/bugs/12142.zig");
105+
_ = @import("behavior/bugs/12169.zig");
98106
_ = @import("behavior/bugs/12430.zig");
107+
_ = @import("behavior/bugs/12450.zig");
99108
_ = @import("behavior/bugs/12486.zig");
100109
_ = @import("behavior/bugs/12488.zig");
101110
_ = @import("behavior/bugs/12498.zig");
@@ -121,6 +130,7 @@ test {
121130
_ = @import("behavior/bugs/13068.zig");
122131
_ = @import("behavior/bugs/13069.zig");
123132
_ = @import("behavior/bugs/13112.zig");
133+
_ = @import("behavior/bugs/13113.zig");
124134
_ = @import("behavior/bugs/13128.zig");
125135
_ = @import("behavior/bugs/13159.zig");
126136
_ = @import("behavior/bugs/13164.zig");

test/behavior/bugs/11995.zig

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
const builtin = @import("builtin");
2+
3+
fn wuffs_base__make_io_buffer(arg_data: wuffs_base__slice_u8, arg_meta: wuffs_base__io_buffer_meta) callconv(.C) void {
4+
_ = arg_data;
5+
_ = arg_meta;
6+
}
7+
const wuffs_base__io_buffer_meta = extern struct {
8+
wi: usize,
9+
ri: usize,
10+
pos: u64,
11+
closed: bool,
12+
};
13+
const wuffs_base__slice_u8 = extern struct {
14+
ptr: [*c]u8,
15+
len: usize,
16+
};
17+
test {
18+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
19+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
20+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
21+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
22+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
23+
_ = wuffs_base__make_io_buffer(undefined, undefined);
24+
}

test/behavior/bugs/12000.zig

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const builtin = @import("builtin");
2+
3+
const T = struct {
4+
next: @TypeOf(null, @as(*const T, undefined)),
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+
_ = T;
14+
}

test/behavior/bugs/12051.zig

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
const builtin = @import("builtin");
2+
3+
test {
4+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
5+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
6+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
7+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
8+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
9+
const x = X{};
10+
_ = x;
11+
}
12+
13+
const X = struct {
14+
y: Y = Y.init(),
15+
};
16+
17+
const Y = struct {
18+
a: u16,
19+
b: bool,
20+
c: Z,
21+
d: Z,
22+
23+
fn init() Y {
24+
return .{
25+
.a = 0,
26+
.b = false,
27+
.c = @bitCast(Z, @as(u32, 0)),
28+
.d = @bitCast(Z, @as(u32, 0)),
29+
};
30+
}
31+
};
32+
33+
const Z = packed struct {
34+
a: u32,
35+
};

test/behavior/bugs/12092.zig

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const builtin = @import("builtin");
2+
3+
const Foo = struct {
4+
a: Bar,
5+
};
6+
7+
const Bar = struct {
8+
b: u32,
9+
};
10+
11+
fn takeFoo(foo: *const Foo) void {
12+
_ = foo;
13+
}
14+
15+
test {
16+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
17+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
18+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
19+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
20+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
21+
var baz: u32 = 24;
22+
takeFoo(&.{
23+
.a = .{
24+
.b = baz,
25+
},
26+
});
27+
}

test/behavior/bugs/12116.zig

Lines changed: 12 additions & 0 deletions
Large diffs are not rendered by default.

test/behavior/bugs/12119.zig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const builtin = @import("builtin");
2+
3+
const u8x32 = @Vector(32, u8);
4+
const u32x8 = @Vector(8, u32);
5+
6+
test {
7+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
8+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
9+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
10+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
11+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
12+
const zerox32: u8x32 = [_]u8{0} ** 32;
13+
const bigsum: u32x8 = @bitCast(u32x8, zerox32);
14+
_ = bigsum;
15+
}

test/behavior/bugs/12142.zig

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
const std = @import("std");
2+
const builtin = @import("builtin");
3+
4+
const Holder = struct {
5+
array: []const u8,
6+
};
7+
8+
const Test = struct {
9+
holders: []const Holder,
10+
};
11+
12+
const Letter = enum(u8) {
13+
A = 0x41,
14+
B,
15+
};
16+
17+
fn letter(e: Letter) u8 {
18+
return @enumToInt(e);
19+
}
20+
21+
test {
22+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
23+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
24+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
25+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
26+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
27+
const test_struct = Test{
28+
.holders = &.{
29+
Holder{
30+
.array = &.{
31+
letter(.A),
32+
},
33+
},
34+
},
35+
};
36+
try std.testing.expectEqualStrings("A", test_struct.holders[0].array);
37+
}

test/behavior/bugs/12169.zig

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const builtin = @import("builtin");
2+
3+
test {
4+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
5+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
6+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
7+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
8+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
9+
_ = @Vector(2, bool){ true, true };
10+
_ = @Vector(1, bool){true};
11+
}

test/behavior/bugs/12450.zig

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const expect = @import("std").testing.expect;
2+
const builtin = @import("builtin");
3+
4+
const Foo = packed struct {
5+
a: i32,
6+
b: u8,
7+
};
8+
9+
var buffer: [256]u8 = undefined;
10+
11+
test {
12+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
13+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
14+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
15+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
16+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
17+
var f1: *align(16) Foo = @alignCast(16, @ptrCast(*align(1) Foo, &buffer[0]));
18+
try expect(@typeInfo(@TypeOf(f1)).Pointer.alignment == 16);
19+
try expect(@ptrToInt(f1) == @ptrToInt(&f1.a));
20+
try expect(@typeInfo(@TypeOf(&f1.a)).Pointer.alignment == 16);
21+
}

test/behavior/bugs/13113.zig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const builtin = @import("builtin");
2+
3+
const Foo = extern struct {
4+
a: u8 align(1),
5+
b: u16 align(1),
6+
};
7+
8+
test {
9+
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
10+
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
11+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
12+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
13+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
14+
const foo = Foo{
15+
.a = 1,
16+
.b = 2,
17+
};
18+
_ = foo;
19+
}

0 commit comments

Comments
 (0)