Repository navigation
test(uds): clock functional confirmation deadlines - #479
Conversation
PR SummaryLow Risk Overview
Reviewed by Cursor Bugbot for commit 1fcbfc5. Bugbot is set up for automated code reviews on this repo. Configure here. |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
What does this change?
Refs #362. UdsFunctionalClientTests now drive CAN confirmation deadlines on their WindowClock as well as P2, P2* and collection windows. The main OpenOnClock factory and both direct service constructions use the real RawCan service through ClockedCanBusService; the existing 500 ms N_As and explicit per-test budgets remain unchanged, as does matching-echo confirmation.
ClockedCanBusService can borrow a clock-owned timer actor. WindowClock supplies a separate confirmation actor so a shorter N_As timer cannot shadow the protocol actor's earliest P2/collection timer. Disposing the service cancels its sends and removes its deadline handles, while the external clock retains its actor. The existing ManualTimeSource constructor continues to own its actor.
Three new tests verify functional N_As at exactly 500 ms of virtual time with a positively armed P2 window, separation of a 500 ms confirmation from a one-second protocol timer, and reuse of the clock-owned actor after service disposal. Three restored source mutations fail at runtime: restoring the old real-time factory binding, disposing the borrowed actor, and using the protocol actor for confirmations.
Only test infrastructure and tests change. The ordinary UdsClient ClockPair uses a synchronous, non-echo virtual adapter and has no active RawCan confirmation timer; it is unchanged. #362 remains open for the final bounded-hold work and inventory audit.
Type of change
feat— new behaviour (minor release)fix/perf— bug or performance fix (patch release)docs/test/refactor/chore/ci— no releaseChecklist
Validation: 3,043 net10 tests, net48 compilation, nine verified packages, 50 engineering tests and requirements traceability; 257 focused UDS/helper cases. Production diff is empty; final CI coverage, Codecov partials/missing and all review comments will be checked before merge.