Repository navigation
Test the request timeout, undeliverable base URLs and a non-ASCII application - #30
Merged
Merged
Conversation
…lication Characterization tests for delivery paths the suite did not reach. The 5 s request timeout was only exercised through Close cancelling, so dropping it from the HttpClient would have passed. No production code changes. Also pins a lone surrogate, a repeated tag key, the state left by Close, and that a blank name logs nothing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
|
Self-review rubric (plain comment; not an independent review):
Findings noted, not changed:
Do-not-auto-merge check: Local anchor: UNVERIFIED (no .NET SDK in the dispatch sandbox), so CI on the exact head SHA was used as the gate. This comment was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener). drafted by Claude on behalf of Daniel Stephenson |
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stage B unit-test expansion. Only
tests/TraceClient.Tests/TraceClientTest.cschanges; no production code is touched. Six tests are added and one is tightened, all around delivery paths that were not reached before.Report_GivesUpOnAHangingRequestAtTheTimeoutAndSendsTheNextReportcovers the README's "Each request has a 5 s timeout". Until now the hanging-server tests only reachedClosecancelling the request, so removingTimeout = Timeoutfrom theHttpClientwould have gone unnoticed. The test matches trace-client-python's Test that a server which never answers costs one report, not the sender trace-client-python#29. It adds about 5 s to the suite.ftp://127.0.0.1andlocalhost:8080(wherelocalhostis taken for the scheme) get past the constructor and give an enabled client whose every report is a logged drop.#if NETFRAMEWORK, so a runtime change or the eventual Non-ASCII application name drops every report on .NET 5+ (User-Agent header) #12 decision shows up as a test change.tagsis a sequence of pairs, so a list can repeat a key. Each pair is written and counted. See the finding below.CloseleavesDisabledReasonandInstallIdas they were; onlyIsEnabledchanges.Report_IgnoresABlankNamenow also asserts that nothing is logged, a gap noted in the PR Document silent drops and where the log callback runs #29 self-review.No tracking issue: the gaps were found during triage.
Finding
Jsonwrites a repeated tag key twice, e.g.{"k":"first","k":"second"}. The test pins this as current behaviour. It is filed as #31, because any change would alter the wire format.Test plan
Buildworkflow green on ubuntu-latest (net8.0): 109 tests against 102 on main, run 42154024472Buildworkflow green on windows-latest (net8.0 + net48): 109 tests on each against 102 on main, same runThe local anchor is UNVERIFIED: no .NET SDK is installed in the dispatch sandbox, so the CI matrix on the head SHA is the gate. These are characterization tests, so this PR makes no fix claim and needs no FAIL→PASS evidence. Their sensitivity to mutation has not been measured.
The Unity (Mono/IL2CPP) runtime is not covered by CI. The
#ifbranches cover .NET 8 and .NET Framework 4.8 only, and Unity behaviour with a non-ASCIIUser-Agentremains untested.Deferred
User-Agent) was not picked. It changes the wire-format contract shared with the Java and Python clients, so a maintainer has to decide it.This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).
🤖 Generated with Claude Code
drafted by Claude on behalf of Daniel Stephenson