| ... | @@ -69,6 +69,27 @@ fn testMemcpyDestManyPtr() !void { | ... | @@ -69,6 +69,27 @@ fn testMemcpyDestManyPtr() !void { |
| 69 | try expect(buf[4] == 'o'); | 69 | try expect(buf[4] == 'o'); |
| 70 | } | 70 | } |
| 71 | | 71 | |
| | 72 | test "@memcpy C pointer" { |
| | 73 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| | 74 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| | 75 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| | 76 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; |
| | 77 | |
| | 78 | try testMemcpyCPointer(); |
| | 79 | try comptime testMemcpyCPointer(); |
| | 80 | } |
| | 81 | |
| | 82 | fn testMemcpyCPointer() !void { |
| | 83 | const src = "hello"; |
| | 84 | var buf: [5]u8 = undefined; |
| | 85 | @memcpy(@as([*c]u8, &buf), src); |
| | 86 | try expect(buf[0] == 'h'); |
| | 87 | try expect(buf[1] == 'e'); |
| | 88 | try expect(buf[2] == 'l'); |
| | 89 | try expect(buf[3] == 'l'); |
| | 90 | try expect(buf[4] == 'o'); |
| | 91 | } |
| | 92 | |
| 72 | test "@memcpy slice" { | 93 | test "@memcpy slice" { |
| 73 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; | 94 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 74 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; | 95 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |