diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-04-27 18:26:59 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-05-01 06:47:20 -0400 |
| commit | 2bae94280058f23ba44dc3857e2b551f5894e1cb (patch) | |
| tree | 39483fa7a609f36b58dc19524e0b4467ab473974 /test | |
| parent | b23a87953a7a4030af3d9acf8deacb85162dd275 (diff) | |
| download | zig-2bae94280058f23ba44dc3857e2b551f5894e1cb.tar.gz zig-2bae94280058f23ba44dc3857e2b551f5894e1cb.zip | |
add ZIR compare output test case to test suite
Diffstat (limited to 'test')
| -rw-r--r-- | test/stage2/compare_output.zig | 41 | ||||
| -rw-r--r-- | test/stage2/compile_errors.zig | 103 | ||||
| -rw-r--r-- | test/stage2/test.zig | 1 | ||||
| -rw-r--r-- | test/stage2/zir.zig (renamed from test/stage2/ir.zig) | 15 |
4 files changed, 86 insertions, 74 deletions
diff --git a/test/stage2/compare_output.zig b/test/stage2/compare_output.zig index 443ed7a0ee..1f289c2762 100644 --- a/test/stage2/compare_output.zig +++ b/test/stage2/compare_output.zig @@ -2,24 +2,27 @@ const std = @import("std"); const TestContext = @import("../../src-self-hosted/test.zig").TestContext; pub fn addCases(ctx: *TestContext) !void { - // hello world - try ctx.testCompareOutputLibC( - \\extern fn puts([*]const u8) void; - \\pub export fn main() c_int { - \\ puts("Hello, world!"); - \\ return 0; - \\} - , "Hello, world!" ++ std.cstr.line_sep); + // TODO: re-enable these tests. + // https://github.com/ziglang/zig/issues/1364 - // function calling another function - try ctx.testCompareOutputLibC( - \\extern fn puts(s: [*]const u8) void; - \\pub export fn main() c_int { - \\ return foo("OK"); - \\} - \\fn foo(s: [*]const u8) c_int { - \\ puts(s); - \\ return 0; - \\} - , "OK" ++ std.cstr.line_sep); + //// hello world + //try ctx.testCompareOutputLibC( + // \\extern fn puts([*]const u8) void; + // \\pub export fn main() c_int { + // \\ puts("Hello, world!"); + // \\ return 0; + // \\} + //, "Hello, world!" ++ std.cstr.line_sep); + + //// function calling another function + //try ctx.testCompareOutputLibC( + // \\extern fn puts(s: [*]const u8) void; + // \\pub export fn main() c_int { + // \\ return foo("OK"); + // \\} + // \\fn foo(s: [*]const u8) c_int { + // \\ puts(s); + // \\ return 0; + // \\} + //, "OK" ++ std.cstr.line_sep); } diff --git a/test/stage2/compile_errors.zig b/test/stage2/compile_errors.zig index 377d060056..9b8dcd91c4 100644 --- a/test/stage2/compile_errors.zig +++ b/test/stage2/compile_errors.zig @@ -1,54 +1,57 @@ const TestContext = @import("../../src-self-hosted/test.zig").TestContext; pub fn addCases(ctx: *TestContext) !void { - try ctx.testCompileError( - \\export fn entry() void {} - \\export fn entry() void {} - , "1.zig", 2, 8, "exported symbol collision: 'entry'"); - - try ctx.testCompileError( - \\fn() void {} - , "1.zig", 1, 1, "missing function name"); - - try ctx.testCompileError( - \\comptime { - \\ return; - \\} - , "1.zig", 2, 5, "return expression outside function definition"); - - try ctx.testCompileError( - \\export fn entry() void { - \\ defer return; - \\} - , "1.zig", 2, 11, "cannot return from defer expression"); - - try ctx.testCompileError( - \\export fn entry() c_int { - \\ return 36893488147419103232; - \\} - , "1.zig", 2, 12, "integer value '36893488147419103232' cannot be stored in type 'c_int'"); - - try ctx.testCompileError( - \\comptime { - \\ var a: *align(4) align(4) i32 = 0; - \\} - , "1.zig", 2, 22, "Extra align qualifier"); - - try ctx.testCompileError( - \\comptime { - \\ var b: *const const i32 = 0; - \\} - , "1.zig", 2, 19, "Extra align qualifier"); - - try ctx.testCompileError( - \\comptime { - \\ var c: *volatile volatile i32 = 0; - \\} - , "1.zig", 2, 22, "Extra align qualifier"); - - try ctx.testCompileError( - \\comptime { - \\ var d: *allowzero allowzero i32 = 0; - \\} - , "1.zig", 2, 23, "Extra align qualifier"); + // TODO: re-enable these tests. + // https://github.com/ziglang/zig/issues/1364 + + //try ctx.testCompileError( + // \\export fn entry() void {} + // \\export fn entry() void {} + //, "1.zig", 2, 8, "exported symbol collision: 'entry'"); + + //try ctx.testCompileError( + // \\fn() void {} + //, "1.zig", 1, 1, "missing function name"); + + //try ctx.testCompileError( + // \\comptime { + // \\ return; + // \\} + //, "1.zig", 2, 5, "return expression outside function definition"); + + //try ctx.testCompileError( + // \\export fn entry() void { + // \\ defer return; + // \\} + //, "1.zig", 2, 11, "cannot return from defer expression"); + + //try ctx.testCompileError( + // \\export fn entry() c_int { + // \\ return 36893488147419103232; + // \\} + //, "1.zig", 2, 12, "integer value '36893488147419103232' cannot be stored in type 'c_int'"); + + //try ctx.testCompileError( + // \\comptime { + // \\ var a: *align(4) align(4) i32 = 0; + // \\} + //, "1.zig", 2, 22, "Extra align qualifier"); + + //try ctx.testCompileError( + // \\comptime { + // \\ var b: *const const i32 = 0; + // \\} + //, "1.zig", 2, 19, "Extra align qualifier"); + + //try ctx.testCompileError( + // \\comptime { + // \\ var c: *volatile volatile i32 = 0; + // \\} + //, "1.zig", 2, 22, "Extra align qualifier"); + + //try ctx.testCompileError( + // \\comptime { + // \\ var d: *allowzero allowzero i32 = 0; + // \\} + //, "1.zig", 2, 23, "Extra align qualifier"); } diff --git a/test/stage2/test.zig b/test/stage2/test.zig index f4768cd39a..dc92f99506 100644 --- a/test/stage2/test.zig +++ b/test/stage2/test.zig @@ -3,4 +3,5 @@ const TestContext = @import("../../src-self-hosted/test.zig").TestContext; pub fn addCases(ctx: *TestContext) !void { try @import("compile_errors.zig").addCases(ctx); try @import("compare_output.zig").addCases(ctx); + @import("zir.zig").addCases(ctx); } diff --git a/test/stage2/ir.zig b/test/stage2/zir.zig index 450d8fa102..b30c443788 100644 --- a/test/stage2/ir.zig +++ b/test/stage2/zir.zig @@ -1,7 +1,14 @@ -test "hello world IR" { - exeCmp( +const TestContext = @import("../../src-self-hosted/test.zig").TestContext; + +pub fn addCases(ctx: *TestContext) void { + if (@import("std").Target.current.os.tag == .windows) { + // TODO implement self-hosted PE (.exe file) linking + return; + } + + ctx.addZIRCompareOutput("hello world ZIR", \\@0 = str("Hello, world!\n") - \\@1 = primitive(void) + \\@1 = primitive(noreturn) \\@2 = primitive(usize) \\@3 = fntype([], @1, cc=Naked) \\@4 = int(0) @@ -50,5 +57,3 @@ test "hello world IR" { \\ ); } - -fn exeCmp(src: []const u8, expected_stdout: []const u8) void {} |
