Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package os-autoinst for openSUSE:Factory 
checked in at 2026-10-14 18:35:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
 and      /work/SRC/openSUSE:Factory/.os-autoinst.new.3698736 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "os-autoinst"

Wed Oct 14 18:35:40 2026 rev:630 rq:1384688 version:5.1791813843.3b85101

Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes  2026-10-12 
22:09:42.455528196 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.3698736/os-autoinst.changes     
2026-10-14 18:36:34.818552836 +0200
@@ -1,0 +2,7 @@
+Mon Oct 12 17:55:38 UTC 2026 - [email protected]
+
+- Update to version 5.1791813843.3b85101:
+  * git subrepo pull (merge) --force external/os-autoinst-common
+  * style: fix perlcritic sigil and quote warnings
+
+-------------------------------------------------------------------

Old:
----
  os-autoinst-5.1791634386.2b02af1.obscpio

New:
----
  os-autoinst-5.1791813843.3b85101.obscpio

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

Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.m0N3L4/_old  2026-10-14 18:36:36.822637215 +0200
+++ /var/tmp/diff_new_pack.m0N3L4/_new  2026-10-14 18:36:36.823637257 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name os-autoinst-devel
 Name:           %{short_name}-test
-Version:        5.1791634386.2b02af1
+Version:        5.1791813843.3b85101
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.m0N3L4/_old  2026-10-14 18:36:36.853638520 +0200
+++ /var/tmp/diff_new_pack.m0N3L4/_new  2026-10-14 18:36:36.854638562 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst-openvswitch
 Name:           %{short_name}%{?name_ext}
-Version:        5.1791634386.2b02af1
+Version:        5.1791813843.3b85101
 Release:        0
 Summary:        test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.m0N3L4/_old  2026-10-14 18:36:36.882639741 +0200
+++ /var/tmp/diff_new_pack.m0N3L4/_new  2026-10-14 18:36:36.884639825 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst
 Name:           %{short_name}%{?name_ext}
-Version:        5.1791634386.2b02af1
+Version:        5.1791813843.3b85101
 Release:        0
 Summary:        test package for os-autoinst
 License:        GPL-2.0-or-later

++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.m0N3L4/_old  2026-10-14 18:36:36.912641004 +0200
+++ /var/tmp/diff_new_pack.m0N3L4/_new  2026-10-14 18:36:36.913641046 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           os-autoinst
-Version:        5.1791634386.2b02af1
+Version:        5.1791813843.3b85101
 Release:        0
 Summary:        OS-level test automation
 License:        GPL-2.0-or-later

++++++ os-autoinst-5.1791634386.2b02af1.obscpio -> 
os-autoinst-5.1791813843.3b85101.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/OpenQA/Isotovideo/Utils.pm 
new/os-autoinst-5.1791813843.3b85101/OpenQA/Isotovideo/Utils.pm
--- old/os-autoinst-5.1791634386.2b02af1/OpenQA/Isotovideo/Utils.pm     
2026-10-10 14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/OpenQA/Isotovideo/Utils.pm     
2026-10-12 16:04:03.000000000 +0200
@@ -33,7 +33,7 @@
 
 sub _configure_safe_dir_cmd ($output) {
     return '' unless $output =~ /(git config.*safe.directory.*$)/;
-    return "TMPDIR=\$(mktemp -d --tmpdir os-autoinst-git.XXXXX) && 
HOME=\$TMPDIR && $1 &&";    # uncoverable statement
+    return 'TMPDIR=$(mktemp -d --tmpdir os-autoinst-git.XXXXX) && HOME=$TMPDIR 
&& ' . $1 . ' &&';    # uncoverable statement
 }
 
 sub git_rev_parse ($dirname, $cmd_prefix = '') {
@@ -61,7 +61,7 @@
     return $fallback // 'UNKNOWN (origin remote not found)' unless grep { $_ 
eq 'origin' } @remotes;
     chomp(my $url = qx{$safe_dir_cmd git -C "$git_repo_dir" remote get-url 
origin 2>&1});
     return git_remote_url($url, $url) if $? == 0;    # recursive lookup to 
