feat(scheduler-core): build normal-mode driver event translation path (task 5.1)
Adds driver.h/driver.c: xce_sched_driver_translate_pending_events() drains core->pend_updates via the existing dataq-swap pattern (same mechanism sched_update() uses), translates all 10 xce_sched_update_ request_t op types into the matching xce_core_event_t, and pushes the batch through xce_core_push_events(). Scoped to xce_sched_core_t* alone -- pend_updates already lives on core since task 4.1, and this task is translation-only (no decision publishing, no mode-selection, no recording -- all later work). handler.c (the enqueue side) is untouched. First task in Group 5 (Core: Normal-Mode Driver). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019dw5WnN3DXStaEaPYfACU1
This commit is contained in:
parent
19d8df3532
commit
dceafc6b12
6 changed files with 1217 additions and 1 deletions
|
|
@ -296,6 +296,25 @@ sched_core_full_cycle_test = executable(
|
|||
dependencies: [scheduler_test_deps],
|
||||
install: false)
|
||||
|
||||
# Contract test for the normal-mode driver's controller event translation
|
||||
# path (scheduler-core spec, task 5.1, Req 5 AC 8 / AC 9's translation
|
||||
# half): xce_sched_driver_translate_pending_events() drains core->pend_updates
|
||||
# (the same dataq-swap mechanism handler.c already populates and
|
||||
# scheduler.c's sched_update() already drains), translates each dequeued
|
||||
# xce_sched_update_request_t into the matching xce_core_event_t for all 10
|
||||
# op types, and pushes the batch through a genuine xce_core_push_events()
|
||||
# call. Same white-box #include pattern as test_core_events.c (pulls the
|
||||
# real ../src/core.c and ../src/core_events.c into this TU) PLUS the new
|
||||
# ../src/driver.c under test -- see that test's own header comment for why
|
||||
# it provides its own real sched_resolve_job_picker() rather than
|
||||
# #include-ing schedobj.c.
|
||||
sched_driver_translate_test = executable(
|
||||
'sched_driver_translate_test',
|
||||
['test_driver_translate.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',
|
||||
|
|
@ -344,3 +363,6 @@ test('scheduler core clock test',
|
|||
test('scheduler core full cycle test',
|
||||
sched_core_full_cycle_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler driver translate test',
|
||||
sched_driver_translate_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue