action #162866
closed
Compile test does not work without TEST_PG set on current Tumbleweed 20240622 size:S
Added by jbaier_cz 6 months ago.
Updated 5 months ago.
Category:
Regressions/Crashes
Description
Observation¶
Compile test fails
Steps to reproduce¶
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'
Suggestions¶
- Read comments about upstream changes that triggered that new behaviour
- The problem is triggered by code in t/lib/OpenQA/Test/Database.pm doing
plan skip_all => 'set TEST_PG to e.g. "DBI:Pg:dbname=test" to enable this test' unless $ENV{TEST_PG};
which effectively exits from BEGIN so reconsider that
- Use
use_ok 'OpenQA::Test::Database'
or require OpenQA::Test::Database
instead of use OpenQA::Test::Database
. Where? one line in t/lib/OpenQA/SeleniumTest.pm already does that, git grep 'use OpenQA::Test::Database'
shows other uses
- 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
- Status changed from New to In Progress
- Assignee set to tinita
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
- Due date set to 2024-07-11
Setting due date based on mean cycle time of SUSE QE Tools
- Status changed from In Progress to Workable
- Status changed from Workable to New
- Assignee deleted (
tinita)
- Due date deleted (
2024-07-11)
- Subject changed from Compile test does not work without TEST_PG set on current Tumbleweed 20240622 to Compile test does not work without TEST_PG set on current Tumbleweed 20240622 size:S
- Description updated (diff)
- Status changed from New to Workable
- Status changed from Workable to In Progress
- Assignee set to tinita
- Status changed from In Progress to Feedback
- Status changed from Feedback to Workable
- Assignee deleted (
tinita)
- Status changed from Workable to Resolved
- Assignee set to tinita
Also available in: Atom
PDF