Skip to content

[codex] Group compatibility suites by upstream package#459

Merged
bertysentry merged 1 commit intomainfrom
move-man7-testsuite
Apr 23, 2026
Merged

[codex] Group compatibility suites by upstream package#459
bertysentry merged 1 commit intomainfrom
move-man7-testsuite

Conversation

@bertysentry
Copy link
Copy Markdown
Contributor

What changed

This PR groups the compatibility integration suites by upstream family so the Failsafe report aggregates results more clearly.

  • moved the BWK suites into io.jawk.onetrueawk
  • moved the gawk suites into io.jawk.gawk
  • moved the POSIX suite into io.jawk.posix as PosixIT
  • made CompatibilityTestResources a small shared helper across those packages
  • updated the compatibility documentation to describe the new grouping

Why

The compatibility suites now come from three distinct upstream sources: BWK / One True Awk, the POSIX awk specification, and GNU Awk. Grouping them by package makes the Failsafe and site reports easier to read and keeps the code structure aligned with those sources.

Impact

  • mvn test still excludes the compatibility suites
  • mvn verify still runs them under Failsafe
  • Failsafe reports now group results under io.jawk.onetrueawk.*, io.jawk.posix.*, and io.jawk.gawk.*

Validation

  • mvn license:update-file-header
  • mvn formatter:format
  • mvn test
  • mvn verify

@bertysentry bertysentry requested a review from Copilot April 23, 2026 19:08
@bertysentry bertysentry marked this pull request as ready for review April 23, 2026 19:08
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR reorganizes the compatibility integration test suites into upstream-specific Java packages (BWK/One True Awk, POSIX, GNU Awk) to improve Failsafe report aggregation and aligns documentation with the new structure.

Changes:

  • Moved BWK integration suites into io.jawk.onetrueawk, gawk suites into io.jawk.gawk, and POSIX suite into io.jawk.posix (as PosixIT).
  • Promoted CompatibilityTestResources into a small shared public helper for resolving vendored IT resources across packages.
  • Updated compatibility site documentation to reflect the new suite grouping and sources.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/site/markdown/compatibility.md Documents the three upstream compatibility sources and the new package-based grouping.
src/it/java/io/jawk/posix/PosixIT.java Moves POSIX integration tests into a dedicated package and updates suite naming/docs.
src/it/java/io/jawk/onetrueawk/BwkTIT.java Moves BWK text-processing suite into io.jawk.onetrueawk and updates imports/docs.
src/it/java/io/jawk/onetrueawk/BwkPIT.java Moves BWK pattern suite into io.jawk.onetrueawk and updates imports/docs.
src/it/java/io/jawk/onetrueawk/BwkMiscIT.java Moves BWK misc suite into io.jawk.onetrueawk and updates imports/docs.
src/it/java/io/jawk/gawk/GawkOptionalFeatureIT.java Moves gawk optional-feature suite into io.jawk.gawk and updates docs/imports.
src/it/java/io/jawk/gawk/GawkLocaleIT.java Moves gawk locale suite into io.jawk.gawk and updates docs/imports.
src/it/java/io/jawk/gawk/GawkIT.java Moves core gawk suite into io.jawk.gawk and updates docs/imports.
src/it/java/io/jawk/gawk/GawkExtensionIT.java Moves gawk extension suite into io.jawk.gawk and updates docs/imports.
src/it/java/io/jawk/gawk/AbstractGawkSuite.java Moves shared gawk suite base class into io.jawk.gawk and uses shared resource helper.
src/it/java/io/jawk/CompatibilityTestResources.java Makes resource resolution helper public/static for cross-package IT reuse.
Comments suppressed due to low confidence (1)

src/it/java/io/jawk/posix/PosixIT.java:965

  • System.getenv() lookups on Windows are case-insensitive, but Jawk’s ENVIRON is populated using the exact keys from System.getenv().entrySet() (see AVM ENVIRON_OFFSET implementation). On Windows the PATH variable is commonly exposed as Path, so ENVIRON["PATH"] may print an empty string while System.getenv().get("PATH") returns a value, making this test fail on Windows. Consider either reverting to a consistently-cased variable name (and setting it via Failsafe config), or dynamically selecting the actual env key casing (e.g., find the key equalIgnoreCase("PATH") and use that exact key in both the script and expected value).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bertysentry bertysentry merged commit f4a47be into main Apr 23, 2026
9 checks passed
@bertysentry bertysentry deleted the move-man7-testsuite branch April 23, 2026 19:18
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.

2 participants