feat(job-array-one-based-index): harness $jobid[...] substitution (task 4.2)

Auto-variable substitution moves out of test.c into its own unit-tested
module (autovars.c) with an explicit context for $jobid, $? and
$jobcount, keeping today's token rule, messages and buffer handling.
New: a token $jobid[...] expands $jobid and keeps the rest of the token,
so $jobid[3] names element 3 of the array just submitted; it fails like
an unset $jobid when none is set.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Rongsong Shen 2026-10-01 10:56:15 +00:00
parent d2c87f185a
commit 1812a80d19
Signed by untrusted user: rshen
GPG key ID: 80533536B0EB651C
6 changed files with 411 additions and 108 deletions

View file

@ -78,7 +78,7 @@
- _Requirements: 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 9.3_
- _Depends: 1.3_
- [ ] 4.2 Substitute `$jobid[...]` in harness command lines
- [x] 4.2 Substitute `$jobid[...]` in harness command lines
- Move the existing autovariable substitution into its own unit-testable module with an explicit context for `$jobid`, `$?` and `$jobcount`, keeping today's token rule, messages and buffer-size result
- Expand `$jobid` followed by `[` keeping the rest of the token; fail as for an unset `$jobid` when it is unset; leave `!` and `#` lines untouched
- Register the module in the harness build and its new unit test