handle caching
-    bmwqemu::diag("Could not retrieve remote url of $git_repo_dir: \"$url\""); 
   # uncoverable statement
+    bmwqemu::diag(qq{Could not retrieve remote url of $git_repo_dir: "$url"}); 
   # uncoverable statement
     return $fallback // 'UNKNOWN (error on git remote call)';    # uncoverable 
statement
 }
 
@@ -77,7 +77,7 @@
 
 sub _clone_bare_repo ($clone_url, $clone_depth, $clone_cmd, $cache_dir, 
$handle_output) {
     return undef if -e $cache_dir;
-    bmwqemu::fctinfo "Creating bare repository for caching \"$clone_url\" 
under '$cache_dir'";
+    bmwqemu::fctinfo qq{Creating bare repository for caching "$clone_url" 
under '$cache_dir'};
     $handle_output->($?, qx{$clone_cmd --bare --depth='$clone_depth' 
'$clone_url' '$cache_dir' 2>&1});
 }
 
@@ -107,7 +107,7 @@
 
 sub _determine_size ($dir, $handle_output) {
     $handle_output->($?, my $du = qx{du -s "$dir"});
-    die "Unable to determine size of Git directory under \"$dir\": du returned 
'$du'\n" unless $du =~ /(\d+).*/;
+    die qq{Unable to determine size of Git directory under "$dir": du returned 
'$du'\n} unless $du =~ /(\d+).*/;
     return int $1;
 }
 
@@ -161,10 +161,10 @@
     my $direct_fetch = $args{direct_fetch};
 
     if (-e $local_path) {
-        bmwqemu::diag "Skipping to clone \"$clone_url\"; $local_path already 
exists";
+        bmwqemu::diag qq{Skipping to clone "$clone_url"; $local_path already 
exists};
         return 1;
     }
-    bmwqemu::fctinfo "Cloning git URL \"$clone_url\" into '" . cwd . "'";
+    bmwqemu::fctinfo qq{Cloning git URL "$clone_url" into '} . cwd . "'";
     my $branch_args = '';
     if ($branch) {
         bmwqemu::fctinfo "Checking out git refspec/branch '$branch'";
@@ -174,7 +174,7 @@
     my $clone_cmd = 'env GIT_SSH_COMMAND="ssh -oBatchMode=yes" git clone';
     my $handle_output = sub ($return_value, @out) {
         bmwqemu::diag "@out" if @out;
-        die "Unable to clone Git repository \"$dir\" specified via 
$dir_variable (see log for details)" unless $return_value == 0;
+        die qq{Unable to clone Git repository "$dir" specified via 
$dir_variable (see log for details)} unless $return_value == 0;
         return 1;
     };
 
@@ -204,7 +204,7 @@
     # * 
https://stackoverflow.com/questions/18515488/how-to-check-if-the-commit-exists-in-a-git-repository-by-its-sha-1
     # * 
https://stackoverflow.com/questions/26135216/why-isnt-there-a-git-clone-specific-commit-option
     bmwqemu::diag "Fetching more remote objects to ensure availability of 
'$branch'";
-    my $branch_not_found_err = "Could not find '$branch' in complete history 
in cloned Git repository \"$dir\"";
+    my $branch_not_found_err = qq{Could not find '$branch' in complete history 
in cloned Git repository "$dir"};
     while (qx{git -C "$local_path" cat-file -e "$branch^{commit}" 2>&1} =~ 
/Not a valid object/) {
         die $branch_not_found_err if qx{git -C "$local_path" rev-parse 
--is-shallow-repository 2>&1} =~ /^false/m;
         $clone_depth *= 2;
@@ -214,7 +214,7 @@
     }
     @out = qx{git -C "$local_path" checkout "$branch"};
     bmwqemu::diag "@out" if @out;
-    die "Unable to check out branch '$branch' in cloned Git repository 
\"$dir\"" unless $? == 0;
+    die qq{Unable to check out branch '$branch' in cloned Git repository 
"$dir"} unless $? == 0;
     return 1;
 }
 
@@ -334,7 +334,7 @@
     }
     my $hash = calculate_git_hash($dir);
     my $url = git_remote_url($dir);
