feat(scheduler-core): register picker plugin category + job_elect_fn compat wrapper (task 1.2)
plugin_register() now adapts an old-style job_elect_fn-only plugin to xce_job_picker_iface_t via legacy_picker_wrapper_iface (next_job() forwards to job_elect_fn; other hooks are safe no-ops covered elsewhere in the existing lifecycle), logging a one-time deprecation warning. A plugin that already sets picker_iface directly skips the wrapper and the warning. Reuses the existing plugin_register()/key_find() mechanism -- no parallel registration system. Requirements: 1.6, 2.5
This commit is contained in:
parent
065025a3a6
commit
4d8d72142e
5 changed files with 409 additions and 2 deletions
|
|
@ -68,6 +68,19 @@ sched_picker_iface_test = executable('sched_picker_iface_test',
|
|||
c_args: ['-Werror=incompatible-pointer-types'],
|
||||
install: false)
|
||||
|
||||
# White-box test for the picker plugin registration category and the
|
||||
# job_elect_fn compatibility wrapper (scheduler-core spec, task 1.2). It
|
||||
# #includes ../src/plugin.c directly (same white-box pattern as
|
||||
# sched_handlers_test/sched_job_array_test) so it exercises the real
|
||||
# plugin_register() and the real legacy_picker_wrapper_iface, and needs a
|
||||
# REAL sched->plugins kvmgr (same setup scheduler.c's sched_plugin_init()
|
||||
# uses) to register plugins through it for real.
|
||||
sched_picker_registration_test = executable('sched_picker_registration_test',
|
||||
['test_plugin_picker_registration.c'],
|
||||
include_directories:[incdir],
|
||||
dependencies: [scheduler_test_deps],
|
||||
install: false)
|
||||
|
||||
# Register as meson tests so `meson test --suite scheduler` runs them all.
|
||||
# detect_leaks=0 matches the suite convention (fixtures are not torn down).
|
||||
test('scheduler test', scheduler_test, suite: 'scheduler',
|
||||
|
|
@ -82,3 +95,5 @@ test('scheduler job-array wire e2e test', sched_job_array_wire_e2e_test, suite:
|
|||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler picker iface test', sched_picker_iface_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler picker registration test', sched_picker_registration_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue