Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package openQA for openSUSE:Factory checked 
in at 2026-05-07 15:45:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
 and      /work/SRC/openSUSE:Factory/.openQA.new.1966 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openQA"

Thu May  7 15:45:54 2026 rev:845 rq:1351390 version:5.1778134320.e889287c

Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes    2026-05-06 
19:19:37.881371989 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.1966/openQA.changes  2026-05-07 
15:47:30.389357879 +0200
@@ -1,0 +2,18 @@
+Thu May 07 06:12:10 UTC 2026 - [email protected]
+
+- Update to version 5.1778134320.e889287c:
+  * test: simplify postgres healthcheck in docker-compose
+  * fix: correctly handle MOJO_CLIENT_DEBUG in Helm chart
+  * test: add yamale and yamllint to test_helm_chart dependencies
+  * test: fail early in test_helm_chart if dependencies are missing
+  * test: use isolated environment for helm chart tests
+  * test: serialize helm chart test execution
+  * refactor: Remove superfluous line in script usage
+  * style: Enforce perlcritic policy Subroutines::RequireArgUnpacking
+  * fix: ktap: ignore selftest status comments
+  * fix(apparmor): allow write to /dev/tty necessary for Leap 16
+  * chore(spec): Exclude devel sub package from builds for Leap < 16
+  * ci: Ensure all required dependencies are part of the devel container
+  * fix(apparmor): allow further paths for 16.x
+
+-------------------------------------------------------------------

Old:
----
  openQA-5.1777995277.b985bea2.obscpio

New:
----
  openQA-5.1778134320.e889287c.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:31.773414684 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:31.777414848 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-client
 Name:           %{short_name}-test
-Version:        5.1777995277.b985bea2
+Version:        5.1778134320.e889287c
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:31.817416490 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:31.821416654 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-devel
 Name:           %{short_name}-test
-Version:        5.1777995277.b985bea2
+Version:        5.1778134320.e889287c
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:31.857418132 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:31.861418295 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA
 Name:           %{short_name}-test
-Version:        5.1777995277.b985bea2
+Version:        5.1778134320.e889287c
 Release:        0
 Summary:        Test package for openQA
 License:        GPL-2.0-or-later

++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:31.901419937 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:31.901419937 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-worker
 Name:           %{short_name}-test
-Version:        5.1777995277.b985bea2
+Version:        5.1778134320.e889287c
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:31.937421415 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:31.941421579 +0200
@@ -47,7 +47,12 @@
 %bcond_with devel_package
 %bcond_with munin_package
 %else
+# exclude devel sub package on Leap < 16 as not all develoment dependencies 
are present anymore
+%if 0%{?is_opensuse} && 0%{?suse_version} < 1600
+%bcond_with devel_package
+%else
 %bcond_without devel_package
+%endif
 %bcond_without munin_package
 %endif
 # runtime requirements that also the testsuite needs
@@ -90,16 +95,16 @@
 %define qemu qemu
 %endif
 # The following line is generated from dependencies.yaml
-%define style_check_requires ShellCheck pandoc perl(Code::TidyAll) 
perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) 
perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt
+%define style_check_requires ShellCheck perl(Code::TidyAll) perl(Perl::Critic) 
perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) 
python3-gitlint python3-yamllint shfmt
 # The following line is generated from dependencies.yaml
 %define cover_requires perl(Devel::Cover) 
perl(Devel::Cover::Report::Codecovbash)
 # The following line is generated from dependencies.yaml
-%define devel_no_selenium_requires %build_requires %cover_requires %qemu 
%style_check_requires %test_requires curl make perl(Perl::Tidy) 
perl(Test::CheckGitStatus) postgresql-devel rsync sudo tar xorg-x11-fonts
+%define devel_no_selenium_requires %build_requires %cover_requires %qemu 
%style_check_requires %test_requires curl make pandoc perl(Perl::Tidy) 
perl(TAP::Harness::JUnit) perl(Test::CheckGitStatus) postgresql-devel 
python3-weasyprint rsync sudo tar xorg-x11-fonts
 # The following line is generated from dependencies.yaml
 %define devel_requires %devel_no_selenium_requires chromedriver
 
 Name:           openQA
-Version:        5.1777995277.b985bea2
+Version:        5.1778134320.e889287c
 Release:        0
 Summary:        The openQA web-frontend, scheduler and tools
 License:        GPL-2.0-or-later

++++++ openQA-5.1777995277.b985bea2.obscpio -> 
openQA-5.1778134320.e889287c.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/.mergify.yml 
new/openQA-5.1778134320.e889287c/.mergify.yml
--- old/openQA-5.1777995277.b985bea2/.mergify.yml       2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/.mergify.yml       2026-05-07 
08:12:00.000000000 +0200
@@ -13,7 +13,7 @@
           # "unresolvable" is not reported in general:
           # 
https://trello.com/c/0N3jHq5M/2257-report-back-to-scm-when-build-results-arent-failed-and-succeeded
           # So we need to require the number of tests explicitly:
-          - "#check-success>=47"
+          - "#check-success>=45"
           - status-success=static-check-containers
           - status-success=webui-docker-compose
           - "#check-failure=0"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/.perlcriticrc 
new/openQA-5.1778134320.e889287c/.perlcriticrc
--- old/openQA-5.1777995277.b985bea2/.perlcriticrc      2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/.perlcriticrc      2026-05-07 
08:12:00.000000000 +0200
@@ -1,6 +1,6 @@
 theme = community + openqa
 severity = 4
