aboutsummaryrefslogtreecommitdiff
path: root/test/compile_errors.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-04-29 08:24:02 +0200
committerGitHub <noreply@github.com>2022-04-29 08:24:02 +0200
commit3b8187072fc76966da9d9ab1a6a0ecd7aff4e090 (patch)
treea998ecb0837408b309851b558b7eb5f2d5d42dbe /test/compile_errors.zig
parentfda143d5d81da852af73386a2100e18784bd0d3c (diff)
parentd25f06a71c058aa4ff8bf40749345028bda6e017 (diff)
downloadzig-3b8187072fc76966da9d9ab1a6a0ecd7aff4e090.tar.gz
zig-3b8187072fc76966da9d9ab1a6a0ecd7aff4e090.zip
Merge pull request #11530 from ziglang/test-harness
test: move compare and run tests to new test harness
Diffstat (limited to 'test/compile_errors.zig')
-rw-r--r--test/compile_errors.zig218
1 files changed, 0 insertions, 218 deletions
diff --git a/test/compile_errors.zig b/test/compile_errors.zig
index d0e4156f18..f79d2b8e92 100644
--- a/test/compile_errors.zig
+++ b/test/compile_errors.zig
@@ -4,207 +4,6 @@ const TestContext = @import("../src/test.zig").TestContext;
pub fn addCases(ctx: *TestContext) !void {
{
- const case = ctx.obj("callconv(.Interrupt) on unsupported platform", .{
- .cpu_arch = .aarch64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry() callconv(.Interrupt) void {}
- , &[_][]const u8{
- "tmp.zig:1:28: error: callconv 'Interrupt' is only available on x86, x86_64, AVR, and MSP430, not aarch64",
- });
- }
- {
- var case = ctx.obj("callconv(.Signal) on unsupported platform", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry() callconv(.Signal) void {}
- , &[_][]const u8{
- "tmp.zig:1:28: error: callconv 'Signal' is only available on AVR, not x86_64",
- });
- }
- {
- const case = ctx.obj("callconv(.Stdcall, .Fastcall, .Thiscall) on unsupported platform", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\const F1 = fn () callconv(.Stdcall) void;
- \\const F2 = fn () callconv(.Fastcall) void;
- \\const F3 = fn () callconv(.Thiscall) void;
- \\export fn entry1() void { var a: F1 = undefined; _ = a; }
- \\export fn entry2() void { var a: F2 = undefined; _ = a; }
- \\export fn entry3() void { var a: F3 = undefined; _ = a; }
- , &[_][]const u8{
- "tmp.zig:1:27: error: callconv 'Stdcall' is only available on x86, not x86_64",
- "tmp.zig:2:27: error: callconv 'Fastcall' is only available on x86, not x86_64",
- "tmp.zig:3:27: error: callconv 'Thiscall' is only available on x86, not x86_64",
- });
- }
- {
- const case = ctx.obj("callconv(.Stdcall, .Fastcall, .Thiscall) on unsupported platform", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry1() callconv(.Stdcall) void {}
- \\export fn entry2() callconv(.Fastcall) void {}
- \\export fn entry3() callconv(.Thiscall) void {}
- , &[_][]const u8{
- "tmp.zig:1:29: error: callconv 'Stdcall' is only available on x86, not x86_64",
- "tmp.zig:2:29: error: callconv 'Fastcall' is only available on x86, not x86_64",
- "tmp.zig:3:29: error: callconv 'Thiscall' is only available on x86, not x86_64",
- });
- }
- {
- const case = ctx.obj("callconv(.Vectorcall) on unsupported platform", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry() callconv(.Vectorcall) void {}
- , &[_][]const u8{
- "tmp.zig:1:28: error: callconv 'Vectorcall' is only available on x86 and AArch64, not x86_64",
- });
- }
- {
- const case = ctx.obj("callconv(.APCS, .AAPCS, .AAPCSVFP) on unsupported platform", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry1() callconv(.APCS) void {}
- \\export fn entry2() callconv(.AAPCS) void {}
- \\export fn entry3() callconv(.AAPCSVFP) void {}
- , &[_][]const u8{
- "tmp.zig:1:29: error: callconv 'APCS' is only available on ARM, not x86_64",
- "tmp.zig:2:29: error: callconv 'AAPCS' is only available on ARM, not x86_64",
- "tmp.zig:3:29: error: callconv 'AAPCSVFP' is only available on ARM, not x86_64",
- });
- }
-
- {
- const case = ctx.obj("call with new stack on unsupported target", .{
- .cpu_arch = .wasm32,
- .os_tag = .wasi,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\var buf: [10]u8 align(16) = undefined;
- \\export fn entry() void {
- \\ @call(.{.stack = &buf}, foo, .{});
- \\}
- \\fn foo() void {}
- , &[_][]const u8{
- "tmp.zig:3:5: error: target arch 'wasm32' does not support calling with a new stack",
- });
- }
-
- // Note: One of the error messages here is backwards. It would be nice to fix, but that's not
- // going to stop me from merging this branch which fixes a bunch of other stuff.
- ctx.objErrStage1("incompatible sentinels",
- \\export fn entry1(ptr: [*:255]u8) [*:0]u8 {
- \\ return ptr;
- \\}
- \\export fn entry2(ptr: [*]u8) [*:0]u8 {
- \\ return ptr;
- \\}
- \\export fn entry3() void {
- \\ var array: [2:0]u8 = [_:255]u8{1, 2};
- \\ _ = array;
- \\}
- \\export fn entry4() void {
- \\ var array: [2:0]u8 = [_]u8{1, 2};
- \\ _ = array;
- \\}
- , &[_][]const u8{
- "tmp.zig:2:12: error: expected type '[*:0]u8', found '[*:255]u8'",
- "tmp.zig:2:12: note: destination pointer requires a terminating '0' sentinel, but source pointer has a terminating '255' sentinel",
- "tmp.zig:5:12: error: expected type '[*:0]u8', found '[*]u8'",
- "tmp.zig:5:12: note: destination pointer requires a terminating '0' sentinel",
-
- "tmp.zig:8:35: error: expected type '[2:255]u8', found '[2:0]u8'",
- "tmp.zig:8:35: note: destination array requires a terminating '255' sentinel, but source array has a terminating '0' sentinel",
- "tmp.zig:12:31: error: expected type '[2:0]u8', found '[2]u8'",
- "tmp.zig:12:31: note: destination array requires a terminating '0' sentinel",
- });
-
- {
- const case = ctx.obj("variable in inline assembly template cannot be found", .{
- .cpu_arch = .x86_64,
- .os_tag = .linux,
- .abi = .gnu,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry() void {
- \\ var sp = asm volatile (
- \\ "mov %[foo], sp"
- \\ : [bar] "=r" (-> usize)
- \\ );
- \\ _ = sp;
- \\}
- , &[_][]const u8{
- "tmp.zig:2:14: error: could not find 'foo' in the inputs or outputs",
- });
- }
-
- {
- const case = ctx.obj("bad alignment in @asyncCall", .{
- .cpu_arch = .aarch64,
- .os_tag = .linux,
- .abi = .none,
- });
- case.backend = .stage1;
- case.addError(
- \\export fn entry() void {
- \\ var ptr: fn () callconv(.Async) void = func;
- \\ var bytes: [64]u8 = undefined;
- \\ _ = @asyncCall(&bytes, {}, ptr, .{});
- \\}
- \\fn func() callconv(.Async) void {}
- , &[_][]const u8{
- "tmp.zig:4:21: error: expected type '[]align(8) u8', found '*[64]u8'",
- });
- }
-
- if (builtin.os.tag == .linux) {
- ctx.testErrStage1("implicit dependency on libc",
- \\extern "c" fn exit(u8) void;
- \\export fn entry() void {
- \\ exit(0);
- \\}
- , &[_][]const u8{
- "tmp.zig:3:5: error: dependency on libc must be explicitly specified in the build command",
- });
-
- ctx.testErrStage1("libc headers note",
- \\const c = @cImport(@cInclude("stdio.h"));
- \\export fn entry() void {
- \\ _ = c.printf("hello, world!\n");
- \\}
- , &[_][]const u8{
- "tmp.zig:1:11: error: C import failed",
- "tmp.zig:1:11: note: libc headers not available; compilation does not link against libc",
- });
- }
-
- {
const case = ctx.obj("wrong same named struct", .{});
case.backend = .stage1;
@@ -366,21 +165,4 @@ pub fn addCases(ctx: *TestContext) !void {
//, &[_][]const u8{
// "tmp.zig:4:1: error: unable to inline function",
//});
-
- {
- const case = ctx.obj("align(N) expr function pointers is a compile error", .{
- .cpu_arch = .wasm32,
- .os_tag = .freestanding,
- .abi = .none,
- });
- case.backend = .stage1;
-
- case.addError(
- \\export fn foo() align(1) void {
- \\ return;
- \\}
- , &[_][]const u8{
- "tmp.zig:1:23: error: align(N) expr is not allowed on function prototypes in wasm32/wasm64",
- });
- }
}