| ... | @@ -120,7 +120,7 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -120,7 +120,7 @@ pub fn addCases(ctx: *TestContext) !void { |
| 120 | } | 120 | } |
| 121 | | 121 | |
| 122 | { | 122 | { |
| 123 | var case = ctx.exe("adding numbers", linux_x64); | 123 | var case = ctx.exe("adding numbers at comptime", linux_x64); |
| 124 | case.addCompareOutput( | 124 | case.addCompareOutput( |
| 125 | \\export fn _start() noreturn { | 125 | \\export fn _start() noreturn { |
| 126 | \\ asm volatile ("syscall" | 126 | \\ asm volatile ("syscall" |
| ... | @@ -143,4 +143,31 @@ pub fn addCases(ctx: *TestContext) !void { | ... | @@ -143,4 +143,31 @@ pub fn addCases(ctx: *TestContext) !void { |
| 143 | "Hello, World!\n", | 143 | "Hello, World!\n", |
| 144 | ); | 144 | ); |
| 145 | } | 145 | } |
| | 146 | |
| | 147 | { |
| | 148 | var case = ctx.exe("adding numbers at runtime", linux_x64); |
| | 149 | case.addCompareOutput( |
| | 150 | \\export fn _start() noreturn { |
| | 151 | \\ add(3, 4); |
| | 152 | \\ |
| | 153 | \\ exit(); |
| | 154 | \\} |
| | 155 | \\ |
| | 156 | \\fn add(a: u32, b: u32) void { |
| | 157 | \\ if (a + b != 7) unreachable; |
| | 158 | \\} |
| | 159 | \\ |
| | 160 | \\fn exit() noreturn { |
| | 161 | \\ asm volatile ("syscall" |
| | 162 | \\ : |
| | 163 | \\ : [number] "{rax}" (231), |
| | 164 | \\ [arg1] "{rdi}" (0) |
| | 165 | \\ : "rcx", "r11", "memory" |
| | 166 | \\ ); |
| | 167 | \\ unreachable; |
| | 168 | \\} |
| | 169 | , |
| | 170 | "", |
| | 171 | ); |
| | 172 | } |
| 146 | } | 173 | } |