myxce/src/scheduler/testsuite
Rongsong Shen 8faf59618e
fix(scheduler): replace limits on a config re-push (bug-1967)
limit_seed_config_impl() key_add()ed each pushed limit into the existing
table and returned at the first failure, so on any second push (live
config upgrade, or a simulator CONFIG_PUSH since bug-1964) the first
already-present name failed with -EEXIST: changed limits kept the old
definition and later new limits were never added.

A push now builds the whole new limit set into a fresh table and swaps it
in (all-or-nothing: on any build/register failure the previous set and its
instances stay). Usage instances are carried across: an instance of a kept
limit whose scoping and resource are unchanged is rebound to the new
definition; an instance of a removed limit, or of one whose per-consumer
scoping, resource or percent changed, is dropped and re-created on the next
match. Usage itself lives in the resource manager under the instance's
virtual resource, so counts survive either way. Not part of the snapshot
(a snapshot carries the config and reseeds from it).

The seed moves to plugins/limit_config.c (limit.c is near the 800-line
cap) with the private data type in plugins/limit_internal.h. Two REPL
limit-table fixtures relied on the additive behaviour (two single-limit
pushes) and now configure both limits in one push.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-10 11:38:05 +00:00
..
fixtures/repl_trace_baseline fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job 2026-10-09 03:37:03 +00:00
meson.build fix(scheduler): apply a mid-replay CONFIG_PUSH to the sim limit plugin (bug-1964) 2026-10-10 10:41:40 +00:00
test.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_admin_request.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_alloc_cache.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_alloc_equivalence_parjob.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_alloc_equivalence_seqjob.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_alloc_equivalence_seqjob_changes.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_alloc_plan_iter.c feat(scheduler-allocator-runner): plan generators initialise from the scheduling core (task 1.1) 2026-09-30 07:44:27 +00:00
test_alloc_runner.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_alloc_runner_result.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_alloc_runner_search.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_builtin_fcfs_cursor_uaf.c fix(scheduler): invalidate stale builtin_fcfs picker cursors across calls (bug-1686) 2026-08-25 08:49:43 +00:00
test_clock.c test(scheduler): check only the timestamp field in the frozen tlog format test (bug-1924) 2026-10-08 09:50:36 +00:00
test_config_push_deferred.c fix(scheduler): a re-applied config updates queues in place and frees the config it replaces (bug-1886) 2026-09-29 10:03:04 +00:00
test_core_events.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_core_full_cycle.c fix(scheduler): wire mem reservation reconciliation into live rusage event path 2026-09-01 07:08:37 +00:00
test_core_isolation.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +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(worker-rejoin-resync): task 5 - exclude reconciling host from dispatch 2026-09-01 18:38:07 +00:00
test_core_session_cache_clear.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_decision_trace.c feat(scheduler-sim-decision-trace): trace attachment and trace-only op on decisions 2026-10-08 08:40:37 +00:00
test_driver_decision_cb.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_driver_session_ordering.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_driver_translate.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_handlers.c fix(scheduler): mid-round rejoin config push truncated live rounds (bug-1846 part 2) 2026-09-24 06:30:34 +00:00
test_host_admin_close.c fix(scheduler): exclude admin-closed hosts from new placements (bug-1939) 2026-10-10 08:37:11 +00:00
test_host_iter.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_host_unavail_reconciling.c fix(scheduler): give unavailable and reconciling hosts no new jobs (bug-1963) 2026-10-10 10:41:39 +00:00
test_job_array_expand.c feat(job-array-one-based-index): guard scheduler array expansion (task 3.1) 2026-10-01 10:24:42 +00:00
test_job_array_wire_e2e.c feat(job-array-one-based-index): guard scheduler array expansion (task 3.1) 2026-10-01 10:24:42 +00:00
test_job_move_priority.c fix(scheduler): keep a moved job's own priority (bug-1944) 2026-10-10 08:37:11 +00:00
test_job_update.c fix(scheduler): keep a moved job's own priority (bug-1944) 2026-10-10 08:37:11 +00:00
test_limit_host_dedup.c fix(scheduler): record config pushes, free hlimits lists, quiet benign picker WARN (bug-1847/1848/1849) 2026-09-24 07:00:07 +00:00
test_limit_plugin.c fix(scheduler): replace limits on a config re-push (bug-1967) 2026-10-10 11:38:05 +00:00
test_maxtasks_wiring_ingest.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_maxtasks_wiring_sim_driver_parity.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +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_parjob_combinatorial.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_parjob_e2e_multislot.c refactor(scheduler-allocator-runner): describe the framework runner, not the removed my_alloc() (task 5.1) 2026-09-30 10:02:46 +00:00
test_parjob_task_range.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_picker_config_fields.c feat(scheduler-sim-live-allocation): make plugin hook dispatch core-safe (task 1.2) 2026-09-18 11:48:08 +00:00
test_picker_core_loop_boundary.c feat(scheduler-sim-live-allocation): extract shared picker/allocator into sched_election.c (task 3.1) 2026-09-19 02:50:38 +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-allocator-runner): runner guards and shared-resource precheck (task 3.1) 2026-09-30 08:58:07 +00:00
test_picker_wiring.c fix: spurious errors/warnings from a pc13v HA deploy (bug-1872..1877) 2026-09-28 04:35:19 +00:00
test_plugin_hook_dispatch.c fix(scheduler): plugin_end_session() guards on the wrong field (bug-1682/1492) 2026-09-19 11:44:58 +00:00
test_plugin_picker_registration.c fix: spurious errors/warnings from a pc13v HA deploy (bug-1872..1877) 2026-09-28 04:35:19 +00:00
test_queue_admin_control.c fix(scheduler): hold jobs of inactive queues at dispatch (bug-1938) 2026-10-10 08:37:11 +00:00
test_record_lifecycle.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +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): break jobid= filters accept every jobid form the REPL prints (bug-1926) 2026-10-09 04:06:53 +00:00
test_repl_equivalence.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_event_echo.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_execution_control.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_help.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_limit_table.c fix(scheduler): replace limits on a config re-push (bug-1967) 2026-10-10 11:38:05 +00:00
test_repl_output_compression.c feat(scheduler-sim-repl-verbosity): task 1.1 - RED-phase tests for job identifier range compression 2026-09-02 07:31:31 +00:00
test_repl_prompt_context.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_resource_formatting.c feat(scheduler-sim-decision-trace): move units and value formatting helpers into repl_fmt.c 2026-10-08 07:30:42 +00:00
test_repl_resource_table.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_round_rollup.c fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job 2026-10-09 03:37:03 +00:00
test_repl_snapshot_params.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_step_verbosity.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_repl_trace_baseline.c test(scheduler): silence snprintf truncation warning in repl trace baseline cleanup 2026-10-08 08:28:22 +00:00
test_repl_trace_cmd.c fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job 2026-10-09 03:37:03 +00:00
test_repl_trace_e2e.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_repl_trace_e2e.h test(scheduler-sim-decision-trace): prove tracing never changes scheduling 2026-10-08 16:49:26 +00:00
test_repl_trace_e2e_fixture.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_repl_trace_emit.c fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job 2026-10-09 03:37:03 +00:00
test_repl_trace_file.c feat(scheduler-sim-decision-trace): manage the trace file copy and output-file conflicts 2026-10-08 14:26:10 +00:00
test_repl_trace_wiring.c fix(scheduler): REPL iterator leaks, affected jobids in round summaries, raw ids for trace on job 2026-10-09 03:37:03 +00:00
test_resource_accounting.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_resval_ownership.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_sched_alloc_from_stamp.c feat(libxce-alloc-preason-equality): stamp every allocation's from with the deciding session start (task 3.2) 2026-09-28 10:14:35 +00:00
test_sched_election_null_schedobj.c fix(scheduler): never elect a job without a schedobj (bug-1897) 2026-10-01 03:45:51 +00:00
test_sched_election_sim_fixture.c refactor(scheduler-allocator-runner): describe the framework runner, not the removed my_alloc() (task 5.1) 2026-09-30 10:02:46 +00:00
test_sched_make_allocs_oom.c fix(lib,scheduler): allocation constructors and allocators report OOM instead of building NULL-name records (bug-1882) 2026-09-28 08:49:51 +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_cache_dispatch.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_scheduler_cache_dispatch_compound.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +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 fix(scheduler): close post-failover rejoin detection gap (bug-1760) 2026-09-04 04:37:11 +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_scheduler_dispatch_commit.c feat(scheduler-sim-live-allocation): make allocation dispatch and decision commit core-safe (task 2.2) 2026-09-18 14:53:59 +00:00
test_seqjob_allocator.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_seqjob_rewrap_equivalence.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_sim_alloc_limit_fanout.c refactor(scheduler-allocator-runner): describe the framework runner, not the removed my_alloc() (task 5.1) 2026-09-30 10:02:46 +00:00
test_sim_alt_events.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_cache_clear_isolation.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_sim_contention_limit_driver_parity.c test(scheduler-sim-live-allocation): prove contention parity across drivers (task 5.1) 2026-09-19 08:24:35 +00:00
test_sim_contention_parity.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_contention_resource_driver_parity.c test(scheduler-sim-live-allocation): prove contention parity across drivers (task 5.1) 2026-09-19 08:24:35 +00:00
test_sim_discrete_clock.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_e2e_limit_visibility.c fix(scheduler): apply a mid-replay CONFIG_PUSH to the sim limit plugin (bug-1964) 2026-10-10 10:41:40 +00:00
test_sim_e2e_original_motivation.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_equivalence.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_event_loop.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_group_limit_parity.c fix(scheduler): load user/host groups in the simulator too (bug-1943) 2026-10-10 08:37:11 +00:00
test_sim_isolation.c test(scheduler-sim-decision-trace): close validation coverage gaps; sync design.md 2026-10-08 17:33:26 +00:00
test_sim_limit_config_push_parity.c fix(scheduler): apply a mid-replay CONFIG_PUSH to the sim limit plugin (bug-1964) 2026-10-10 10:41:40 +00:00
test_sim_live_allocation.c feat(libxce-alloc-preason-equality): replay reproduces the reservation start time (task 5.3) 2026-09-29 06:48:38 +00:00
test_sim_print_decision_gate.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_reconcile_unaccounted.c fix(scheduler): replace limits on a config re-push (bug-1967) 2026-10-10 11:38:05 +00:00
test_sim_record_output.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_resource_contention.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_round_boundary_reconciliation.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_session_ordering.c fix(scheduler): apply a mid-replay CONFIG_PUSH to the sim limit plugin (bug-1964) 2026-10-10 10:41:40 +00:00
test_sim_snapshot_reconcile_gap.c feat(scheduler-sim-decision-trace): compile trace sources into REPL/sim tests and the sim isolation checks 2026-10-08 14:56:31 +00:00
test_sim_startup.c feat(scheduler-sim-decision-trace): pass the scheduler log path to the simulation driver 2026-10-08 14:13:50 +00:00
test_sim_trace_driver.c test(scheduler-sim-decision-trace): close validation coverage gaps; sync design.md 2026-10-08 17:33:26 +00:00
test_sim_verify.c fix(scheduler): cache hits keep the full pend reason; sim uses the cache (bug-1932) 2026-10-09 08:02:18 +00:00
test_snapshot_load_allocator_regression.c test(scheduler-snapshot-job-allocation): regression test for allocator crash 2026-08-27 16:31:45 +00:00
test_snapshot_save_load.c refactor(scheduler-sim-decision-trace): split trace sources under the 800-line cap 2026-10-08 10:16:46 +00:00
test_snapshot_sparse_resvals.c fix(scheduler): load shared resource values from the snapshot (bug-1923) 2026-10-08 08:10:00 +00:00
test_trace_bounds.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_trace_capture.c test(scheduler-sim-decision-trace): error-path trace scenarios with the real allocator 2026-10-08 16:28:17 +00:00
test_trace_equivalence.c test(scheduler-sim-decision-trace): prove tracing never changes scheduling 2026-10-08 16:49:26 +00:00
test_trace_equivalence.h test(scheduler-sim-decision-trace): prove tracing never changes scheduling 2026-10-08 16:49:26 +00:00
test_trace_equivalence_cmp.c test(scheduler-sim-decision-trace): prove tracing never changes scheduling 2026-10-08 16:49:26 +00:00
test_trace_error_paths.c test(scheduler-sim-decision-trace): error-path trace scenarios with the real allocator 2026-10-08 16:28:17 +00:00
test_trace_hooks_alloc_loop.c feat(scheduler-sim-decision-trace): hook the allocator loop 2026-10-08 11:10:28 +00:00
test_trace_hooks_gate.c feat(scheduler-sim-decision-trace): core trace gate and SCHED_TRACE hook macro 2026-10-08 08:53:40 +00:00
test_trace_hooks_resreq.c feat(scheduler-sim-decision-trace): hook resource-requirement branching 2026-10-08 11:23:16 +00:00
test_trace_hooks_runner.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_trace_host_hooks.c feat(scheduler-sim-decision-trace): hook the host pre-filter, host scan and satisfaction check 2026-10-08 11:42:19 +00:00
test_trace_model.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_trace_render.c fix(scheduler): place a task-range job with the largest count that fits (bug-1931) 2026-10-09 08:51:44 +00:00
test_trace_store.c test(scheduler-sim-decision-trace): error-path trace scenarios with the real allocator 2026-10-08 16:28:17 +00:00