-include = strict ValuesAndExpressions::ProhibitInterpolationOfLiterals 
CodeLayout::ProhibitParensWithBuiltins BuiltinFunctions::RequireBlockMap 
BuiltinFunctions::ProhibitStringySplit 
ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions 
ValuesAndExpressions::RequireQuotedHeredocTerminator 
Variables::ProhibitUnusedVariables 
ValuesAndExpressions::RequireNumberSeparators 
CodeLayout::ProhibitQuotedWordLists 
RegularExpressions::ProhibitSingleCharAlternation 
BuiltinFunctions::RequireBlockGrep RegularExpressions::ProhibitUselessTopic 
Variables::ProtectPrivateVars
+include = strict ValuesAndExpressions::ProhibitInterpolationOfLiterals 
CodeLayout::ProhibitParensWithBuiltins BuiltinFunctions::RequireBlockMap 
BuiltinFunctions::ProhibitStringySplit 
ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions 
ValuesAndExpressions::RequireQuotedHeredocTerminator 
Variables::ProhibitUnusedVariables 
ValuesAndExpressions::RequireNumberSeparators 
CodeLayout::ProhibitQuotedWordLists 
RegularExpressions::ProhibitSingleCharAlternation 
BuiltinFunctions::RequireBlockGrep RegularExpressions::ProhibitUselessTopic 
Variables::ProtectPrivateVars Subroutines::RequireArgUnpacking
 
 # ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions
 # No operators like < =~ ! allowed in 'unless' or 'until', only simple
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/Makefile 
new/openQA-5.1778134320.e889287c/Makefile
--- old/openQA-5.1777995277.b985bea2/Makefile   2026-05-05 17:34:37.000000000 
+0200
+++ new/openQA-5.1778134320.e889287c/Makefile   2026-05-07 08:12:00.000000000 
+0200
@@ -446,7 +446,7 @@
        tools/test_helm_chart lint
 
 .PHONY: test-helm-install
-test-helm-install: ## Install helm chart for testing
+test-helm-install: test-helm-lint ## Install helm chart for testing
        RETRY=${RETRY} timeout --foreground -s SIGINT -k 5 -v 
${TIMEOUT_RETRIES} tools/retry tools/test_helm_chart install
 
 .PHONY: update-deps
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/container/devel/Dockerfile 
new/openQA-5.1778134320.e889287c/container/devel/Dockerfile
--- old/openQA-5.1777995277.b985bea2/container/devel/Dockerfile 2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/container/devel/Dockerfile 2026-05-07 
08:12:00.000000000 +0200
@@ -20,7 +20,7 @@
 # endlabelprefix
 
 # hadolint ignore=DL3037
-RUN zypper in -y os-autoinst-devel openQA-devel vim nodejs-default git mc 
perl-Devel-REPL perl-Term-ReadKey && \
+RUN zypper in -y os-autoinst-devel openQA-devel vim nodejs-default git mc 
perl-Devel-REPL perl-Term-ReadKey perl-TAP-Harness-JUnit && \
     zypper clean -a
 
 ENV OPENQA_DIR=/opt/openqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/container/helm/openqa/templates/deployment.yaml
 
new/openQA-5.1778134320.e889287c/container/helm/openqa/templates/deployment.yaml
--- 
old/openQA-5.1777995277.b985bea2/container/helm/openqa/templates/deployment.yaml
    2026-05-05 17:34:37.000000000 +0200
+++ 
new/openQA-5.1778134320.e889287c/container/helm/openqa/templates/deployment.yaml
    2026-05-07 08:12:00.000000000 +0200
@@ -122,7 +122,7 @@
             - name: MOJO_LISTEN
               value: "http://0.0.0.0:9526";
             - name: MOJO_CLIENT_DEBUG
-              value: ${MOJO_CLIENT_DEBUG}
+              value: {{ .Values.mojoClientDebug | quote }}
           ports:
             - containerPort: 9526
           readinessProbe:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/container/helm/openqa/values.yaml 
new/openQA-5.1778134320.e889287c/container/helm/openqa/values.yaml
--- old/openQA-5.1777995277.b985bea2/container/helm/openqa/values.yaml  
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/container/helm/openqa/values.yaml  
2026-05-07 08:12:00.000000000 +0200
@@ -3,6 +3,7 @@
 useHttps: false
 key: 1234567890ABCDEF
 secret: 1234567890ABCDEF
+mojoClientDebug: "0"
 image:
   name: registry.opensuse.org/devel/openqa/containers16.0/openqa_webui
   pullPolicy: Always
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/container/webui/docker-compose.yaml 
new/openQA-5.1778134320.e889287c/container/webui/docker-compose.yaml
--- old/openQA-5.1777995277.b985bea2/container/webui/docker-compose.yaml        
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/container/webui/docker-compose.yaml        
2026-05-07 08:12:00.000000000 +0200
@@ -115,6 +115,9 @@
     environment:
       MODE: "webui"
       MOJO_LISTEN: "http://0.0.0.0:9526";
+    depends_on:
+      db:
+        condition: service_healthy
     entrypoint: "sh -c 'chmod -R a+rwX /data/{factory,images,testresults}; 
/root/run_openqa.sh'"
     healthcheck:
       test: ["CMD", "curl", "-f", "http://localhost:9526/login";]
@@ -133,12 +136,7 @@
     volumes:
       - ./workdir/db:/var/lib/postgresql:Z
     healthcheck:
-      test:
-        - CMD-SHELL
-        - >-
-          pg_isready -U openqa -d openqa
-          && echo 'select * from api_keys;'
-          | psql -U openqa -v 'ON_ERROR_STOP=1' openqa
+      test: ["CMD-SHELL", "pg_isready -U openqa -d openqa"]
       interval: 10s
       timeout: 10s
       retries: 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/cpanfile 
