1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
const std = @import("std");
const testing = std.testing;
const builtin = @import("builtin");
fn wuffs_base__make_io_buffer(arg_data: wuffs_base__slice_u8, arg_meta: *wuffs_base__io_buffer_meta) callconv(.C) void {
arg_data.ptr[0] = 'w';
arg_meta.closed = false;
}
const wuffs_base__io_buffer_meta = extern struct {
wi: usize,
ri: usize,
pos: u64,
closed: bool,
};
const wuffs_base__slice_u8 = extern struct {
ptr: [*c]u8,
len: usize,
};
test {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
var string: [5]u8 = "hello".*;
const arg_data = wuffs_base__slice_u8{ .ptr = @as([*c]u8, @ptrCast(&string)), .len = string.len };
var arg_meta = wuffs_base__io_buffer_meta{ .wi = 1, .ri = 2, .pos = 3, .closed = true };
wuffs_base__make_io_buffer(arg_data, &arg_meta);
try std.testing.expectEqualStrings("wello", arg_data.ptr[0..arg_data.len]);
try std.testing.expectEqual(@as(usize, 1), arg_meta.wi);
try std.testing.expectEqual(@as(usize, 2), arg_meta.ri);
try std.testing.expectEqual(@as(u64, 3), arg_meta.pos);
try std.testing.expect(!arg_meta.closed);
}
|