myxce/src/scheduler/testsuite
Rongsong Shen b31907324c
test(scheduler-sim-decision-parity): prove capacity-aware parity under contention (task 4.1)
Adds an integration test comparing round-by-round resInUse and scheduling
outcomes between a real driven normal-mode recording and a simulation-mode
replay of the identical contention scenario (worker capacity 10.0, jobs
wanting 8.0/5.0/2.0, plus a 4th job proving cross-round persistence).

Confirmed (by direct read of sim_picker_thread_fn(), independently
re-verified in review) that sim's live picker is structurally PEND-only --
it has no capacity-check/dispatch path for a freshly-evaluated job. This
means task 1.2's single-round fixture cannot be literally replayed-and-
diffed for full parity: that comparison would be tautological for
freshly-arriving jobs (sim always PENDs them regardless of accounting
correctness) and can't prove multi-round persistence anyway. Built instead
as a real recording plus a hand-crafted sim fixture modeling the identical
facts, including an already-resolved-before-replay job to exercise
reconciliation -- the same documented-carve-out approach test_sim_equivalence.c
already established for PEND-only proofs, applied here to reconciled jobs too.

No production code touched (task 3 already completed the feature). RED
phase proven by temporarily reverting task 3's reconciliation call site:
new test failed with "Expected 10 Was 0", restored and green.

48/49 scheduler tests pass; the 1 failure is pre-existing bug-1560
(unrelated).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-22 10:53:08 +00:00
..
meson.build test(scheduler-sim-decision-parity): prove capacity-aware parity under contention (task 4.1) 2026-08-22 10:53:08 +00:00
test.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_admin_request.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_clock.c fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) 2026-08-19 09:48:46 +00:00
test_core_events.c fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) 2026-08-19 09:48:46 +00:00
test_core_full_cycle.c fix(scheduler): clock/resval/jobid-format fixes plus REPL live-operator gaps (task 12.5) 2026-08-19 09:48:46 +00:00
test_core_isolation.c fix(scheduler): extend core-isolation nm-audit to core_events.c/core_session.c/core_clock.c (Req 5 AC 1/2) 2026-08-19 11:00:41 +00:00
test_core_jbuf_capacity_pin.c feat(scheduler-core): pin jbuf capacity + record kvmgr determinism audit (task 4.2) 2026-08-03 14:09:42 +00:00
test_core_session.c feat(scheduler-core): implement clock virtualization and session timing (task 4.5) 2026-08-04 03:38:58 +00:00
test_driver_decision_cb.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_driver_session_ordering.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_driver_translate.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_handlers.c feat(scheduler-core): implement scheduler-side admin request handler (task 9.4) 2026-08-05 14:11:43 +00:00
test_job_array_expand.c feat(scheduler-core): implement scheduler-side admin request handler (task 9.4) 2026-08-05 14:11:43 +00:00
test_job_array_wire_e2e.c feat(scheduler-core): implement scheduler-side admin request handler (task 9.4) 2026-08-05 14:11:43 +00:00
test_job_update.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_no_bare_printf.c fix(scheduler): sim_print_decision() bypassed tlog, producing inconsistent PEND/DISPATCH/PREEMPT output 2026-08-20 03:02:48 +00:00
test_picker_config_fields.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_picker_core_loop_boundary.c test(scheduler-core): guard core scheduling loop against ordering-logic regressions (task 2.5) 2026-08-03 09:11:55 +00:00
test_picker_fcfs.c feat(scheduler-core): wire builtin_fcfs as registered default picker (task 2.4) 2026-08-03 08:51:45 +00:00
test_picker_fcfs_session.c feat(scheduler-core): wire builtin_fcfs as registered default picker (task 2.4) 2026-08-03 08:51:45 +00:00
test_picker_iface.c feat(scheduler-core): define job picker plugin contract (task 1.1) 2026-08-03 04:49:55 +00:00
test_picker_pendreason_factory_audit.c feat(scheduler-core): implement session-start signal + decision callback (task 4.4) 2026-08-04 03:08:18 +00:00
test_picker_wiring.c feat(scheduler-core): implement core event batch push interface (task 4.3) 2026-08-03 16:05:33 +00:00
test_plugin_picker_registration.c feat(scheduler-core): extract xce_sched_core_t from monolithic scheduler struct (task 4.1) 2026-08-03 10:55:58 +00:00
test_record_lifecycle.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_recording_path_validation.c feat(scheduler-core): implement record start/stop lifecycle (task 9.2) 2026-08-05 09:07:51 +00:00
test_repl_breakpoints_inspection.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_repl_equivalence.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_repl_execution_control.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_repl_snapshot_params.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_resource_accounting.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_resval_ownership.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_scheduler_backpressure.c feat(component-failover-adoption): validate scheduler backpressure, fix candidate-name diagnostics 2026-08-11 14:00:02 +00:00
test_scheduler_connect.c feat(component-failover-adoption): validate scheduler backpressure, fix candidate-name diagnostics 2026-08-11 14:00:02 +00:00
test_scheduler_decision_publish_retry.c feat(component-failover-adoption): add scheduler decision-publish retry-until-success-or-shutdown 2026-08-11 12:03:21 +00:00
test_scheduler_decision_redelivery.c test(component-failover-adoption): add scheduler decision-redelivery queue coverage 2026-08-11 23:50:20 +00:00
test_sim_alt_events.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_sim_contention_parity.c test(scheduler-sim-decision-parity): prove capacity-aware parity under contention (task 4.1) 2026-08-22 10:53:08 +00:00
test_sim_equivalence.c feat(scheduler-sim-decision-parity): relocate resource accounting to core-level (task 1.1) 2026-08-22 06:04:03 +00:00
test_sim_event_loop.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_sim_isolation.c fix(scheduler): sim mode picker never learns about the initial snapshot's own jobs/queues (bug-1567) 2026-08-17 10:21:11 +00:00
test_sim_reconcile_unaccounted.c feat(scheduler-sim-decision-parity): report reconciled decisions through the existing channel (task 2.4) 2026-08-22 09:07:24 +00:00
test_sim_record_output.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_sim_resource_contention.c test(scheduler-sim-decision-parity): add resource-contention replay fixture (task 1.2) 2026-08-22 06:37:04 +00:00
test_sim_round_boundary_reconciliation.c feat(scheduler-sim-decision-parity): wire reconciliation into the round boundary (task 3) 2026-08-22 10:00:06 +00:00
test_sim_session_ordering.c fix(scheduler-sim-decision-parity): give sim mode driver.c's round-boundary split (task 2.1) 2026-08-22 07:25:12 +00:00
test_sim_startup.c fix(scheduler): activate virtual-clock logging for sim/REPL sessions (Req 5 AC 3) 2026-08-19 11:00:33 +00:00
test_sim_verify.c feat(scheduler-sim-decision-parity): wire reconciliation into the round boundary (task 3) 2026-08-22 10:00:06 +00:00
test_snapshot_save_load.c test(scheduler-core): prove snapshot -EBUSY guard against a genuine active session (task 8.2) 2026-08-05 04:18:01 +00:00