test: Add 27 EXPR expression-language conformance fixtures - #160
Open
leongdl wants to merge 1 commit into
Open
Conversation
…gaps 27 new fixtures, 1 strengthened, 3 renamed: direct path property access on all four routes (pins PR #292), unresolved[T] progressive evaluation incl. the failing-arm suppression case, let-scope must-rejects, in-expression scope negatives, whole-field null-drop (FEATURE_BUNDLE_1 timeout), operator precedence and associativity pins, string escapes and uppercase numeric prefixes, misplaced-underscore rejects, cross-type ordering/membership/not errors, IEEE float precision and NaN-arithmetic, HasPathMappingRules true branch, let boundary edges, int64-max accept twins, and the supplied-value 2^63 reject verified green on both implementations. Suite: 350 -> 379 passing. Spec-correct fixtures that FAIL today are split to conformance-expr-lang-expected-failures. Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>
Contributor
Author
|
CI note: the two failing fixtures on the Rust leg (7.3--task-file-property-direct / -embedded) are expected against the RELEASED openjd-rs — they pin the Task.File property-access fix merged in openjd-rs PR #292, which has not shipped in a release yet. They pass against openjd-rs main. Separately, mainline CI is currently red for every PR due to two pre-existing broken fixtures (wrap-env-let-bindings-in-hooks, wrap-failed-enter-still-runs-wrap-exit) unrelated to this change. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
27 new EXPR fixtures, 1 strengthened, 3 renamed, from a coverage audit of RFC 0005 / the published Expression Language spec. Suite: EXPR 350 → 379 passing, FEATURE_BUNDLE_1 55 → 57, 0 failing.
Areas covered
{{Task.File.<n>.name}}, embedded with surrounding text, inside a function call, andEnv.Filedirect. This is the exact shape of the validator bug fixed in openjd-rs PR #292; the only pre-existing fixture reached the property through aletbinding, the one route that never failed. All four now green on both implementations.unresolved[T]progressive evaluation (zero prior fixtures mentioned it): valid op on an unresolved symbol passescheck; type error on an unresolved value rejected atcheck; and the failing-arm suppression case —x if <unresolved bool> else <type-error arm>must validate, catching eager over-rejection.letscope must-rejects: step-templateletreferencingSession.WorkingDirectory/Task.Param.*/Task.File.*; environment-scriptletreferencingTask.Param.*— every §3.6.2 must-reject cell was previously empty.letvariants.timeout— audited every@fmtstringannotation; it is the only optional scalar expression field), plus the non-null control.-2**2 == -4,2**3**2 == 512(right-assoc),a + b * c,not/and/orbinding — 11 pins in one fixture.\xhh/\uhhhh/\Uhhhhhhhh/\N{name}escapes; uppercase0X/0O/0B/Rprefixes;00valid;1e10is float (discriminated via §1.3.4 pass-through); three misplaced-underscore rejects.1 < "a",not 1,path(...)[0]rejected.0.1 + 0.2 == 0.30000000000000004asserted (the spec's own worked example);0.0/0.0rejected;float("-inf")rejected.Session.HasPathMappingRulestrue branch via the runner'spathMapping:key — previously only ever assertedfalse.expr2.1.6--and-or-value-returninggainedor-sentinel null discrimination and thefalse and xcase.expr1.3.11--*fixtures →expr1.3.12--*(they test §1.3.12 range field extensions; §1.3.11 is Error Handling).Companion PR
Five spec-correct fixtures that FAIL today (int64 param-default acceptance, the openjd-rs 2^62 false-reject, and others) are in the expected-failures PR (branch
conformance-expr-lang-expected-failures).