-    bmwqemu::diag "git url in '$dir': \"$url\"";
+    bmwqemu::diag qq{git url in '$dir': "$url"};
     return ($url, $hash);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/backend/baseclass.pm 
new/os-autoinst-5.1791813843.3b85101/backend/baseclass.pm
--- old/os-autoinst-5.1791634386.2b02af1/backend/baseclass.pm   2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/backend/baseclass.pm   2026-10-12 
16:04:03.000000000 +0200
@@ -293,7 +293,7 @@
                 my $name = $self->{select_read}->get_name($fh);
                 my $msg = "The file descriptor $fd_nr ($name) hit the read 
attempts threshold of $hits_limit/${wait_time_limit}s by $cnt. ";
                 $msg .= "Active console '$console' is not responding, it could 
be a half-open socket or you need to increase _CHKSEL_RATE_HITS value. ";
-                $msg .= "Make sure the console is reachable or disable stall 
detection on expected disconnects with '\$console->disable_vnc_stalls', for 
example in case of intended machine shutdown.";
+                $msg .= q{Make sure the console is reachable or disable stall 
detection on expected disconnects with '$console->disable_vnc_stalls', for 
example in case of intended machine shutdown.};
                 OpenQA::Exception::ConsoleReadError->throw(error => $msg);
             }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1791634386.2b02af1/backend/svirt.pm 
new/os-autoinst-5.1791813843.3b85101/backend/svirt.pm
--- old/os-autoinst-5.1791634386.2b02af1/backend/svirt.pm       2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/backend/svirt.pm       2026-10-12 
16:04:03.000000000 +0200
@@ -172,7 +172,7 @@
             sleep 10;
             last
               unless $self->run_ssh_cmd(
-                "pgrep --full --list-full xfreerdp.*\$(cat 
xfreerdp_${vmname}_stop.bkp)",
+                'pgrep --full --list-full xfreerdp.*$(cat xfreerdp_' . $vmname 
. '_stop.bkp)',
                 $self->get_ssh_credentials('hyperv'));
             $self->die('xfreerdp did not start') if ($i eq 5);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/consoles/sshX3270.pm 
new/os-autoinst-5.1791813843.3b85101/consoles/sshX3270.pm
--- old/os-autoinst-5.1791634386.2b02af1/consoles/sshX3270.pm   2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/consoles/sshX3270.pm   2026-10-12 
16:04:03.000000000 +0200
@@ -15,7 +15,7 @@
     my $console_info = $self->new_3270_console({vnc_backend => $self});
     # do ssh connect
     my $s3270 = $console_info->{console};
-    $s3270->send_3270("Connect(\"-e $sshcommand\")");
+    $s3270->send_3270(qq{Connect("-e $sshcommand")});
     # wait for 10 seconds for password prompt
     for my $i (-9 .. 0) {
         $s3270->send_3270('Snap');
@@ -26,7 +26,7 @@
         die 'ssh password prompt timeout' unless $i;
         sleep 1;
     }
-    $s3270->send_3270("String(\"$sshpassword\")");
+    $s3270->send_3270(qq{String("$sshpassword")});
     $s3270->send_3270('ENTER');
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1791634386.2b02af1/distribution.pm 
new/os-autoinst-5.1791813843.3b85101/distribution.pm
--- old/os-autoinst-5.1791634386.2b02af1/distribution.pm        2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/distribution.pm        2026-10-12 
16:04:03.000000000 +0200
@@ -209,7 +209,7 @@
             testapi::type_string "export _OAM=$str; $cmd\n", max_interval => 
