mirror of
https://github.com/ziglang/zig.git
synced 2025-12-06 06:13:07 +00:00
std.Io.Threaded: handle -fsingle-threaded in unit tests
This commit is contained in:
parent
1c0a8b8fe4
commit
b863f2548b
@ -1,3 +1,5 @@
|
||||
const builtin = @import("builtin");
|
||||
|
||||
const std = @import("std");
|
||||
const Io = std.Io;
|
||||
const testing = std.testing;
|
||||
@ -12,7 +14,12 @@ test "concurrent vs main prevents deadlock via oversubscription" {
|
||||
|
||||
var queue: Io.Queue(u8) = .init(&.{});
|
||||
|
||||
var putter = try io.concurrent(put, .{ io, &queue });
|
||||
var putter = io.concurrent(put, .{ io, &queue }) catch |err| switch (err) {
|
||||
error.ConcurrencyUnavailable => {
|
||||
try testing.expect(builtin.single_threaded);
|
||||
return;
|
||||
},
|
||||
};
|
||||
defer putter.cancel(io);
|
||||
|
||||
try testing.expectEqual(42, queue.getOneUncancelable(io));
|
||||
@ -35,7 +42,12 @@ test "concurrent vs concurrent prevents deadlock via oversubscription" {
|
||||
|
||||
var queue: Io.Queue(u8) = .init(&.{});
|
||||
|
||||
var putter = try io.concurrent(put, .{ io, &queue });
|
||||
var putter = io.concurrent(put, .{ io, &queue }) catch |err| switch (err) {
|
||||
error.ConcurrencyUnavailable => {
|
||||
try testing.expect(builtin.single_threaded);
|
||||
return;
|
||||
},
|
||||
};
|
||||
defer putter.cancel(io);
|
||||
|
||||
var getter = try io.concurrent(get, .{ io, &queue });
|
||||
|
||||
@ -177,7 +177,12 @@ test "select" {
|
||||
|
||||
var queue: Io.Queue(u8) = .init(&.{});
|
||||
|
||||
var get_a = try io.concurrent(Io.Queue(u8).getOne, .{ &queue, io });
|
||||
var get_a = io.concurrent(Io.Queue(u8).getOne, .{ &queue, io }) catch |err| switch (err) {
|
||||
error.ConcurrencyUnavailable => {
|
||||
try testing.expect(builtin.single_threaded);
|
||||
return;
|
||||
},
|
||||
};
|
||||
defer if (get_a.cancel(io)) |_| @panic("fail") else |err| assert(err == error.Canceled);
|
||||
|
||||
var get_b = try io.concurrent(Io.Queue(u8).getOne, .{ &queue, io });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user