new/openQA-5.1778134320.e889287c/cpanfile
--- old/openQA-5.1777995277.b985bea2/cpanfile   2026-05-05 17:34:37.000000000 
+0200
+++ new/openQA-5.1778134320.e889287c/cpanfile   2026-05-07 08:12:00.000000000 
+0200
@@ -121,6 +121,7 @@
     requires 'Perl::Critic::Community';
     requires 'Perl::Tidy', '== 20260204.0.0';
     requires 'Pod::Markdown';
+    requires 'TAP::Harness::JUnit';
     requires 'Test::CheckGitStatus';
     requires 'Test::Perl::Critic';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/dependencies.yaml 
new/openQA-5.1778134320.e889287c/dependencies.yaml
--- old/openQA-5.1777995277.b985bea2/dependencies.yaml  2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/dependencies.yaml  2026-05-07 
08:12:00.000000000 +0200
@@ -85,8 +85,11 @@
   sudo:
   tar:
   xorg-x11-fonts:
+  pandoc:  # for generating HTML documentation
+  python3-weasyprint:  # for generating PDF documentation
   perl(Perl::Tidy): '== 20260204.0.0'
   perl(Test::CheckGitStatus):
+  perl(TAP::Harness::JUnit):  # for JUnit-compatible test results
 
 devel_requires:
   '%devel_no_selenium_requires':
@@ -217,7 +220,6 @@
   perl(Perl::Critic::Community):
   perl(Code::TidyAll):
   perl(Pod::Markdown):
-  pandoc:
   ShellCheck:
   shfmt:
   python3-gitlint:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/dist/rpm/openQA.spec 
new/openQA-5.1778134320.e889287c/dist/rpm/openQA.spec
--- old/openQA-5.1777995277.b985bea2/dist/rpm/openQA.spec       2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/dist/rpm/openQA.spec       2026-05-07 
08:12:00.000000000 +0200
@@ -47,7 +47,12 @@
 %bcond_with devel_package
 %bcond_with munin_package
 %else
+# exclude devel sub package on Leap < 16 as not all develoment dependencies 
are present anymore
+%if 0%{?is_opensuse} && 0%{?suse_version} < 1600
+%bcond_with devel_package
+%else
 %bcond_without devel_package
+%endif
 %bcond_without munin_package
 %endif
 # runtime requirements that also the testsuite needs
@@ -90,11 +95,11 @@
 %define qemu qemu
 %endif
 # The following line is generated from dependencies.yaml
-%define style_check_requires ShellCheck pandoc perl(Code::TidyAll) 
perl(Perl::Critic) perl(Perl::Critic::Community) perl(Pod::Markdown) 
perl(Test::Perl::Critic) python3-gitlint python3-yamllint shfmt
+%define style_check_requires ShellCheck perl(Code::TidyAll) perl(Perl::Critic) 
perl(Perl::Critic::Community) perl(Pod::Markdown) perl(Test::Perl::Critic) 
python3-gitlint python3-yamllint shfmt
 # The following line is generated from dependencies.yaml
 %define cover_requires perl(Devel::Cover) 
perl(Devel::Cover::Report::Codecovbash)
 # The following line is generated from dependencies.yaml
-%define devel_no_selenium_requires %build_requires %cover_requires %qemu 
%style_check_requires %test_requires curl make perl(Perl::Tidy) 
perl(Test::CheckGitStatus) postgresql-devel rsync sudo tar xorg-x11-fonts
+%define devel_no_selenium_requires %build_requires %cover_requires %qemu 
%style_check_requires %test_requires curl make pandoc perl(Perl::Tidy) 
perl(TAP::Harness::JUnit) perl(Test::CheckGitStatus) postgresql-devel 
python3-weasyprint rsync sudo tar xorg-x11-fonts
 # The following line is generated from dependencies.yaml
 %define devel_requires %devel_no_selenium_requires chromedriver
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/lib/OpenQA/Parser/Format/KTAP.pm 
new/openQA-5.1778134320.e889287c/lib/OpenQA/Parser/Format/KTAP.pm
--- old/openQA-5.1777995277.b985bea2/lib/OpenQA/Parser/Format/KTAP.pm   
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/lib/OpenQA/Parser/Format/KTAP.pm   
2026-05-07 08:12:00.000000000 +0200
@@ -9,6 +9,14 @@
 use OpenQA::Parser::Result::OpenQA;
 use TAP::Parser;
 
+# Matches a selftests group header comment, e.g. "# selftests: cgroup: 
test_core".
+# The negative lookahead rejects inner status comments like "# selftests: test 
[PASS]".
+use constant SELFTESTS_GROUP_COMMENT_RE => 
qr/^#\s*selftests:\s+(?!.*\[[A-Z]+\]\s*$)[^:]+:\s+(.*\S)\s*$/;
+
+# Matches the description field of a TAP test-type summary line,
+# e.g. "selftests: cgroup: test_core" (no leading "# ").
+use constant SELFTESTS_GROUP_SUMMARY_RE => qr/^selftests:\s+[^:]+:\s+.*\S\s*$/;
+
 has [qw(test)];
 has state => sub { return {steps => undef, m => 0} };
 
@@ -21,8 +29,8 @@
         
$self->generated_tests_results->add(OpenQA::Parser::Result::OpenQA->new($steps));
     }
 
-    my ($group_name) = $line =~ /^#\s*selftests:\s+(.*)/;
-    my $sanitized_group_name = "selftests: $group_name";
+    my ($group_name) = $line =~ SELFTESTS_GROUP_COMMENT_RE;
+    my $sanitized_group_name = $group_name;
     $sanitized_group_name =~ s/[\/.]/_/g;
     $sanitized_group_name =~ s/\s//g;
 