$args{max_interval};
         }
         else {
-            my $marker = "; echo $str-\$?-" . ($args{output} ? "Comment: 
$args{output}" : '');
+            my $marker = "; echo $str-" . '$?-' . ($args{output} ? "Comment: 
$args{output}" : '');
             my $final_cmd = _no_marker_prefix($cmd, $skip_pretty);
             if (testapi::is_serial_terminal) {
                 testapi::type_string "$final_cmd$marker", max_interval => 
$args{max_interval};
@@ -258,7 +258,7 @@
     $cmd = _no_marker_prefix("( $cmd )");
     testapi::type_string $cmd;
     my $str = testapi::hashed_string('SR' . $cmd);
-    my $marker = "& echo $str-\$!-" . ($args{output} ? "Comment: 
$args{output}" : '');
+    my $marker = "& echo $str-" . '$!-' . ($args{output} ? "Comment: 
$args{output}" : '');
     if (testapi::is_serial_terminal) {
         testapi::type_string $marker;
         testapi::wait_serial($cmd . $marker, no_regex => 1, quiet => 1, 
internal_marker => 1) or _handle_cmd_typing_error($cmd, \%args);
@@ -336,9 +336,9 @@
 
     if (testapi::is_serial_terminal) {
         my $heretag = 'EOT_' . $marker;
-        my $cat = "cat > $script_path << '$heretag'; echo $marker-\$?-";
+        my $cat = "cat > $script_path << '$heretag'; echo $marker-" . '$?-';
         testapi::wait_serial($self->{serial_term_prompt}, no_regex => 1, quiet 
=> 1);
-        bmwqemu::log_call("Content of $script_path :\n \"$cat\" \n");
+        bmwqemu::log_call(qq{Content of $script_path :\n "$cat" \n});
         testapi::type_string $cat . "\n";
         testapi::wait_serial("$cat", no_regex => 1, quiet => 1);
         # Wait for input prompt of here tag before typing $script. This avoids
@@ -370,7 +370,7 @@
     # might encounter on the serial device depending on how it is used in the
     # SUT
     my $shell_cmd = testapi::is_serial_terminal() ? 'bash -oe pipefail' : 
'bash -eox pipefail';
-    my $run_script = _no_marker_prefix("echo $marker; $shell_cmd $script_path 
; echo SCRIPT_FINISHED$marker-\$?-");
+    my $run_script = _no_marker_prefix("echo $marker; $shell_cmd $script_path 
; echo SCRIPT_FINISHED$marker-" . '$?-');
     if (testapi::is_serial_terminal) {
         testapi::wait_serial($self->{serial_term_prompt}, no_regex => 1, quiet 
=> 1);
         testapi::type_string "$run_script\n";
@@ -660,7 +660,7 @@
         return $self->{_serial_marker_level}->{$console} = $level;
     }
 
-    testapi::type_string "echo \"BASH:\$BASH_VERSION:\" > 
/dev/$testapi::serialdev\n";
+    testapi::type_string('echo "BASH:$BASH_VERSION:" > /dev/' . 
$testapi::serialdev . "\n");
     my $out = testapi::wait_serial(qr/BASH:([^:]*):/, 10);
     if ($out && $out =~ /BASH:(?:[3-9]|\d{2,})/) {
         $level = 3;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
  2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/base-commit-message-checker.yml
  2026-10-12 16:04:03.000000000 +0200
@@ -10,7 +10,7 @@
     permissions:
       contents: read
     steps:
-      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # 
v7.0.0
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # 
v7.0.1
         with:
           fetch-depth: 0
       - name: Install gitlint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
    2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/perl-author-tests.yml
    2026-10-12 16:04:03.000000000 +0200
@@ -12,7 +12,7 @@
     container:
       image: registry.opensuse.org/devel/openqa/containers/os-autoinst_dev
     steps:
-      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # 
v7.0.0
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # 
v7.0.1
       - run: |
           git config --system --add safe.directory "$GITHUB_WORKSPACE"
           make test-author
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
     2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/perl-lint-checks.yml
     2026-10-12 16:04:03.000000000 +0200
@@ -12,5 +12,5 @@
     container:
       image: registry.opensuse.org/devel/openqa/containers/os-autoinst_dev
     steps:
-      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # 
v7.0.0
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # 
v7.0.1
       - run: GITHUB_ACTIONS=1 make test-tidy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/test.yaml
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/test.yaml
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/test.yaml
        2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/test.yaml
        2026-10-12 16:04:03.000000000 +0200
@@ -11,5 +11,5 @@
     container:
       image: registry.opensuse.org/devel/openqa/containers/os-autoinst_dev
     steps:
-      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # 
v7.0.0
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # 
v7.0.1
       - run: make test-t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/yamllint.yml
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/yamllint.yml
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.github/workflows/yamllint.yml
     2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.github/workflows/yamllint.yml
     2026-10-12 16:04:03.000000000 +0200
@@ -10,7 +10,7 @@
       contents: read
     name: "YAML-lint"
     steps:
-      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0  # 
v7.0.0
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # 
v7.0.1
       - 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/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.gitrepo 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.gitrepo
--- old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.gitrepo   
2026-10-10 14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.gitrepo   
2026-10-12 16:04:03.000000000 +0200
@@ -6,7 +6,7 @@
 [subrepo]
        remote = [email protected]:os-autoinst/os-autoinst-common.git
        branch = master
-       commit = 7e1f983c44858679f93e2046ed1aa82171bd7f4b
-       parent = e750fdd98b1e45e1b516447e46b8289b6d438fbd
+       commit = f3dfe451b64618d5a91eb5e3d1c8e7471134681f
+       parent = 293c3877c7bf226fe419a5ff28ae32122d52c3a6
        method = merge
-       cmdver = 0.4.6
+       cmdver = 0.4.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.perlcriticrc 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.perlcriticrc
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/.perlcriticrc  
    2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/.perlcriticrc  
    2026-10-12 16:04:03.000000000 +0200
@@ -36,6 +36,10 @@
 severity = 1
 
 # == Custom Policies
+# -- Prohibit escaped double quotes inside double-quoted strings
+[OpenQA::ProhibitEscapedDoubleQuotes]
+severity = 3
+
 # -- Useless quotes on hashes
 [OpenQA::HashKeyQuotes]
 severity = 5
@@ -43,3 +47,7 @@
 # -- Superfluous use strict/warning.
 [OpenQA::RedundantStrictWarning]
 equivalent_modules = Test::Most
+
+# -- Prohibit escaped sigils that can be avoided with q{} or qq{}
+[OpenQA::ProhibitEscapedSigils]
+severity = 3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedDoubleQuotes.pm
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedDoubleQuotes.pm
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedDoubleQuotes.pm
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedDoubleQuotes.pm
    2026-10-12 16:04:03.000000000 +0200
@@ -0,0 +1,26 @@
+# Copyright SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+package Perl::Critic::Policy::OpenQA::ProhibitEscapedDoubleQuotes;
+
+use strict;
+use warnings;
+use experimental 'signatures';
+use base 'Perl::Critic::Policy';
+
+use Perl::Critic::Utils qw( :severities );
+
+our $VERSION = '0.0.1';
+
+my $DESC = q{Nested escaped double quotes in double-quoted string};
+my $EXPL = q{Use qq{...} or other delimiters to avoid backslash-escaping 
double quotes inside strings};
+
+sub default_severity { $SEVERITY_MEDIUM }
+sub default_themes { qw(openqa) }
+sub applies_to { qw(PPI::Token::Quote::Double) }
+
+sub violates ($self, $elem, $doc) {
+    return $elem->string =~ tr/\"// ? $self->violation($DESC, $EXPL, $elem) : 
();
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedSigils.pm
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedSigils.pm
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedSigils.pm
  1970-01-01 01:00:00.000000000 +0100
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/lib/perlcritic/Perl/Critic/Policy/OpenQA/ProhibitEscapedSigils.pm
  2026-10-12 16:04:03.000000000 +0200
@@ -0,0 +1,43 @@
+# Copyright SUSE LLC
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+package Perl::Critic::Policy::OpenQA::ProhibitEscapedSigils;
+
+use strict;
+use warnings;
+use experimental 'signatures';
+use base 'Perl::Critic::Policy';
+
+use Perl::Critic::Utils qw( :severities :classification :ppi );
+
+our $VERSION = '0.0.1';
+
+sub default_severity { return $SEVERITY_MEDIUM }
+sub default_themes { return qw(openqa) }
+sub applies_to { return qw(PPI::Token::Quote::Double) }
+
+sub violates ($self, $elem, $document) {
+    my $content = $elem->string;
+
+    # Check if there is any escaped sigil.
+    return () unless $content =~ m/(?<!\\)(?:\\\\)*\\([\$\@])/;
+
+    # Prohibit if always unnecessary (not followed by alphanumeric, 
underscore, sigils, or backslash)
+    if ($content =~ m/(?<!\\)(?:\\\\)*\\([\$\@])(?![a-zA-Z0-9_{\$\@\x5c])/) {
+        my $desc = 'Double-quoted string contains unnecessary 
backslash-escaped sigils';
+        my $expl = 'Use the q{} or qq{} operators instead of escaping 
characters to improve readability';
+        return $self->violation($desc, $expl, $elem);
+    }
+
+    # Prohibit if followed by valid identifier but string has no actual 
interpolation (unescaped sigil)
+    my $has_interpolation = $content =~ m/(?<!\\)(?:\\\\)*[\$\@][a-zA-Z0-9_{]/;
+    unless ($has_interpolation) {
+        my $desc = 'Double-quoted string contains unnecessary 
backslash-escaped sigils';
+        my $expl = 'Use the q{} or qq{} operators instead of escaping 
characters to improve readability';
+        return $self->violation($desc, $expl, $elem);
+    }
+
+    return ();
+}
+
+1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/t/OpenQA/ProhibitEscapedDoubleQuotes.run
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/t/OpenQA/ProhibitEscapedDoubleQuotes.run
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/t/OpenQA/ProhibitEscapedDoubleQuotes.run
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/t/OpenQA/ProhibitEscapedDoubleQuotes.run
   2026-10-12 16:04:03.000000000 +0200
@@ -0,0 +1,16 @@
+## name Passing
+## failures 0
+## cut
+
+my $sql = qq{DROP SCHEMA IF EXISTS "$schema_name" CASCADE};
+my $sql2 = qq{CREATE SCHEMA "$schema_name"};
+my $msg = "This has no escaped quotes";
+my $msg2 = "This has an escaped backslash \\\\ and a quote";
+my $msg3 = 'Single quotes are OK with \"';
+
+## name Failing
+## failures 2
+## cut
+
+my $sql3 = "DROP SCHEMA IF EXISTS \"$schema_name\" CASCADE";
+my $sql4 = "Another escaped quote \"";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/t/OpenQA/ProhibitEscapedSigils.run
 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/t/OpenQA/ProhibitEscapedSigils.run
--- 
old/os-autoinst-5.1791634386.2b02af1/external/os-autoinst-common/t/OpenQA/ProhibitEscapedSigils.run
 1970-01-01 01:00:00.000000000 +0100
+++ 
new/os-autoinst-5.1791813843.3b85101/external/os-autoinst-common/t/OpenQA/ProhibitEscapedSigils.run
 2026-10-12 16:04:03.000000000 +0200
@@ -0,0 +1,22 @@
+## name Passing
+## failures 0
+## cut
+
+my $s1 = 'hello';
+my $s2 = "hello";
+my $s3 = q{hello "world" $var @arr};
+my $s4 = qq{hello "world" $var @arr};
+my $s5 = "hello world";
+my $s6 = "hello \\ world";
+my $s7 = "hello \" world";
+my $s8 = "something \\$var";
+my $s9 = "$args{username}\@$args{hostname}";
+my $s10 = "unsupported \$result '$nargs{result}'";
+
+## name Failing
+## failures 3
+## cut
+
+my $f2 = "hello \$world";
+my $f3 = "hello \@array";
+my $f4 = "something \\\\\$var";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/script/os-autoinst-generate-needle-preview 
new/os-autoinst-5.1791813843.3b85101/script/os-autoinst-generate-needle-preview
--- 
old/os-autoinst-5.1791634386.2b02af1/script/os-autoinst-generate-needle-preview 
    2026-10-10 14:13:06.000000000 +0200
+++ 
new/os-autoinst-5.1791813843.3b85101/script/os-autoinst-generate-needle-preview 
    2026-10-12 16:04:03.000000000 +0200
@@ -83,17 +83,17 @@
         } else {
             say '     
style="fill:#000000;fill-opacity:0.5;stroke:#808080;stroke-width:2;stroke-opacity:0.75"';
         }
-        printf "     id=\"rect%d\"\n", $area_counter;
-        printf "     width=\"%d\"\n", $area->{width};
-        printf "     height=\"%d\"\n", $area->{height};
-        printf "     x=\"%d\"\n", $area->{xpos};
-        printf "     y=\"%d\" />\n", $area->{ypos};
+        printf qq{     id="rect%d"\n}, $area_counter;
+        printf qq{     width="%d"\n}, $area->{width};
+        printf qq{     height="%d"\n}, $area->{height};
+        printf qq{     x="%d"\n}, $area->{xpos};
+        printf qq{     y="%d" />\n}, $area->{ypos};
         if ($area->{click_point}) {
             say '  <circle';
             say '     
style="fill:#ffffff;fill-opacity:0.5;stroke:#ffffff;stroke-width:2;stroke-opacity:0.75"';
-            printf "     id=\"path%d\"\n", $area_counter;
-            printf "     cx=\"%f\"\n", $area->{xpos} + 
$area->{click_point}->{xpos};
-            printf "     cy=\"%f\"\n", $area->{ypos} + 
$area->{click_point}->{ypos};
+            printf qq{     id="path%d"\n}, $area_counter;
+            printf qq{     cx="%f"\n}, $area->{xpos} + 
$area->{click_point}->{xpos};
+            printf qq{     cy="%f"\n}, $area->{ypos} + 
$area->{click_point}->{ypos};
             say '     r="10" />';
         }
         $area_counter++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1791634386.2b02af1/t/17-basetest.t 
new/os-autoinst-5.1791813843.3b85101/t/17-basetest.t
--- old/os-autoinst-5.1791634386.2b02af1/t/17-basetest.t        2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/t/17-basetest.t        2026-10-12 
16:04:03.000000000 +0200
@@ -315,7 +315,7 @@
     my $mock = Test::MockModule->new('basetest');
     $mock->noop('take_screenshot');
     $mock->mock(run => sub {
-            die "Can't locate HTTP/Request/Common.pm in \@INC (you may need to 
install the HTTP::Request::Common module)\n";
+            die q{Can't locate HTTP/Request/Common.pm in @INC (you may need to 
install the HTTP::Request::Common module)} . "\n";
     });
     local $bmwqemu::vars{MAX_TEST_STEPS} = 100;
     my $basetest = bless {details => [], name => 'foo', fullname => 'foo', 
category => 'category1'}, 'basetest';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1791634386.2b02af1/t/28-signalblocker.t 
new/os-autoinst-5.1791813843.3b85101/t/28-signalblocker.t
--- old/os-autoinst-5.1791634386.2b02af1/t/28-signalblocker.t   2026-10-10 
14:13:06.000000000 +0200
+++ new/os-autoinst-5.1791813843.3b85101/t/28-signalblocker.t   2026-10-12 
16:04:03.000000000 +0200
@@ -65,7 +65,7 @@
 #        any crashes without the signal blocker in place 
(OS_AUTOINST_TEST_NO_SIGNAL_BLOCKER=1).
 my $pid = $$;
 my $timeout = 5;
-exec bash => '-e', '-c', "for i in {1..100}; do echo \"# sending SIGTERM \$i\" 
&& kill $pid; done" unless my $fork = fork;
+exec bash => '-e', '-c', 'for i in {1..100}; do echo "# sending SIGTERM $i" && 
kill ' . $pid . '; done' unless my $fork = fork;
 waitpid $fork, 0;
 note 'waiting for at least one signal to be handled' and sleep .2 while 
$received_sigterm < 1 && ($timeout -= .2) >= 0;
 note "handled $received_sigterm TERM signals";

++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.m0N3L4/_old  2026-10-14 18:36:38.558710309 +0200
+++ /var/tmp/diff_new_pack.m0N3L4/_new  2026-10-14 18:36:38.561710436 +0200
@@ -1,5 +1,5 @@
 name: os-autoinst
-version: 5.1791634386.2b02af1
-mtime: 1791634386
-commit: 2b02af1759f2aece404e97b9a79ded32695b77f3
+version: 5.1791813843.3b85101
+mtime: 1791813843
+commit: 3b85101553bc9ee20b29916a47d5ce879de2f2f1
 

Reply via email to