aboutsummaryrefslogtreecommitdiff
path: root/test/incremental/assert_function.8.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-04-27 12:41:05 +0200
committerJakub Konka <kubkon@jakubkonka.com>2022-04-28 18:35:01 +0200
commitc1a98cd65d48693c9cfce5fbc5e5f5a1dbf4c1b7 (patch)
tree198ff979342674e87ae14d1e2bf67cb833c42f33 /test/incremental/assert_function.8.zig
parent46db5e2a44b38c92e97a438c4b6a67627cc12d16 (diff)
downloadzig-c1a98cd65d48693c9cfce5fbc5e5f5a1dbf4c1b7.tar.gz
zig-c1a98cd65d48693c9cfce5fbc5e5f5a1dbf4c1b7.zip
test: set case name from initial filename for a sequence
Port more incremental tests.
Diffstat (limited to 'test/incremental/assert_function.8.zig')
-rw-r--r--test/incremental/assert_function.8.zig36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/incremental/assert_function.8.zig b/test/incremental/assert_function.8.zig
new file mode 100644
index 0000000000..c8c30cfac6
--- /dev/null
+++ b/test/incremental/assert_function.8.zig
@@ -0,0 +1,36 @@
+const builtin = @import("builtin");
+
+extern "c" fn write(usize, usize, usize) usize;
+
+pub fn main() void {
+ var i: u32 = 0;
+ inline while (i < 4) : (i += 1) print();
+ assert(i == 4);
+}
+
+fn print() void {
+ switch (builtin.os.tag) {
+ .linux => {
+ asm volatile ("syscall"
+ :
+ : [number] "{rax}" (1),
+ [arg1] "{rdi}" (1),
+ [arg2] "{rsi}" (@ptrToInt("hello\n")),
+ [arg3] "{rdx}" (6),
+ : "rcx", "r11", "memory"
+ );
+ },
+ .macos => {
+ _ = write(1, @ptrToInt("hello\n"), 6);
+ },
+ else => unreachable,
+ }
+}
+
+pub fn assert(ok: bool) void {
+ if (!ok) unreachable; // assertion failure
+}
+
+// error
+//
+// :3:21: error: unable to resolve comptime value