mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-04-26 13:01:34 +03:00
36 lines
1.1 KiB
Zig
36 lines
1.1 KiB
Zig
const builtin = @import("builtin");
|
|
const std = @import("std");
|
|
|
|
const c = std.c;
|
|
const testing = std.testing;
|
|
|
|
test "swab" {
|
|
if (builtin.target.cpu.arch.isMIPS64() and @sizeOf(usize) == 4) return error.SkipZigTest; // TODO
|
|
if (builtin.target.cpu.arch == .x86_64 and @sizeOf(usize) == 4) return error.SkipZigTest; // TODO
|
|
if (builtin.target.os.tag == .netbsd) return error.SkipZigTest; // TODO
|
|
|
|
var a: [4]u8 = undefined;
|
|
@memset(a[0..], '\x00');
|
|
c.swab("abcd", &a, 4);
|
|
try testing.expectEqualSlices(u8, "badc", &a);
|
|
|
|
// Partial copy
|
|
@memset(a[0..], '\x00');
|
|
c.swab("abcd", &a, 2);
|
|
try testing.expectEqualSlices(u8, "ba\x00\x00", &a);
|
|
|
|
// n < 1
|
|
@memset(a[0..], '\x00');
|
|
c.swab("abcd", &a, 0);
|
|
try testing.expectEqualSlices(u8, "\x00" ** 4, &a);
|
|
c.swab("abcd", &a, -1);
|
|
try testing.expectEqualSlices(u8, "\x00" ** 4, &a);
|
|
|
|
// Odd n
|
|
@memset(a[0..], '\x00');
|
|
c.swab("abcd", &a, 1);
|
|
try testing.expectEqualSlices(u8, "\x00" ** 4, &a);
|
|
c.swab("abcd", &a, 3);
|
|
try testing.expectEqualSlices(u8, "ba\x00\x00", &a);
|
|
}
|