Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Fix Test::More non-local last SKIP warning suppression

Offen
#1,482 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
45/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
perl
Bereich
testing-qa

Rechercherichtung

The issue is in Test::More.pm around line 1413. Start by examining the skip() subroutine and how it uses 'no warnings "exiting"' before the 'last SKIP'. Run the failing test t/Tags-Output-Raw/09-put-preserve_from_attribute.t to reproduce the warning. Understand the PerlOnJava backend's control-flow and warning suppression to see why the pragma isn't working. Done looks like the test passing without the unexpected warning.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area:backend area:cpan-port area:runtime bug

Tags 0.16 fails Test::NoWarnings around non-local last SKIP

Summary

The upstream Tags 0.16 suite passes under system Perl but PerlOnJava fails one test because Test::More::skip() emits an unexpected Exiting subroutine via last warning while executing a non-local last SKIP.

Reproduction

The stable failing test is t/Tags-Output-Raw/09-put-preserve_from_attribute.t, whose skip block uses:

use warnings;
use Test::More tests => 4;
use Test::NoWarnings;

SKIP: {
    skip 'Need check.', 1;
}

Test::More::skip() executes last SKIP under no warnings 'exiting'. Standard Perl suppresses the warning and the test passes.

Results
  • Distribution: Tags 0.16
  • CPAN random-tester run: 20260922-093937-23377
  • System Perl: PASS, 38 files / 196 tests
  • PerlOnJava JVM backend: FAIL, 1 of 196 tests
  • PerlOnJava interpreter backend: FAIL, 1 of 196 tests

The PerlOnJava failure reports:

Exiting subroutine via last at Test/More.pm line 1413

The JVM minimal reproducer may additionally report Label not found for "last SKIP"; the archived distribution run fails through Test::NoWarnings because of the unexpected warning.

This is a PerlOnJava control-flow and warning-suppression compatibility issue, not a Tags implementation failure or native dependency issue.

Acceptance criteria
  • Test::More::skip() suppresses the exiting warning for its intentional non-local last SKIP on both backends.
  • The focused reproducer passes without an unexpected warning.
  • Tags 0.16 t/Tags-Output-Raw/09-put-preserve_from_attribute.t passes on both backends.
  • Add a project-owned, standard-Perl-validated regression test for this behavior.
Vorherrschende Sprache
Perl
Sterne
64
Forks
6
Ø Merge
5 Std.
Gemergte PRs (30 T.)
161

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus fglock/PerlOnJava

Alle Issues in fglock/PerlOnJava

Ähnliche Issues

Weitere Issues zu Perl

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.