mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
add std.testing.io
This commit is contained in:
parent
b70f12fc40
commit
8bcc91c15e
3 changed files with 27 additions and 14 deletions
|
|
@ -120,6 +120,7 @@ fn mainServer() !void {
|
|||
|
||||
.run_test => {
|
||||
testing.allocator_instance = .{};
|
||||
testing.io_instance = .init(fba.allocator());
|
||||
log_err_count = 0;
|
||||
const index = try server.receiveBody_u32();
|
||||
const test_fn = builtin.test_functions[index];
|
||||
|
|
@ -135,6 +136,8 @@ fn mainServer() !void {
|
|||
}
|
||||
},
|
||||
};
|
||||
testing.io_instance.deinit();
|
||||
fba.reset();
|
||||
const leak = testing.allocator_instance.deinit() == .leak;
|
||||
try server.serveTestResults(.{
|
||||
.index = index,
|
||||
|
|
@ -194,18 +197,14 @@ fn mainTerminal() void {
|
|||
});
|
||||
const have_tty = std.fs.File.stderr().isTty();
|
||||
|
||||
var async_frame_buffer: []align(builtin.target.stackAlignment()) u8 = undefined;
|
||||
// TODO this is on the next line (using `undefined` above) because otherwise zig incorrectly
|
||||
// ignores the alignment of the slice.
|
||||
async_frame_buffer = &[_]u8{};
|
||||
|
||||
var leaks: usize = 0;
|
||||
for (test_fn_list, 0..) |test_fn, i| {
|
||||
testing.allocator_instance = .{};
|
||||
testing.io_instance = .init(fba.allocator());
|
||||
defer {
|
||||
if (testing.allocator_instance.deinit() == .leak) {
|
||||
leaks += 1;
|
||||
}
|
||||
if (testing.allocator_instance.deinit() == .leak) leaks += 1;
|
||||
testing.io_instance.deinit();
|
||||
fba.reset();
|
||||
}
|
||||
testing.log_level = .warn;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
const std = @import("std");
|
||||
const io = std.io;
|
||||
const Io = std.Io;
|
||||
const DefaultPrng = std.Random.DefaultPrng;
|
||||
const expect = std.testing.expect;
|
||||
const expectEqual = std.testing.expectEqual;
|
||||
|
|
@ -24,7 +24,7 @@ test "write a file, read it, then delete it" {
|
|||
var file = try tmp.dir.createFile(tmp_file_name, .{});
|
||||
defer file.close();
|
||||
|
||||
var buf_stream = io.bufferedWriter(file.deprecatedWriter());
|
||||
var buf_stream = Io.bufferedWriter(file.deprecatedWriter());
|
||||
const st = buf_stream.writer();
|
||||
try st.print("begin", .{});
|
||||
try st.writeAll(data[0..]);
|
||||
|
|
@ -45,7 +45,7 @@ test "write a file, read it, then delete it" {
|
|||
const expected_file_size: u64 = "begin".len + data.len + "end".len;
|
||||
try expectEqual(expected_file_size, file_size);
|
||||
|
||||
var buf_stream = io.bufferedReader(file.deprecatedReader());
|
||||
var buf_stream = Io.bufferedReader(file.deprecatedReader());
|
||||
const st = buf_stream.reader();
|
||||
const contents = try st.readAllAlloc(std.testing.allocator, 2 * 1024);
|
||||
defer std.testing.allocator.free(contents);
|
||||
|
|
@ -66,7 +66,7 @@ test "BitStreams with File Stream" {
|
|||
var file = try tmp.dir.createFile(tmp_file_name, .{});
|
||||
defer file.close();
|
||||
|
||||
var bit_stream = io.bitWriter(native_endian, file.deprecatedWriter());
|
||||
var bit_stream = Io.bitWriter(native_endian, file.deprecatedWriter());
|
||||
|
||||
try bit_stream.writeBits(@as(u2, 1), 1);
|
||||
try bit_stream.writeBits(@as(u5, 2), 2);
|
||||
|
|
@ -80,7 +80,7 @@ test "BitStreams with File Stream" {
|
|||
var file = try tmp.dir.openFile(tmp_file_name, .{});
|
||||
defer file.close();
|
||||
|
||||
var bit_stream = io.bitReader(native_endian, file.deprecatedReader());
|
||||
var bit_stream = Io.bitReader(native_endian, file.deprecatedReader());
|
||||
|
||||
var out_bits: u16 = undefined;
|
||||
|
||||
|
|
@ -170,7 +170,7 @@ test "updateTimes" {
|
|||
|
||||
test "GenericReader methods can return error.EndOfStream" {
|
||||
// https://github.com/ziglang/zig/issues/17733
|
||||
var fbs = std.io.fixedBufferStream("");
|
||||
var fbs = std.Io.fixedBufferStream("");
|
||||
try std.testing.expectError(
|
||||
error.EndOfStream,
|
||||
fbs.reader().readEnum(enum(u8) { a, b }, .little),
|
||||
|
|
@ -180,3 +180,14 @@ test "GenericReader methods can return error.EndOfStream" {
|
|||
fbs.reader().isBytes("foo"),
|
||||
);
|
||||
}
|
||||
|
||||
test "Io instance provided by unit tester async/await" {
|
||||
const io = std.testing.io;
|
||||
var future1 = io.async(silly, .{1});
|
||||
var future2 = io.async(silly, .{2});
|
||||
try std.testing.expectEqual(3, future1.await(io) + future2.await(io));
|
||||
}
|
||||
|
||||
fn silly(n: usize) usize {
|
||||
return n;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,9 @@ pub var allocator_instance: std.heap.GeneralPurposeAllocator(.{
|
|||
break :b .init;
|
||||
};
|
||||
|
||||
pub var io_instance: std.Io.ThreadPool = undefined;
|
||||
pub const io = io_instance.io();
|
||||
|
||||
/// TODO https://github.com/ziglang/zig/issues/5738
|
||||
pub var log_level = std.log.Level.warn;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue