JVM backend continues after dynamic Test::More skip_all
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 68/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- backend, testing-qa
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Perl
- Star
- 64
- Fork
- 6
- Merge trung bình
- 5 giờ 38 phút
- Pull request đã merge (30 ngày)
- 170
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của fglock/PerlOnJava
-
area:cpan-port area:unicode bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
fglock/PerlOnJava#1341 ·
-
area:backend area:runtime bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#1511 ·
-
area:backend area:cpan-port bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#1508 · 1 bình luận ·
-
Port IPC::SysV (low priority) Đang mởarea:cpan-port area:platform enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
fglock/PerlOnJava#1507 ·
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
fglock/PerlOnJava#1506 ·
Tất cả issue của fglock/PerlOnJava
Issue tương tự
-
documentation Needs Triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
trizen/youtube-viewer#456 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
connectivity Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
-
Common US ingredient names are not recognized, so about 12.4k US products miss an allergen warning Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
openfoodfacts/openfoodfacts-server#14657 · 4 bình luận ·