From 7c4f05e6bb182627fddf75ef23ab902f53720301 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 24 Jul 2025 07:37:52 +0200 Subject: [PATCH] Bug 40490: Remove warnings from GD::Barcode::QRcode - U24 01:18:38 koha_1 | # Failed test 'no warnings' 01:18:38 koha_1 | # at /usr/share/perl/5.38/Test/Builder.pm line 193. 01:18:38 koha_1 | # There were 6 warning(s) 01:18:38 koha_1 | # Previous test 4 '401 Unauthorized' 01:18:38 koha_1 | # Use of uninitialized value $aMask[1079] in bitwise xor (^) at /usr/share/perl5/GD/Barcode/QRcode.pm line 217. 01:18:38 koha_1 | # at /usr/share/perl5/GD/Barcode/QRcode.pm line 217. jammy (22.04LTS) (perl): 1.15-7 noble (24.04LTS) (perl): 2.00-1 I guess it's fixed by https://github.com/mbeijen/GD-Barcode/commit/85e7911e65bf1c4746d9ce2e743580bbf51da793 But it is not released yet: version 2 is from September 2023 and commit from March 2024. Test plan: Install version 2 of GD::Barcode: `cpanm GD::Barcode@2.0.0` Run the tests Without this patch the "no warnings" test fails With this patch applied the tests pass --- t/db_dependent/api/v1/two_factor_auth.t | 28 +++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/t/db_dependent/api/v1/two_factor_auth.t b/t/db_dependent/api/v1/two_factor_auth.t index ddb9178e3a2..175e6e9529d 100755 --- a/t/db_dependent/api/v1/two_factor_auth.t +++ b/t/db_dependent/api/v1/two_factor_auth.t @@ -90,7 +90,19 @@ subtest 'registration and verification' => sub { $tx = $t->ua->build_tx( POST => "/api/v1/auth/two-factor/registration" ); $tx->req->cookies( { name => 'CGISESSID', value => $session->id } ); $tx->req->env( { REMOTE_ADDR => $remote_address } ); - $t->request_ok($tx)->status_is(201); + { + # Ignore the following warning + # Use of uninitialized value $aMask[1383] in bitwise xor (^) at /usr/local/share/perl/5.36.0/GD/Barcode/QRcode.pm line 217. + # We do not want to expect it (using Test::Warn): it is a bug from GD::Barcode + local $SIG{__WARN__} = sub { }; + my $dup_err; + local *STDERR; + open STDERR, ">>", \$dup_err; + + $t->request_ok($tx)->status_is(201); + + close STDERR; + } my $secret32 = $t->tx->res->json->{secret32}; $tx = $t->ua->build_tx( POST => "/api/v1/auth/two-factor/registration/verification" ); @@ -120,7 +132,19 @@ subtest 'registration and verification' => sub { $tx = $t->ua->build_tx( POST => "/api/v1/auth/two-factor/registration" ); $tx->req->cookies( { name => 'CGISESSID', value => $session->id } ); $tx->req->env( { REMOTE_ADDR => $remote_address } ); - $t->request_ok($tx)->status_is(201); + { + # Ignore the following warning + # Use of uninitialized value $aMask[1383] in bitwise xor (^) at /usr/local/share/perl/5.36.0/GD/Barcode/QRcode.pm line 217. + # We do not want to expect it (using Test::Warn): it is a bug from GD::Barcode + local $SIG{__WARN__} = sub { }; + my $dup_err; + local *STDERR; + open STDERR, ">>", \$dup_err; + + $t->request_ok($tx)->status_is(201); + + close STDERR; + } $secret32 = $t->tx->res->json->{secret32}; $auth = Koha::Auth::TwoFactorAuth->new( { patron => $patron, secret32 => $secret32 } ); -- 2.34.1