feat(scheduler-sim-repl-verbosity): task 2.1 - RED-phase Round Rollup tests
Adds 7 tests in a new test_repl_round_rollup.c covering per-round decision summaries, collapsing of repetitive rounds, and the shared repl_round_collapse_flush() entry point (Requirements 2.1-2.4, 3.1-3.4, 3.6). repl_round_collapse_flush() itself is not yet implemented (task 2.2) - build fails at link time, confirming RED. Split into its own file rather than the originally-planned test_repl_execution_control.c: that file was already at the project's 800-line cap before this task, and landing these tests there would have pushed it to 1563 lines. design.md's File Structure Plan is corrected accordingly (mirrors the existing test_repl_snapshot_params.c /test_repl_breakpoints_inspection.c split in this same file family). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YAWMhfRJFnmmnG8h97yUDd
This commit is contained in:
parent
e6c670194f
commit
0c6ccb0324
4 changed files with 1058 additions and 2 deletions
|
|
@ -901,6 +901,36 @@ sched_repl_execution_control_test = executable(
|
|||
dependencies: [scheduler_test_deps, libedit_dep],
|
||||
install: false)
|
||||
|
||||
# Contract test for the interactive simulation REPL's Round Rollup
|
||||
# component (scheduler-sim-repl-verbosity spec, task 2.1, Requirements 2
|
||||
# and 3 "per-round decision summary"/"collapsing repetitive rounds"): a
|
||||
# round with at least one decision produces a summary naming decision
|
||||
# counts and affected jobids; idle or identical-outcome consecutive rounds
|
||||
# collapse into a single range notification; and the shared
|
||||
# repl_round_collapse_flush() entry point is exercised directly (a safe
|
||||
# no-op when nothing is active) and indirectly (flushed before a structural
|
||||
# event/replay-complete banner). Same white-box #include pattern as
|
||||
# sched_repl_execution_control_test above (core.c, core_clock.c,
|
||||
# core_events.c, core_session.c, decision.c, plugin.c,
|
||||
# plugins/builtin_fcfs.c, recording.c, recording_session.c, sim.c,
|
||||
# sim_loop.c, sim_record.c, sim_verify.c,
|
||||
# snapshot.c/snapshot_wire.c/snapshot_load.c, repl.c, repl_break.c,
|
||||
# repl_info.c, repl_params.c). Split into its own file rather than appended
|
||||
# to test_repl_execution_control.c -- that file was already 936 lines
|
||||
# (pre-existing, over this project's 800-line cap on its own), and this
|
||||
# task's own tests (seven forked-child, real-stdout-capture fixtures plus
|
||||
# their own fork/capture helper pair) would have pushed it to 1563 lines,
|
||||
# past the ~1000-line threshold this exact spec family already treats as a
|
||||
# split trigger (see sched_repl_snapshot_params_test's own comment below
|
||||
# for the precedent). See design.md's "**Correction (post-review, task
|
||||
# 2.1)**" note.
|
||||
sched_repl_round_rollup_test = executable(
|
||||
'sched_repl_round_rollup_test',
|
||||
['test_repl_round_rollup.c'],
|
||||
include_directories:[incdir],
|
||||
dependencies: [scheduler_test_deps, libedit_dep],
|
||||
install: false)
|
||||
|
||||
# Contract test for the interactive simulation REPL's breakpoint and
|
||||
# state-inspection slice (scheduler-core spec, task 12.2, Req 5 AC 22
|
||||
# "Breakpoints"/"State inspection"): setting a breakpoint on a specific
|
||||
|
|
@ -1351,6 +1381,9 @@ test('scheduler sim e2e original motivation test',
|
|||
test('scheduler repl execution control test',
|
||||
sched_repl_execution_control_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler repl round rollup test',
|
||||
sched_repl_round_rollup_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
test('scheduler repl breakpoints inspection test',
|
||||
sched_repl_breakpoints_inspection_test, suite: 'scheduler',
|
||||
env: ['ASAN_OPTIONS=detect_leaks=0'])
|
||||
|
|
|
|||
1021
src/scheduler/testsuite/test_repl_round_rollup.c
Normal file
1021
src/scheduler/testsuite/test_repl_round_rollup.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue