Skip to content

Test::Unit 0.30 fails on Error.pm catch syntax and example path normalization #1427

Description

@fglock

Summary

The CPAN compatibility run 20260918-141920-96054 reports Test::Unit 0.30 as a failure, although the same upstream distribution passes completely under system Perl.

Reproduction

Run the normal Test::Unit 0.30 test suite with PerlOnJava. The failure affects both the JVM backend and the interpreter backend.

Expected result

System Perl passes all 3 test programs and 89 tests:

  • t/all_tests.t — pass
  • t/assert.t — pass
  • t/try_examples.t — pass

Actual result

PerlOnJava reports 3 failed test programs and 1 failed subtest out of 4:

  1. t/all_tests.t and t/assert.t fail while loading t/tlib/ExceptionChecker.pm:

    Bareword found where operator expected (Do you need to predeclare "with"?) at t/tlib/ExceptionChecker.pm line 37, near "with"

    The affected Error.pm syntax is the dynamic exception selector form:

    catch $exception_class with { ... }

  2. t/try_examples.t runs, but its golden-output comparison fails because PerlOnJava reports:

    1) ./examples/fail_example.pm:19 - test_fail(fail_example)

    while the expected upstream output is:

    1) examples/fail_example.pm:19 - test_fail(fail_example)

Impact

This is a pure-Perl compatibility failure, not an XS/native dependency or environmental prerequisite. The parser failure prevents most of the suite from compiling, and the path discrepancy breaks the remaining example-output assertion.

Acceptance criteria

  • catch $exception_class with { ... } parses and executes equivalently to system Perl on both backends.
  • Test::Unit 0.30 passes all upstream tests on both backends.
  • The example failure path is normalized consistently with Perl behavior, without changing the upstream tests.
  • Add focused project-owned regression coverage for both the dynamic catch ... with syntax and the ./ path discrepancy.

Evidence

  • CPAN run: 20260918-141920-96054
  • Distribution: Test-Unit-0.30
  • System Perl result: PASS, 3 files / 89 tests
  • PerlOnJava result: FAIL, 3 files / 4 observed subtests
  • Both JVM and interpreter backends reproduce the parser failure.

The GitHub duplicate search was attempted during classification but the GitHub API was unavailable; please check for related parser or path-normalization issues before merging this report.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions