js-on-sx: runner fix, 8-test smoke 3/7 (was 0/8)
Agent committed before monitor-exit. Full tree still TODO. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -803,6 +803,8 @@ def main(argv: list[str]) -> int:
|
||||
ap.add_argument("--per-test-timeout", type=float, default=DEFAULT_PER_TEST_TIMEOUT_S)
|
||||
ap.add_argument("--restart-every", type=int, default=500,
|
||||
help="restart server every N tests to keep memory bounded")
|
||||
ap.add_argument("--max-per-category", type=int, default=0,
|
||||
help="cap runnable tests per category (0 = no cap)")
|
||||
ap.add_argument("--output-json", type=str,
|
||||
default=str(REPO / "lib" / "js" / "test262-scoreboard.json"))
|
||||
ap.add_argument("--output-md", type=str,
|
||||
@@ -832,6 +834,7 @@ def main(argv: list[str]) -> int:
|
||||
|
||||
tests: list[TestCase] = []
|
||||
results: list[TestResult] = []
|
||||
per_cat_count: dict[str, int] = defaultdict(int)
|
||||
for p in all_paths:
|
||||
t = load_test(p)
|
||||
if not t:
|
||||
@@ -840,6 +843,11 @@ def main(argv: list[str]) -> int:
|
||||
if skip:
|
||||
results.append(TestResult(rel=t.rel, category=t.category, status="skip", reason=why))
|
||||
continue
|
||||
if args.max_per_category > 0 and per_cat_count[t.category] >= args.max_per_category:
|
||||
results.append(TestResult(rel=t.rel, category=t.category, status="skip",
|
||||
reason=f"capped at --max-per-category={args.max_per_category}"))
|
||||
continue
|
||||
per_cat_count[t.category] += 1
|
||||
tests.append(t)
|
||||
|
||||
print(f"Will run {len(tests)} tests ({len(results)} skipped up front).", file=sys.stderr)
|
||||
|
||||
@@ -1,76 +1,44 @@
|
||||
{
|
||||
"totals": {
|
||||
"pass": 56,
|
||||
"fail": 230,
|
||||
"skip": 39,
|
||||
"timeout": 2,
|
||||
"total": 327,
|
||||
"runnable": 288,
|
||||
"pass_rate": 19.4
|
||||
"pass": 3,
|
||||
"fail": 4,
|
||||
"skip": 1,
|
||||
"timeout": 0,
|
||||
"total": 8,
|
||||
"runnable": 7,
|
||||
"pass_rate": 42.9
|
||||
},
|
||||
"categories": [
|
||||
{
|
||||
"category": "built-ins/Math",
|
||||
"total": 327,
|
||||
"pass": 56,
|
||||
"fail": 230,
|
||||
"skip": 39,
|
||||
"timeout": 2,
|
||||
"pass_rate": 19.4,
|
||||
"total": 8,
|
||||
"pass": 3,
|
||||
"fail": 4,
|
||||
"skip": 1,
|
||||
"timeout": 0,
|
||||
"pass_rate": 42.9,
|
||||
"top_failures": [
|
||||
[
|
||||
"Test262Error (assertion failed)",
|
||||
83
|
||||
],
|
||||
[
|
||||
"ReferenceError (undefined symbol)",
|
||||
62
|
||||
2
|
||||
],
|
||||
[
|
||||
"TypeError: not a function",
|
||||
46
|
||||
],
|
||||
[
|
||||
"SyntaxError (parse/unsupported syntax)",
|
||||
35
|
||||
],
|
||||
[
|
||||
"Unhandled: Unexpected token: op '++'\\",
|
||||
3
|
||||
"Test262Error (assertion failed)",
|
||||
2
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"top_failure_modes": [
|
||||
[
|
||||
"Test262Error (assertion failed)",
|
||||
83
|
||||
],
|
||||
[
|
||||
"ReferenceError (undefined symbol)",
|
||||
62
|
||||
],
|
||||
[
|
||||
"TypeError: not a function",
|
||||
46
|
||||
],
|
||||
[
|
||||
"SyntaxError (parse/unsupported syntax)",
|
||||
35
|
||||
],
|
||||
[
|
||||
"Unhandled: Unexpected token: op '++'\\",
|
||||
3
|
||||
],
|
||||
[
|
||||
"Timeout",
|
||||
2
|
||||
],
|
||||
[
|
||||
"Unhandled: Not callable: {:random <js-math-random()> :floor <js-math-fl",
|
||||
1
|
||||
"Test262Error (assertion failed)",
|
||||
2
|
||||
]
|
||||
],
|
||||
"pinned_commit": "d5e73fc8d2c663554fb72e2380a8c2bc1a318a33",
|
||||
"elapsed_seconds": 185.3
|
||||
"elapsed_seconds": 14.2
|
||||
}
|
||||
@@ -1,32 +1,18 @@
|
||||
# test262 scoreboard
|
||||
|
||||
Pinned commit: `d5e73fc8d2c663554fb72e2380a8c2bc1a318a33`
|
||||
Wall time: 185.3s
|
||||
Wall time: 14.2s
|
||||
|
||||
**Total:** 56/288 runnable passed (19.4%). Raw: pass=56 fail=230 skip=39 timeout=2 total=327.
|
||||
**Total:** 3/7 runnable passed (42.9%). Raw: pass=3 fail=4 skip=1 timeout=0 total=8.
|
||||
|
||||
## Top failure modes
|
||||
|
||||
- **83x** Test262Error (assertion failed)
|
||||
- **62x** ReferenceError (undefined symbol)
|
||||
- **46x** TypeError: not a function
|
||||
- **35x** SyntaxError (parse/unsupported syntax)
|
||||
- **3x** Unhandled: Unexpected token: op '++'\
|
||||
- **2x** Timeout
|
||||
- **1x** Unhandled: Not callable: {:random <js-math-random()> :floor <js-math-fl
|
||||
- **2x** ReferenceError (undefined symbol)
|
||||
- **2x** Test262Error (assertion failed)
|
||||
|
||||
## Categories (worst pass-rate first, min 10 runnable)
|
||||
|
||||
| Category | Pass | Fail | Skip | Timeout | Total | Pass % |
|
||||
|---|---:|---:|---:|---:|---:|---:|
|
||||
| built-ins/Math | 56 | 230 | 39 | 2 | 327 | 19.4% |
|
||||
|
||||
## Per-category top failures (min 10 runnable, worst first)
|
||||
|
||||
### built-ins/Math (56/288 — 19.4%)
|
||||
|
||||
- **83x** Test262Error (assertion failed)
|
||||
- **62x** ReferenceError (undefined symbol)
|
||||
- **46x** TypeError: not a function
|
||||
- **35x** SyntaxError (parse/unsupported syntax)
|
||||
- **3x** Unhandled: Unexpected token: op '++'\
|
||||
|
||||
Reference in New Issue
Block a user