Skip to content

Commit 804cee3

Browse files
Vexuandrewrk
authored andcommitted
categorize behavior/bugs/<issueno>.zig tests
1 parent 282ff8d commit 804cee3

File tree

172 files changed

+2080
-3268
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+2080
-3268
lines changed

test/behavior.zig

Lines changed: 1 addition & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -12,136 +12,6 @@ test {
1212
_ = @import("behavior/bitcast.zig");
1313
_ = @import("behavior/bitreverse.zig");
1414
_ = @import("behavior/bool.zig");
15-
// Ideally, all tests would be categorized and independent from GitHub, but
16-
// if that's too much trouble, having test coverage this way is better than nothing.
17-
_ = @import("behavior/bugs/394.zig");
18-
_ = @import("behavior/bugs/421.zig");
19-
_ = @import("behavior/bugs/529.zig");
20-
_ = @import("behavior/bugs/624.zig");
21-
_ = @import("behavior/bugs/655.zig");
22-
_ = @import("behavior/bugs/656.zig");
23-
_ = @import("behavior/bugs/679.zig");
24-
_ = @import("behavior/bugs/704.zig");
25-
_ = @import("behavior/bugs/718.zig");
26-
_ = @import("behavior/bugs/726.zig");
27-
_ = @import("behavior/bugs/828.zig");
28-
_ = @import("behavior/bugs/920.zig");
29-
_ = @import("behavior/bugs/1025.zig");
30-
_ = @import("behavior/bugs/1076.zig");
31-
_ = @import("behavior/bugs/1277.zig");
32-
_ = @import("behavior/bugs/1310.zig");
33-
_ = @import("behavior/bugs/1381.zig");
34-
_ = @import("behavior/bugs/1421.zig");
35-
_ = @import("behavior/bugs/1442.zig");
36-
_ = @import("behavior/bugs/1486.zig");
37-
_ = @import("behavior/bugs/1500.zig");
38-
_ = @import("behavior/bugs/1607.zig");
39-
_ = @import("behavior/bugs/1735.zig");
40-
_ = @import("behavior/bugs/1851.zig");
41-
_ = @import("behavior/bugs/1914.zig");
42-
_ = @import("behavior/bugs/2006.zig");
43-
_ = @import("behavior/bugs/2114.zig");
44-
_ = @import("behavior/bugs/2346.zig");
45-
_ = @import("behavior/bugs/2557.zig");
46-
_ = @import("behavior/bugs/2578.zig");
47-
_ = @import("behavior/bugs/2622.zig");
48-
_ = @import("behavior/bugs/2692.zig");
49-
_ = @import("behavior/bugs/2727.zig");
50-
_ = @import("behavior/bugs/2889.zig");
51-
_ = @import("behavior/bugs/3007.zig");
52-
_ = @import("behavior/bugs/3046.zig");
53-
_ = @import("behavior/bugs/3112.zig");
54-
_ = @import("behavior/bugs/3367.zig");
55-
_ = @import("behavior/bugs/3384.zig");
56-
_ = @import("behavior/bugs/3586.zig");
57-
_ = @import("behavior/bugs/3742.zig");
58-
_ = @import("behavior/bugs/4328.zig");
59-
_ = @import("behavior/bugs/4560.zig");
60-
_ = @import("behavior/bugs/4769_a.zig");
61-
_ = @import("behavior/bugs/4769_b.zig");
62-
_ = @import("behavior/bugs/4954.zig");
63-
_ = @import("behavior/bugs/5398.zig");
64-
_ = @import("behavior/bugs/5413.zig");
65-
_ = @import("behavior/bugs/5474.zig");
66-
_ = @import("behavior/bugs/5487.zig");
67-
_ = @import("behavior/bugs/6047.zig");
68-
_ = @import("behavior/bugs/6456.zig");
69-
_ = @import("behavior/bugs/6781.zig");
70-
_ = @import("behavior/bugs/6850.zig");
71-
_ = @import("behavior/bugs/6905.zig");
72-
_ = @import("behavior/bugs/6947.zig");
73-
_ = @import("behavior/bugs/7003.zig");
74-
_ = @import("behavior/bugs/7047.zig");
75-
_ = @import("behavior/bugs/7187.zig");
76-
_ = @import("behavior/bugs/7325.zig");
77-
_ = @import("behavior/bugs/8277.zig");
78-
_ = @import("behavior/bugs/8646.zig");
79-
_ = @import("behavior/bugs/9584.zig");
80-
_ = @import("behavior/bugs/10138.zig");
81-
_ = @import("behavior/bugs/10147.zig");
82-
_ = @import("behavior/bugs/10970.zig");
83-
_ = @import("behavior/bugs/10684.zig");
84-
_ = @import("behavior/bugs/11046.zig");
85-
_ = @import("behavior/bugs/11100.zig");
86-
_ = @import("behavior/bugs/11139.zig");
87-
_ = @import("behavior/bugs/11159.zig");
88-
_ = @import("behavior/bugs/11162.zig");
89-
_ = @import("behavior/bugs/11165.zig");
90-
_ = @import("behavior/bugs/11179.zig");
91-
_ = @import("behavior/bugs/11181.zig");
92-
_ = @import("behavior/bugs/11213.zig");
93-
_ = @import("behavior/bugs/11787.zig");
94-
_ = @import("behavior/bugs/11816.zig");
95-
_ = @import("behavior/bugs/11995.zig");
96-
_ = @import("behavior/bugs/12000.zig");
97-
_ = @import("behavior/bugs/12003.zig");
98-
_ = @import("behavior/bugs/12025.zig");
99-
_ = @import("behavior/bugs/12033.zig");
100-
_ = @import("behavior/bugs/12043.zig");
101-
_ = @import("behavior/bugs/12051.zig");
102-
_ = @import("behavior/bugs/12092.zig");
103-
_ = @import("behavior/bugs/12119.zig");
104-
_ = @import("behavior/bugs/12142.zig");
105-
_ = @import("behavior/bugs/12169.zig");
106-
_ = @import("behavior/bugs/12430.zig");
107-
_ = @import("behavior/bugs/12450.zig");
108-
_ = @import("behavior/bugs/12486.zig");
109-
_ = @import("behavior/bugs/12498.zig");
110-
_ = @import("behavior/bugs/12551.zig");
111-
_ = @import("behavior/bugs/12571.zig");
112-
_ = @import("behavior/bugs/12644.zig");
113-
_ = @import("behavior/bugs/12723.zig");
114-
_ = @import("behavior/bugs/12776.zig");
115-
_ = @import("behavior/bugs/12786.zig");
116-
_ = @import("behavior/bugs/12794.zig");
117-
_ = @import("behavior/bugs/12801-1.zig");
118-
_ = @import("behavior/bugs/12801-2.zig");
119-
_ = @import("behavior/bugs/12885.zig");
120-
_ = @import("behavior/bugs/12890.zig");
121-
_ = @import("behavior/bugs/12891.zig");
122-
_ = @import("behavior/bugs/12911.zig");
123-
_ = @import("behavior/bugs/12928.zig");
124-
_ = @import("behavior/bugs/12945.zig");
125-
_ = @import("behavior/bugs/12972.zig");
126-
_ = @import("behavior/bugs/12984.zig");
127-
_ = @import("behavior/bugs/13064.zig");
128-
_ = @import("behavior/bugs/13065.zig");
129-
_ = @import("behavior/bugs/13068.zig");
130-
_ = @import("behavior/bugs/13069.zig");
131-
_ = @import("behavior/bugs/13112.zig");
132-
_ = @import("behavior/bugs/13113.zig");
133-
_ = @import("behavior/bugs/13128.zig");
134-
_ = @import("behavior/bugs/13159.zig");
135-
_ = @import("behavior/bugs/13171.zig");
136-
_ = @import("behavior/bugs/13209.zig");
137-
_ = @import("behavior/bugs/13285.zig");
138-
_ = @import("behavior/bugs/13366.zig");
139-
_ = @import("behavior/bugs/13435.zig");
140-
_ = @import("behavior/bugs/13664.zig");
141-
_ = @import("behavior/bugs/13714.zig");
142-
_ = @import("behavior/bugs/13785.zig");
143-
_ = @import("behavior/bugs/14854.zig");
144-
_ = @import("behavior/bugs/15778.zig");
14515
_ = @import("behavior/byteswap.zig");
14616
_ = @import("behavior/byval_arg_var.zig");
14717
_ = @import("behavior/c_char_signedness.zig");
@@ -189,6 +59,7 @@ test {
18959
_ = @import("behavior/memset.zig");
19060
_ = @import("behavior/merge_error_sets.zig");
19161
_ = @import("behavior/muladd.zig");
62+
_ = @import("behavior/multiple_externs_with_conflicting_types.zig");
19263
_ = @import("behavior/namespace_depends_on_compile_var.zig");
19364
_ = @import("behavior/nan.zig");
19465
_ = @import("behavior/null.zig");

test/behavior/array.zig

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -827,3 +827,121 @@ test "tuple initialized through reference to anonymous array init provides resul
827827
try expect(foo[0] == 12345);
828828
try expect(@intFromPtr(foo[1]) == 0x1000);
829829
}
830+
831+
test "copied array element doesn't alias source" {
832+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
833+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
834+
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
835+
836+
var x: [10][10]u32 = undefined;
837+
838+
x[0][1] = 0;
839+
const a = x[0];
840+
x[0][1] = 15;
841+
842+
try expect(a[1] == 0);
843+
}
844+
845+
test "array initialized with string literal" {
846+
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
847+
848+
const S = struct {
849+
a: u32,
850+
c: [5]u8,
851+
};
852+
const U = union {
853+
s: S,
854+
};
855+
const s_1 = S{
856+
.a = undefined,
857+
.c = "12345".*, // this caused problems
858+
};
859+
860+
var u_2 = U{ .s = s_1 };
861+
_ = &u_2;
862+
try std.testing.expectEqualStrings("12345", &u_2.s.c);
863+
}
864+
865+
test "array initialized with array with sentinel" {
866+
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
867+
868+
const S = struct {
869+
a: u32,
870+
c: [5]u8,
871+
};
872+
const U = union {
873+
s: S,
874+
};
875+
const c = [5:0]u8{ 1, 2, 3, 4, 5 };
876+
const s_1 = S{
877+
.a = undefined,
878+
.c = c, // this caused problems
879+
};
880+
var u_2 = U{ .s = s_1 };
881+
_ = &u_2;
882+
try std.testing.expectEqualSlices(u8, &.{ 1, 2, 3, 4, 5 }, &u_2.s.c);
883+
}
884+
885+
test "store array of array of structs at comptime" {
886+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
887+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
888+
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
889+
890+
const S = struct {
891+
fn storeArrayOfArrayOfStructs() u8 {
892+
const S = struct {
893+
x: u8,
894+
};
895+
896+
var cases = [_][1]S{
897+
[_]S{
898+
S{ .x = 15 },
899+
},
900+
};
901+
_ = &cases;
902+
return cases[0][0].x;
903+
}
904+
};
905+
906+
try expect(S.storeArrayOfArrayOfStructs() == 15);
907+
try comptime expect(S.storeArrayOfArrayOfStructs() == 15);
908+
}
909+
910+
test "accessing multidimensional global array at comptime" {
911+
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
912+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
913+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
914+
915+
const S = struct {
916+
const array = [_][]const []const u8{
917+
&.{"hello"},
918+
&.{ "world", "hello" },
919+
};
920+
};
921+
922+
try std.testing.expect(S.array[0].len == 1);
923+
try std.testing.expectEqualStrings("hello", S.array[0][0]);
924+
}
925+
926+
test "union that needs padding bytes inside an array" {
927+
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
928+
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
929+
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
930+
931+
const B = union(enum) {
932+
D: u8,
933+
E: u16,
934+
};
935+
const A = union(enum) {
936+
B: B,
937+
C: u8,
938+
};
939+
var as = [_]A{
940+
A{ .B = B{ .D = 1 } },
941+
A{ .B = B{ .D = 1 } },
942+
};
943+
_ = &as;
944+
945+
const a = as[0].B;
946+
try std.testing.expect(a.D == 1);
947+
}

0 commit comments

Comments
 (0)