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 }