diff options
Diffstat (limited to 'test/behavior/basic.zig')
| -rw-r--r-- | test/behavior/basic.zig | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/behavior/basic.zig b/test/behavior/basic.zig index d608cba98b..12ead179f4 100644 --- a/test/behavior/basic.zig +++ b/test/behavior/basic.zig @@ -709,6 +709,31 @@ test "string concatenation" { try expect(b[len] == 0); } +fn manyptrConcat(comptime s: [*:0]const u8) [*:0]const u8 { + return "very " ++ s; +} + +test "comptime manyptr concatenation" { + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; + + const s = "epic"; + const actual = manyptrConcat(s); + const expected = "very epic"; + + const len = mem.len(actual); + const len_with_null = len + 1; + { + var i: u32 = 0; + while (i < len_with_null) : (i += 1) { + try expect(actual[i] == expected[i]); + } + } + try expect(actual[len] == 0); + try expect(expected[len] == 0); +} + test "thread local variable" { if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
