JVM backend continues after dynamic Test::More skip_all
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Área
- backend, testing-qa
Línea de trabajo
Start with the minimal reproducer and the JVM backend's Test::More/Test2 skip-all path, then compare it with the interpreter backend. Use t/live_prerelease.t as the real-world case and add the suggested permanent unit test for a dynamically evaluated skip_all followed by a failing statement. Done means both backends exit successfully while preserving the skip TAP output.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
The JVM backend does not terminate successfully after Test::More receives a
dynamic skip_all plan. It prints the skip plan but continues executing the
rest of the test file. The interpreter backend and standard Perl terminate
successfully.
CPAN evidence
- Distribution:
Net::Google::Storage0.2.0 - CPAN run:
20260921-124328-13959 - Failing test:
t/live_prerelease.t - Passing test:
t/basic.t - System Perl focused result: pass;
t/basic.tpasses and
t/live_prerelease.tis skipped becauseTest::Classis unavailable. - The live test also requires optional Google Storage credentials/configuration
and is not part of the local functional test.
The archived JVM result was:
Can't locate object method "runtests" via package "Test::Class"
at t/live_prerelease.t line 10.
t/live_prerelease.t ...... skipped: Probable missing Test::Class
Result: FAIL
The test contains this optional-dependency guard:
BEGIN {
use lib 't/lib';
eval { require Net::Google::Storage::Test; };
if ($@) {
eval "use Test::More skip_all => 'Probable missing Test::Class';";
}
}
Test::Class->runtests;
The upstream test is fragile because the method call is unconditional, but
standard Perl's skip_all behavior makes the file exit successfully before
that call.
Minimal reproducer
eval { require Test::Class::DefinitelyMissing };
if ($@) {
eval q{use Test::More skip_all => "missing optional dependency"};
}
Test::Class->runtests;
Observed results:
| Runtime | Result |
|---|---|
| System Perl | 1..0 # SKIP ..., exit 0 |
| PerlOnJava JVM backend | 1..0 # SKIP ..., then missing-method error, exit 255 |
| PerlOnJava interpreter backend | 1..0 # SKIP ..., exit 0 |
The JVM backend also prints AFTER-SKIP for a variant that prints after the
skip_all call, proving that execution continues after the skip plan. The
interpreter backend does not print it.
Expected behavior
The JVM backend should treat a skip_all plan as successful test termination,
including when Test::More is loaded dynamically inside eval STRING. Code
following the skip plan must not execute, and the process should exit 0.
Suggested acceptance coverage
Add a permanent unit test covering a dynamically evaluated
Test::More skip_all followed by an otherwise-failing statement. Require
successful exit on both the JVM and interpreter backends, while preserving the
skip TAP output.
Likely ownership
This appears to be a JVM-backend control-flow/exit propagation issue in the
Test::More/Test2 skip-all path, not a Net::Google::Storage API or module
implementation issue.
- Lenguaje dominante
- Perl
- Estrellas
- 64
- Forks
- 6
- Merge medio
- 4 h 45 min
- PR fusionados (30 d)
- 180
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de fglock/PerlOnJava
-
area:cpan-port area:database bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
fglock/PerlOnJava#1605 ·
Los mantenedores suelen responder en 1 día
-
area:cpan-port area:database bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
fglock/PerlOnJava#1604 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
fglock/PerlOnJava#1579 ·
Los mantenedores suelen responder en 1 día
-
area:cpan-port area:unicode bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
fglock/PerlOnJava#1341 ·
Los mantenedores suelen responder en 1 día
-
area:runtime bug
Dificultad 4/5 3-5 días Aptitud para principiantes 68/100
fglock/PerlOnJava#1610 ·
Los mantenedores suelen responder en 1 día
Todos los issues de fglock/PerlOnJava
Issues similares
-
language/en needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
kubernetes/website#57846 · 2 comentarios ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
objectionary/eolang.sty#184 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
XS::Parse::Infix versions from 0.40 through 0.49 for Perl treat a number as an array referenceAbierto1.severity: security
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día