authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-04-27 21:29:25+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2022-04-28 18:35:01+02:00
log8d5acf769336051a18c4905b4fc258349092b36e
tree8137ca4ceb8711edf166aefd441fb89de986c7e6
parentc8a0d8ff2b8557e3e7c3956a37293a0ce06dd3d0

test: recursively walk dir with tests

Prune incremental tests by moving non-incremental behavior tests to behavior test suite instead.

54 files changed, 342 insertions(+), 481 deletions(-)

src/test.zig+3-3
......@@ -1012,18 +1012,18 @@ pub const TestContext = struct {
10121012 ) !void {
10131013 var cases = std.ArrayList(usize).init(ctx.arena);
10141014
1015 var it = dir.iterate();
1015 var it = try dir.walk(ctx.arena);
10161016 var filenames = std.ArrayList([]const u8).init(ctx.arena);
10171017
10181018 while (try it.next()) |entry| {
10191019 if (entry.kind != .File) continue;
10201020
10211021 // Ignore stuff such as .swp files
1022 switch (Compilation.classifyFileExt(entry.name)) {
1022 switch (Compilation.classifyFileExt(entry.basename)) {
10231023 .unknown => continue,
10241024 else => {},
10251025 }
1026 try filenames.append(try ctx.arena.dupe(u8, entry.name));
1026 try filenames.append(try ctx.arena.dupe(u8, entry.path));
10271027 }
10281028
10291029 // Sort filenames, so that incremental tests are contiguous and in-order
test/behavior.zig+2
......@@ -69,8 +69,10 @@ test {
6969 _ = @import("behavior/bugs/7003.zig");
7070 _ = @import("behavior/bugs/7027.zig");
7171 _ = @import("behavior/bugs/7047.zig");
72 _ = @import("behavior/bugs/7187.zig");
7273 _ = @import("behavior/bugs/7250.zig");
7374 _ = @import("behavior/bugs/9584.zig");
75 _ = @import("behavior/bugs/10138.zig");
7476 _ = @import("behavior/bugs/10147.zig");
7577 _ = @import("behavior/bugs/10970.zig");
7678 _ = @import("behavior/bugs/11046.zig");
test/behavior/bugs/10138.zig created+34
......@@ -0,0 +1,34 @@
1const std = @import("std");
2const builtin = @import("builtin");
3
4test "registers get overwritten when ignoring return" {
5 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
6 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
7 if (builtin.cpu.arch != .x86_64 or builtin.os.tag != .linux) return error.SkipZigTest;
8
9 const fd = open();
10 _ = write(fd, "a", 1);
11 _ = close(fd);
12}
13
14fn open() usize {
15 return 42;
16}
17
18fn write(fd: usize, a: [*]const u8, len: usize) usize {
19 return syscall4(.WRITE, fd, @ptrToInt(a), len);
20}
21
22fn syscall4(n: enum { WRITE }, a: usize, b: usize, c: usize) usize {
23 _ = n;
24 _ = a;
25 _ = b;
26 _ = c;
27 return 23;
28}
29
30fn close(fd: usize) usize {
31 if (fd != 42)
32 unreachable;
33 return 0;
34}
test/behavior/bugs/7187.zig created+18
......@@ -0,0 +1,18 @@
1const std = @import("std");
2const builtin = @import("builtin");
3const expect = std.testing.expect;
4
5test "miscompilation with bool return type" {
6 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
7 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
8
9 var x: usize = 1;
10 var y: bool = getFalse();
11 _ = y;
12
13 try expect(x == 1);
14}
15
16fn getFalse() bool {
17 return false;
18}
test/incremental/access_slice_element_by_index_slice_elem_val.zig deleted-17
......@@ -1,17 +0,0 @@
1var array = [_]usize{ 0, 42, 123, 34 };
2var slice: []const usize = &array;
3
4pub fn main() void {
5 assert(slice[0] == 0);
6 assert(slice[1] == 42);
7 assert(slice[2] == 123);
8 assert(slice[3] == 34);
9}
10
11fn assert(ok: bool) void {
12 if (!ok) unreachable;
13}
14
15// run
16// target=x86_64-linux,x86_64-macos
17//
test/incremental/hello_world_with_updates_x86_64_linux.0.zig deleted-5
......@@ -1,5 +0,0 @@
1// error
2// output_mode=Exe
3// target=x86_64-linux
4//
5// :109:9: error: struct 'tmp.tmp' has no member named 'main'
test/incremental/hello_world_with_updates_x86_64_linux.1.zig deleted-5
......@@ -1,5 +0,0 @@
1pub export fn _start() noreturn {}
2
3// error
4//
5// :1:34: error: expected noreturn, found void
test/incremental/hello_world_with_updates_x86_64_linux.2.zig deleted-32
......@@ -1,32 +0,0 @@
1pub export fn _start() noreturn {
2 print();
3
4 exit();
5}
6
7fn print() void {
8 asm volatile ("syscall"
9 :
10 : [number] "{rax}" (1),
11 [arg1] "{rdi}" (1),
12 [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
13 [arg3] "{rdx}" (14),
14 : "rcx", "r11", "memory"
15 );
16 return;
17}
18
19fn exit() noreturn {
20 asm volatile ("syscall"
21 :
22 : [number] "{rax}" (231),
23 [arg1] "{rdi}" (0),
24 : "rcx", "r11", "memory"
25 );
26 unreachable;
27}
28
29// run
30//
31// Hello, World!
32//
test/incremental/hello_world_with_updates_x86_64_linux.3.zig deleted-20
......@@ -1,20 +0,0 @@
1pub fn main() void {
2 print();
3}
4
5fn print() void {
6 asm volatile ("syscall"
7 :
8 : [number] "{rax}" (1),
9 [arg1] "{rdi}" (1),
10 [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
11 [arg3] "{rdx}" (14),
12 : "rcx", "r11", "memory"
13 );
14 return;
15}
16
17// run
18//
19// Hello, World!
20//
test/incremental/hello_world_with_updates_x86_64_linux.4.zig deleted-20
......@@ -1,20 +0,0 @@
1pub fn main() void {
2 print();
3}
4
5fn print() void {
6 asm volatile ("syscall"
7 :
8 : [number] "{rax}" (1),
9 [arg1] "{rdi}" (1),
10 [arg2] "{rsi}" (@ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n")),
11 [arg3] "{rdx}" (104),
12 : "rcx", "r11", "memory"
13 );
14 return;
15}
16
17// run
18//
19// What is up? This is a longer message that will force the data to be relocated in virtual address space.
20//
test/incremental/hello_world_with_updates_x86_64_linux.5.zig deleted-22
......@@ -1,22 +0,0 @@
1pub fn main() void {
2 print();
3 print();
4}
5
6fn print() void {
7 asm volatile ("syscall"
8 :
9 : [number] "{rax}" (1),
10 [arg1] "{rdi}" (1),
11 [arg2] "{rsi}" (@ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n")),
12 [arg3] "{rdx}" (104),
13 : "rcx", "r11", "memory"
14 );
15 return;
16}
17
18// run
19//
20// What is up? This is a longer message that will force the data to be relocated in virtual address space.
21// What is up? This is a longer message that will force the data to be relocated in virtual address space.
22//
test/incremental/hello_world_with_updates_x86_64_macos.0.zig deleted-5
......@@ -1,5 +0,0 @@
1// error
2// output_mode=Exe
3// target=x86_64-macos
4//
5// :109:9: error: struct 'tmp.tmp' has no member named 'main'
test/incremental/hello_world_with_updates_x86_64_macos.1.zig deleted-5
......@@ -1,5 +0,0 @@
1pub export fn main() noreturn {}
2
3// error
4//
5// :1:32: error: expected noreturn, found void
test/incremental/hello_world_with_updates_x86_64_macos.2.zig deleted-19
......@@ -1,19 +0,0 @@
1extern "c" fn write(usize, usize, usize) usize;
2extern "c" fn exit(usize) noreturn;
3
4pub export fn main() noreturn {
5 print();
6
7 exit(0);
8}
9
10fn print() void {
11 const msg = @ptrToInt("Hello, World!\n");
12 const len = 14;
13 _ = write(1, msg, len);
14}
15
16// run
17//
18// Hello, World!
19//
test/incremental/hello_world_with_updates_x86_64_macos.3.zig deleted-16
......@@ -1,16 +0,0 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5}
6
7fn print() void {
8 const msg = @ptrToInt("Hello, World!\n");
9 const len = 14;
10 _ = write(1, msg, len);
11}
12
13// run
14//
15// Hello, World!
16//
test/incremental/hello_world_with_updates_x86_64_macos.4.zig deleted-22
......@@ -1,22 +0,0 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5 print();
6 print();
7 print();
8}
9
10fn print() void {
11 const msg = @ptrToInt("Hello, World!\n");
12 const len = 14;
13 _ = write(1, msg, len);
14}
15
16// run
17//
18// Hello, World!
19// Hello, World!
20// Hello, World!
21// Hello, World!
22//
test/incremental/hello_world_with_updates_x86_64_macos.5.zig deleted-16
......@@ -1,16 +0,0 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5}
6
7fn print() void {
8 const msg = @ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n");
9 const len = 104;
10 _ = write(1, msg, len);
11}
12
13// run
14//
15// What is up? This is a longer message that will force the data to be relocated in virtual address space.
16//
test/incremental/hello_world_with_updates_x86_64_macos.6.zig deleted-18
......@@ -1,18 +0,0 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5 print();
6}
7
8fn print() void {
9 const msg = @ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n");
10 const len = 104;
11 _ = write(1, msg, len);
12}
13
14// run
15//
16// What is up? This is a longer message that will force the data to be relocated in virtual address space.
17// What is up? This is a longer message that will force the data to be relocated in virtual address space.
18//
test/incremental/inline_assembly_x86_64_linux.0.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 const number = 1234;
3 const x = asm volatile ("syscall"
4 : [o] "{rax}" (-> number),
5 : [number] "{rax}" (231),
6 [arg1] "{rdi}" (60),
7 : "rcx", "r11", "memory"
8 );
9 _ = x;
10}
11
12// error
13// output_mode=Exe
14// target=x86_64-linux
15//
16// :4:27: error: expected type, found comptime_int
test/incremental/inline_assembly_x86_64_linux.1.zig deleted-15
......@@ -1,15 +0,0 @@
1const S = struct {
2 comptime {
3 asm volatile (
4 \\zig_moment:
5 \\syscall
6 );
7 }
8};
9pub fn main() void {
10 _ = S;
11}
12
13// error
14//
15// :3:13: error: volatile is meaningless on global assembly
test/incremental/inline_assembly_x86_64_linux.2.zig deleted-12
......@@ -1,12 +0,0 @@
1pub fn main() void {
2 var bruh: u32 = 1;
3 asm (""
4 :
5 : [bruh] "{rax}" (4)
6 : "memory"
7 );
8}
9
10// error
11//
12// :3:5: error: assembly expression with no output must be marked volatile
test/incremental/inline_assembly_x86_64_linux.3.zig deleted-12
......@@ -1,12 +0,0 @@
1pub fn main() void {}
2comptime {
3 asm (""
4 :
5 : [bruh] "{rax}" (4)
6 : "memory"
7 );
8}
9
10// error
11//
12// :3:5: error: global assembly cannot have inputs, outputs, or clobbers
test/incremental/issue_10138_callee_preserved_regs_working_x86_64_linux.zig deleted-31
......@@ -1,31 +0,0 @@
1pub fn main() void {
2 const fd = open();
3 _ = write(fd, "a", 1);
4 _ = close(fd);
5}
6
7fn open() usize {
8 return 42;
9}
10
11fn write(fd: usize, a: [*]const u8, len: usize) usize {
12 return syscall4(.WRITE, fd, @ptrToInt(a), len);
13}
14
15fn syscall4(n: enum { WRITE }, a: usize, b: usize, c: usize) usize {
16 _ = n;
17 _ = a;
18 _ = b;
19 _ = c;
20 return 23;
21}
22
23fn close(fd: usize) usize {
24 if (fd != 42)
25 unreachable;
26 return 0;
27}
28
29// run
30// target=x86_64-linux
31//
test/incremental/issue_7187_miscompilation_with_bool_return_type.zig deleted-18
......@@ -1,18 +0,0 @@
1pub fn main() void {
2 var x: usize = 1;
3 var y: bool = getFalse();
4 _ = y;
5
6 assert(x == 1);
7}
8
9fn getFalse() bool {
10 return false;
11}
12
13fn assert(ok: bool) void {
14 if (!ok) unreachable;
15}
16
17// run
18//
test/incremental/load_store_via_pointer_deref.0.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 var x: u32 = undefined;
3 set(&x);
4 assert(x == 123);
5}
6
7fn set(x: *u32) void {
8 x.* = 123;
9}
10
11fn assert(ok: bool) void {
12 if (!ok) unreachable;
13}
14
15// run
16//
test/incremental/load_store_via_pointer_deref.1.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 var x: u16 = undefined;
3 set(&x);
4 assert(x == 123);
5}
6
7fn set(x: *u16) void {
8 x.* = 123;
9}
10
11fn assert(ok: bool) void {
12 if (!ok) unreachable;
13}
14
15// run
16//
test/incremental/load_store_via_pointer_deref.2.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 var x: u8 = undefined;
3 set(&x);
4 assert(x == 123);
5}
6
7fn set(x: *u8) void {
8 x.* = 123;
9}
10
11fn assert(ok: bool) void {
12 if (!ok) unreachable;
13}
14
15// run
16//
test/incremental/only_1_function_and_it_gets_updated_x86_64_linux.0.zig deleted-13
......@@ -1,13 +0,0 @@
1pub export fn _start() noreturn {
2 asm volatile ("syscall"
3 :
4 : [number] "{rax}" (60), // exit
5 [arg1] "{rdi}" (0),
6 : "rcx", "r11", "memory"
7 );
8 unreachable;
9}
10
11// run
12// target=x86_64-linux
13//
test/incremental/only_1_function_and_it_gets_updated_x86_64_linux.1.zig deleted-12
......@@ -1,12 +0,0 @@
1pub export fn _start() noreturn {
2 asm volatile ("syscall"
3 :
4 : [number] "{rax}" (231), // exit_group
5 [arg1] "{rdi}" (0),
6 : "rcx", "r11", "memory"
7 );
8 unreachable;
9}
10
11// run
12//
test/incremental/saving_vars_of_different_abi_size_to_stack.0.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 assert(callMe(2) == 24);
3}
4
5fn callMe(a: u8) u8 {
6 var b: u8 = a + 10;
7 const c = 2 * b;
8 return c;
9}
10
11pub fn assert(ok: bool) void {
12 if (!ok) unreachable; // assertion failure
13}
14
15// run
16//
test/incremental/saving_vars_of_different_abi_size_to_stack.1.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 assert(callMe(2) == 24);
3}
4
5fn callMe(a: u16) u16 {
6 var b: u16 = a + 10;
7 const c = 2 * b;
8 return c;
9}
10
11pub fn assert(ok: bool) void {
12 if (!ok) unreachable; // assertion failure
13}
14
15// run
16//
test/incremental/saving_vars_of_different_abi_size_to_stack.2.zig deleted-16
......@@ -1,16 +0,0 @@
1pub fn main() void {
2 assert(callMe(2) == 24);
3}
4
5fn callMe(a: u32) u32 {
6 var b: u32 = a + 10;
7 const c = 2 * b;
8 return c;
9}
10
11pub fn assert(ok: bool) void {
12 if (!ok) unreachable; // assertion failure
13}
14
15// run
16//
test/incremental/subtracting_numbers_at_runtime.zig deleted-10
......@@ -1,10 +0,0 @@
1pub fn main() void {
2 sub(7, 4);
3}
4
5fn sub(a: u32, b: u32) void {
6 if (a - b != 3) unreachable;
7}
8
9// run
10//
test/incremental/unwrap_error_union_simple_errors.0.zig deleted-10
......@@ -1,10 +0,0 @@
1pub fn main() void {
2 maybeErr() catch unreachable;
3}
4
5fn maybeErr() !void {
6 return;
7}
8
9// run
10//
test/incremental/unwrap_error_union_simple_errors.1.zig deleted-11
......@@ -1,11 +0,0 @@
1pub fn main() void {
2 maybeErr() catch return;
3 unreachable;
4}
5
6fn maybeErr() !void {
7 return error.NoWay;
8}
9
10// run
11//
test/incremental/x86_64-linux/hello_world_with_updates.0.zig created+5
......@@ -0,0 +1,5 @@
1// error
2// output_mode=Exe
3// target=x86_64-linux
4//
5// :109:9: error: struct 'tmp.tmp' has no member named 'main'
test/incremental/x86_64-linux/hello_world_with_updates.1.zig created+5
......@@ -0,0 +1,5 @@
1pub export fn _start() noreturn {}
2
3// error
4//
5// :1:34: error: expected noreturn, found void
test/incremental/x86_64-linux/hello_world_with_updates.2.zig created+32
......@@ -0,0 +1,32 @@
1pub export fn _start() noreturn {
2 print();
3
4 exit();
5}
6
7fn print() void {
8 asm volatile ("syscall"
9 :
10 : [number] "{rax}" (1),
11 [arg1] "{rdi}" (1),
12 [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
13 [arg3] "{rdx}" (14),
14 : "rcx", "r11", "memory"
15 );
16 return;
17}
18
19fn exit() noreturn {
20 asm volatile ("syscall"
21 :
22 : [number] "{rax}" (231),
23 [arg1] "{rdi}" (0),
24 : "rcx", "r11", "memory"
25 );
26 unreachable;
27}
28
29// run
30//
31// Hello, World!
32//
test/incremental/x86_64-linux/hello_world_with_updates.3.zig created+20
......@@ -0,0 +1,20 @@
1pub fn main() void {
2 print();
3}
4
5fn print() void {
6 asm volatile ("syscall"
7 :
8 : [number] "{rax}" (1),
9 [arg1] "{rdi}" (1),
10 [arg2] "{rsi}" (@ptrToInt("Hello, World!\n")),
11 [arg3] "{rdx}" (14),
12 : "rcx", "r11", "memory"
13 );
14 return;
15}
16
17// run
18//
19// Hello, World!
20//
test/incremental/x86_64-linux/hello_world_with_updates.4.zig created+20
......@@ -0,0 +1,20 @@
1pub fn main() void {
2 print();
3}
4
5fn print() void {
6 asm volatile ("syscall"
7 :
8 : [number] "{rax}" (1),
9 [arg1] "{rdi}" (1),
10 [arg2] "{rsi}" (@ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n")),
11 [arg3] "{rdx}" (104),
12 : "rcx", "r11", "memory"
13 );
14 return;
15}
16
17// run
18//
19// What is up? This is a longer message that will force the data to be relocated in virtual address space.
20//
test/incremental/x86_64-linux/hello_world_with_updates.5.zig created+22
......@@ -0,0 +1,22 @@
1pub fn main() void {
2 print();
3 print();
4}
5
6fn print() void {
7 asm volatile ("syscall"
8 :
9 : [number] "{rax}" (1),
10 [arg1] "{rdi}" (1),
11 [arg2] "{rsi}" (@ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n")),
12 [arg3] "{rdx}" (104),
13 : "rcx", "r11", "memory"
14 );
15 return;
16}
17
18// run
19//
20// What is up? This is a longer message that will force the data to be relocated in virtual address space.
21// What is up? This is a longer message that will force the data to be relocated in virtual address space.
22//
test/incremental/x86_64-linux/inline_assembly.0.zig created+16
......@@ -0,0 +1,16 @@
1pub fn main() void {
2 const number = 1234;
3 const x = asm volatile ("syscall"
4 : [o] "{rax}" (-> number),
5 : [number] "{rax}" (231),
6 [arg1] "{rdi}" (60),
7 : "rcx", "r11", "memory"
8 );
9 _ = x;
10}
11
12// error
13// output_mode=Exe
14// target=x86_64-linux
15//
16// :4:27: error: expected type, found comptime_int
test/incremental/x86_64-linux/inline_assembly.1.zig created+15
......@@ -0,0 +1,15 @@
1const S = struct {
2 comptime {
3 asm volatile (
4 \\zig_moment:
5 \\syscall
6 );
7 }
8};
9pub fn main() void {
10 _ = S;
11}
12
13// error
14//
15// :3:13: error: volatile is meaningless on global assembly
test/incremental/x86_64-linux/inline_assembly.2.zig created+12
......@@ -0,0 +1,12 @@
1pub fn main() void {
2 var bruh: u32 = 1;
3 asm (""
4 :
5 : [bruh] "{rax}" (4)
6 : "memory"
7 );
8}
9
10// error
11//
12// :3:5: error: assembly expression with no output must be marked volatile
test/incremental/x86_64-linux/inline_assembly.3.zig created+12
......@@ -0,0 +1,12 @@
1pub fn main() void {}
2comptime {
3 asm (""
4 :
5 : [bruh] "{rax}" (4)
6 : "memory"
7 );
8}
9
10// error
11//
12// :3:5: error: global assembly cannot have inputs, outputs, or clobbers
test/incremental/x86_64-linux/only_1_function_and_it_gets_updated.0.zig created+13
......@@ -0,0 +1,13 @@
1pub export fn _start() noreturn {
2 asm volatile ("syscall"
3 :
4 : [number] "{rax}" (60), // exit
5 [arg1] "{rdi}" (0),
6 : "rcx", "r11", "memory"
7 );
8 unreachable;
9}
10
11// run
12// target=x86_64-linux
13//
test/incremental/x86_64-linux/only_1_function_and_it_gets_updated.1.zig created+12
......@@ -0,0 +1,12 @@
1pub export fn _start() noreturn {
2 asm volatile ("syscall"
3 :
4 : [number] "{rax}" (231), // exit_group
5 [arg1] "{rdi}" (0),
6 : "rcx", "r11", "memory"
7 );
8 unreachable;
9}
10
11// run
12//
test/incremental/x86_64-macos/hello_world_with_updates.0.zig created+5
......@@ -0,0 +1,5 @@
1// error
2// output_mode=Exe
3// target=x86_64-macos
4//
5// :109:9: error: struct 'tmp.tmp' has no member named 'main'
test/incremental/x86_64-macos/hello_world_with_updates.1.zig created+5
......@@ -0,0 +1,5 @@
1pub export fn main() noreturn {}
2
3// error
4//
5// :1:32: error: expected noreturn, found void
test/incremental/x86_64-macos/hello_world_with_updates.2.zig created+19
......@@ -0,0 +1,19 @@
1extern "c" fn write(usize, usize, usize) usize;
2extern "c" fn exit(usize) noreturn;
3
4pub export fn main() noreturn {
5 print();
6
7 exit(0);
8}
9
10fn print() void {
11 const msg = @ptrToInt("Hello, World!\n");
12 const len = 14;
13 _ = write(1, msg, len);
14}
15
16// run
17//
18// Hello, World!
19//
test/incremental/x86_64-macos/hello_world_with_updates.3.zig created+16
......@@ -0,0 +1,16 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5}
6
7fn print() void {
8 const msg = @ptrToInt("Hello, World!\n");
9 const len = 14;
10 _ = write(1, msg, len);
11}
12
13// run
14//
15// Hello, World!
16//
test/incremental/x86_64-macos/hello_world_with_updates.4.zig created+22
......@@ -0,0 +1,22 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5 print();
6 print();
7 print();
8}
9
10fn print() void {
11 const msg = @ptrToInt("Hello, World!\n");
12 const len = 14;
13 _ = write(1, msg, len);
14}
15
16// run
17//
18// Hello, World!
19// Hello, World!
20// Hello, World!
21// Hello, World!
22//
test/incremental/x86_64-macos/hello_world_with_updates.5.zig created+16
......@@ -0,0 +1,16 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5}
6
7fn print() void {
8 const msg = @ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n");
9 const len = 104;
10 _ = write(1, msg, len);
11}
12
13// run
14//
15// What is up? This is a longer message that will force the data to be relocated in virtual address space.
16//
test/incremental/x86_64-macos/hello_world_with_updates.6.zig created+18
......@@ -0,0 +1,18 @@
1extern "c" fn write(usize, usize, usize) usize;
2
3pub fn main() void {
4 print();
5 print();
6}
7
8fn print() void {
9 const msg = @ptrToInt("What is up? This is a longer message that will force the data to be relocated in virtual address space.\n");
10 const len = 104;
11 _ = write(1, msg, len);
12}
13
14// run
15//
16// What is up? This is a longer message that will force the data to be relocated in virtual address space.
17// What is up? This is a longer message that will force the data to be relocated in virtual address space.
18//