Skip to content

test(runner/toolexec): check the hang and order rows end to end - #581

Merged
hmdsefi merged 1 commit into
mainfrom
plan/2.5-task-10b
Nov 1, 2026
Merged

hmdsefi merged 1 commit into
mainfrom
plan/2.5-task-10b

Conversation

@hmdsefi

@hmdsefi hmdsefi commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Adds end-to-end tests for the hang and order rows, and makes AfterFunc callbacks that fire at the same instant replay. Stacked on #580.

  • AT-XTE-28 (hangs): processes that hang or lose their order without the rewrite finish for every seed, with equal outcomes across two runs. The constructs are a Cond with a rewritten mutex, sync.Locker calls, a mutex method value passed to a helper, OnceFunc from three goroutines, WaitGroup.Go, a time.AfterFunc callback that locks a mutex, and a runtime.Gosched spin. Each fixture also checks that its own log is complete.
  • AT-XTE-29 (orders): struct-keyed and bool-keyed map ranges, maps.All, a rand.Intn function value, rand.N and reflect.Select follow the seed: equal outcomes per seed and at least two outcomes per construct.
  • sched: Func now numbers each callback when it is registered. Callbacks that fire at the same instant wait in a list that Pending, the driver's Lock and Reset take into account, and Release starts the lowest number first, one per call, without drawing from the release stream. Before this, the runtime started same-instant timer callbacks in a random order, and context.AfterFunc callbacks in the map order of the cancelled context's children, so one seed could give different goroutine orders. Programs without such callbacks take the old path, so existing traces do not change.
  • runSeeds keeps the trailing space of the last seed's outcome. It used to trim it, which could make one outcome look like two.

Closes #346

@coderabbitai

coderabbitai Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

Base automatically changed from plan/2.5-task-10a to main November 1, 2026 02:46
@hmdsefi
hmdsefi merged commit c60a8b9 into main Nov 1, 2026
18 checks passed
@hmdsefi
hmdsefi deleted the plan/2.5-task-10b branch November 1, 2026 02:58
@hmdsefi hmdsefi mentioned this pull request Nov 1, 2026
14 tasks done
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.

[2.5-10b] Exact backend: end-to-end tests for hangs and orders

1 participant