feat(scheduler-sim-decision-trace): hook the allocator runner

Task 3.4: the runner records no-plan reasons, the cluster-wide check,
plans (tried, discarded, not tried) and their ends, positions, claimed
skips and per-host candidate verdicts, rollbacks, commit or finalize
failure, and search end. A declined or generator-failed requirement now
counts once as 'no plan generated'. Runner results are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-08 12:04:16 +00:00
parent d4bee4b5d0
commit 16f40fa9dc
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
9 changed files with 1216 additions and 14 deletions

View file

@ -2696,3 +2696,23 @@ sched_trace_host_hooks_test = executable(
test('scheduler trace host hooks test',
sched_trace_host_hooks_test, suite: 'scheduler',
env: ['ASAN_OPTIONS=detect_leaks=0'])
# scheduler-sim-decision-trace task 3.4: the allocator runner's trace hooks
# (design.md "TraceHooks": Runner entry, Cluster-wide check, Generator start
# failure, Search end, Plan loop, Position, Candidate, Rollback, Finalize;
# Requirements 4.1, 4.3-4.9, 5.1, 5.2, 5.6-5.8) on the real
# sched_allocator_run(). Same white-box #include set as
# sched_alloc_runner_search_test; xvec_dup (claim snapshot) and
# make_job_alloc (finalize) are wrapped to fail on demand.
sched_trace_hooks_runner_test = executable(
'sched_trace_hooks_runner_test',
['test_trace_hooks_runner.c'],
include_directories:[incdir],
dependencies: [scheduler_test_deps],
link_args: ['-Wl,--wrap=xvec_dup',
'-Wl,--wrap=make_job_alloc'],
install: false)
test('scheduler trace hooks runner test',
sched_trace_hooks_runner_test, suite: 'scheduler',
env: ['ASAN_OPTIONS=detect_leaks=0'])