Skip to content

Wire csvj-org/conformance suite into CI#3

Merged
peo-machine merged 1 commit into
masterfrom
wire-conformance-ci
May 27, 2026
Merged

Wire csvj-org/conformance suite into CI#3
peo-machine merged 1 commit into
masterfrom
wire-conformance-ci

Conversation

@peo-machine
Copy link
Copy Markdown
Contributor

Summary

Adds a conformance GHA job that runs the language-agnostic
csvj-org/conformance suite
against this checkout on every push and PR — 7 accept + 18 must-reject
vectors, no skips. Mirrors the pattern already in gocsvj
(gocsvj#11).

  • New tests/Conformance/ConformanceTest.php walks the vector tree
    using data providers. Two test methods (accept / must-reject) each
    iterate the matching directory; vector tree root comes from the
    CSVJ_CONFORMANCE_DIR env var set by CI.
  • phpunit.xml.dist now declares two named testsuites — unit
    (existing 45 cases, excludes tests/Conformance/) and
    conformance (the new driver). defaultTestSuite="unit" keeps
    the existing vendor/bin/phpunit invocation unchanged, so the
    test job and local phpunit runs remain identical.
  • New conformance CI job checks out
    csvj-org/conformance@master into a sibling directory, installs
    composer deps, and runs vendor/bin/phpunit --testsuite=conformance with the env var pointing at it.

Closes PLAN.md §7a's "Wire conformance suite into CI" task.

Test plan

  • vendor/bin/phpunit locally: 45 unit tests pass (default suite
    unchanged).
  • CSVJ_CONFORMANCE_DIR=../conformance vendor/bin/phpunit --testsuite=conformance locally: 25 conformance tests pass
    (7 accept + 18 must-reject, no skips).
  • GHA test matrix (PHP 8.2 / 8.3 / 8.4) — green.
  • GHA conformance job — green.

Adds a `conformance` GHA job that checks out
`csvj-org/conformance@master` alongside this repo and runs an opt-in
`conformance` PHPUnit testsuite against every vector — 7 accept + 18
must-reject, no skips. The default `vendor/bin/phpunit` run is
unaffected: `defaultTestSuite="unit"` keeps it scoped to the existing
unit tests, and the conformance suite is gated behind
`--testsuite=conformance` and the `CSVJ_CONFORMANCE_DIR` env var.

Closes PLAN.md §7a's "Wire conformance suite into CI" task. Same
shape as gocsvj's conformance CI job (gocsvj#11).
@peo-machine peo-machine merged commit 7c78b26 into master May 27, 2026
4 checks passed
@peo-machine peo-machine deleted the wire-conformance-ci branch May 27, 2026 11:26
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