Skip to content

test: [expected failures] WRAP_ACTIONS fixtures needing implementation fixes - #162

Draft
leongdl wants to merge 1 commit into
OpenJobDescription:mainlinefrom
leongdl:conformance-wrap-actions-expected-failures
Draft

test: [expected failures] WRAP_ACTIONS fixtures needing implementation fixes#162
leongdl wants to merge 1 commit into
OpenJobDescription:mainlinefrom
leongdl:conformance-wrap-actions-expected-failures

Conversation

@leongdl

@leongdl leongdl commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Important

Expected-failure fixtures — do not expect these to pass. Every fixture in this PR is believed spec-correct and FAILS against at least one current reference implementation. They are parked in a proposed/ directory the conformance runner does not discover, so merging keeps the suite green. Each has a README entry with the observed output, spec citation, and classification. When a fix lands, promote the fixture up one directory unchanged — it becomes the regression test.

Contents (1 fixture)

wrap-repr-py-escapes-newline-in-wrapped-args — implementation bug in both openjd-rs and the Python CLI. Expression Language §2.2.6 is explicit (repr_py("hello\nworld")'hello\\nworld'), but both emit the newline raw inside the quotes, producing an invalid Python literal. This breaks RFC 0008's own recommended wrap-forwarding pattern repr_py(WrappedAction.Args) for any multi-line arg.

The README also records a related spec/suite inconsistency worth resolving alongside: Template Schemas §5.2 forbids Cc characters (newlines) in <ArgString> and the WRAP_ACTIONS security matrix claims newline args are rejected — but both implementations accept them and the suite's own multi-line python -c convention depends on the acceptance. The two cannot both stand.

Companion to the green-fixture PR from branch conformance-wrap-actions-gaps.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Quorum verdict: GOOD-WITH-NITS (4 reviewers flagged variants of the same two issues) — spec: EL §2.2.6 repr_py (newline must be escaped — spec gives the exact worked example) via RFC 0008 WrappedAction.Args forwarding.

(1) Spec self-tension, correctly disclosed but under-weighted: the fixture's own onRun args contain a literal U+000A, which §5.2's ArgString Cc-exclusion arguably forbids — as written the template may be spec-invalid, so promotion is contingent on resolving §5.2 vs the multi-line python -c convention (which the Deadline Docker container env also relies on; if §5.2 is enforced, that breaks service-wide). Resolve the spec question first.
(2) Attribution: README says "implementation bug (openjd-rs)" but the 2026-08-12 sweep shows it fails BOTH implementations — state Python's status.
(3) Partial overlap with PR #165's expr2.2.6--repr-py-newline-roundtrip (same root defect); the end-to-end wrap path justifies keeping both, but cross-reference them.

@leongdl

leongdl commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Quorum review (5 independent agents). 1 fixture + README. Verdict: GOOD-WITH-NITS. The repr_py newline defect is real (fails BOTH implementations per the 2026-08-12 sweep) and the end-to-end wrap-forwarding angle adds value over PR #165's unit-level twin — but the fixture is hostage to an unresolved spec tension its own README flags, and the README under-attributes the failure. Cross-PR: this branch uses component-level WRAP_ACTIONS/proposed/ while PR #166 uses kind-level job_templates/proposed/ — the five expected-failures PRs should standardize on one placement (kind-level routes promotion mechanically).

Spec-correct fixtures that FAIL against current reference implementations, parked in a proposed/ directory the conformance runner does not discover, so merging keeps the suite green. Each entry in proposed/README.md records the observed output, spec citation, and classification. Promote each fixture up one directory unchanged when its implementation fix lands. Companion to conformance-wrap-actions-gaps.

Review: quorum-review fixes — kind-level proposed/ placement
(jobs/proposed/); README corrected: the defect fails BOTH implementations
(2026-08-12 sweep), the §5.2 ArgString conflict is now the stated
promotion gate rather than a footnote (the fixture's own args are
arguably spec-invalid until that is resolved), and the unit-level repr_py
twin in the func-lib expected-failures PR is cross-referenced.

Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>
@leongdl
leongdl force-pushed the conformance-wrap-actions-expected-failures branch from 8ad36ab to cf644fb Compare August 15, 2026 19:26
@leongdl

leongdl commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Quorum-review fixes applied and pushed (rebased onto mainline 3069673):

  • Restructured to kind-level parking: WRAP_ACTIONS/jobs/proposed/ (promotion = move up one directory).
  • README corrected: the repr_py newline defect fails both implementations (2026-08-12 sweep), not just openjd-rs.
  • The §5.2 ArgString/newline conflict is now the stated promotion gate rather than a footnote — as written the fixture's own args are arguably spec-invalid until that's resolved (and the resolution also decides the fate of the multi-line python -c convention suite-wide).
  • Cross-referenced the unit-level twin in the func-lib expected-failures PR (test: [expected failures] function-library fixtures pending spec decisions #165).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant