Files
zig/test/c/unistd.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);
}