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-04-14 17:49:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/openQA (Old)
 and      /work/SRC/openSUSE:Factory/.openQA.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "openQA"

Tue Apr 14 17:49:36 2026 rev:837 rq:1346807 version:5.1776103434.91af0a8b

Changes:
--------
--- /work/SRC/openSUSE:Factory/openQA/openQA.changes    2026-04-13 
23:21:22.938303909 +0200
+++ /work/SRC/openSUSE:Factory/.openQA.new.21863/openQA.changes 2026-04-14 
17:50:45.193575516 +0200
@@ -2 +2 @@
-Mon Apr 13 09:33:28 UTC 2026 - [email protected]
+Tue Apr 14 04:56:01 UTC 2026 - [email protected]
@@ -4 +4,15 @@
-- Update to version 5.1776072800.e5bc7424:
+- Update to version 5.1776103434.91af0a8b:
+  * feat: expand parallel test execution in t/testrules.yml
+  * feat: set no expiration for "None" auth API keys
+  * fix: Avoid gap between caret and preview container
+  * refactor(upload): Move chunk size constant to constants module
+  * refactor(upload): Define chunk size only once
+  * test: Check for unhandled output by default
+  * git subrepo pull (merge) external/os-autoinst-common
+  * perf(upload): Speed up asset uploads
+  * feat: enable videos for all jobs again
+  * ci: remove redundant perl-critic GHA covered by circleCI
+  * ci: separate compile tests into independent job
+  * test: Move author tests to xt/ and separate compile checks
+  * fix: use Test::Warnings in 02-perlcritic
+  * chore(deps): Remove obsolete Freenode::StrictWarnings policy

Old:
----
  openQA-5.1776072800.e5bc7424.obscpio

New:
----
  openQA-5.1776103434.91af0a8b.obscpio

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

Other differences:
------------------
++++++ openQA-client-test.spec ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:46.769640665 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:46.773640831 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-client
 Name:           %{short_name}-test
-Version:        5.1776072800.e5bc7424
+Version:        5.1776103434.91af0a8b
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:46.805642153 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:46.805642153 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-devel
 Name:           %{short_name}-test
-Version:        5.1776072800.e5bc7424
+Version:        5.1776103434.91af0a8b
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA-test.spec ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:46.849643972 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:46.853644138 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA
 Name:           %{short_name}-test
-Version:        5.1776072800.e5bc7424
+Version:        5.1776103434.91af0a8b
 Release:        0
 Summary:        Test package for openQA
 License:        GPL-2.0-or-later

++++++ openQA-worker-test.spec ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:46.893645791 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:46.893645791 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name openQA-worker
 Name:           %{short_name}-test
-Version:        5.1776072800.e5bc7424
+Version:        5.1776103434.91af0a8b
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ openQA.spec ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:46.937647610 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:46.941647776 +0200
@@ -99,7 +99,7 @@
 %define devel_requires %devel_no_selenium_requires chromedriver
 
 Name:           openQA
-Version:        5.1776072800.e5bc7424
+Version:        5.1776103434.91af0a8b
 Release:        0
 Summary:        The openQA web-frontend, scheduler and tools
 License:        GPL-2.0-or-later
@@ -345,9 +345,6 @@
 cpanm -n --mirror http://no.where/ --installdeps --with-feature=test .
 %endif
 
-# we don't really need the tidy test
-rm -f t/00-tidy.t
-
 %if %{with tests}
 rm -rf %{buildroot}/DB
 export LC_ALL=en_US.UTF-8

++++++ openQA-5.1776072800.e5bc7424.obscpio -> 
openQA-5.1776103434.91af0a8b.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/.circleci/config.yml 
new/openQA-5.1776103434.91af0a8b/.circleci/config.yml
--- old/openQA-5.1776072800.e5bc7424/.circleci/config.yml       2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/.circleci/config.yml       2026-04-13 
20:03:54.000000000 +0200
@@ -222,6 +222,9 @@
       - store_artifacts:
           path: test-results/fullstack
           destination: artifacts
+  compile:
+    <<: *test-template
+
   t:
     <<: *test-template
 
@@ -292,6 +295,8 @@
           requires:
             - cache
             - cache-npm
+      - compile:
+          <<: *requires
       - t:
           <<: *requires
       - heavy:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/.github/workflows/perl-critic.yml 
new/openQA-5.1776103434.91af0a8b/.github/workflows/perl-critic.yml
--- old/openQA-5.1776072800.e5bc7424/.github/workflows/perl-critic.yml  
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/.github/workflows/perl-critic.yml  
1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
----
-name: 'Perl critic'
-
-on: [push, pull_request]
-
-jobs:
-  perl-critic-checks:
-    permissions:
-      contents: read
-    runs-on: ubuntu-latest
-    name: "Perlcritic"
-    container:
-      image: perldocker/perl-tester
-    steps:
-      - uses: actions/checkout@v6
-      - run: make test-critic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/.perlcriticrc 
new/openQA-5.1776103434.91af0a8b/.perlcriticrc
--- old/openQA-5.1776072800.e5bc7424/.perlcriticrc      2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/.perlcriticrc      2026-04-13 
20:03:54.000000000 +0200
@@ -27,11 +27,6 @@
 add_themes = community
 max_nests = 4
 
-# == Community Policies
-# -- Test::Most brings in strict & warnings
-[Freenode::StrictWarnings]
-extra_importers = Test::Most
-
 # -- Test::Most brings in strict & warnings
 [Community::StrictWarnings]
 extra_importers = Test::Most
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/Makefile 
new/openQA-5.1776103434.91af0a8b/Makefile
--- old/openQA-5.1776072800.e5bc7424/Makefile   2026-04-13 11:33:20.000000000 
+0200
+++ new/openQA-5.1776103434.91af0a8b/Makefile   2026-04-13 20:03:54.000000000 
+0200
@@ -17,7 +17,7 @@
 # EXTRA_PROVE_ARGS: Additional prove arguments to pass
 EXTRA_PROVE_ARGS ?=
 # PROVE: Test application for Perl tests
-PROVE ?= prove
+PROVE ?= tools/prove_wrapper
 # Number of parallel jobs for prove
 PROVE_JOBS ?= $(shell nproc 2>/dev/null || echo 1)
 PROVE_JOBS_ARGS ?= -j$(PROVE_JOBS)
@@ -227,7 +227,7 @@
 else
 checkstyle_tests = test-checkstyle-standalone
 endif
-test: $(checkstyle_tests) test-with-database ## Run all tests (including 
checkstyle and database tests)
+test: $(checkstyle_tests) test-compile test-with-database ## Run all tests 
(including checkstyle, compile test and database tests)
 ifeq ($(CONTAINER_TEST),1)
 ifeq ($(TESTS),)
 test: test-containers-compose
@@ -238,13 +238,12 @@
 test: test-helm-chart
 endif
 endif
-
 .PHONY: test-checkstyle
-test-checkstyle: test-checkstyle-standalone test-tidy-compile-style ## Run 
checkstyle and tidy-compile-style tests
+test-checkstyle: test-checkstyle-standalone test-author ## Run checkstyle and 
author tests
 
 .PHONY: test-t
 test-t: node_modules ## Run standard Perl tests
-       $(MAKE) test-with-database TIMEOUT_M=25 PROVE_ARGS="$$HARNESS t/*.t" 
GLOBIGNORE="t/*tidy*:t/*compile*:t/*style*:$(unstables)"
+       $(MAKE) test-with-database TIMEOUT_M=25 PROVE_ARGS="$$HARNESS t/*.t" 
GLOBIGNORE="$(unstables)"
 
 .PHONY: test-heavy
 test-heavy: node_modules ## Run heavy tests
@@ -252,11 +251,12 @@
 
 .PHONY: test-ui
 test-ui: node_modules ## Run UI tests
