Add a compiles wrapper case

This commit is contained in:
Noam Preil 2020-06-26 03:08:21 -04:00
parent 649da2df52
commit 53fead580e
No known key found for this signature in database
GPG Key ID: FC347E7C85BE8238

View File

@ -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) };