@@ -130,14 +138,14 @@
         next if $result->type eq 'version' || $result->type eq 'plan';
 
         if ($result->type eq 'comment') {
-            if ($result->as_string =~ /^#\s*selftests:\s+/) {
+            if ($result->as_string =~ SELFTESTS_GROUP_COMMENT_RE) {
                 $self->_testgroup_init($result->as_string);
                 next;
             }
             $self->_parse_subtest($result);
             next;
         }
-        if ($result->type eq 'test' && $result->description =~ /^selftests: /) 
{
+        if ($result->type eq 'test' && $result->description =~ 
SELFTESTS_GROUP_SUMMARY_RE) {
             $self->_testgroup_finalize($result);
             next;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/profiles/apparmor.d/usr.share.openqa.script.openqa
 
new/openQA-5.1778134320.e889287c/profiles/apparmor.d/usr.share.openqa.script.openqa
--- 
old/openQA-5.1777995277.b985bea2/profiles/apparmor.d/usr.share.openqa.script.openqa
 2026-05-05 17:34:37.000000000 +0200
+++ 
new/openQA-5.1778134320.e889287c/profiles/apparmor.d/usr.share.openqa.script.openqa
 2026-05-07 08:12:00.000000000 +0200
@@ -8,6 +8,7 @@
   #include <abstractions/nameservice>
   #include <abstractions/perl>
 
+  /dev/tty rw,
   /etc/gitconfig r,
   /etc/openqa/client.conf r,
   /etc/openqa/client.conf.d/ r,
@@ -109,6 +110,7 @@
     #include <abstractions/nameservice>
 
     /{usr/,}etc/ssh/ssh_config r,
+    /{usr/,}etc/ssh/ssh_config.d/ r,
     /{usr/,}etc/ssh/ssh_config.d/** r,
     /etc/ssh/ssh_known_hosts r,
     /etc/ssl/openssl.cnf r,
@@ -134,6 +136,7 @@
   /opt/openqa-trigger-from-obs/*:*/*products* rw,
   /opt/openqa-trigger-from-obs/*:*/*/*products* rw,
 
+  /opt/os-autoinst-scripts/ r,
   /opt/os-autoinst-scripts/** rix,
   /usr/share/openqa/script/openqa-cli px,
   /usr/share/openqa/script/openqa-clone-job mrix,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/create_admin 
new/openQA-5.1778134320.e889287c/script/create_admin
--- old/openQA-5.1777995277.b985bea2/script/create_admin        2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/script/create_admin        2026-05-07 
08:12:00.000000000 +0200
@@ -4,8 +4,7 @@
 # Copyright 2015-2020 SUSE LLC
 # SPDX-License-Identifier: GPL-2.0-or-later
 
-use strict;
-use warnings;
+use Mojo::Base -signatures;
 
 use FindBin qw($RealBin);
 use lib "$RealBin/../lib";
@@ -23,7 +22,7 @@
 my $user = $ARGV[0];
 my $help;
 
-sub usage {
+sub usage ($rc) {
     print "Usage: $0 user [options]\n\n";
     print "  --email     : Email address.\n";
     print "  --nickname  : Nickname.\n";
@@ -31,8 +30,7 @@
     print "  --key       : API key (will be randomly generated if not set).\n";
     print "  --secret    : API secret (will be randomly generated if not 
set).\n";
     print "  user        : User ID (e.g. OpenID URL).\n";
-    print "usage: $_[0]\n";
-    exit $_[0];
+    exit $rc;
 }
 
 # need to count this *before* calling GetOptions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/initdb 
new/openQA-5.1778134320.e889287c/script/initdb
--- old/openQA-5.1777995277.b985bea2/script/initdb      2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/script/initdb      2026-05-07 
08:12:00.000000000 +0200
@@ -3,11 +3,10 @@
 # Copyright 2014-2021 SUSE LLC
 # SPDX-License-Identifier: GPL-2.0-or-later
 
+use Mojo::Base -signatures;
 use FindBin qw($RealBin);
 use lib "$RealBin/../lib";
 
-use strict;
-use warnings;
 use DBIx::Class::DeploymentHandler;
 use File::Basename qw(dirname);
 use OpenQA::Schema;
@@ -31,7 +30,7 @@
     'dir=s' => \$script_directory,
 );
 
-sub usage {
+sub usage ($rc) {
     print "Usage: $0 [flags]\n\n";
     print "  --prepare_init   : Create the deployment files used to initialize 
the database.\n";
     print "                     Don't forget to increase the version before 
using this\n";
@@ -45,7 +44,7 @@
     print "  --dir=directory  : Create deployment and migration scripts in 
this directory.\n";
     print "                     Default is '$default_script_directory'\n";
     print "  --help           : This help message.\n";
-    exit $_[0];
+    exit $rc;
 }
 
 usage 0 if $help;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/upgradedb 
new/openQA-5.1778134320.e889287c/script/upgradedb
--- old/openQA-5.1777995277.b985bea2/script/upgradedb   2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/script/upgradedb   2026-05-07 
08:12:00.000000000 +0200
@@ -3,11 +3,10 @@
 # Copyright 2014-2021 SUSE LLC
 # SPDX-License-Identifier: GPL-2.0-or-later
 
+use Mojo::Base -signatures;
 use FindBin qw($RealBin);
 use lib "$RealBin/../lib";
 
-use strict;
-use warnings;
 use aliased 'DBIx::Class::DeploymentHandler' => 'DH';
 use OpenQA::Schema;
 use Getopt::Long;
@@ -31,7 +30,7 @@
     'force' => \$force
 );
 
-sub usage {
+sub usage ($rc) {
     print "Usage: $0 [flags]\n\n";
     print "  --prepare_upgrades : Create the deployment files used to upgrade 
the database.\n";
     print "                       Don't forget to increase the version before 
using this\n";
@@ -43,7 +42,7 @@
     print "  --dir=directory    : Create deployment and migration scripts in 
this directory.\n";
     print "                       Default is '$default_script_directory'\n";
     print "  --help             : This help message.\n";
-    exit $_[0];
+    exit $rc;
 }
 
 usage 0 if $help;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/script/worker 
new/openQA-5.1778134320.e889287c/script/worker
--- old/openQA-5.1777995277.b985bea2/script/worker      2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/script/worker      2026-05-07 
08:12:00.000000000 +0200
@@ -114,7 +114,7 @@
 my $worker = OpenQA::Worker->new(\%options);
 $worker->log_setup_info();
 
-sub catch_exit { $worker->handle_signal(@_) }    # uncoverable statement
+sub catch_exit (@args) { $worker->handle_signal(@args) }    # uncoverable 
statement
 $SIG{HUP} = \*catch_exit;
 $SIG{TERM} = \*catch_exit;
 $SIG{INT} = \*catch_exit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/04-scheduler.t 
new/openQA-5.1778134320.e889287c/t/04-scheduler.t
--- old/openQA-5.1777995277.b985bea2/t/04-scheduler.t   2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/04-scheduler.t   2026-05-07 
08:12:00.000000000 +0200
@@ -82,8 +82,8 @@
     is $awake, 2, 'scheduler has been woken up again';
 };
 
-sub list_jobs {
-    [map { $_->to_hash(assets => 1) } $jobs->complex_query(@_)->all]
+sub list_jobs (@args) {
+    [map { $_->to_hash(assets => 1) } $jobs->complex_query(@args)->all]
 }
 sub job_get { $jobs->find({id => shift}) }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/05-scheduler-cancel.t 
new/openQA-5.1778134320.e889287c/t/05-scheduler-cancel.t
--- old/openQA-5.1777995277.b985bea2/t/05-scheduler-cancel.t    2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/05-scheduler-cancel.t    2026-05-07 
08:12:00.000000000 +0200
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 
 use FindBin;
 use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
@@ -183,8 +184,8 @@
     ARCH => 'x86_64',
 );
 
-sub _job_create {
-    my $job = $schema->resultset('Jobs')->create_from_settings(@_);
+sub _job_create (@args) {
+    my $job = $schema->resultset('Jobs')->create_from_settings(@args);
     # reload all values from database so we can check against default values
     $job->discard_changes;
     return $job;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/05-scheduler-capabilities.t 
new/openQA-5.1778134320.e889287c/t/05-scheduler-capabilities.t
--- old/openQA-5.1777995277.b985bea2/t/05-scheduler-capabilities.t      
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/05-scheduler-capabilities.t      
2026-05-07 08:12:00.000000000 +0200
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 
 use FindBin;
 use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
@@ -132,9 +133,7 @@
 $settingsJ{TEST} = 'J';
 $settingsJ{WORKER_CLASS} = 'qemu_x86_64';
 
-sub job_create {
-    return $schema->resultset('Jobs')->create_from_settings(@_);
-}
+sub job_create (@args) { 
$schema->resultset('Jobs')->create_from_settings(@args) }
 
 my $jobA = job_create(\%settingsA);
 my $jobB = job_create(\%settingsB);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/10-jobs-results.t 
new/openQA-5.1778134320.e889287c/t/10-jobs-results.t
--- old/openQA-5.1777995277.b985bea2/t/10-jobs-results.t        2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/10-jobs-results.t        2026-05-07 
08:12:00.000000000 +0200
@@ -32,8 +32,8 @@
     ARCH => 'x86_64',
 );
 
-sub _job_create {
-    my $job = $jobs->create_from_settings(@_);
+sub _job_create (@args) {
+    my $job = $jobs->create_from_settings(@args);
     # reload all values from database so we can check against default values
     $job->discard_changes;
     return $job;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/10-jobs.t 
new/openQA-5.1778134320.e889287c/t/10-jobs.t
--- old/openQA-5.1777995277.b985bea2/t/10-jobs.t        2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/10-jobs.t        2026-05-07 
08:12:00.000000000 +0200
@@ -68,8 +68,8 @@
     ARCH => 'x86_64',
 );
 
-sub _job_create {
-    my $job = $jobs->create_from_settings(@_);
+sub _job_create (@args) {
+    my $job = $jobs->create_from_settings(@args);
     # reload all values from database so we can check against default values
     $job->discard_changes;
     return $job;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/16-utils-runcmd.t 
new/openQA-5.1778134320.e889287c/t/16-utils-runcmd.t
--- old/openQA-5.1777995277.b985bea2/t/16-utils-runcmd.t        2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/16-utils-runcmd.t        2026-05-07 
08:12:00.000000000 +0200
@@ -281,9 +281,9 @@
     package Test::FakeMinionJob {
         sub finish { }
 
-        sub fail {
+        sub fail (@args) {    # uncoverable statement
             Test::Most::fail 'Minion job should not have failed.';    # 
uncoverable statement
-            Test::Most::note Data::Dumper::Dumper(\@_);    # uncoverable 
statement
+            Test::Most::note Data::Dumper::Dumper(\@args);    # uncoverable 
statement
         }
     }    # uncoverable statement
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/24-worker-jobs.t 
new/openQA-5.1778134320.e889287c/t/24-worker-jobs.t
--- old/openQA-5.1777995277.b985bea2/t/24-worker-jobs.t 2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/24-worker-jobs.t 2026-05-07 
08:12:00.000000000 +0200
@@ -127,7 +127,7 @@
         Mojo::IOLoop->next_tick(sub { $args{callback}->(\%cb_args) }) if 
$args{callback} && $args{callback} ne 'no';
     }
     sub reset_last_error { shift->last_error(undef) }
-    sub send_status { push @{shift->sent_messages}, @_ }
+    sub send_status ($self, @args) { push @{$self->sent_messages}, @args }
     sub register { shift->register_called(1) }
 
     sub add_context_to_last_error {
@@ -135,7 +135,7 @@
         $self->last_error($self->last_error . " on $context");
     }
     sub _retry_delay { 0 }
-    sub evaluate_error { OpenQA::Worker::WebUIConnection::evaluate_error(@_) }
+    sub evaluate_error (@args) { 
OpenQA::Worker::WebUIConnection::evaluate_error(@args) }
 }    # uncoverable statement count:1
 
 package Test::FakeEngine {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/26-controllerrunning.t 
new/openQA-5.1778134320.e889287c/t/26-controllerrunning.t
--- old/openQA-5.1777995277.b985bea2/t/26-controllerrunning.t   2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/26-controllerrunning.t   2026-05-07 
08:12:00.000000000 +0200
@@ -301,8 +301,8 @@
 
 package Mojo::Transaction::Fake;
 use Mojo::Base 'Mojo::Transaction', -signatures;
-sub resume { ++$_[0]{writing} and return $_[0]->emit('resume') }
-sub connection { shift->{fakestream} }
+sub resume ($self) { ++$self->{writing} and return $self->emit('resume') }
+sub connection ($self) { $self->{fakestream} }
 sub remote_address { '::1' }
 sub error { $fake_error }
 sub finish ($self) { $self->emit(finish => $self) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/30-test_parser.t 
new/openQA-5.1778134320.e889287c/t/30-test_parser.t
--- old/openQA-5.1777995277.b985bea2/t/30-test_parser.t 2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/30-test_parser.t 2026-05-07 
08:12:00.000000000 +0200
@@ -970,7 +970,7 @@
     is $parser->results->size, 5, 'Expected five test groups';
 
     my $result0 = $parser->results->get(0);
-    is $result0->{name}, 'selftests:cgroup:test_core', 'The first test group 
has expected name';
+    is $result0->{name}, 'test_core', 'The first test group has expected name';
 
     is $result0->result, 'passed', 'Group result is passed';
     is scalar @{$result0->details}, 12, 'Has 12 subtest details';
@@ -996,7 +996,7 @@
     is $parser->results->size, 3, 'Three test groups parsed (last one missing 
the final summary line)';
 
     my $last = $parser->results->get(2);
-    is $last->{name}, 'selftests:cgroup:test_zswap', 'Last test group name is 
correct';
+    is $last->{name}, 'test_zswap', 'Last test group name is correct';
     is scalar @{$last->details}, 7, 'Last group has 7 subtests';
     is $last->details->[0]->{title}, 'test_zswap_usage', 'First subtest parsed 
correctly';
     is $last->details->[-1]->{title}, 'test_no_invasive_cgroup_shrink', 'Last 
subtest parsed';
@@ -1021,6 +1021,40 @@
     is $group2->details->[1]{result}, 'ok';
 };
 
+subtest 'ktap ignores inner selftest status comments' => sub {
+    my $ktap = <<'EOF';
+TAP version 13
+1..3
+# selftests: bpf: test_xdp_redirect.sh
+# timeout set to 0
+# selftests: test_xdp_redirect xdpgeneric [PASS]
+# selftests: test_xdp_redirect xdpdrv [PASS]
+ok 1 selftests: bpf: test_xdp_redirect.sh
+# selftests: bpf: test_lwt_seg6local.sh
+# timeout set to 0
+# selftests: test_lwt_seg6local [PASS]
+ok 2 selftests: bpf: test_lwt_seg6local.sh
+# selftests: bpf: test_flow_dissector.sh
+# timeout set to 0
+# selftests: test_flow_dissector: ipv6 [FAILED]
+# selftests: test_flow_dissector [FAILED]
+not ok 3 selftests: bpf: test_flow_dissector.sh # exit=1
+EOF
+
+    my $p = OpenQA::Parser::Format::KTAP->new;
+    $p->parse($ktap);
+
+    is $p->results->size, 3, 'inner status comments do not create extra 
groups';
+    is_deeply [map { $p->results->get($_)->{name} } 0 .. 2],
+      [qw(test_xdp_redirect_sh test_lwt_seg6local_sh test_flow_dissector_sh)],
+      'group names use only sanitized test names';
+    is $p->results->get(0)->result, 'passed', 'first group passed';
+    is $p->results->get(1)->result, 'passed', 'second group passed';
+    is $p->results->get(2)->result, 'fail', 'failed summary still fails the 
group';
+    unlike $_->{name}, qr/\[(?:PASS|FAILED)\]/, 'status comment is not used as 
a group name'
+      for @{$p->results->to_array};
+};
+
 done_testing;
 
 package OpenQA::Parser::Format::Dummy {    # uncoverable statement
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/31-client_file.t 
new/openQA-5.1778134320.e889287c/t/31-client_file.t
--- old/openQA-5.1777995277.b985bea2/t/31-client_file.t 2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/31-client_file.t 2026-05-07 
08:12:00.000000000 +0200
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 use Test::Warnings ':report_warnings';
 
 use FindBin;
@@ -13,7 +14,7 @@
 use Mojo::File qw(path tempfile tempdir);
 use OpenQA::Test::TimeLimit '15';
 
-sub file_path { OpenQA::File->new(file => path(@_)) }
+sub file_path (@args) { OpenQA::File->new(file => path(@args)) }
 
 subtest 'base' => sub {
     my $file = file_path($FindBin::Bin, 'data', 'ltp_test_result_format.json');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/t/40-openqa-clone-job.t 
new/openQA-5.1778134320.e889287c/t/40-openqa-clone-job.t
--- old/openQA-5.1777995277.b985bea2/t/40-openqa-clone-job.t    2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/40-openqa-clone-job.t    2026-05-07 
08:12:00.000000000 +0200
@@ -3,6 +3,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 use Test::Warnings qw(warning :report_warnings);
 use FindBin;
 use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
@@ -12,10 +13,10 @@
 
 $ENV{OPENQA_CONFIG} = "$FindBin::Bin/data";
 
-sub test_once {
+sub test_once (@args) {
     # Report failure at the callsite instead of the test function
     local $Test::Builder::Level = $Test::Builder::Level + 1;
-    test_cmd('script/openqa-clone-job', @_);
+    test_cmd('script/openqa-clone-job', @args);
 }
 
 require "$FindBin::Bin/../script/openqa-clone-job";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/40-script_load_dump_templates.t 
new/openQA-5.1778134320.e889287c/t/40-script_load_dump_templates.t
--- old/openQA-5.1777995277.b985bea2/t/40-script_load_dump_templates.t  
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/40-script_load_dump_templates.t  
2026-05-07 08:12:00.000000000 +0200
@@ -20,16 +20,16 @@
 use Cpanel::JSON::XS ();
 
 
-sub test_once {
+sub test_once (@args) {
     # Report failure at the callsite instead of the test function
     local $Test::Builder::Level = $Test::Builder::Level + 1;
-    test_cmd(path(curfile->dirname, 
'../script/openqa-load-templates')->realpath, @_);
+    test_cmd(path(curfile->dirname, 
'../script/openqa-load-templates')->realpath, @args);
 }
 
-sub dump_templates {
+sub dump_templates (@args) {
     # Report failure at the callsite instead of the test function
     local $Test::Builder::Level = $Test::Builder::Level + 1;
-    test_cmd(path(curfile->dirname, 
'../script/openqa-dump-templates')->realpath, @_);
+    test_cmd(path(curfile->dirname, 
'../script/openqa-dump-templates')->realpath, @args);
 }
 
 sub decode { Cpanel::JSON::XS->new->relaxed->decode(path(shift)->slurp); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/40-script_openqa-clone-custom-git-refspec.t 
new/openQA-5.1778134320.e889287c/t/40-script_openqa-clone-custom-git-refspec.t
--- 
old/openQA-5.1777995277.b985bea2/t/40-script_openqa-clone-custom-git-refspec.t  
    2026-05-05 17:34:37.000000000 +0200
+++ 
new/openQA-5.1778134320.e889287c/t/40-script_openqa-clone-custom-git-refspec.t  
    2026-05-07 08:12:00.000000000 +0200
@@ -2,6 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 
 use FindBin;
 use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
@@ -14,12 +15,12 @@
 # prevent all network access to stay local
 my $cmd = 'unshare -r -n script/openqa-clone-custom-git-refspec';
 
-sub run_once { run_cmd($cmd, @_) }
+sub run_once (@args) { run_cmd($cmd, @args) }
 
-sub test_once {
+sub test_once (@args) {
     # Report failure at the callsite instead of the test function
     local $Test::Builder::Level = $Test::Builder::Level + 1;
-    test_cmd($cmd, @_);
+    test_cmd($cmd, @args);
 }
 
 # instruct openqa-clone-custom-git-refspec to use dry-run modes for all calls
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/api/14-plugin_obs_rsync_async.t 
new/openQA-5.1778134320.e889287c/t/api/14-plugin_obs_rsync_async.t
--- old/openQA-5.1777995277.b985bea2/t/api/14-plugin_obs_rsync_async.t  
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/api/14-plugin_obs_rsync_async.t  
2026-05-07 08:12:00.000000000 +0200
@@ -2,6 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Mojo::Base -signatures;
 
 use IPC::Run qw(start);
 use FindBin;
@@ -29,13 +30,13 @@
 # we need gru running to test response 200
 my $gru = start_gru();
 
-sub _jobs {
-    my $results = $t->app->minion->backend->list_jobs(0, 400, {tasks => 
['obs_rsync_run'], states => \@_});
+sub _jobs (@args) {
+    my $results = $t->app->minion->backend->list_jobs(0, 400, {tasks => 
['obs_rsync_run'], states => \@args});
     return $results->{total}, $results->{jobs};
 }
 
-sub _jobs_cnt {
-    (my $cnt, undef) = _jobs(@_);
+sub _jobs_cnt (@args) {
+    (my $cnt, undef) = _jobs(@args);
     return $cnt;
 }
 
@@ -73,16 +74,16 @@
 
 # this function communicates with 
t/data/openqa-trigger-from-obs/script/rsync.sh
 # when file .$project-ready is created, then rsync process should finish
-sub signal_rsync_ready {
-    foreach (@_) {
+sub signal_rsync_ready (@args) {
+    foreach (@args) {
         my $filename = Mojo::File->new($home, 'script', 
".$_-ready")->to_string;
         open my $fh, '>', $filename || die "Cannot create file $filename: $!";
         close $fh;
     }
 }
 
-sub unlink_signal_rsync_ready {
-    foreach (@_) {
+sub unlink_signal_rsync_ready (@args) {
+    foreach (@args) {
         my $filename = Mojo::File->new($home, 'script', 
".$_-ready")->to_string;
         -f $filename || next;
         unlink $filename || die "Cannot unlink file $filename: $!";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/lib/CoverageWorkaround.pm 
new/openQA-5.1778134320.e889287c/t/lib/CoverageWorkaround.pm
--- old/openQA-5.1777995277.b985bea2/t/lib/CoverageWorkaround.pm        
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/lib/CoverageWorkaround.pm        
2026-05-07 08:12:00.000000000 +0200
@@ -75,7 +75,8 @@
     *B::Deparse::pp_leave = \&pp_leave;
 }
 
-sub pp_leave {    # fix https://rt.cpan.org/Ticket/Display.html?id=134812
+# fix https://rt.cpan.org/Ticket/Display.html?id=134812
+sub pp_leave {    ## no critic (Subroutines::RequireArgUnpacking)
     my $self = shift;
     my ($op) = @_;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1777995277.b985bea2/t/ui/27-plugin_obs_rsync_gru.t 
new/openQA-5.1778134320.e889287c/t/ui/27-plugin_obs_rsync_gru.t
--- old/openQA-5.1777995277.b985bea2/t/ui/27-plugin_obs_rsync_gru.t     
2026-05-05 17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/t/ui/27-plugin_obs_rsync_gru.t     
2026-05-07 08:12:00.000000000 +0200
@@ -21,8 +21,8 @@
     has id => 0;
     has app => sub { $app };
     has retries => 200;
-    sub finish { $_[0]->{state} = 'finished'; $_[0]->{result} = $_[1] }
-    sub info { {notes => {project_lock => 1}} }
+    sub finish ($self, $result) { $self->{state} = 'finished'; $self->{result} 
= $result }
+    sub info (@) { {notes => {project_lock => 1}} }
 }    # uncoverable statement
 
 $t->post_ok('/admin/obs_rsync/Proj1/runs' => $params)->status_is(201, 'trigger 
rsync');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1777995277.b985bea2/tools/test_helm_chart 
new/openQA-5.1778134320.e889287c/tools/test_helm_chart
--- old/openQA-5.1777995277.b985bea2/tools/test_helm_chart      2026-05-05 
17:34:37.000000000 +0200
+++ new/openQA-5.1778134320.e889287c/tools/test_helm_chart      2026-05-07 
08:12:00.000000000 +0200
@@ -1,27 +1,42 @@
 #!/bin/bash
 set -euo pipefail
 
-which helm > /dev/null || echo "Error: Helm is not installed"
-which ct > /dev/null || echo "Error: ct is not installed"
+for cmd in helm ct yamale yamllint; do
+    if ! command -v "$cmd" > /dev/null; then
+        echo "Error: $cmd is not installed" >&2
+        exit 1
+    fi
+done
+if [[ "${1:-lint}" != "lint" ]]; then
+    if ! command -v kubectl > /dev/null; then
+        echo "Error: kubectl is not installed" >&2
+        exit 1
+    fi
+fi
+
+# Create a temporary directory for isolated testing
+tmp_dir=$(mktemp -d)
+trap 'rm -rf "$tmp_dir"' EXIT
 
-cd container/helm/
+# Copy the helm chart files to the temporary directory
+cp -a container/helm/. "$tmp_dir/"
+cd "$tmp_dir"
 
-ct_common_args=()
+ct_lint_args=()
 # Reference schema files from the installed package if they are not in the 
default locations
 for schema in chart_schema.yaml lintconf.yaml; do
     if [[ ! -f "$schema" && ! -f "$HOME/.ct/$schema" && ! -f "/etc/ct/$schema" 
]]; then
         pkg_schema="/usr/share/doc/packages/chart-testing/$schema"
         if [[ -f "$pkg_schema" ]]; then
             if [[ "$schema" == "chart_schema.yaml" ]]; then
-                ct_common_args+=(--chart-yaml-schema "$pkg_schema")
+                ct_lint_args+=(--chart-yaml-schema "$pkg_schema")
             else
-                ct_common_args+=(--lint-conf "$pkg_schema")
+                ct_lint_args+=(--lint-conf "$pkg_schema")
             fi
         fi
     fi
 done
 
 ct_extra=(--helm-extra-set-args "--set=gateway.enabled=false 
--set=image.pullPolicy=IfNotPresent --set=worker.image.pullPolicy=IfNotPresent")
-ct_install_args=("${ct_common_args[@]}")
-[[ "${1:-lint}" != "lint" ]] && ct_install_args+=("${ct_extra[@]}")
+[[ "${1:-lint}" == "lint" ]] && ct_install_args=("${ct_lint_args[@]}") || 
ct_install_args=("${ct_extra[@]}")
 ct "${1:-lint}" --debug --all --config ct.yaml "${ct_install_args[@]}"

++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.nsIDyK/_old  2026-05-07 15:47:53.878321912 +0200
+++ /var/tmp/diff_new_pack.nsIDyK/_new  2026-05-07 15:47:53.886322239 +0200
@@ -1,5 +1,5 @@
 name: openQA
-version: 5.1777995277.b985bea2
-mtime: 1777995277
-commit: b985bea28944e9257ed84ebc4f95af73d2f34a52
+version: 5.1778134320.e889287c
+mtime: 1778134320
+commit: e889287c400f4a6dc1e791adaaa44a75bf06fccd
 

Reply via email to