-       $(MAKE) test-with-database TIMEOUT_M=25 PROVE_ARGS="$$HARNESS t/ui/*.t" 
GLOBIGNORE="t/*tidy*:t/*compile*:t/*style*:$(unstables)"
+       $(MAKE) test-with-database TIMEOUT_M=25 PROVE_ARGS="$$HARNESS t/ui/*.t" 
GLOBIGNORE="$(unstables)"
 
 .PHONY: test-api
 test-api: node_modules ## Run API tests
-       $(MAKE) test-with-database TIMEOUT_M=20 PROVE_ARGS="$$HARNESS 
t/api/*.t" GLOBIGNORE="t/*tidy*:t/*compile*:t/*style*:$(unstables)"
+       $(MAKE) test-with-database TIMEOUT_M=20 PROVE_ARGS="$$HARNESS 
t/api/*.t" GLOBIGNORE="$(unstables)"
+
 
 # put unstable tests in tools/unstable_tests.txt and uncomment in circle CI 
config to handle unstables with retries
 .PHONY: test-unstable
@@ -371,18 +371,18 @@
 
 # all additional checks not called by prove
 .PHONY: test-checkstyle-standalone
-test-checkstyle-standalone: test-shellcheck test-yaml test-critic test-shfmt 
test-gitlint ## Run all style and static analysis checks
+test-checkstyle-standalone: test-shellcheck test-yaml test-shfmt test-gitlint 
## Run all style and static analysis checks
 ifeq ($(CONTAINER_TEST),1)
 test-checkstyle-standalone: test-check-containers
 endif
 
-.PHONY: test-critic
-test-critic: ## Run Perl Critic
-       prove xt/02-perlcritic.t
-
-.PHONY: test-tidy-compile-style
-test-tidy-compile-style: ## Run tidy, compile and style tests
-       $(MAKE) test-unit-and-integration TIMEOUT_M=20 PROVE_ARGS="$$HARNESS 
t/*{tidy,compile,style}*.t" GLOBIGNORE="$(unstables)"
+.PHONY: test-author
+test-author: ## Run author tests (tidy, style, critic, pod, etc.)
+       $(MAKE) test-unit-and-integration TIMEOUT_M=20 PROVE_ARGS="$$HARNESS 
xt/*.t" GLOBIGNORE="$(unstables)"
+
+.PHONY: test-compile
+test-compile: ## Run compile tests
+       $(MAKE) test-unit-and-integration TIMEOUT_M=20 PROVE_ARGS="$$HARNESS 
t/compile/*.t" GLOBIGNORE="$(unstables)"
 
 .PHONY: test-shellcheck
 test-shellcheck: ## Run shellcheck on scripts
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/assets/stylesheets/result_preview.scss 
new/openQA-5.1776103434.91af0a8b/assets/stylesheets/result_preview.scss
--- old/openQA-5.1776072800.e5bc7424/assets/stylesheets/result_preview.scss     
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/assets/stylesheets/result_preview.scss     
2026-04-13 20:03:54.000000000 +0200
@@ -54,7 +54,7 @@
   display: none;
   position: absolute;
   color: #a9a9a9;
-  bottom: -22px;
+  bottom: -25px;
   left: 21px;
   font-size: 35px;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/dist/rpm/openQA.spec 
new/openQA-5.1776103434.91af0a8b/dist/rpm/openQA.spec
--- old/openQA-5.1776072800.e5bc7424/dist/rpm/openQA.spec       2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/dist/rpm/openQA.spec       2026-04-13 
20:03:54.000000000 +0200
@@ -346,9 +346,6 @@
 cpanm -n --mirror http://no.where/ --installdeps --with-feature=test .
 %endif
 
-# we don't really need the tidy test
-rm -f t/00-tidy.t
-
 %if %{with tests}
 rm -rf %{buildroot}/DB
 export LC_ALL=en_US.UTF-8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/docs/Contributing.asciidoc 
new/openQA-5.1776103434.91af0a8b/docs/Contributing.asciidoc
--- old/openQA-5.1776072800.e5bc7424/docs/Contributing.asciidoc 2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/docs/Contributing.asciidoc 2026-04-13 
20:03:54.000000000 +0200
@@ -328,16 +328,14 @@
 
 See the docs for details https://metacpan.org/pod/Devel::Cover
 
-To run the tests with a different command than `prove` you can set the
-`PROVE` variable in the Makefile. For example, in our CircleCI tests we
-use `tools/prove_wrapper` to run the tests. This wrapper is a simple script 
that
-will run `prove` and fail the test if there is unhandled output. This is useful
-to avoid having unhandled output in tests. To run the tests with
-`tools/prove_wrapper` you can do:
+We use `tools/prove_wrapper` to run the tests. This wrapper is a simple script
+that will run `prove` and fail the test if there is unhandled output. This is
+useful to avoid having unhandled output in tests. To run tests directly with
+`prove`, set the `PROVE` variable when invoking `make`, e.g.:
 
 [source,sh]
 ----
-PROVE=tools/prove_wrapper make test TESTS=t/foo.t
+PROVE=prove make test TESTS=t/foo.t
 ----
 
 There are some ways to save some time when executing local tests:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/docs/WritingTests.asciidoc 
new/openQA-5.1776103434.91af0a8b/docs/WritingTests.asciidoc
--- old/openQA-5.1776072800.e5bc7424/docs/WritingTests.asciidoc 2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/docs/WritingTests.asciidoc 2026-04-13 
20:03:54.000000000 +0200
@@ -526,10 +526,6 @@
 count into `MAX_JOB_TIME`. However, the setup time is limited by default to one
 hour. This can be changed by setting `MAX_SETUP_TIME`.
 
-To save disk space, increasing `MAX_JOB_TIME` beyond the default will
-automatically disable the video by adding `NOVIDEO=1` to the test settings. 
This
-can be prevented by adding `NOVIDEO=0` explicitly.
-
 The variable `TIMEOUT_SCALE` allows to scale `MAX_JOB_TIME` and timeouts within
 the backend, for example the <<_api,test API>>. This is supposed to be set
 within the worker settings on slow worker hosts. It has no influence on the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/etc/nginx/vhosts.d/openqa-endpoints.inc 
new/openQA-5.1776103434.91af0a8b/etc/nginx/vhosts.d/openqa-endpoints.inc
--- old/openQA-5.1776072800.e5bc7424/etc/nginx/vhosts.d/openqa-endpoints.inc    
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/etc/nginx/vhosts.d/openqa-endpoints.inc    
2026-04-13 20:03:54.000000000 +0200
@@ -5,7 +5,7 @@
 # The "client_body_buffer_size" value should usually be larger
 # than the UPLOAD_CHUNK_SIZE used by openQA workers, so there is
 # no excessive buffering to disk
-client_body_buffer_size 2m;
+client_body_buffer_size 12m;
 
 # Default is exact which would need an exact match of Last-Modified
 if_modified_since before;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
      2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
      2026-04-13 20:03:54.000000000 +0200
@@ -7,8 +7,10 @@
   base-check-commit-message:
     name: Check commit message
     runs-on: ubuntu-latest
+    permissions:
+      contents: read
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
         with:
           fetch-depth: 0
       - name: Install gitlint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/commit-message-checker.yml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/commit-message-checker.yml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/commit-message-checker.yml
   2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/commit-message-checker.yml
   2026-04-13 20:03:54.000000000 +0200
@@ -10,4 +10,6 @@
 
 jobs:
   check-commit-message:
+    permissions:
+      contents: read
     uses: ./.github/workflows/base-commit-message-checker.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
        2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
        2026-04-13 20:03:54.000000000 +0200
@@ -5,10 +5,14 @@
 
 jobs:
   perl-author-tests:
+    permissions:
+      contents: read
     runs-on: ubuntu-latest
     name: Perl author tests
     container:
       image: registry.opensuse.org/devel/openqa/containers/os-autoinst_dev
     steps:
-      - uses: actions/checkout@v4
-      - run: make test-author
+      - uses: actions/checkout@v6
+      - run: |
+          git config --system --add safe.directory "$GITHUB_WORKSPACE"
+          make test-author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
 2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
 2026-04-13 20:03:54.000000000 +0200
@@ -5,10 +5,12 @@
 
 jobs:
   perl-lint-checks:
+    permissions:
+      contents: read
     runs-on: ubuntu-latest
     name: "Perltidy"
     container:
       image: registry.opensuse.org/devel/openqa/containers/os-autoinst_dev
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - run: GITHUB_ACTIONS=1 make test-tidy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/test.yaml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/test.yaml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/test.yaml
    2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/test.yaml
    2026-04-13 20:03:54.000000000 +0200
@@ -5,9 +5,11 @@
 
 jobs:
   test:
+    permissions:
+      contents: read
     runs-on: ubuntu-latest
     container:
       image: perldocker/perl-tester
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - run: make test-t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/yamllint.yml
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/yamllint.yml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.github/workflows/yamllint.yml
 2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.github/workflows/yamllint.yml
 2026-04-13 20:03:54.000000000 +0200
@@ -6,9 +6,11 @@
 jobs:
   yaml-lint:
     runs-on: ubuntu-latest
+    permissions:
+      contents: read
     name: "YAML-lint"
     steps:
-      - uses: actions/checkout@v4
+      - uses: actions/checkout@v6
       - uses: 
docker://registry.opensuse.org/home/okurz/container/containers/tumbleweed:yamllint
         with:
           entrypoint: make
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.gitrepo 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.gitrepo
--- old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.gitrepo       
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.gitrepo       
2026-04-13 20:03:54.000000000 +0200
@@ -6,7 +6,7 @@
 [subrepo]
        remote = [email protected]:os-autoinst/os-autoinst-common.git
        branch = master
-       commit = 7bbf40822c49031520d5d287daf89b8fdfe21fb8
-       parent = 1377209de4a732645afc526176fd4a65dc4d60b6
+       commit = 4e71e20292cd76298e53e9726e4d2b49be0eb7e0
+       parent = e5bc742416a9bcb03b24716c89c3a23c380625df
        method = merge
        cmdver = 0.4.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.perlcriticrc 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.perlcriticrc
--- old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/.perlcriticrc  
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/.perlcriticrc  
2026-04-13 20:03:54.000000000 +0200
@@ -25,10 +25,6 @@
 
 # == Community Policies
 # -- Test::Most brings in strict & warnings
-[Freenode::StrictWarnings]
-extra_importers = Test::Most
-
-# -- Test::Most brings in strict & warnings
 [Community::StrictWarnings]
 extra_importers = Test::Most
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/Makefile 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/Makefile
--- old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/Makefile       
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/Makefile       
2026-04-13 20:03:54.000000000 +0200
@@ -1,3 +1,11 @@
+# PROVE: Test application for Perl tests
+PROVE ?= tools/prove_wrapper
+PROVE_JOBS ?= $(shell nproc 2>/dev/null || echo 1)
+PROVE_JOBS_ARGS ?= -j$(PROVE_JOBS)
+
+SH_FILES ?= $(shell file --mime-type $$(git ls-files) test/*.t | sed -n 
's/^\(.*\):.*text\/x-shellscript.*$$/\1/p')
+SH_SHELLCHECK_FILES ?= $(shell file --mime-type * | sed -n 
's/^\(.*\):.*text\/x-shellscript.*$$/\1/p')
+
 all: help
 
 .PHONY: help
@@ -12,8 +20,17 @@
 setup-hooks: ## Install pre-commit git hooks
        pre-commit install --install-hooks -t commit-msg -t pre-commit
 
+shfmt: ## Format shell scripts via shfmt
+       shfmt -w ${SH_FILES}
+
+test-shellcheck: ## Run shfmt and shellcheck tests
+       @which shfmt >/dev/null 2>&1 || echo "Command 'shfmt' not found, can 
not execute shell script formating checks"
+       shfmt -d ${SH_FILES}
+       @which shellcheck >/dev/null 2>&1 || echo "Command 'shellcheck' not 
found, can not execute shell script checks"
+       if [ -n "${SH_SHELLCHECK_FILES}" ]; then shellcheck -x 
${SH_SHELLCHECK_FILES}; fi
+
 .PHONY: test-checkstyle
-test-checkstyle: test-tidy test-yaml test-gitlint ## Run checkstyle checks
+test-checkstyle: test-tidy test-yaml test-gitlint test-shellcheck ## Run 
checkstyle checks
 
 .PHONY: test
 test: test-checkstyle test-author test-t ## Run all tests
@@ -35,8 +52,8 @@
 
 .PHONY: test-author
 test-author: ## Run author tests
-       prove -l -r xt/
+       "${PROVE}" $(PROVE_JOBS_ARGS) -l -r xt/
 
 .PHONY: test-t
 test-t: ## Run unit tests
-       prove -l -r t/
+       "${PROVE}" $(PROVE_JOBS_ARGS) -l -r t/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/dependencies.yaml 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/dependencies.yaml
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/dependencies.yaml  
    2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/dependencies.yaml  
    2026-04-13 20:03:54.000000000 +0200
@@ -23,6 +23,8 @@
   perl(Perl::Critic::Community):
   perl(Test::Perl::Critic):
   python3-gitlint:
+  expect:  # for unbuffer
+  shfmt:
 
 cover_requires:
   perl(Devel::Cover):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/lib/OpenQA/Test/TimeLimit.pm
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/lib/OpenQA/Test/TimeLimit.pm
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/lib/OpenQA/Test/TimeLimit.pm
   2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/lib/OpenQA/Test/TimeLimit.pm
   2026-04-13 20:03:54.000000000 +0200
@@ -13,6 +13,7 @@
     return if ($ENV{OPENQA_TEST_TIMEOUT_DISABLE} or $INC{'perl5db.pl'});
     $SCALE_FACTOR *= $ENV{OPENQA_TEST_TIMEOUT_SCALE_COVER} // 3 if 
Devel::Cover->can('report');
     $SCALE_FACTOR *= $ENV{OPENQA_TEST_TIMEOUT_SCALE_CI} // 2 if $ENV{CI};
+    $SCALE_FACTOR *= 5 if $ENV{HARNESS_IS_PARALLEL};
     $limit *= $SCALE_FACTOR;
     $SIG{ALRM} = sub { BAIL_OUT "test '$0' exceeds runtime limit of '$limit' 
seconds\n" };
     alarm $limit;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/t/01-compile-check-all.t
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/t/01-compile-check-all.t
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/t/01-compile-check-all.t
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/t/01-compile-check-all.t
       2026-04-13 20:03:54.000000000 +0200
@@ -0,0 +1,12 @@
+# Copyright SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+use Test::Most;
+# We need :no_end_test here because otherwise it would output a no warnings
+# test for each of the modules, but with the same test number
+use Test::Warnings qw(:no_end_test :report_warnings);
+
+use Test::Compile;
+my $test = Test::Compile->new();
+$test->all_files_ok();
+$test->done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/tools/prove_wrapper
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/tools/prove_wrapper
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/tools/prove_wrapper
    2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/tools/prove_wrapper
    2026-04-13 20:03:54.000000000 +0200
@@ -4,11 +4,20 @@
 
 set -euo pipefail
 
-OUTPUT=$(mktemp)
+prove_cmd=(prove -I .)
+
+# skip the check for unhandled output when running in verbose mode
+for arg in "$@"; do [[ $arg =~ (-v|--verbose) ]] && TEST_VERBOSE=1 && break; 
done
+[[ ${TEST_VERBOSE:-} && $TEST_VERBOSE != 0 ]] && exec "${prove_cmd[@]}" "$@"
 
 echo "Running prove with TAP output check ..."
 
-prove -I . "$@" 2>&1 | tee "$OUTPUT"
+# use unbuffer if available and stdout is a terminal for immediate output
+[[ -t 1 ]] && unbuffer_cmd=("$(which unbuffer 2> /dev/null)") || 
unbuffer_cmd=()
+
+OUTPUT=$(mktemp)
+"${unbuffer_cmd[@]}" "${prove_cmd[@]}" "$@" 2>&1 | tee "$OUTPUT"
+
 STATUS=${PIPESTATUS[0]}
 
 if [ "$STATUS" -ne 0 ]; then
@@ -16,16 +25,20 @@
     exit "$STATUS"
 fi
 
-sed -E '
-  s/^\[[0-9]{2}:[0-9]{2}:[0-9]{2}\][[:space:]]*//
-  /^All tests successful\./,$d
-' "$OUTPUT" > "$OUTPUT.processed"
-
-UNHANDLED=$(grep -vE '^(x?t|t/compile)/.*([0-9]{2}-|)([[:alnum:]]|_|-)+\.t 
\.+' "$OUTPUT.processed" || true)
+UNHANDLED=$(sed --regexp-extended \
+    -e 's/^\[[0-9]{2}:[0-9]{2}:[0-9]{2}\][[:space:]]*//' \
+    -e '/x?t\/.*\.t\s*\.+/d' \
+    -e '/\s*[0-9]+\.\.[0-9]+.*/d' \
+    -e '/^# /d' \
+    -e '/Files=.*Tests=/d' \
+    -e '/Result: /d' \
+    -e '/All tests successful\./d' \
+    "$OUTPUT")
 
 if [ -n "$UNHANDLED" ]; then
-    echo "not ok - unhandled output found"
-    echo "Run with PROVE_COMMAND=tools/prove_wrapper to reproduce locally"
+    echo "not ok - unhandled output found:"
+    echo "$UNHANDLED"
+    echo "Run with PROVE=tools/prove_wrapper to reproduce locally"
     exit 1
 else
     echo "ok - no unhandled output found"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/xt/01-compile-check-all.t
 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/xt/01-compile-check-all.t
--- 
old/openQA-5.1776072800.e5bc7424/external/os-autoinst-common/xt/01-compile-check-all.t
      2026-04-13 11:33:20.000000000 +0200
+++ 
new/openQA-5.1776103434.91af0a8b/external/os-autoinst-common/xt/01-compile-check-all.t
      1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-# Copyright SUSE LLC
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-use Test::Most;
-# We need :no_end_test here because otherwise it would output a no warnings
-# test for each of the modules, but with the same test number
-use Test::Warnings qw(:no_end_test :report_warnings);
-use FindBin;
-use lib "$FindBin::Bin/lib";
-use OpenQA::Test::TimeLimit '400';
-
-use Test::Strict;
-
-push @Test::Strict::MODULES_ENABLING_STRICT, 'Test::Most';
-push @Test::Strict::MODULES_ENABLING_WARNINGS, 'Test::Most';
-
-$Test::Strict::TEST_SYNTAX = 1;
-$Test::Strict::TEST_STRICT = 1;
-$Test::Strict::TEST_WARNINGS = 1;
-all_perl_files_ok(qw(lib tools xt));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Client/Upload.pm 
new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Client/Upload.pm
--- old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Client/Upload.pm        
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Client/Upload.pm        
2026-04-13 20:03:54.000000000 +0200
@@ -4,14 +4,13 @@
 package OpenQA::Client::Upload;
 use Mojo::Base 'OpenQA::Client::Handler', -signatures;
 
+use OpenQA::Constants qw(DEFAULT_UPLOAD_CHUNK_SIZE);
 use OpenQA::File;
 use Carp qw(croak);
 use Mojo::Asset::Memory;
 use Mojo::File qw(path);
 use Feature::Compat::Try;
 
-use constant DEFAULT_CHUNK_SIZE => 1_000_000;
-
 sub _upload_asset_fail ($self, $uri, $form) {
     $form->{state} = 'fail';
     return $self->client->start($self->_build_post("$uri/upload_state" => 
$form));
@@ -40,7 +39,7 @@
         return undef;
     }
 
-    my $chunk_size = $opts->{chunk_size} // DEFAULT_CHUNK_SIZE;
+    my $chunk_size = $opts->{chunk_size} // DEFAULT_UPLOAD_CHUNK_SIZE;
     my $parts = OpenQA::File->new(file => 
Mojo::File->new($opts->{file}))->split($chunk_size);
     $self->emit('upload_chunk.prepare', $parts);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Constants.pm 
new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Constants.pm
--- old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Constants.pm    2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Constants.pm    2026-04-13 
20:03:54.000000000 +0200
@@ -18,6 +18,8 @@
 # Default worker timeout
 use constant DEFAULT_WORKER_TIMEOUT => 30 * ONE_MINUTE;
 
+use constant DEFAULT_UPLOAD_CHUNK_SIZE => 10_000_000;
+
 # Define worker commands; used to validate and differentiate commands
 use constant {
     # stop the current job(s), do *not* upload logs and assets
@@ -122,6 +124,7 @@
   MAX_TIMER MIN_TIMER
   DEFAULT_MAX_JOB_TIME
   DEFAULT_MAX_SETUP_TIME
+  DEFAULT_UPLOAD_CHUNK_SIZE
   DB_TIMESTAMP_ACCURACY
   VIDEO_FILE_NAME_START VIDEO_FILE_NAME_REGEX
   FRAGMENT_REGEX
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/lib/OpenQA/WebAPI/Auth/None.pm 
new/openQA-5.1776103434.91af0a8b/lib/OpenQA/WebAPI/Auth/None.pm
--- old/openQA-5.1776072800.e5bc7424/lib/OpenQA/WebAPI/Auth/None.pm     
2026-04-13 11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/lib/OpenQA/WebAPI/Auth/None.pm     
2026-04-13 20:03:54.000000000 +0200
@@ -3,7 +3,6 @@
 
 package OpenQA::WebAPI::Auth::None;
 use Mojo::Base -base, -signatures;
-use Time::Seconds;
 
 sub auth_setup ($app) {
     my $key_val = $ENV{OPENQA_AUTH_NONE_KEY} // 'DEADBEEFDEADBEEF';
@@ -15,7 +14,7 @@
     );
     $user->update({is_admin => 1, is_operator => 1});
     my $key = $user->api_keys->find_or_create({key => $key_val, secret => 
$secret_val});
-    $key->update({t_expiration => DateTime->from_epoch(epoch => time + ONE_DAY 
* 3650)});
+    $key->update({t_expiration => undef});
 }
 
 sub auth_login ($self) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Worker/Job.pm 
new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Worker/Job.pm
--- old/openQA-5.1776072800.e5bc7424/lib/OpenQA/Worker/Job.pm   2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/lib/OpenQA/Worker/Job.pm   2026-04-13 
20:03:54.000000000 +0200
@@ -4,9 +4,9 @@
 package OpenQA::Worker::Job;
 use Mojo::Base 'Mojo::EventEmitter', -signatures;
 
-use OpenQA::Constants qw(DEFAULT_MAX_JOB_TIME DEFAULT_MAX_SETUP_TIME 
WORKER_COMMAND_ABORT WORKER_COMMAND_QUIT
-  WORKER_COMMAND_CANCEL WORKER_COMMAND_OBSOLETE WORKER_SR_BROKEN 
WORKER_SR_SETUP_FAILURE WORKER_SR_API_FAILURE WORKER_SR_TIMEOUT
-  WORKER_SR_DONE WORKER_SR_DIED);
+use OpenQA::Constants qw(DEFAULT_MAX_JOB_TIME DEFAULT_UPLOAD_CHUNK_SIZE 
DEFAULT_MAX_SETUP_TIME WORKER_COMMAND_ABORT
+  WORKER_COMMAND_QUIT WORKER_COMMAND_CANCEL WORKER_COMMAND_OBSOLETE 
WORKER_SR_BROKEN WORKER_SR_SETUP_FAILURE
+  WORKER_SR_API_FAILURE WORKER_SR_TIMEOUT WORKER_SR_DONE WORKER_SR_DIED);
 use OpenQA::Jobs::Constants;
 use OpenQA::Worker::Engines::isotovideo;
 use OpenQA::Worker::Isotovideo::Client;
@@ -28,8 +28,6 @@
 use Time::HiRes qw(time usleep);
 use Feature::Compat::Try;
 
-use constant DEFAULT_UPLOAD_CHUNK_SIZE => 1_000_000;
-
 # define attributes for public properties
 has 'worker';
 has 'client';
@@ -182,8 +180,6 @@
     my $timeout_scale = $job_settings->{TIMEOUT_SCALE};
     $max_job_time = DEFAULT_MAX_JOB_TIME unless looks_like_number 
$max_job_time;
     $max_setup_time = DEFAULT_MAX_SETUP_TIME unless looks_like_number 
$max_setup_time;
-    # disable video for long-running scenarios by default
-    $job_settings->{NOVIDEO} = 1 if !exists $job_settings->{NOVIDEO} && 
$max_job_time > DEFAULT_MAX_JOB_TIME;
     $max_job_time *= $timeout_scale if looks_like_number $timeout_scale;
     return ($max_job_time, $max_setup_time);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/00-tidy.t 
new/openQA-5.1776103434.91af0a8b/t/00-tidy.t
--- old/openQA-5.1776072800.e5bc7424/t/00-tidy.t        2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/00-tidy.t        1970-01-01 
01:00:00.000000000 +0100
@@ -1,12 +0,0 @@
-# Copyright 2014-2020 SUSE LLC
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-use Test::Most;
-use Test::Warnings ':report_warnings';
-use FindBin;
-use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
-use OpenQA::Test::TimeLimit '80';
-
-is system('tools/tidyall', '--check-only', '-a'), 0, 'tidy';
-
-done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/t/01-compile-check-all.t 
new/openQA-5.1776103434.91af0a8b/t/01-compile-check-all.t
--- old/openQA-5.1776072800.e5bc7424/t/01-compile-check-all.t   2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/01-compile-check-all.t   1970-01-01 
01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
-# Copyright 2019-2020 SUSE LLC
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-use Test::Most;
-# We need :no_end_test here because otherwise it would output a no warnings
-# test for each of the modules, but with the same test number
-use Test::Warnings qw(:no_end_test :report_warnings);
-use Test::Compile;
-use File::Which;
-use FindBin;
-use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
-use OpenQA::Test::TimeLimit '400';
-
-
-my $SKIP = [
-    # skip test module which would require test API from os-autoinst to be 
present
-    
't/data/openqa/share/tests/opensuse/tests/installation/installer_timezone.pm',
-    # Skip data files which are supposed to resemble generated output which 
has no 'use' statements
-    't/data/40-templates.pl',
-    't/data/40-templates-jgs.pl',
-    't/data/40-templates-more.pl',
-    't/data/openqa-trigger-from-obs/Proj2::appliances/.api_package',
-    't/data/openqa-trigger-from-obs/Proj2::appliances/.dirty_status',
-    't/data/openqa-trigger-from-obs/Proj3::standard/empty.txt',
-];
-
-my $test = Test::Compile->new();
-my @files;
-
-# Prevent any non-tracked files or files within .git (e.g. in.git/rr-cache) to
-# interfer
-if (-d '.git' and which('git')) {
-    my $root = qx{git rev-parse --show-toplevel};
-    chomp $root;
-    $root .= '/';
-    my @all_git_files = qx{git ls-files};
-    chomp @all_git_files;
-    my %skip = map { $_ => undef } @$SKIP;
-    @files = map { $root . $_ }
-      grep { !-l $_ && !exists $skip{$_} && $_ !~ /^(external|t)\// } 
@all_git_files;    # Exclude files to skip
-}
-else {
-    @files = ($test->all_pm_files('lib'), $test->all_pl_files('script'));
-    my %skip = map { $_ => undef } @$SKIP;
-    @files = grep { my $f = s{^\./}{}r; !exists $skip{$f} && $f !~ /^t\// } 
@files;
-}
-
-# Only check perl files and skip test scripts (already executed)
-@files = grep { /\.(?:pm|pl|t)$/ } @files;
-
-plan tests => scalar @files;
-
-foreach my $file (@files) {
-    my $ok = $file =~ /\.pm$/ ? $test->pm_file_compiles($file) : 
$test->pl_file_compiles($file);
-    ok $ok, "Syntax check $file";
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/01-style.t 
new/openQA-5.1776103434.91af0a8b/t/01-style.t
--- old/openQA-5.1776072800.e5bc7424/t/01-style.t       2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/01-style.t       1970-01-01 
01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-#!/usr/bin/perl
-# Copyright 2021 SUSE LLC
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-use Test::Most;
-
-ok system(qq{git grep -I -l 'Copyright \((C)\|(c)\|©\)' ':!COPYING' 
':!external/'}) != 0,
-  'No redundant copyright character';
-ok
-  system(
-qq{git grep -I -l 'This program is free software.*if not, see 
<http://www.gnu.org/licenses/' ':!COPYING' ':!external/' ':!t/01-style.t'}
-  ) != 0, 'No verbatim licenses in source files';
-ok system(qq{git grep -I -l '[#/ ]*SPDX-License-Identifier ' ':!COPYING' 
':!external/' ':!t/01-style.t'}) != 0,
-  'SPDX-License-Identifier correctly terminated';
-is qx{git grep -I -L '^use Test::Most' t/**.t}, '', 'All tests use Test::Most';
-is qx{git grep --all-match -e '^use Mojo::Base' -e 'use base'}, '', 'No 
redundant Mojo::Base+base';
-is qx{git grep -I --all-match -e '^use Mojo::Base' -e 'use 
\\(strict\\|warnings\\);' ':!docs' ':!external'}, '',
-  'Only combined Mojo::Base+strict+warnings';
-is qx{git grep -I -L '^use Test::Warnings' t/**.t ':!t/01-style.t'}, '', 'All 
tests use Test::Warnings';
-is qx{git grep -I -l '^use Test::\\(Exception\\|Fatal\\)' t/**.t}, '',
-  'Test::Most already includes Test::Exception, no need to use Test::Exception 
or Test::Fatal';
-is qx{git grep -I -l '^\\(throws\\|dies\\|lives\\)_ok.*\<sub\>' t/**.t}, '',
-  'Only use simplified prototyped Test::Exception functions';
-is qx{git grep -I -l 'like.*\$\@' t/**.t}, '', 'Use throws_ok instead of 
manual checks of exceptions';
-is qx{git grep -I -l ' \\(if\\|unless\\) \$\@'}, '', 'Use try/catch instead of 
manual \$\@ checks';
-is qx{git grep -I -l '^use \\(Try::Tiny\\|TryCatch\\)'}, '',
-  'No Try::Tiny or TryCatch necessary, use Feature::Compat::Try and later 
native Perl';
-is
-qx{git grep -l -e '^sub \\S\\+ [^(]\\+' --and --not -e 'sub [(\{]' --and --not 
-e 'sub \\S\\+(' --and --not -e 'sub \\S\\+;' --and --not -e '# 
no:style:signatures' 'lib/'},
-  '', 'All files use sub signatures everywhere (nameless and in-place 
definitions still allowed)';
-is qx{git grep -I -l 'sub [a-z_A-Z0-9]\\+()' ':!docs/'}, '',
-  'Consistent space before function signatures (this is not ensured by 
perltidy)';
-is
-qx{git grep -Pr "(?<!->)(?<!sub 
)\\b(ok|is|isnt|like|unlike|cmp_ok|can_ok|isa_ok|subtest|diag|note|explain|pass|fail|new_ok|is_deeply)\\s*\\("
 t/ | grep -vE "t/(lib|testresults)/"},
-  '',
-  'Consistent Test::More call format (no parentheses)';
-
-done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/02-pod.t 
new/openQA-5.1776103434.91af0a8b/t/02-pod.t
--- old/openQA-5.1776072800.e5bc7424/t/02-pod.t 2026-04-13 11:33:20.000000000 
+0200
+++ new/openQA-5.1776103434.91af0a8b/t/02-pod.t 1970-01-01 01:00:00.000000000 
+0100
@@ -1,8 +0,0 @@
-use Test::Most;
-use Test::Warnings qw(:no_end_test :report_warnings);
-use Feature::Compat::Try;
-# no OpenQA::Test::TimeLimit for this trivial test
-
-eval 'use Test::Pod; 1' or plan skip_all => 'Test::Pod required for testing 
POD';
-
-all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/03-auth.t 
new/openQA-5.1776103434.91af0a8b/t/03-auth.t
--- old/openQA-5.1776072800.e5bc7424/t/03-auth.t        2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/03-auth.t        2026-04-13 
20:03:54.000000000 +0200
@@ -75,6 +75,7 @@
     my $key = $user->api_keys->find({key => 'DEADBEEFDEADBEEF'});
     ok $key, 'admin API key exists';
     is $key->secret, 'DEADBEEFDEADBEEF', 'admin API secret matches';
+    is $key->t_expiration, undef, 'admin API key has no expiration';
 
     $t->get_ok('/api/v1/auth' => {Authorization => 'Bearer 
admin:DEADBEEFDEADBEEF:DEADBEEFDEADBEEF'})->status_is(200)
       ->content_is('ok');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/24-worker-jobs.t 
new/openQA-5.1776103434.91af0a8b/t/24-worker-jobs.t
--- old/openQA-5.1776072800.e5bc7424/t/24-worker-jobs.t 2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/24-worker-jobs.t 2026-04-13 
20:03:54.000000000 +0200
@@ -27,9 +27,9 @@
 use Mojo::UserAgent;
 use Mojo::URL;
 use Mojo::IOLoop;
-use OpenQA::Constants qw(DEFAULT_MAX_JOB_TIME DEFAULT_MAX_SETUP_TIME 
WORKER_COMMAND_CANCEL WORKER_COMMAND_QUIT
-  WORKER_COMMAND_OBSOLETE WORKER_SR_SETUP_FAILURE WORKER_SR_TIMEOUT 
WORKER_EC_ASSET_FAILURE WORKER_EC_CACHE_FAILURE
-  WORKER_SR_API_FAILURE WORKER_SR_DIED WORKER_SR_DONE WORKER_SR_BROKEN);
+use OpenQA::Constants qw(DEFAULT_MAX_JOB_TIME DEFAULT_MAX_SETUP_TIME 
DEFAULT_UPLOAD_CHUNK_SIZE WORKER_COMMAND_CANCEL
+  WORKER_COMMAND_QUIT WORKER_COMMAND_OBSOLETE WORKER_SR_SETUP_FAILURE 
WORKER_SR_TIMEOUT WORKER_EC_ASSET_FAILURE
+  WORKER_EC_CACHE_FAILURE WORKER_SR_API_FAILURE WORKER_SR_DIED WORKER_SR_DONE 
WORKER_SR_BROKEN);
 use OpenQA::Worker::Job;
 use OpenQA::Worker::Settings;
 use OpenQA::Test::FakeWebSocketTransaction;
@@ -1302,18 +1302,6 @@
     is $max_job_time, DEFAULT_MAX_JOB_TIME * 2, 'max job time scaled';
     is $max_setup_time, DEFAULT_MAX_SETUP_TIME, 'max setup time not scaled';
     is_deeply [sort keys %settings], [qw(MAX_JOB_TIME TIMEOUT_SCALE)], 'no 
extra settings added so far';
-
-    $settings{TIMEOUT_SCALE} = undef;
-    $settings{MAX_JOB_TIME} = DEFAULT_MAX_JOB_TIME + 1;
-    ($max_job_time, $max_setup_time) = 
OpenQA::Worker::Job::_compute_timeouts(\%settings);
-    is $max_job_time, DEFAULT_MAX_JOB_TIME + 1, 'long scenario, NOVIDEO not 
specified';
-    is $settings{NOVIDEO}, 1, 'NOVIDEO set to 1 for long scenarios';
-
-    $settings{NOVIDEO} = 0;
-    ($max_job_time, $max_setup_time) = 
OpenQA::Worker::Job::_compute_timeouts(\%settings);
-    is $max_job_time, DEFAULT_MAX_JOB_TIME + 1, 'long scenario, NOVIDEO 
specified';
-    is $settings{NOVIDEO}, 0, 'NOVIDEO not overridden if set to 0 explicitely';
-    is_deeply [sort keys %settings], [qw(MAX_JOB_TIME NOVIDEO TIMEOUT_SCALE)], 
'only expected settings added';
 };
 
 subtest 'handling timeout' => sub {
@@ -1471,11 +1459,10 @@
     my $upload_res;
     combined_like { $upload_res = $job->_upload_asset(\%params) } qr/fake 
error.*404.*Upload failed for chunk 3/s,
       'upload logged';
+    my @chunking_params = (chunk_size => DEFAULT_UPLOAD_CHUNK_SIZE);
+    my %expected_params = (asset => undef, file => 'foo', name => 'bar', local 
=> 1, retries => 10, @chunking_params);
     is $upload_res, 1, 'upload succeeded';
-    is_deeply \@params,
-      [[14, {asset => undef, chunk_size => 1000000, file => 'foo', name => 
'bar', local => 1, retries => 10}]],
-      'expected params passed'
-      or always_explain \@params;
+    is_deeply \@params, [[14, \%expected_params]], 'expected params passed' or 
always_explain \@params;
 
     $mock_failure = 1;
     my ($stdout, $stderr, @result) = capture sub { 
$job->_upload_asset(\%params) };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/45-make-update-deps.t 
new/openQA-5.1776103434.91af0a8b/t/45-make-update-deps.t
--- old/openQA-5.1776072800.e5bc7424/t/45-make-update-deps.t    2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/45-make-update-deps.t    1970-01-01 
01:00:00.000000000 +0100
@@ -1,22 +0,0 @@
-#!/usr/bin/env perl
-# Copyright 2020 SUSE LLC
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-use Test::Most;
-use Test::Warnings;
-# no OpenQA::Test::TimeLimit for this trivial test
-
-plan skip_all => 'SKIP_UPDATE_DEPS is set' if $ENV{SKIP_UPDATE_DEPS};
-
-my $make = 'make update-deps';
-my @out = qx{$make};
-my $rc = $?;
-die "Could not run $make: rc=$rc" if $rc;
-
-my @status = grep { not m/^\?/ } qx{git status --porcelain};
-
-ok !@status, "No changed files after '$make'"
-  or diag @status;
-
-done_testing;
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/t/compile/01-compile-check-all.t 
new/openQA-5.1776103434.91af0a8b/t/compile/01-compile-check-all.t
--- old/openQA-5.1776072800.e5bc7424/t/compile/01-compile-check-all.t   
1970-01-01 01:00:00.000000000 +0100
+++ new/openQA-5.1776103434.91af0a8b/t/compile/01-compile-check-all.t   
2026-04-13 20:03:54.000000000 +0200
@@ -0,0 +1,56 @@
+# Copyright 2019-2020 SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+use Test::Most;
+# We need :no_end_test here because otherwise it would output a no warnings
+# test for each of the modules, but with the same test number
+use Test::Warnings qw(:no_end_test :report_warnings);
+use Test::Compile;
+use File::Which;
+use FindBin;
+use lib "$FindBin::Bin/../lib", 
"$FindBin::Bin/../../external/os-autoinst-common/lib";
+use OpenQA::Test::TimeLimit '400';
+
+
+my $SKIP = [
+    # skip test module which would require test API from os-autoinst to be 
present
+    
't/data/openqa/share/tests/opensuse/tests/installation/installer_timezone.pm',
+    # Skip data files which are supposed to resemble generated output which 
has no 'use' statements
+    't/data/40-templates.pl',
+    't/data/40-templates-jgs.pl',
+    't/data/40-templates-more.pl',
+    't/data/openqa-trigger-from-obs/Proj2::appliances/.api_package',
+    't/data/openqa-trigger-from-obs/Proj2::appliances/.dirty_status',
+    't/data/openqa-trigger-from-obs/Proj3::standard/empty.txt',
+];
+
+my $test = Test::Compile->new();
+my @files;
+
+# Prevent any non-tracked files or files within .git (e.g. in.git/rr-cache) to
+# interfer
+if (-d '.git' and which('git')) {
+    my $root = qx{git rev-parse --show-toplevel};
+    chomp $root;
+    $root .= '/';
+    my @all_git_files = qx{git ls-files};
+    chomp @all_git_files;
+    my %skip = map { $_ => undef } @$SKIP;
+    @files = map { $root . $_ }
+      grep { !-l $_ && !exists $skip{$_} && $_ !~ /^(external|t|xt)\// } 
@all_git_files;    # Exclude files to skip
+}
+else {
+    @files = ($test->all_pm_files('lib'), $test->all_pl_files('script'));
+    my %skip = map { $_ => undef } @$SKIP;
+    @files = grep { my $f = s{^\./}{}r; !exists $skip{$f} && $f !~ 
/^(external|t|xt)\// } @files;
+}
+
+# Only check perl files and skip test scripts (already executed)
+@files = grep { /\.(?:pm|pl|t)$/ } @files;
+
+plan tests => scalar @files;
+
+foreach my $file (@files) {
+    my $ok = $file =~ /\.pm$/ ? $test->pm_file_compiles($file) : 
$test->pl_file_compiles($file);
+    ok $ok, "Syntax check $file";
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/t/testrules.yml 
new/openQA-5.1776103434.91af0a8b/t/testrules.yml
--- old/openQA-5.1776072800.e5bc7424/t/testrules.yml    2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/t/testrules.yml    2026-04-13 
20:03:54.000000000 +0200
@@ -1,42 +1,72 @@
 ---
-# we list here all jobs that are good to run in parallel with code checks. 
Every other
-# test not listed here is run afterwards
+# Rules for parallel vs sequential test execution.
+# Tests listed in the 'par' block can run in parallel with each other.
+# Everything else runs sequentially at the end.
 seq:
   - par:
-      - ./t/00-tidy.t
-      - ./t/01-compile-check-all.t
-      - ./t/02-pod.t
+      - ./t/01-test-utilities.t
+      - ./t/03-auth-openid.t
+      - ./t/03-auth.t
       - ./t/04-scheduler.t
-      - ./t/05-scheduler-cancel.t
       - ./t/05-scheduler-capabilities.t
       - ./t/05-scheduler-dependencies.t
       - ./t/05-scheduler-restart-and-duplicate.t
+      - ./t/05-scheduler-serialize-directly-chained-dependencies.t
       - ./t/06-users.t
-      - ./t/07-api_jobtokens.t
       - ./t/07-api_keys.t
       - ./t/09-job_clone.t
-      - ./t/10-tests_overview.t
+      - ./t/11-commands.t
       - ./t/13-joblocks.t
+      - ./t/14-grutasks-git.t
       - ./t/15-assets.t
+      - ./t/15-shared-plugin-gru.t
+      - ./t/16-utils-job-templates.t
       - ./t/16-utils-runcmd.t
+      - ./t/16-utils-vcs-provider.t
       - ./t/16-utils.t
-      - ./t/17-build_tagging.t
-      - ./t/19-tests-export.t
-      - ./t/20-workers-ws.t
+      - ./t/20-stale-job-detection.t
       - ./t/21-needles.t
-      - ./t/22-dashboard.t
       - ./t/23-amqp.t
-      - ./t/24-worker-engine.t
-      - ./t/24-worker-job.t
-      - ./t/24-worker-overall.t
-      - ./t/24-worker-settings.t
-      - ./t/24-worker-webui-connection.t
-      - ./t/27-errorpages.t
+      - ./t/25-bugs.t
+      - ./t/25-cache-client.t
+      - ./t/25-cache-service.t
+      - ./t/25-cache.t
+      - ./t/25-downloader.t
+      - ./t/25-serverstartup.t
+      - ./t/26-controllerrunning.t
+      - ./t/27-websockets.t
+      - ./t/28-logging.t
       - ./t/30-test_parser.t
       - ./t/31-api_descriptions.t
+      - ./t/31-client.t
+      - ./t/31-client_file.t
+      - ./t/35-script_clone_job.t
+      - ./t/35-script_clone_job_suse.t
+      - ./t/40-job_settings.t
       - ./t/40-openqa-clone-job.t
-      - ./t/40-script_openqa-label-all.t
+      - ./t/40-script_load_dump_templates.t
       - ./t/40-script_openqa-clone-custom-git-refspec.t
+      - ./t/40-script_openqa-label-all.t
+      - ./t/42-df-based-cleanup.t
+      - ./t/42-screenshots.t
+      - ./t/43-cli.t
+      - ./t/44-scripts-modify_needle.t
+      - ./t/44-scripts.t
+      - ./t/46-munin.t
+      - ./t/api/14-plugin_memory_limit.t
+      - ./t/api/14-plugin_obs_rsync.t
+      - ./t/api/14-plugin_obs_rsync_async.t
+      - ./t/api/18-jobtokens.t
       - ./t/basic.t
+      - ./t/config.t
       - ./t/deploy.t
-      - ./t/full-stack.t
+      - ./t/compile/01-compile-check-all.t
+      - ./xt/00-tidy.t
+      - ./xt/01-style.t
+      - ./xt/02-pod.t
+      - ./t/ui/25-developer_mode.t
+      - ./t/ui/27-plugin_obs_rsync.t
+      - ./t/ui/27-plugin_obs_rsync_gru.t
+      - ./t/ui/27-plugin_obs_rsync_obs_status.t
+      - ./t/ui/27-plugin_obs_rsync_status_details.t
+      - ./t/ui/30-issue-reporter-plugin.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/tools/ci/run_unit_tests.sh 
new/openQA-5.1776103434.91af0a8b/tools/ci/run_unit_tests.sh
--- old/openQA-5.1776072800.e5bc7424/tools/ci/run_unit_tests.sh 2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/tools/ci/run_unit_tests.sh 2026-04-13 
20:03:54.000000000 +0200
@@ -24,5 +24,4 @@
 export OPENQA_TEST_TIMEOUT_SCALE_CI=3
 export EXTRA_PROVE_ARGS="-v"
 export OPENQA_FULLSTACK_TEMP_DIR=$PWD/test-results/fullstack
-export PROVE="tools/prove_wrapper"
 make test-$target
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/xt/00-tidy.t 
new/openQA-5.1776103434.91af0a8b/xt/00-tidy.t
--- old/openQA-5.1776072800.e5bc7424/xt/00-tidy.t       1970-01-01 
01:00:00.000000000 +0100
+++ new/openQA-5.1776103434.91af0a8b/xt/00-tidy.t       2026-04-13 
20:03:54.000000000 +0200
@@ -0,0 +1,12 @@
+# Copyright 2014-2020 SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+use Test::Most;
+use Test::Warnings ':report_warnings';
+use FindBin;
+use lib "$FindBin::Bin/lib", 
"$FindBin::Bin/../external/os-autoinst-common/lib";
+use OpenQA::Test::TimeLimit '80';
+
+is system('tools/tidyall', '--check-only', '-a'), 0, 'tidy';
+
+done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/xt/01-style.t 
new/openQA-5.1776103434.91af0a8b/xt/01-style.t
--- old/openQA-5.1776072800.e5bc7424/xt/01-style.t      1970-01-01 
01:00:00.000000000 +0100
+++ new/openQA-5.1776103434.91af0a8b/xt/01-style.t      2026-04-13 
20:03:54.000000000 +0200
@@ -0,0 +1,38 @@
+#!/usr/bin/perl
+# Copyright 2021 SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+use Test::Most;
+
+ok system(qq{git grep -I -l 'Copyright \((C)\|(c)\|©\)' ':!COPYING' 
':!external/'}) != 0,
+  'No redundant copyright character';
+ok
+  system(
+qq{git grep -I -l 'This program is free software.*if not, see 
<http://www.gnu.org/licenses/' ':!COPYING' ':!external/' ':!xt/01-style.t'}
+  ) != 0, 'No verbatim licenses in source files';
+ok system(qq{git grep -I -l '[#/ ]*SPDX-License-Identifier ' ':!COPYING' 
':!external/' ':!xt/01-style.t'}) != 0,
+  'SPDX-License-Identifier correctly terminated';
+is qx{git grep -I -L '^use Test::Most' {t,xt}/**.t}, '', 'All tests use 
Test::Most';
+is qx{git grep --all-match -e '^use Mojo::Base' -e 'use base'}, '', 'No 
redundant Mojo::Base+base';
+is qx{git grep -I --all-match -e '^use Mojo::Base' -e 'use 
\\(strict\\|warnings\\);' ':!docs' ':!external'}, '',
+  'Only combined Mojo::Base+strict+warnings';
+is qx{git grep -I -L '^use Test::Warnings' {t,xt}/**.t ':!xt/01-style.t'}, '', 
'All tests use Test::Warnings';
+is qx{git grep -I -l '^use Test::\\(Exception\\|Fatal\\)' {t,xt}/**.t}, '',
+  'Test::Most already includes Test::Exception, no need to use Test::Exception 
or Test::Fatal';
+is qx{git grep -I -l '^\\(throws\\|dies\\|lives\\)_ok.*\<sub\>' {t,xt}/**.t}, 
'',
+  'Only use simplified prototyped Test::Exception functions';
+is qx{git grep -I -l 'like.*\$\@' {t,xt}/**.t}, '', 'Use throws_ok instead of 
manual checks of exceptions';
+is qx{git grep -I -l ' \\(if\\|unless\\) \$\@'}, '', 'Use try/catch instead of 
manual \$\@ checks';
+is qx{git grep -I -l '^use \\(Try::Tiny\\|TryCatch\\)'}, '',
+  'No Try::Tiny or TryCatch necessary, use Feature::Compat::Try and later 
native Perl';
+is
+qx{git grep -l -e '^sub \\S\\+ [^(]\\+' --and --not -e 'sub [(\{]' --and --not 
-e 'sub \\S\\+(' --and --not -e 'sub \\S\\+;' --and --not -e '# 
no:style:signatures' 'lib/'},
+  '', 'All files use sub signatures everywhere (nameless and in-place 
definitions still allowed)';
+is qx{git grep -I -l 'sub [a-z_A-Z0-9]\\+()' ':!docs/'}, '',
+  'Consistent space before function signatures (this is not ensured by 
perltidy)';
+is
+qx{git grep -Pr "(?<!->)(?<!sub 
)\\b(ok|is|isnt|like|unlike|cmp_ok|can_ok|isa_ok|subtest|diag|note|explain|pass|fail|new_ok|is_deeply)\\s*\\("
 {t,xt}/ | grep -vE "(t|xt)/(lib|testresults)/"},
+  '',
+  'Consistent Test::More call format (no parentheses)';
+
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/xt/02-perlcritic.t 
new/openQA-5.1776103434.91af0a8b/xt/02-perlcritic.t
--- old/openQA-5.1776072800.e5bc7424/xt/02-perlcritic.t 2026-04-13 
11:33:20.000000000 +0200
+++ new/openQA-5.1776103434.91af0a8b/xt/02-perlcritic.t 2026-04-13 
20:03:54.000000000 +0200
@@ -2,6 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Test::Warnings qw(:no_end_test :report_warnings);
 use FindBin '$Bin';
 use lib "$Bin/../external/os-autoinst-common/lib/perlcritic";
 use Test::Perl::Critic;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/openQA-5.1776072800.e5bc7424/xt/02-pod.t 
new/openQA-5.1776103434.91af0a8b/xt/02-pod.t
--- old/openQA-5.1776072800.e5bc7424/xt/02-pod.t        1970-01-01 
01:00:00.000000000 +0100
+++ new/openQA-5.1776103434.91af0a8b/xt/02-pod.t        2026-04-13 
20:03:54.000000000 +0200
@@ -0,0 +1,8 @@
+use Test::Most;
+use Test::Warnings qw(:no_end_test :report_warnings);
+use Feature::Compat::Try;
+# no OpenQA::Test::TimeLimit for this trivial test
+
+eval 'use Test::Pod; 1' or plan skip_all => 'Test::Pod required for testing 
POD';
+
+all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/openQA-5.1776072800.e5bc7424/xt/45-make-update-deps.t 
new/openQA-5.1776103434.91af0a8b/xt/45-make-update-deps.t
--- old/openQA-5.1776072800.e5bc7424/xt/45-make-update-deps.t   1970-01-01 
01:00:00.000000000 +0100
+++ new/openQA-5.1776103434.91af0a8b/xt/45-make-update-deps.t   2026-04-13 
20:03:54.000000000 +0200
@@ -0,0 +1,22 @@
+#!/usr/bin/env perl
+# Copyright 2020 SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+use Test::Most;
+use Test::Warnings;
+# no OpenQA::Test::TimeLimit for this trivial test
+
+plan skip_all => 'SKIP_UPDATE_DEPS is set' if $ENV{SKIP_UPDATE_DEPS};
+
+my $make = 'make update-deps';
+my @out = qx{$make};
+my $rc = $?;
+die "Could not run $make: rc=$rc" if $rc;
+
+my @status = grep { not m/^\?/ } qx{git status --porcelain};
+
+ok !@status, "No changed files after '$make'"
+  or diag @status;
+
+done_testing;
+

++++++ openQA.obsinfo ++++++
--- /var/tmp/diff_new_pack.hYI1Db/_old  2026-04-14 17:50:59.466165505 +0200
+++ /var/tmp/diff_new_pack.hYI1Db/_new  2026-04-14 17:50:59.470165670 +0200
@@ -1,5 +1,5 @@
 name: openQA
-version: 5.1776072800.e5bc7424
-mtime: 1776072800
-commit: e5bc742416a9bcb03b24716c89c3a23c380625df
+version: 5.1776103434.91af0a8b
+mtime: 1776103434
+commit: 91af0a8b3b4448bf9f6b099bdcd3a2c004afa619
 

Reply via email to