zig/test/cases/var_args.zig
Andrew Kelley af536ac343 introduce new test syntax
* remove setFnTest builtin
 * add test "name" { ... } syntax
 * remove --check-unused argument. functions are always lazy now.
2017-03-16 16:02:35 -04:00

34 lines
717 B
Zig

const assert = @import("std").debug.assert;
fn add(args: ...) -> i32 {
var sum = i32(0);
{comptime var i: usize = 0; inline while (i < args.len; i += 1) {
sum += args[i];
}}
return sum;
}
test "testAddArbitraryArgs" {
assert(add(i32(1), i32(2), i32(3), i32(4)) == 10);
assert(add(i32(1234)) == 1234);
assert(add() == 0);
}
fn readFirstVarArg(args: ...) {
const value = args[0];
}
test "sendVoidArgToVarArgs" {
readFirstVarArg({});
}
test "testPassArgsDirectly" {
assert(addSomeStuff(i32(1), i32(2), i32(3), i32(4)) == 10);
assert(addSomeStuff(i32(1234)) == 1234);
assert(addSomeStuff() == 0);
}
fn addSomeStuff(args: ...) -> i32 {
return add(args);
}