Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
697 changes: 349 additions & 348 deletions doc/langref.html.in

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions lib/std/SemanticVersion.zig
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,13 @@ test "SemanticVersion format" {
"+justmeta",
"9.8.7+meta+meta",
"9.8.7-whatever+meta+meta",
}) |invalid| expectError(error.InvalidVersion, parse(invalid));
}) |invalid| try expectError(error.InvalidVersion, parse(invalid));

// Valid version string that may overflow.
const big_valid = "99999999999999999999999.999999999999999999.99999999999999999";
if (parse(big_valid)) |ver| {
try std.testing.expectFmt(big_valid, "{}", .{ver});
} else |err| expect(err == error.Overflow);
} else |err| try expect(err == error.Overflow);

// Invalid version string that may overflow.
const big_invalid = "99999999999999999999999.999999999999999999.99999999999999999----RC-SNAPSHOT.12.09.1--------------------------------..12";
Expand All @@ -264,22 +264,22 @@ test "SemanticVersion format" {

test "SemanticVersion precedence" {
// SemVer 2 spec 11.2 example: 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1.
expect(order(try parse("1.0.0"), try parse("2.0.0")) == .lt);
expect(order(try parse("2.0.0"), try parse("2.1.0")) == .lt);
expect(order(try parse("2.1.0"), try parse("2.1.1")) == .lt);
try expect(order(try parse("1.0.0"), try parse("2.0.0")) == .lt);
try expect(order(try parse("2.0.0"), try parse("2.1.0")) == .lt);
try expect(order(try parse("2.1.0"), try parse("2.1.1")) == .lt);

// SemVer 2 spec 11.3 example: 1.0.0-alpha < 1.0.0.
expect(order(try parse("1.0.0-alpha"), try parse("1.0.0")) == .lt);
try expect(order(try parse("1.0.0-alpha"), try parse("1.0.0")) == .lt);

// SemVer 2 spec 11.4 example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta <
// 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.
expect(order(try parse("1.0.0-alpha"), try parse("1.0.0-alpha.1")) == .lt);
expect(order(try parse("1.0.0-alpha.1"), try parse("1.0.0-alpha.beta")) == .lt);
expect(order(try parse("1.0.0-alpha.beta"), try parse("1.0.0-beta")) == .lt);
expect(order(try parse("1.0.0-beta"), try parse("1.0.0-beta.2")) == .lt);
expect(order(try parse("1.0.0-beta.2"), try parse("1.0.0-beta.11")) == .lt);
expect(order(try parse("1.0.0-beta.11"), try parse("1.0.0-rc.1")) == .lt);
expect(order(try parse("1.0.0-rc.1"), try parse("1.0.0")) == .lt);
try expect(order(try parse("1.0.0-alpha"), try parse("1.0.0-alpha.1")) == .lt);
try expect(order(try parse("1.0.0-alpha.1"), try parse("1.0.0-alpha.beta")) == .lt);
try expect(order(try parse("1.0.0-alpha.beta"), try parse("1.0.0-beta")) == .lt);
try expect(order(try parse("1.0.0-beta"), try parse("1.0.0-beta.2")) == .lt);
try expect(order(try parse("1.0.0-beta.2"), try parse("1.0.0-beta.11")) == .lt);
try expect(order(try parse("1.0.0-beta.11"), try parse("1.0.0-rc.1")) == .lt);
try expect(order(try parse("1.0.0-rc.1"), try parse("1.0.0")) == .lt);
}

test "zig_version" {
Expand Down
16 changes: 8 additions & 8 deletions lib/std/Thread/AutoResetEvent.zig
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ test "basic usage" {
// test local code paths
{
var event = AutoResetEvent{};
testing.expectError(error.TimedOut, event.timedWait(1));
try testing.expectError(error.TimedOut, event.timedWait(1));
event.set();
event.wait();
}
Expand All @@ -192,28 +192,28 @@ test "basic usage" {

const Self = @This();

fn sender(self: *Self) void {
testing.expect(self.value == 0);
fn sender(self: *Self) !void {
try testing.expect(self.value == 0);
self.value = 1;
self.out.set();

self.in.wait();
testing.expect(self.value == 2);
try testing.expect(self.value == 2);
self.value = 3;
self.out.set();

self.in.wait();
testing.expect(self.value == 4);
try testing.expect(self.value == 4);
}

fn receiver(self: *Self) void {
fn receiver(self: *Self) !void {
self.out.wait();
testing.expect(self.value == 1);
try testing.expect(self.value == 1);
self.value = 2;
self.in.set();

self.out.wait();
testing.expect(self.value == 3);
try testing.expect(self.value == 3);
self.value = 4;
self.in.set();
}
Expand Down
4 changes: 2 additions & 2 deletions lib/std/Thread/Mutex.zig
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ test "basic usage" {

if (builtin.single_threaded) {
worker(&context);
testing.expect(context.data == TestContext.incr_count);
try testing.expect(context.data == TestContext.incr_count);
} else {
const thread_count = 10;
var threads: [thread_count]*std.Thread = undefined;
Expand All @@ -304,7 +304,7 @@ test "basic usage" {
for (threads) |t|
t.wait();

testing.expect(context.data == thread_count * TestContext.incr_count);
try testing.expect(context.data == thread_count * TestContext.incr_count);
}
}

Expand Down
20 changes: 10 additions & 10 deletions lib/std/Thread/ResetEvent.zig
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ test "basic usage" {
event.reset();

event.set();
testing.expectEqual(TimedWaitResult.event_set, event.timedWait(1));
try testing.expectEqual(TimedWaitResult.event_set, event.timedWait(1));

// test cross-thread signaling
if (builtin.single_threaded)
Expand Down Expand Up @@ -233,25 +233,25 @@ test "basic usage" {
self.* = undefined;
}

fn sender(self: *Self) void {
fn sender(self: *Self) !void {
// update value and signal input
testing.expect(self.value == 0);
try testing.expect(self.value == 0);
self.value = 1;
self.in.set();

// wait for receiver to update value and signal output
self.out.wait();
testing.expect(self.value == 2);
try testing.expect(self.value == 2);

// update value and signal final input
self.value = 3;
self.in.set();
}

fn receiver(self: *Self) void {
fn receiver(self: *Self) !void {
// wait for sender to update value and signal input
self.in.wait();
assert(self.value == 1);
try testing.expect(self.value == 1);

// update value and signal output
self.in.reset();
Expand All @@ -260,7 +260,7 @@ test "basic usage" {

// wait for sender to update value and signal final input
self.in.wait();
assert(self.value == 3);
try testing.expect(self.value == 3);
}

fn sleeper(self: *Self) void {
Expand All @@ -272,9 +272,9 @@ test "basic usage" {

fn timedWaiter(self: *Self) !void {
self.in.wait();
testing.expectEqual(TimedWaitResult.timed_out, self.out.timedWait(time.ns_per_us));
try testing.expectEqual(TimedWaitResult.timed_out, self.out.timedWait(time.ns_per_us));
try self.out.timedWait(time.ns_per_ms * 100);
testing.expect(self.value == 5);
try testing.expect(self.value == 5);
}
};

Expand All @@ -283,7 +283,7 @@ test "basic usage" {
defer context.deinit();
const receiver = try std.Thread.spawn(Context.receiver, &context);
defer receiver.wait();
context.sender();
try context.sender();

if (false) {
// I have now observed this fail on macOS, Windows, and Linux.
Expand Down
20 changes: 10 additions & 10 deletions lib/std/Thread/StaticResetEvent.zig
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ test "basic usage" {
event.reset();

event.set();
testing.expectEqual(TimedWaitResult.event_set, event.timedWait(1));
try testing.expectEqual(TimedWaitResult.event_set, event.timedWait(1));

// test cross-thread signaling
if (std.builtin.single_threaded)
Expand All @@ -333,25 +333,25 @@ test "basic usage" {
in: StaticResetEvent = .{},
out: StaticResetEvent = .{},

fn sender(self: *Self) void {
fn sender(self: *Self) !void {
// update value and signal input
testing.expect(self.value == 0);
try testing.expect(self.value == 0);
self.value = 1;
self.in.set();

// wait for receiver to update value and signal output
self.out.wait();
testing.expect(self.value == 2);
try testing.expect(self.value == 2);

// update value and signal final input
self.value = 3;
self.in.set();
}

fn receiver(self: *Self) void {
fn receiver(self: *Self) !void {
// wait for sender to update value and signal input
self.in.wait();
assert(self.value == 1);
try testing.expect(self.value == 1);

// update value and signal output
self.in.reset();
Expand All @@ -360,7 +360,7 @@ test "basic usage" {

// wait for sender to update value and signal final input
self.in.wait();
assert(self.value == 3);
try testing.expect(self.value == 3);
}

fn sleeper(self: *Self) void {
Expand All @@ -372,16 +372,16 @@ test "basic usage" {

fn timedWaiter(self: *Self) !void {
self.in.wait();
testing.expectEqual(TimedWaitResult.timed_out, self.out.timedWait(time.ns_per_us));
try testing.expectEqual(TimedWaitResult.timed_out, self.out.timedWait(time.ns_per_us));
try self.out.timedWait(time.ns_per_ms * 100);
testing.expect(self.value == 5);
try testing.expect(self.value == 5);
}
};

var context = Context{};
const receiver = try std.Thread.spawn(Context.receiver, &context);
defer receiver.wait();
context.sender();
try context.sender();

if (false) {
// I have now observed this fail on macOS, Windows, and Linux.
Expand Down
Loading