aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-04-27 18:26:59 -0400
committerAndrew Kelley <andrew@ziglang.org>2020-05-01 06:47:20 -0400
commit2bae94280058f23ba44dc3857e2b551f5894e1cb (patch)
tree39483fa7a609f36b58dc19524e0b4467ab473974 /test
parentb23a87953a7a4030af3d9acf8deacb85162dd275 (diff)
downloadzig-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.zig41
-rw-r--r--test/stage2/compile_errors.zig103
-rw-r--r--test/stage2/test.zig1
-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 {}