Repository navigation
Raise testem's disconnect timeout; trim DEFECTS.md to what is open - #166
Merged
Merged
Conversation
… still open TWO THINGS. 1. The first full run after #164 and #165 merged exited 1 — with all 5196 tests passing and coverage written: not ok 5197 Chrome - error Error: Browser timeout exceeded: 10s This is a regression from #16's own fix. Testem.afterTests makes testem WAIT for the coverage POST, which is the whole point of it, but testem's browser_disconnect_timeout defaults to 10s and the payload is several megabytes once forceModulesToBeLoaded() has run. The verification run at 5130 tests was clean; #164's added code pushed the upload past the threshold. It would have failed CI on every run, with a message naming neither coverage nor the upload. browser_disconnect_timeout: 120, alongside the existing browser_start_timeout. The timeout is there to catch a hung browser; waiting on a deliberate, bounded upload is not that. 2. DEFECTS.md: 746 lines -> 140. Seventeen of nineteen entries were fixed and have been removed, along with the appendix mapping a numbering scheme nothing uses any more and the kickoff brief for #15, which #164 has now implemented. The full file is preserved at c9bc486 and linked from the header, so anything citing an old defect number still resolves. Verified the link returns the file (50,371 bytes) rather than trusting the path — the first version of it pointed at the monorepo path and 404'd, since the remote is the standalone repo. What is left is a worklist rather than a changelog: one open entry (#18, the +/-1 branch wobble), the settled list that stops fixed-by-design behaviour being "fixed" again, and the reference material that is still forward-looking. Added in place of the removed #16/#19 entries: a short section on the trade coverage collection is balanced on, because those two were the same problem pulling in opposite directions. Post from QUnit.done and nothing waits, so the upload truncates silently. Post from Testem.afterTests and testem waits, so its disconnect timeout has to outlast the upload. The payload size is the real variable, and forceModulesToBeLoaded(filterFunction) is the lever nobody has pulled yet — we currently transmit coverage for workspace siblings that check-coverage.js then discards.
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.
Two things: a CI-breaking regression from my own earlier fix, and the DEFECTS.md cleanup.
1. The run exits 1 even though every test passes
The first full run after #164 and #165 merged:
All 5196 real tests passed and the coverage report was written. The run failed anyway.
This is a regression from #165's fix.
Testem.afterTestsmakes testem wait for the coverage POST — that is the entire point of it, and it is what stopped the uploads being truncated. But testem'sbrowser_disconnect_timeoutdefaults to 10 seconds, and the payload is several megabytes onceforceModulesToBeLoaded()has run. My verification run at 5130 tests was under the threshold; #164's added code pushed it over.It would have failed CI on every run, with a message that names neither coverage nor the upload.
Fix:
browser_disconnect_timeout: 120intestem.js, alongside the existingbrowser_start_timeout: 120. That timeout exists to catch a hung browser; waiting on a deliberate, bounded upload is not that.2. DEFECTS.md: 746 lines → 140
Seventeen of nineteen entries were fixed, and fixed entries are noise in a worklist. Removed, along with the appendix mapping an old numbering scheme nothing uses any more and the kickoff brief for #15 — which #164 has now implemented.
The full file is preserved at
c9bc486and linked from the header, so anything in the repo citing an old defect number still resolves. I verified the link actually returns the file rather than trusting the path — the first version pointed at the monorepo path and 404'd, since the remote is the standalone repo.What is left:
One thing added rather than removed
A short section on the trade coverage collection is balanced on, because the two entries it replaces were the same problem pulling in opposite directions:
QUnit.done→ nothing waits → the upload truncates and no report is written, silently (upstream #420).Testem.afterTests→ testem waits → its disconnect timeout must outlast the upload, or you get this PR's failure.The payload size is the real variable, and
forceModulesToBeLoaded(filterFunction)is the lever nobody has pulled: we currently force-load and transmit coverage for workspace siblings like@fleetbase/ember-corethatscripts/check-coverage.jsthen discards.Verification
Full run before this change: 5196 pass, 1 error, exit 1. A confirming run with the timeout raised is in progress and I will post its result here.