Project

General

Profile

Actions

action #162866

open

Compile test does not work without TEST_PG set on current Tumbleweed 20240622

Added by jbaier_cz 5 days ago. Updated 3 days ago.

Status:
Workable
Priority:
Normal
Assignee:
Category:
Regressions/Crashes
Target version:
Start date:
2024-06-25
Due date:
2024-07-11 (Due in 11 days)
% Done:

0%

Estimated time:

Description

Observation

Compile test fails

Reproducer

From within the openQA checkout

# podman run --rm -ti -v .:/work -w /work opensuse/leap:15.6 bash -c 'zypper in -y openQA-devel &>/dev/null && perl -I lib -c t/basic.t'
t/basic.t syntax OK
podman run --rm -ti -v .:/work -w /work opensuse/tumbleweed:latest bash -c 'zypper in -y openQA-devel &>/dev/null && perl -I lib -c t/basic.t'
Actions #1

Updated by okurz 5 days ago

  • Subject changed from Compile test does not work without TEST_PG set to Compile test does not work without TEST_PG set on current Tumbleweed 20240622
  • Category set to Regressions/Crashes
Actions #2

Updated by tinita 4 days ago

  • Status changed from New to In Progress
  • Assignee set to tinita

I asked in the #toolchain channel on irc.perl.org
reproducer shows it changed in 5.38: https://gist.github.com/perlpunk/3042dcdd67c81fb404fe4e2395bb0b49 and it doesn't seem to be Test::More. Couldn't find anything in https://metacpan.org/release/PEVANS/perl-5.38.2/view/pod/perl5380delta.pod

Meanwhile, a simple workaround for use can be to use use_ok 'OpenQA::Test::Database' or require OpenQA::Test::Database instead of use OpenQA::Test::Database.

Actions #3

Updated by tinita 4 days ago

Fast answer: https://perldoc.perl.org/perl5380delta#INIT-blocks-no-longer-run-after-an-exit()-in-BEGIN

INIT blocks no longer run after an exit() in BEGIN
INIT blocks will no longer run after an exit() performed inside of a BEGIN. This means that the combination of the -v option and the -c option no longer executes a compile check as well as showing the perl version. The -v > option executes an exit(0) after printing the version information inside of a BEGIN block, and the -c check is implemented by using INIT hooks, resulting in the -v option taking precedence.

< ilmari> because skip_all does exit, and use is BEGIN, the -c test in INIT doesn't run

Actions #4

Updated by openqa_review 3 days ago

  • Due date set to 2024-07-11

Setting due date based on mean cycle time of SUSE QE Tools

Actions #5

Updated by tinita 3 days ago

  • Status changed from In Progress to Workable
Actions

Also available in: Atom PDF