lib/quic/src/sim/stats.zig

daab053ee43316e1809a84551d573ddd1e5bf3d2

 1 const std = @import("std");
 2 
 3 /// The counters one direction of a simulated link keeps. A test reads one after a run to check how
 4 /// many datagrams the link dropped, duplicated, or reordered. It counts datagrams the caller sent,
 5 /// datagrams delivered, datagrams lost, extra copies made, copies whose delivery time was swapped,
 6 /// sends refused for a full queue, and sends refused for exceeding the MTU. Every counter starts at
 7 /// zero.
 8 pub const Stats = struct {
 9     sent: u64 = 0,
10     delivered: u64 = 0,
11     lost: u64 = 0,
12     duplicated: u64 = 0,
13     reordered: u64 = 0,
14     queue_full: u64 = 0,
15     oversize: u64 = 0,
16 };
17 
18 test "directional statistics start at zero" {
19     const stats = Stats{};
20     try std.testing.expectEqual(@as(u64, 0), stats.sent);
21     try std.testing.expectEqual(@as(u64, 0), stats.delivered);
22     try std.testing.expectEqual(@as(u64, 0), stats.lost);
23     try std.testing.expectEqual(@as(u64, 0), stats.duplicated);
24     try std.testing.expectEqual(@as(u64, 0), stats.reordered);
25     try std.testing.expectEqual(@as(u64, 0), stats.queue_full);
26     try std.testing.expectEqual(@as(u64, 0), stats.oversize);
27 }