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:
-
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 { ... }
-
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.
Summary
The CPAN compatibility run
20260918-141920-96054reportsTest::Unit0.30 as a failure, although the same upstream distribution passes completely under system Perl.Reproduction
Run the normal
Test::Unit0.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— passt/assert.t— passt/try_examples.t— passActual result
PerlOnJava reports 3 failed test programs and 1 failed subtest out of 4:
t/all_tests.tandt/assert.tfail while loadingt/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 { ... }t/try_examples.truns, 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::Unit0.30 passes all upstream tests on both backends.catch ... withsyntax and the./path discrepancy.Evidence
20260918-141920-96054Test-Unit-0.30PASS, 3 files / 89 testsFAIL, 3 files / 4 observed subtestsThe 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.