mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 14:23:09 +00:00
CBE: enable more tests that are currently passing
This commit is contained in:
parent
8e7b1a74ac
commit
00ed8d9c50
@ -155,8 +155,6 @@ fn foo2(f: fn () anyerror!void) void {
|
|||||||
fn bar2() (error{}!void) {}
|
fn bar2() (error{}!void) {}
|
||||||
|
|
||||||
test "error union type " {
|
test "error union type " {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
try testErrorUnionType();
|
try testErrorUnionType();
|
||||||
comptime try testErrorUnionType();
|
comptime try testErrorUnionType();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,7 +66,6 @@ test "ignore lval with underscore (for loop)" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "basic for loop" {
|
test "basic for loop" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
@ -151,7 +150,6 @@ test "2 break statements and an else" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "for loop with pointer elem var" {
|
test "for loop with pointer elem var" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_x86_64) 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_aarch64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
|
|||||||
@ -170,7 +170,6 @@ fn getFirstByte(comptime T: type, mem: []const T) u8 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "generic fn keeps non-generic parameter types" {
|
test "generic fn keeps non-generic parameter types" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
|
|
||||||
@ -189,8 +188,6 @@ test "generic fn keeps non-generic parameter types" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "array of generic fns" {
|
test "array of generic fns" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
|
|
||||||
try expect(foos[0](true));
|
try expect(foos[0](true));
|
||||||
try expect(!foos[1](true));
|
try expect(!foos[1](true));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -898,7 +898,6 @@ fn testShrExact(x: u8) !void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "shift left/right on u0 operand" {
|
test "shift left/right on u0 operand" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
|
|||||||
@ -15,7 +15,6 @@ test "merge error sets" {
|
|||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
if (foo()) {
|
if (foo()) {
|
||||||
@panic("unexpected");
|
@panic("unexpected");
|
||||||
} else |err| switch (err) {
|
} else |err| switch (err) {
|
||||||
|
|||||||
@ -3,7 +3,6 @@ const builtin = @import("builtin");
|
|||||||
const expect = std.testing.expect;
|
const expect = std.testing.expect;
|
||||||
|
|
||||||
test "namespace depends on compile var" {
|
test "namespace depends on compile var" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
if (some_namespace.a_bool) {
|
if (some_namespace.a_bool) {
|
||||||
try expect(some_namespace.a_bool);
|
try expect(some_namespace.a_bool);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -181,7 +181,6 @@ const SillyStruct = struct {
|
|||||||
const here_is_a_null_literal = SillyStruct{ .context = null };
|
const here_is_a_null_literal = SillyStruct{ .context = null };
|
||||||
|
|
||||||
test "unwrap optional which is field of global var" {
|
test "unwrap optional which is field of global var" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
|
|||||||
@ -280,7 +280,6 @@ test "array initialization types" {
|
|||||||
|
|
||||||
test "null terminated pointer" {
|
test "null terminated pointer" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
@ -300,7 +299,6 @@ test "null terminated pointer" {
|
|||||||
|
|
||||||
test "allow any sentinel" {
|
test "allow any sentinel" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
@ -318,7 +316,6 @@ test "allow any sentinel" {
|
|||||||
|
|
||||||
test "pointer sentinel with enums" {
|
test "pointer sentinel with enums" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
@ -341,7 +338,6 @@ test "pointer sentinel with enums" {
|
|||||||
|
|
||||||
test "pointer sentinel with optional element" {
|
test "pointer sentinel with optional element" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
|
|||||||
@ -4,7 +4,6 @@ const expect = std.testing.expect;
|
|||||||
const native_endian = builtin.target.cpu.arch.endian();
|
const native_endian = builtin.target.cpu.arch.endian();
|
||||||
|
|
||||||
test "reinterpret bytes as integer with nonzero offset" {
|
test "reinterpret bytes as integer with nonzero offset" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
|
|||||||
@ -29,7 +29,6 @@ comptime {
|
|||||||
test "slicing" {
|
test "slicing" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
var array: [20]i32 = undefined;
|
var array: [20]i32 = undefined;
|
||||||
|
|
||||||
@ -47,8 +46,6 @@ test "slicing" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "const slice" {
|
test "const slice" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
comptime {
|
comptime {
|
||||||
const a = "1234567890";
|
const a = "1234567890";
|
||||||
try expect(a.len == 10);
|
try expect(a.len == 10);
|
||||||
@ -59,8 +56,6 @@ test "const slice" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "comptime slice of undefined pointer of length 0" {
|
test "comptime slice of undefined pointer of length 0" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
const slice1 = @as([*]i32, undefined)[0..0];
|
const slice1 = @as([*]i32, undefined)[0..0];
|
||||||
try expect(slice1.len == 0);
|
try expect(slice1.len == 0);
|
||||||
const slice2 = @as([*]i32, undefined)[100..100];
|
const slice2 = @as([*]i32, undefined)[100..100];
|
||||||
@ -69,7 +64,6 @@ test "comptime slice of undefined pointer of length 0" {
|
|||||||
|
|
||||||
test "implicitly cast array of size 0 to slice" {
|
test "implicitly cast array of size 0 to slice" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
var msg = [_]u8{};
|
var msg = [_]u8{};
|
||||||
try assertLenIsZero(&msg);
|
try assertLenIsZero(&msg);
|
||||||
@ -95,8 +89,6 @@ test "access len index of sentinel-terminated slice" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "comptime slice of slice preserves comptime var" {
|
test "comptime slice of slice preserves comptime var" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
comptime {
|
comptime {
|
||||||
var buff: [10]u8 = undefined;
|
var buff: [10]u8 = undefined;
|
||||||
buff[0..][0..][0] = 1;
|
buff[0..][0..][0] = 1;
|
||||||
@ -105,8 +97,6 @@ test "comptime slice of slice preserves comptime var" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "slice of type" {
|
test "slice of type" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
comptime {
|
comptime {
|
||||||
var types_array = [_]type{ i32, f64, type };
|
var types_array = [_]type{ i32, f64, type };
|
||||||
for (types_array) |T, i| {
|
for (types_array) |T, i| {
|
||||||
@ -130,7 +120,6 @@ test "slice of type" {
|
|||||||
|
|
||||||
test "generic malloc free" {
|
test "generic malloc free" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
||||||
|
|
||||||
@ -146,8 +135,6 @@ fn memFree(comptime T: type, memory: []T) void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "slice of hardcoded address to pointer" {
|
test "slice of hardcoded address to pointer" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
fn doTheTest() !void {
|
fn doTheTest() !void {
|
||||||
const pointer = @intToPtr([*]u8, 0x04)[0..2];
|
const pointer = @intToPtr([*]u8, 0x04)[0..2];
|
||||||
@ -162,8 +149,6 @@ test "slice of hardcoded address to pointer" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "comptime slice of pointer preserves comptime var" {
|
test "comptime slice of pointer preserves comptime var" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
comptime {
|
comptime {
|
||||||
var buff: [10]u8 = undefined;
|
var buff: [10]u8 = undefined;
|
||||||
var a = @ptrCast([*]u8, &buff);
|
var a = @ptrCast([*]u8, &buff);
|
||||||
@ -173,8 +158,6 @@ test "comptime slice of pointer preserves comptime var" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "comptime pointer cast array and then slice" {
|
test "comptime pointer cast array and then slice" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 };
|
const array = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 };
|
||||||
|
|
||||||
const ptrA: [*]const u8 = @ptrCast([*]const u8, &array);
|
const ptrA: [*]const u8 = @ptrCast([*]const u8, &array);
|
||||||
@ -203,7 +186,6 @@ test "slicing zero length array" {
|
|||||||
const x = @intToPtr([*]i32, 0x1000)[0..0x500];
|
const x = @intToPtr([*]i32, 0x1000)[0..0x500];
|
||||||
const y = x[0x100..];
|
const y = x[0x100..];
|
||||||
test "compile time slice of pointer to hard coded address" {
|
test "compile time slice of pointer to hard coded address" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage1) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage1) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
||||||
@ -239,7 +221,6 @@ test "result location zero sized array inside struct field implicit cast to slic
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "runtime safety lets us slice from len..len" {
|
test "runtime safety lets us slice from len..len" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
|
|
||||||
@ -307,7 +288,6 @@ test "slice type with custom alignment" {
|
|||||||
test "obtaining a null terminated slice" {
|
test "obtaining a null terminated slice" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
// here we have a normal array
|
// here we have a normal array
|
||||||
var buf: [50]u8 = undefined;
|
var buf: [50]u8 = undefined;
|
||||||
@ -348,7 +328,6 @@ test "empty array to slice" {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "@ptrCast slice to pointer" {
|
test "@ptrCast slice to pointer" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
|
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
|
|
||||||
const S = struct {
|
const S = struct {
|
||||||
|
|||||||
@ -158,7 +158,6 @@ fn testArray() !void {
|
|||||||
|
|
||||||
test "type info: error set, error union info, anyerror" {
|
test "type info: error set, error union info, anyerror" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
@ -191,7 +190,6 @@ fn testErrorSet() !void {
|
|||||||
|
|
||||||
test "type info: error set single value" {
|
test "type info: error set single value" {
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
|
||||||
|
|||||||
@ -13,8 +13,6 @@ fn add(args: anytype) i32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "add arbitrary args" {
|
test "add arbitrary args" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
try expect(add(.{ @as(i32, 1), @as(i32, 2), @as(i32, 3), @as(i32, 4) }) == 10);
|
try expect(add(.{ @as(i32, 1), @as(i32, 2), @as(i32, 3), @as(i32, 4) }) == 10);
|
||||||
try expect(add(.{@as(i32, 1234)}) == 1234);
|
try expect(add(.{@as(i32, 1234)}) == 1234);
|
||||||
try expect(add(.{}) == 0);
|
try expect(add(.{}) == 0);
|
||||||
@ -25,13 +23,10 @@ fn readFirstVarArg(args: anytype) void {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "send void arg to var args" {
|
test "send void arg to var args" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
readFirstVarArg(.{{}});
|
readFirstVarArg(.{{}});
|
||||||
}
|
}
|
||||||
|
|
||||||
test "pass args directly" {
|
test "pass args directly" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
try expect(addSomeStuff(.{ @as(i32, 1), @as(i32, 2), @as(i32, 3), @as(i32, 4) }) == 10);
|
try expect(addSomeStuff(.{ @as(i32, 1), @as(i32, 2), @as(i32, 3), @as(i32, 4) }) == 10);
|
||||||
@ -44,7 +39,6 @@ fn addSomeStuff(args: anytype) i32 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "runtime parameter before var args" {
|
test "runtime parameter before var args" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
|
||||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
|
||||||
|
|
||||||
@ -85,15 +79,11 @@ fn foo2(args: anytype) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
test "array of var args functions" {
|
test "array of var args functions" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
try expect(foos[0](.{}));
|
try expect(foos[0](.{}));
|
||||||
try expect(!foos[1](.{}));
|
try expect(!foos[1](.{}));
|
||||||
}
|
}
|
||||||
|
|
||||||
test "pass zero length array to var args param" {
|
test "pass zero length array to var args param" {
|
||||||
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
|
|
||||||
|
|
||||||
doNothingWithFirstArg(.{""});
|
doNothingWithFirstArg(.{""});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user