test(scheduler-allocator-runner): characterize the parjob allocator (task 2.2)
15 tests drive the real parjob plugin through job_alloc_fn: success, short shared, pending on hosts, mid-plan rollback, task counts 0/1, missing inputs, six OOM steps with their debits, COMPOUND. Values the runner changes on purpose sit in *_today tests. Spec: the task showed that parjob records host reasons only for a bucket search's first rejected candidate (the rejected host's request stays in alloc_req.host and the host iterator pre-filters later hosts against it). Decision: the runner clears alloc_req.host before every candidate, for both allocators, so every short host gets its reasons (Req 3.6/3.7); publishing reasons only when they change is a follow-up. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
91a8580948
commit
b4470b2b94
6 changed files with 874 additions and 56 deletions
|
|
@ -1729,6 +1729,20 @@ sched_alloc_equivalence_seqjob_test = executable(
|
|||
'-Wl,--wrap=make_job_alloc'],
|
||||
install: false)
|
||||
|
||||
# scheduler-allocator-runner task 2.2 (Req 4.5, 5.1, 5.2, 5.4, 5.8, 7.2):
|
||||
# parjob characterization through the plugin's registered job_alloc_fn,
|
||||
# against today's allocator and (from task 4.1) the framework runner. Same
|
||||
# white-box stack and make_host_alloc/make_job_alloc wraps as
|
||||
# sched_alloc_equivalence_seqjob_test.
|
||||
sched_alloc_equivalence_parjob_test = executable(
|
||||
'sched_alloc_equivalence_parjob_test',
|
||||
['test_alloc_equivalence_parjob.c'],
|
||||
include_directories:[incdir],
|
||||
dependencies: [scheduler_test_deps],
|
||||
link_args: ['-Wl,--wrap=make_host_alloc',
|
||||
'-Wl,--wrap=make_job_alloc'],
|
||||
install: false)
|
||||
|
||||
# Task 3.2 (scheduler-allocation spec, Req 9.1): the dedicated pre/post-
|
||||
# rewrap host-selection EQUIVALENCE proof for seqjob_allocator.c's
|
||||
# my_alloc() -- fixture states task 3.1's own smoke test does not cover
|
||||
|
|
@ -1998,6 +2012,9 @@ test('scheduler seqjob allocator test',
|
|||
# Leak detection stays on: every fixture tears down its ctx, core and plugin.
|
||||
test('scheduler alloc equivalence seqjob test',
|
||||
sched_alloc_equivalence_seqjob_test, suite: 'scheduler')
|
||||
# Leak detection stays on (as for the seqjob characterization above).
|
||||
test('scheduler alloc equivalence parjob test',
|
||||
sched_alloc_equivalence_parjob_test, suite: 'scheduler')
|
||||
test('scheduler seqjob rewrap equivalence test',
|
||||
sched_seqjob_rewrap_equivalence_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue