feat(resreq-maxtasks-wiring): prove array-job element spans hosts too

Extends xce-test-multihost with a second scenario: a 2-element array
job (jobsub -a 2) where each element independently requests the same
nproc+1 task count as the plain-job scenario. Drives element [0]
through the identical RUN-then-DONE, both-hosts-started proof, and
confirms its jobinfo Slots: field matches the plain job's exactly
(Requirement 5.5). Traced the array-expansion path
(handler.c's sched_on_job_array()/clone_job_submit_data()) to confirm
no array-specific shortcut bypasses apply_job_task_count() -- each
element flows through the same core_build_job() ingest as a
standalone job.

Fixes a real bug (bug-1775) found while building this: an array
element's bracketed jobid (e.g. "<base>[0]") was misparsed by
grep -E's bracket-expression syntax, causing a false negative in the
per-host verification. Added ere_escape(), a no-op for plain
(non-bracketed) jobids.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XYdtrEWWZfKRRGED7raEYg
This commit is contained in:
Rongsong Shen 2026-09-06 09:38:08 +00:00
parent 7fd673cc31
commit 1e9627467a
No known key found for this signature in database
GPG key ID: 5BCDAAE0123E9FE2
4 changed files with 373 additions and 66 deletions

View file

@ -71,7 +71,7 @@
- Observable: a PASS verdict confirms the scheduler's own decision spans both hosts and the job completes successfully on both
- _Requirements: 4.1, 4.2, 4.3, 5.3_
- [ ] 4.3 Prove a multi-task array-job element receives identical wiring and completes across multiple hosts
- [x] 4.3 Prove a multi-task array-job element receives identical wiring and completes across multiple hosts
- Submit a multi-task job as one element of an array-job submission and repeat the same running-then-complete verification as 4.2
- Confirm the array element's per-element task count wiring matches what an equivalent non-array submission would receive
- Observable: a PASS verdict for the array-job scenario, with the same task-count wiring and multi-host completion as the non-array case