Commit 1987187
authored
fix(cli): give wheels test its own timeout budget instead of the bridge default (#3359)
`wheels test` failed with `Read timed out` and NO result document on a suite of roughly 500
specs taking about 2.5 minutes — not a failure report, a crashed runner. Indistinguishable
from a hung app to anyone who has not seen it before, and it scales IN: a suite works, then
silently stops working as it grows.
The cause is one line. `makeHttpRequestWithStatus()` hardcodes `conn.setReadTimeout(120000)`
for every caller, which matches the reported ~140s threshold. That budget is correct for the
short request/response bridge commands, but a test run is the one command here whose duration
is expected to scale with the project, so it now gets its own.
- `--timeout=<seconds>`, else WHEELS_TEST_TIMEOUT, else 900.
- Non-numeric or non-positive input falls back to the default rather than throwing: a
mistyped timeout should not be the thing that stops a test run.
- The browser-test runner at the second call site makes the same long-running request over
the same helper, so it gets the same budget. Fixing only one would have left the identical
bug in a sibling.
- On a timeout the message now says which side gave up, that the specs may well have passed,
and how to give it longer or scope the run. The old output was the raw engine message.
The shared helper keeps its 120s default, so no other command's behaviour changes.
Two harness defects in the same family, both of which bit me while verifying tonight's other
PRs, and both matching this issue's theme of a runner that reports something other than what
happened:
- tools/test-local.sh wrote results to a single fixed /tmp path shared by every checkout on
the machine. Two working copies running the suite overwrite each other — which silently
turned my first develop-vs-branch comparison into two copies of the same run, with
identical totals that looked like a legitimate no-op result. Now keyed on the project root,
overridable with WHEELS_TEST_RESULT_FILE.
- When the request failed outright (HTTP 000, typically a server not yet up) the previous
run's results were left in place and even printed. I read one of those as a current result
before noticing the numbers were implausible. The file is now cleared before the request,
so a crashed run leaves no result rather than a stale one.
3 specs on $resolveTestTimeout covering the default, an explicit value, and the junk-input
fallback.
Verification, CLI suite via /wheels/cli/tests:
develop ab901cf 1143 pass / 0 fail / 0 error / 1203 specs
this branch 1146 pass / 0 fail / 0 error / 1206 specs
Exactly +3, the new specs. Core suite unaffected and unchanged at 4732.
Note: tools/test-cli-local.sh could not be used — it invokes a `lucli` binary that does not
exist on a normal install (cli/CLAUDE.md: `wheels` IS the binary). Both runs above went
through the /wheels/cli/tests endpoint against a server started with `wheels server run`.
Closes #3352
Signed-off-by: Peter Amiri <peter@alurium.com>1 parent 4db616f commit 1987187
4 files changed
Lines changed: 108 additions & 11 deletions
File tree
- changelog.d
- cli/lucli
- tests/specs/commands
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
| 279 | + | |
279 | 280 | | |
280 | 281 | | |
281 | 282 | | |
| |||
738 | 739 | | |
739 | 740 | | |
740 | 741 | | |
741 | | - | |
| 742 | + | |
| 743 | + | |
742 | 744 | | |
743 | 745 | | |
744 | 746 | | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
| 770 | + | |
| 771 | + | |
| 772 | + | |
| 773 | + | |
| 774 | + | |
| 775 | + | |
| 776 | + | |
| 777 | + | |
| 778 | + | |
| 779 | + | |
| 780 | + | |
| 781 | + | |
745 | 782 | | |
746 | 783 | | |
747 | 784 | | |
| |||
757 | 794 | | |
758 | 795 | | |
759 | 796 | | |
| 797 | + | |
760 | 798 | | |
761 | 799 | | |
762 | 800 | | |
| |||
775 | 813 | | |
776 | 814 | | |
777 | 815 | | |
778 | | - | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
779 | 820 | | |
780 | 821 | | |
781 | 822 | | |
| |||
5709 | 5750 | | |
5710 | 5751 | | |
5711 | 5752 | | |
5712 | | - | |
| 5753 | + | |
| 5754 | + | |
5713 | 5755 | | |
5714 | 5756 | | |
5715 | 5757 | | |
| |||
5778 | 5820 | | |
5779 | 5821 | | |
5780 | 5822 | | |
5781 | | - | |
| 5823 | + | |
5782 | 5824 | | |
5783 | 5825 | | |
5784 | 5826 | | |
| |||
5821 | 5863 | | |
5822 | 5864 | | |
5823 | 5865 | | |
5824 | | - | |
| 5866 | + | |
| 5867 | + | |
| 5868 | + | |
| 5869 | + | |
| 5870 | + | |
| 5871 | + | |
| 5872 | + | |
| 5873 | + | |
| 5874 | + | |
| 5875 | + | |
| 5876 | + | |
| 5877 | + | |
5825 | 5878 | | |
5826 | 5879 | | |
5827 | 5880 | | |
| |||
7584 | 7637 | | |
7585 | 7638 | | |
7586 | 7639 | | |
7587 | | - | |
7588 | | - | |
| 7640 | + | |
| 7641 | + | |
| 7642 | + | |
| 7643 | + | |
| 7644 | + | |
| 7645 | + | |
| 7646 | + | |
7589 | 7647 | | |
7590 | 7648 | | |
7591 | 7649 | | |
| |||
7601 | 7659 | | |
7602 | 7660 | | |
7603 | 7661 | | |
7604 | | - | |
| 7662 | + | |
| 7663 | + | |
7605 | 7664 | | |
7606 | 7665 | | |
7607 | 7666 | | |
7608 | 7667 | | |
7609 | 7668 | | |
7610 | 7669 | | |
7611 | | - | |
| 7670 | + | |
7612 | 7671 | | |
7613 | 7672 | | |
7614 | 7673 | | |
| |||
8023 | 8082 | | |
8024 | 8083 | | |
8025 | 8084 | | |
8026 | | - | |
| 8085 | + | |
| 8086 | + | |
8027 | 8087 | | |
8028 | 8088 | | |
8029 | 8089 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
113 | 140 | | |
114 | 141 | | |
115 | 142 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
35 | | - | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
36 | 40 | | |
37 | 41 | | |
38 | 42 | | |
| |||
129 | 133 | | |
130 | 134 | | |
131 | 135 | | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
132 | 140 | | |
133 | 141 | | |
134 | 142 | | |
| |||
0 commit comments