Skip to content

Serialize Atomics.waitAsync test262 group instead of excluding it#2479

Merged
lahma merged 1 commit into
sebastienros:mainfrom
lahma:no-parallel
May 17, 2026
Merged

Serialize Atomics.waitAsync test262 group instead of excluding it#2479
lahma merged 1 commit into
sebastienros:mainfrom
lahma:no-parallel

Conversation

@lahma

@lahma lahma commented May 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Bump Test262Harness package + test262harness.console tool manifest from 1.0.5/1.0.4 to 1.0.6, which introduces the NonParallel{Features,Flags,Files} settings (see Add NonParallel* options to emit [NonParallelizable] on selected tests lahma/test262-harness-dotnet#142). Matches emit [NonParallelizable] on the generated NUnit method, overriding the inherited [Parallelizable(ParallelScope.All)].
  • Use "NonParallelFeatures": ["Atomics.waitAsync"] to serialise the whole Atomics.waitAsync test group rather than excluding individual timing-sensitive cases. This restores coverage of built-ins/Atomics/waitAsync/no-spurious-wakeup-on-exchange.js, which was disabled in f71c1ba because Task.Delay-driven timeout resolution on loaded Windows runners can complete a few ms shy of the requested $262.agent.timeouts.small (200ms), tripping the lapse >= TIMEOUT assertion when the test ran alongside other CPU-bound suites.

Verification

Regenerated suite after the bump:

  • [NonParallelizable] appears on exactly two generated methods — Atomics/waitAsync root and the bigint subdirectory variant — and nowhere else in built-ins/annexB/intl402/language.
  • The previously-excluded built-ins/Atomics/waitAsync/no-spurious-wakeup-on-exchange.js is back in the suite (TestCase lines for both strict and non-strict modes).

Test plan

  • CI green on Windows runners (waitAsync no-spurious-wakeup cases pass without re-flaking)
  • No regression in total runtime — only the small Atomics.waitAsync group is serialised; the other ~99k cases stay parallel

🤖 Generated with Claude Code

Test262Harness 1.0.6 (lahma/test262-harness-dotnet#142) adds
NonParallel{Features,Flags,Files} options that emit
[NonParallelizable] on selected generated test methods, overriding
the inherited [Parallelizable(ParallelScope.All)]. Use it here for
the Atomics.waitAsync suite: previously the no-spurious-wakeup-on-
exchange.js case was excluded wholesale because Task.Delay-driven
timeout resolution on loaded Windows runners can fire a few ms shy
of the requested $262.agent.timeouts.small (200ms), tripping the
lapse >= TIMEOUT assertion when the test ran alongside other CPU-
bound suites. Serialising the whole Atomics_WaitAsync group is a
softer fix that restores test coverage of the previously-disabled
case while keeping the rest of the suite parallel.

Bump Test262Harness package and the test262harness.console tool
manifest to 1.0.6 so the generator emits the new attribute. Verified
[NonParallelizable] lands on exactly the two generated methods
(Atomics/waitAsync root and bigint subdir) and nowhere else.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lahma
lahma enabled auto-merge (squash) May 17, 2026 09:30
@lahma
lahma merged commit 7fe547a into sebastienros:main May 17, 2026
4 checks passed
@lahma
lahma deleted the no-parallel branch July 13, 2026 06:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant