Commit Graph
65 Commits
Author SHA1 Message Date
Nils Andreas Svee a715842e38 test(client): add integration tests for compatibility with real IRTT backends
Introduce a mechanism to run tests against a live irtt binary to verify real-world protocol interoperability, including HMAC authentication and various timestamp modes.
2026-05-04 00:05:35 +07:00
Nils Andreas Svee 56b560418c test(client): add comprehensive integration tests for HMAC authentication
Verify HMAC negotiation, session closure, and error handling for authenticated probes to ensure protocol security and reliability.
2026-05-03 23:06:26 +07:00
Nils Andreas Svee 86f16b8656 test(client): split client tests into behavior-focused modules 2026-05-03 22:54:08 +07:00
Nils Andreas Svee 746ea3805b refactor(client): move internal client tests to a dedicated sub-module 2026-05-03 22:25:35 +07:00
Nils Andreas Svee bf5b3b2f55 refactor(cli): rename m8 compatibility terms to advanced protocol options 2026-05-03 22:25:35 +07:00
Nils Andreas Svee 49dbb0b536 test: verify RTT equality when no timestamping is present 2026-05-03 21:30:23 +07:00
Nils Andreas Svee dff201de89 refactor(test): extract RTT processing verification to helper function 2026-05-03 21:30:23 +07:00
Nils Andreas Svee c506d5a7f7 test: update mock timestamp simulation in test support 2026-05-03 21:30:23 +07:00
Nils Andreas Svee 7440e7d217 test(client): add integration tests for m8 compatibility 2026-05-03 21:26:55 +07:00
Nils Andreas Svee 8c9afce30f feat(client): implement protocol configuration validation 2026-05-03 16:12:10 +07:00
Nils Andreas Svee 474aefb723 feat(client): define constants and validation for DSCP and server fill 2026-05-03 16:12:10 +07:00
Nils Andreas Svee c2138fe356 test(client): validate parameter mapping from configuration 2026-05-03 15:34:04 +07:00
Nils Andreas Svee 7b3deb1f3c refactor(client): modularize duration restriction validation 2026-05-03 15:34:04 +07:00
Nils Andreas Svee 36c36f3872 feat(cli): add support for continuous mode with zero duration 2026-05-02 00:01:31 +07:00
Nils Andreas Svee 851d143f86 refactor(client): improve session initialization and state access 2026-05-02 00:01:31 +07:00
Nils Andreas Svee 64e7117a12 feat(client): drain late replies before closing session 2026-05-01 18:24:54 +07:00
Nils Andreas Svee a73a4ff341 fix(client): prune insertion order in TimedOutMap on removal 2026-05-01 18:24:54 +07:00
Nils Andreas Svee cf519bd630 feat(client): emit EchoSent event with scheduling metadata 2026-05-01 10:05:52 +07:00
Nils Andreas Svee bcbc0ec164 feat(client): track and handle late replies after timeout 2026-05-01 10:05:52 +07:00
Nils Andreas Svee e2be6cadac feat(client): implement SignedDuration for precise RTT tracking 2026-05-01 10:05:52 +07:00
Nils Andreas Svee 18f15f16d5 feat(client): record and report packet size in client events 2026-05-01 10:05:43 +07:00
Nils Andreas Svee 63f01f65bf refactor(managed): ensure event hub disconnection on all exit paths
Wrap the client execution in a cleanup handler to guarantee that event hub subscriptions are disconnected regardless of whether the session completes successfully or returns an error.
2026-04-29 10:36:16 +07:00
Nils Andreas Svee ddb2fff7c8 test(managed): improve test reliability and coverage 2026-04-29 01:14:36 +07:00
Nils Andreas Svee bb7ba20906 feat(managed): implement automatic cancellation on session drop 2026-04-29 01:14:36 +07:00
Nils Andreas Svee a925dc61f0 feat(managed): automatically unregister dropped event subscriptions 2026-04-29 01:14:36 +07:00
Nils Andreas Svee e04caaca8d refactor(managed): rename malformed events to warning_events 2026-04-29 01:14:36 +07:00
Nils Andreas Svee 4cd6da01b6 feat(managed): export managed client modules 2026-04-28 23:34:34 +07:00
Nils Andreas Svee 1f6ce97c3a feat(managed): implement managed client runner 2026-04-28 23:34:34 +07:00
Nils Andreas Svee 2f3d3ed87d feat(managed): implement event hub for pub/sub communication 2026-04-28 23:34:34 +07:00
Nils Andreas Svee b83674880c feat(managed): implement thread-safe cancellation token 2026-04-28 23:34:34 +07:00
Nils Andreas Svee 90e7239157 feat(error): introduce worker panic and subscription disconnection errors 2026-04-28 23:34:34 +07:00
Nils Andreas Svee 2f3d92ad2b feat(client): add run status and packet count helpers 2026-04-28 23:34:34 +07:00
Nils Andreas Svee bef98b5d58 test(client): add regression tests for packet processing and RTT 2026-04-28 22:45:03 +07:00
Nils Andreas Svee 2dd57720d7 refactor(probe): improve CompletedSet eviction logic using insertion order 2026-04-28 22:45:03 +07:00
Nils Andreas Svee a51274d6b6 fix(client): handle negative RTT and simplify sample generation 2026-04-28 22:45:03 +07:00
Nils Andreas Svee 8ae849b2db feat(client): add specific warning kinds for dropped packets 2026-04-28 22:45:03 +07:00
Nils Andreas Svee 899506dc64 refactor(client): capture send timestamp before socket call
Record the send timestamp immediately before the socket operation to include local enqueue overhead in RTT measurements, providing more conservative latency data for consumers.
2026-04-28 22:38:08 +07:00
Nils Andreas Svee 6782f7b741 refactor(client): unify production and test timing logic
Extract internal methods that accept an optional timestamp to eliminate code duplication between primary client logic and test helpers.
2026-04-28 22:07:09 +07:00
Nils Andreas Svee c4001407d5 test(client): add regression tests for edge cases and correctness 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 8032836661 fix(client): allow partial one-way delay samples 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 3534a59fce fix(client): improve probe tracking and reply handling 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 2380d76da3 refactor(client): dynamic receive buffer sizing based on negotiated parameters 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 2f5d5744ea feat(client): add configuration validation and new error types 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 443040c175 refactor(client): use internal clock for timestamps and simplify probe signatures 2026-04-28 21:55:49 +07:00
Nils Andreas Svee 001a4a7cd7 test(client): add comprehensive tests for Milestone 3 probing functionality 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 974fa65626 feat(client): implement core echo probe sending and receiving logic 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 99fbbb9c32 feat(client): define new event types and error variants for echo probes 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 0fbf775400 feat(client): add configuration options for probe timing and budgets 2026-04-28 18:23:35 +07:00
Nils Andreas Svee 0edb3fe223 feat(client): implement PendingMap and CompletedSet for probe tracking 2026-04-28 18:23:35 +07:00
Nils Andreas Svee b71b6c1938 refactor(client): rename ClientState to ClientPhase and introduce ActiveSession 2026-04-28 18:23:35 +07:00