myxce/src/scheduler/testsuite
Rongsong Shen 4e5547ee55
feat(scheduler-core): implement recording directory provisioning and path validation (task 9.1)
Adds --record-dir CLI flag and sched_validate_record_filename() with
canonical-path containment (realpath()-based, not textual-prefix) plus
separator/".." rejection before any filesystem access.

Adversarial review found and this task fixed two CWE-59 inode-aliasing
bypasses: a direct hard link inside record_dir aliasing an outside file,
and a compound variant where a symlink pointed at an in-directory file
itself hard-linked outside record_dir. Both closed via st_nlink checks
on the direct entry and the fully-resolved symlink target respectively,
each verified with a live RED->GREEN reproduction. TOCTOU residual risk
documented and deferred to task 9.2 (O_NOFOLLOW + fstat() re-check).

18/18 recording subtests, 24/24 scheduler suite, clang-format clean.
2026-08-05 05:39:22 +00:00
..
meson.build feat(scheduler-core): implement recording directory provisioning and path validation (task 9.1) 2026-08-05 05:39:22 +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_clock.c feat(scheduler-core): implement clock virtualization and session timing (task 4.5) 2026-08-04 03:38:58 +00:00
test_core_events.c feat(scheduler-core): implement core event batch push interface (task 4.3) 2026-08-03 16:05:33 +00:00
test_core_full_cycle.c test(scheduler-core): add core contract test for full push-go-drain-end cycle (task 4.6) 2026-08-04 04:05:57 +00:00
test_core_isolation.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_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-core): wire decision publishing and mode-selection into main.c (task 5.2) 2026-08-04 08:05:57 +00:00
test_driver_session_ordering.c feat(scheduler-core): wire decision publishing and mode-selection into main.c (task 5.2) 2026-08-04 08:05:57 +00:00
test_driver_translate.c feat(scheduler-core): wire decision publishing and mode-selection into main.c (task 5.2) 2026-08-04 08:05:57 +00:00
test_handlers.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_job_array_expand.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_job_array_wire_e2e.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_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_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_recording_path_validation.c feat(scheduler-core): implement recording directory provisioning and path validation (task 9.1) 2026-08-05 05:39:22 +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