From 1310ef75777209f061bfd61473db75911538b5ff Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Tue, 6 Dec 2022 21:48:48 -0700 Subject: [PATCH] disable failing behavior tests with -ofmt=c -target x86_64-windows and enable CI checks for the C backend on Windows. --- test/behavior.zig | 2 +- test/behavior/basic.zig | 28 ----------------- test/behavior/bugs/7250.zig | 24 --------------- test/behavior/threadlocal.zig | 58 +++++++++++++++++++++++++++++++++++ test/tests.zig | 7 ----- 5 files changed, 59 insertions(+), 60 deletions(-) delete mode 100644 test/behavior/bugs/7250.zig create mode 100644 test/behavior/threadlocal.zig diff --git a/test/behavior.zig b/test/behavior.zig index d301fa328f..64ffcb7a44 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -68,7 +68,6 @@ test { _ = @import("behavior/bugs/7003.zig"); _ = @import("behavior/bugs/7047.zig"); _ = @import("behavior/bugs/7187.zig"); - _ = @import("behavior/bugs/7250.zig"); _ = @import("behavior/bugs/9584.zig"); _ = @import("behavior/bugs/10138.zig"); _ = @import("behavior/bugs/10147.zig"); @@ -182,6 +181,7 @@ test { _ = @import("behavior/switch_prong_err_enum.zig"); _ = @import("behavior/switch_prong_implicit_cast.zig"); _ = @import("behavior/this.zig"); + _ = @import("behavior/threadlocal.zig"); _ = @import("behavior/translate_c_macros.zig"); _ = @import("behavior/truncate.zig"); _ = @import("behavior/try.zig"); diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index d5f7d92d9d..a944ad816d 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -711,20 +711,6 @@ test "comptime manyptr concatenation" { try expect(expected[len] == 0); } -test "thread local variable" { - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO - - const S = struct { - threadlocal var t: i32 = 1234; - }; - S.t += 1; - try expect(S.t == 1235); -} - test "result location is optional inside error union" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO @@ -740,20 +726,6 @@ fn maybe(x: bool) anyerror!?u32 { }; } -test "pointer to thread local array" { - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO - - const s = "Hello world"; - std.mem.copy(u8, buffer[0..], s); - try std.testing.expectEqualSlices(u8, buffer[0..], s); -} - -threadlocal var buffer: [11]u8 = undefined; - test "auto created variables have correct alignment" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO diff --git a/test/behavior/bugs/7250.zig b/test/behavior/bugs/7250.zig deleted file mode 100644 index 011dc87362..0000000000 --- a/test/behavior/bugs/7250.zig +++ /dev/null @@ -1,24 +0,0 @@ -const builtin = @import("builtin"); -const nrfx_uart_t = extern struct { - p_reg: [*c]u32, - drv_inst_idx: u8, -}; - -pub fn nrfx_uart_rx(p_instance: [*c]const nrfx_uart_t) void { - _ = p_instance; -} - -threadlocal var g_uart0 = nrfx_uart_t{ - .p_reg = 0, - .drv_inst_idx = 0, -}; - -test "reference a global threadlocal variable" { - if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO - - _ = nrfx_uart_rx(&g_uart0); -} diff --git a/test/behavior/threadlocal.zig b/test/behavior/threadlocal.zig new file mode 100644 index 0000000000..e54c5a4916 --- /dev/null +++ b/test/behavior/threadlocal.zig @@ -0,0 +1,58 @@ +const std = @import("std"); +const builtin = @import("builtin"); +const expect = std.testing.expect; + +test "thread local variable" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c and builtin.os.tag == .windows) return error.SkipZigTest; // TODO + + const S = struct { + threadlocal var t: i32 = 1234; + }; + S.t += 1; + try expect(S.t == 1235); +} + +test "pointer to thread local array" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c and builtin.os.tag == .windows) return error.SkipZigTest; // TODO + + const s = "Hello world"; + std.mem.copy(u8, buffer[0..], s); + try std.testing.expectEqualSlices(u8, buffer[0..], s); +} + +threadlocal var buffer: [11]u8 = undefined; + +test "reference a global threadlocal variable" { + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_llvm and builtin.cpu.arch != .x86_64) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_c and builtin.os.tag == .windows) return error.SkipZigTest; // TODO + + _ = nrfx_uart_rx(&g_uart0); +} + +const nrfx_uart_t = extern struct { + p_reg: [*c]u32, + drv_inst_idx: u8, +}; + +pub fn nrfx_uart_rx(p_instance: [*c]const nrfx_uart_t) void { + _ = p_instance; +} + +threadlocal var g_uart0 = nrfx_uart_t{ + .p_reg = 0, + .drv_inst_idx = 0, +}; diff --git a/test/tests.zig b/test/tests.zig index 0817a541d9..d884a41599 100644 --- a/test/tests.zig +++ b/test/tests.zig @@ -682,13 +682,6 @@ pub fn addPkgTests( } else false; if (!want_this_mode) continue; - if (test_target.backend) |backend| { - if (backend == .stage2_c and builtin.os.tag == .windows) { - // https://github.com/ziglang/zig/issues/12415 - continue; - } - } - const libc_prefix = if (test_target.target.getOs().requiresLibC()) "" else if (test_target.link_libc)