diff --git a/src-self-hosted/test.zig b/src-self-hosted/test.zig index 89532378a5..13f08d86e2 100644 --- a/src-self-hosted/test.zig +++ b/src-self-hosted/test.zig @@ -120,6 +120,10 @@ pub const TestContext = struct { } self.updates.append(.{ .src = src, .case = .{ .Error = array } }) catch unreachable; } + + pub fn compiles(self: *Case, src: [:0]const u8) void { + self.addError(src, &[_][]const u8{}); + } }; pub fn addExe( @@ -260,6 +264,34 @@ pub const TestContext = struct { ctx.addError(name, target, .ZIR, src, expected_errors); } + pub fn addCompiles( + ctx: *TestContext, + name: []const u8, + target: std.zig.CrossTarget, + T: TestType, + src: [:0]const u8, + ) void { + ctx.addObj(name, target, T).compiles(src); + } + + pub fn compiles( + ctx: *TestContext, + name: []const u8, + target: std.zig.CrossTarget, + src: [:0]const u8, + ) void { + ctx.addCompiles(name, target, .Zig, src); + } + + pub fn compilesZIR( + ctx: *TestContext, + name: []const u8, + target: std.zig.CrossTarget, + src: [:0]const u8, + ) void { + ctx.addCompiles(name, target, .ZIR, src); + } + fn init() TestContext { const allocator = std.heap.page_allocator; return .{ .cases = std.ArrayList(Case).init(allocator) };