Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

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

Open
#1,427 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
perl

Research direction

Run the Test::Unit 0.30 suite on both the JVM and interpreter backends, starting with t/tlib/ExceptionChecker.pm and the tests t/all_tests.t, t/assert.t, and t/try_examples.t. Trace the dynamic catch ... with parse failure and the ./ example-path discrepancy, then add project-owned regression coverage. Done means all 89 upstream tests pass on both backends without changing the upstream tests.

Written by the indexing model from the issue text.

Description

bug

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.

Dominant language
Perl
Stars
64
Forks
6
Avg merge
5h 38m
Merged PRs (30d)
170

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fglock/PerlOnJava

All issues in fglock/PerlOnJava

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.