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-04-15 16:04:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
 and      /work/SRC/openSUSE:Factory/.os-autoinst.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "os-autoinst"

Wed Apr 15 16:04:56 2026 rev:588 rq:1346933 version:5.1776179508.bd2644d

Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes  2026-04-14 
17:51:05.758425610 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.21863/os-autoinst.changes       
2026-04-15 16:07:19.033774388 +0200
@@ -2 +2 @@
-Mon Apr 13 15:18:57 UTC 2026 - [email protected]
+Tue Apr 14 15:12:19 UTC 2026 - [email protected]
@@ -4 +4,3 @@
-- Update to version 5.1776093529.6913c36:
+- Update to version 5.1776179508.bd2644d:
+  * feat: abort test with incomplete if requested HDD size > threshold
+  * chore: Remove obsolete HashKeyQuotes module
@@ -6,0 +9,7 @@
+  * chore(ci): bump checkout v4->v6
+
+-------------------------------------------------------------------
+Mon Apr 13 09:57:54 UTC 2026 - [email protected]
+
+- Update to version 5.1776074266.6a6c5ee:
+  * fix(manpages): Fix the output of pod2man
@@ -9 +18,6 @@
-  * feat(edid): Add virtio-vga-gl support
+  * fix: prevent deprecation warning about "spurt"
+  * style(llm): use indented heredocs for better readability
+  * refactor: consolidate logic in _detect_serial_marker_capability
+  * style: use non-capturing group for BASH version detection
+  * fix(distribution): make PRETTY_SERIAL_MARKER reboot-safe
+  * refactor: early returns in _detect_serial_marker_capability

Old:
----
  os-autoinst-5.1776093529.6913c36.obscpio

New:
----
  os-autoinst-5.1776179508.bd2644d.obscpio

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

Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.GkWGsi/_old  2026-04-15 16:07:20.593838534 +0200
+++ /var/tmp/diff_new_pack.GkWGsi/_new  2026-04-15 16:07:20.597838699 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name os-autoinst-devel
 Name:           %{short_name}-test
-Version:        5.1776093529.6913c36
+Version:        5.1776179508.bd2644d
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.GkWGsi/_old  2026-04-15 16:07:20.657841166 +0200
+++ /var/tmp/diff_new_pack.GkWGsi/_new  2026-04-15 16:07:20.661841331 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst-openvswitch
 Name:           %{short_name}%{?name_ext}
-Version:        5.1776093529.6913c36
+Version:        5.1776179508.bd2644d
 Release:        0
 Summary:        test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.GkWGsi/_old  2026-04-15 16:07:20.701842975 +0200
+++ /var/tmp/diff_new_pack.GkWGsi/_new  2026-04-15 16:07:20.705843140 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst
 Name:           %{short_name}%{?name_ext}
-Version:        5.1776093529.6913c36
+Version:        5.1776179508.bd2644d
 Release:        0
 Summary:        test package for os-autoinst
 License:        GPL-2.0-or-later

++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.GkWGsi/_old  2026-04-15 16:07:20.741844620 +0200
+++ /var/tmp/diff_new_pack.GkWGsi/_new  2026-04-15 16:07:20.741844620 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           os-autoinst
-Version:        5.1776093529.6913c36
+Version:        5.1776179508.bd2644d
 Release:        0
 Summary:        OS-level test automation
 License:        GPL-2.0-or-later

++++++ os-autoinst-5.1776093529.6913c36.obscpio -> 
os-autoinst-5.1776179508.bd2644d.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1776093529.6913c36/backend/generalhw.pm 
new/os-autoinst-5.1776179508.bd2644d/backend/generalhw.pm
--- old/os-autoinst-5.1776093529.6913c36/backend/generalhw.pm   2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/backend/generalhw.pm   2026-04-14 
17:11:48.000000000 +0200
@@ -129,7 +129,7 @@
             push @hdd_args, $bmwqemu::vars{"HDD_$i"} or die 'Need variable 
HDD_$i';
             # Pass size of HDD
             my $size = $bmwqemu::vars{"HDDSIZEGB_$i"};
-            $size //= $bmwqemu::vars{HDDSIZEGB} // 10;
+            $size //= $bmwqemu::vars{HDDSIZEGB} // 
bmwqemu::default_hdd_size_gb();
             push @hdd_args, $size . 'G';
         }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/backend/qemu.pm 
new/os-autoinst-5.1776179508.bd2644d/backend/qemu.pm
--- old/os-autoinst-5.1776093529.6913c36/backend/qemu.pm        2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/backend/qemu.pm        2026-04-14 
17:11:48.000000000 +0200
@@ -772,8 +772,8 @@
         $vars->{HDDMODEL} ||= 'scsi-hd';
         $vars->{PATHCNT} ||= 2;
     }
-    $vars->{NUMDISKS} //= defined($vars->{RAIDLEVEL}) ? 4 : 1;
-    $vars->{HDDSIZEGB} ||= 10;
+    $vars->{NUMDISKS} //= bmwqemu::default_numdisks($vars);
+    $vars->{HDDSIZEGB} ||= bmwqemu::default_hdd_size_gb();
     $vars->{CDMODEL} ||= 'scsi-cd';
     $vars->{HDDMODEL} ||= 'virtio-blk';
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/bmwqemu.pm 
new/os-autoinst-5.1776179508.bd2644d/bmwqemu.pm
--- old/os-autoinst-5.1776093529.6913c36/bmwqemu.pm     2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/bmwqemu.pm     2026-04-14 
17:11:48.000000000 +0200
@@ -73,7 +73,12 @@
     *init_logger = \&log::init_logger;
 }
 
-use constant STATE_FILE => 'base_state.json';
+use constant {
+    STATE_FILE => 'base_state.json',
+    MIB => 1024 * 1024,
+    GIB => 1024 * 1024 * 1024,
+    STORAGE_KEEP_FREE_RATIO => $ENV{OS_AUTOINST_STORAGE_KEEP_FREE_RATIO} // .2,
+};
 
 # Write a JSON representation of the process termination to disk
 sub serialize_state (%state) {
@@ -150,6 +155,39 @@
     return 1;
 }
 
+sub _get_storage_stats ($path) {
+    my $df_output = qx{df -B1 --output=size,avail "$path"};
+    return undef unless defined $df_output;
+    my ($total, $available) = $df_output =~ /\s+(\d+)\s+(\d+)\s*$/;
+    return ($total, $available);
+}
+
+sub default_hdd_size_gb () { 10 }
+
+sub default_numdisks ($v = \%vars) {
+    return defined $v->{RAIDLEVEL} ? 4 : 1;
+}
+
+sub _abort_if_storage_limit_exceeded () {
+    my $keep_free = $vars{STORAGE_KEEP_FREE_RATIO} // STORAGE_KEEP_FREE_RATIO;
+    my $numdisks = $vars{NUMDISKS} // default_numdisks();
+    my $total_hdd_size_gb = 0;
+    for my $i (1 .. $numdisks) {
+        my $size = $vars{"HDDSIZEGB_$i"} // $vars{HDDSIZEGB} // 
default_hdd_size_gb();
+        $total_hdd_size_gb += $size;
+    }
+    return undef unless $total_hdd_size_gb > 0;
+    my ($total_storage, $available) = _get_storage_stats('.');
+    return warn "Could not determine available storage space\n" unless defined 
$total_storage;
+    my $requested_bytes = $total_hdd_size_gb * GIB;
+    my $min_free_bytes = $total_storage * $keep_free;
+    return undef unless $requested_bytes > $available - $min_free_bytes;
+    my $msg = sprintf 'Not enough storage for requested HDDSIZEGB (requested 
%d GiB, available %d GiB, total %d GiB, keep-free %d%%)',
+      $total_hdd_size_gb, int($available / GIB), int($total_storage / GIB), 
int($keep_free * 100);
+    serialize_state(result => 'incomplete', msg => $msg);
+    die "$msg\n";
+}
+
 sub ensure_valid_vars () {
     # defaults
     $vars{QEMUPORT} ||= 15222;
@@ -160,6 +198,7 @@
     die 'CASEDIR variable not set, unknown test case directory' if !defined 
$vars{CASEDIR};
     die "No scripts in CASEDIR '$vars{CASEDIR}'\n" unless -e $vars{CASEDIR};
     die "WHEELS_DIR '$vars{WHEELS_DIR}' does not exist" if defined 
$vars{WHEELS_DIR} && !-d $vars{WHEELS_DIR};
+    _abort_if_storage_limit_exceeded();
     _check_publish_vars();
     save_vars();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/doc/backend_vars.md 
new/os-autoinst-5.1776179508.bd2644d/doc/backend_vars.md
--- old/os-autoinst-5.1776093529.6913c36/doc/backend_vars.md    2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/doc/backend_vars.md    2026-04-14 
17:11:48.000000000 +0200
@@ -60,6 +60,7 @@
 | GIT_CACHE_DIR | string |  | If set enables locally caching Git repositories 
in the specified directory when handling Git URLs in variables like `CASEDIR` 
and wheels |
 | ENABLE_MODERN_PERL_FEATURES | boolean | 0 | Enables use of modern Perl 
features in test modules avoiding the need to use e.g. `use Mojo::Base 
'basetest', -signatures;` in all test modules. This variable must be set before 
invoking `autotest::loadtest`. It only applies to the test modules themselves. 
It does *not* apply to e.g. `main.pm` and other Perl modules used via e.g. `use 
some::module`. |
 | _HIDE_SECRETS_REGEX | string |  | If set, any test variables whose **NAME** 
(key) matches the specified regular expression, in addition to the default 
'^_SECRET_' and '_PASSWORD', are excluded from being saved into vars.json or 
further processing. For example, to hide all variables starting with 
'SCC_REGCODE', use '^SCC_REGCODE'. |
+| STORAGE_KEEP_FREE_RATIO | float | 0.2 | Ratio of total storage space to keep 
free (e.g. 0.2 for 20%). If the total requested HDD size exceeds the available 
space while keeping this ratio of total storage size free, the job is aborted 
early with "incomplete" status. |
 |  |
 
 ## ZVM backend
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1776093529.6913c36/t/00-compile-check-all.t 
new/os-autoinst-5.1776179508.bd2644d/t/00-compile-check-all.t
--- old/os-autoinst-5.1776093529.6913c36/t/00-compile-check-all.t       
2026-04-13 17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/t/00-compile-check-all.t       
2026-04-14 17:11:48.000000000 +0200
@@ -19,7 +19,6 @@
 # Skip test modules as they rely on ENABLE_MODERN_PERL_FEATURES
 chomp(my @test_modules = qx{find t/data/tests t/data/wheels_dir t/data/assets 
t/fake/tests -name '*.pm' -not -name 'main.pm' -type f,l});
 my $TEST_SKIP = [
-    'tools/lib/perlcritic/Perl/Critic/Policy/HashKeyQuotes.pm',
     't/data/tests/main.pm',    # fails with "Can't locate testdistribution.pm" 
as this check does not automatically add the required lib dir
     @test_modules, @external_files
 ];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/t/12-bmwqemu.t 
new/os-autoinst-5.1776179508.bd2644d/t/12-bmwqemu.t
--- old/os-autoinst-5.1776093529.6913c36/t/12-bmwqemu.t 2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/t/12-bmwqemu.t 2026-04-14 
17:11:48.000000000 +0200
@@ -4,6 +4,7 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 use Test::Most;
+use Test::MockModule;
 use Mojo::Base -signatures;
 use Test::Mock::Time;
 use Feature::Compat::Try;
@@ -183,6 +184,37 @@
     is_deeply decode_json(path(bmwqemu::STATE_FILE)->slurp), {msg => 'foo'}, 
'state serialized';
 };
 
+subtest 'abort on low disk space' => sub {
+    my $bmw_mock = Test::MockModule->new('bmwqemu', no_auto => 1);
+    $bmw_mock->mock(_get_storage_stats => sub { return (1024**3, 1024**3) });
+
+    my $dir = "$data_dir/tests";
+    unlink bmwqemu::STATE_FILE;
+    create_vars({CASEDIR => $dir, HDDSIZEGB => 1});
+
+    throws_ok {
+        bmwqemu::init;
+        bmwqemu::ensure_valid_vars();
+    } qr/Not enough storage for requested HDDSIZEGB/, 'abort if requested 
HDDSIZEGB exceeds default threshold';
+
+    is decode_json(path(bmwqemu::STATE_FILE)->slurp)->{result}, 'incomplete', 
'serialized result is incomplete';
+
+    $bmw_mock->mock(_get_storage_stats => sub { return (100 * 1024**3, 100 * 
1024**3) });
+    unlink bmwqemu::STATE_FILE;
+    lives_ok {
+        bmwqemu::init;
+        bmwqemu::ensure_valid_vars();
+    } 'succeed if requested HDDSIZEGB is well within available space';
+
+    unlink bmwqemu::STATE_FILE;
+    create_vars({CASEDIR => $dir, HDDSIZEGB => 1, STORAGE_KEEP_FREE_RATIO => 
0.9});
+    $bmw_mock->mock(_get_storage_stats => sub { return (5 * 1024**3, 5 * 
1024**3) });
+    throws_ok {
+        bmwqemu::init;
+        bmwqemu::ensure_valid_vars();
+    } qr/keep-free 90%/, 'abort if requested HDDSIZEGB exceeds custom 
threshold';
+};
+
 done_testing;
 
 END {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/t/14-isotovideo.t 
new/os-autoinst-5.1776179508.bd2644d/t/14-isotovideo.t
--- old/os-autoinst-5.1776093529.6913c36/t/14-isotovideo.t      2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/t/14-isotovideo.t      2026-04-14 
17:11:48.000000000 +0200
@@ -33,6 +33,8 @@
 # avoid spending time on git clone retries
 $ENV{OS_AUTOINST_GIT_RETRY_COUNT} = 0;
 
+$ENV{OS_AUTOINST_STORAGE_KEEP_FREE_RATIO} = 0;
+
 sub isotovideo (%args) {
     $args{default_opts} //= 'backend=null';
     $args{opts} //= '';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/t/18-qemu-options.t 
new/os-autoinst-5.1776179508.bd2644d/t/18-qemu-options.t
--- old/os-autoinst-5.1776093529.6913c36/t/18-qemu-options.t    2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/t/18-qemu-options.t    2026-04-14 
17:11:48.000000000 +0200
@@ -37,6 +37,7 @@
     CASEDIR => "$data_dir/tests",
     WORKER_INSTANCE => 3,
     SCHEDULE => 'tests/noop',
+    STORAGE_KEEP_FREE_RATIO => 0,
 );
 my $vars_json = path('vars.json');
 my $log_file = path('autoinst-log.txt');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1776093529.6913c36/t/99-full-stack.t 
new/os-autoinst-5.1776179508.bd2644d/t/99-full-stack.t
--- old/os-autoinst-5.1776093529.6913c36/t/99-full-stack.t      2026-04-13 
17:18:49.000000000 +0200
+++ new/os-autoinst-5.1776179508.bd2644d/t/99-full-stack.t      2026-04-14 
17:11:48.000000000 +0200
@@ -25,6 +25,8 @@
 note("data dir: $data_dir");
 note("pool dir: $pool_dir");
 
+$ENV{OS_AUTOINST_STORAGE_KEEP_FREE_RATIO} = 0;
+
 chdir $pool_dir;
 my $cleanup = scope_guard sub { chdir $Bin; undef $dir };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1776093529.6913c36/tools/lib/perlcritic/Perl/Critic/Policy/HashKeyQuotes.pm
 
new/os-autoinst-5.1776179508.bd2644d/tools/lib/perlcritic/Perl/Critic/Policy/HashKeyQuotes.pm
--- 
old/os-autoinst-5.1776093529.6913c36/tools/lib/perlcritic/Perl/Critic/Policy/HashKeyQuotes.pm
       2026-04-13 17:18:49.000000000 +0200
+++ 
new/os-autoinst-5.1776179508.bd2644d/tools/lib/perlcritic/Perl/Critic/Policy/HashKeyQuotes.pm
       1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-package Perl::Critic::Policy::HashKeyQuotes;
-
-use Mojo::Base 'Perl::Critic::Policy', -signatures;
-use Perl::Critic::Utils qw( :severities :classification :ppi );
-
-our $VERSION = '0.0.1';
-
-sub default_severity (@) { $SEVERITY_HIGH }
-sub default_themes (@) { qw(openqa) }
-sub applies_to (@) { qw(PPI::Token::Quote::Single PPI::Token::Quote::Double) }
-
-# check that hashes are not overly using quotes
-# (os-autoinst coding style)
-
-sub violates ($self, $elem, $) {
-    #we only want the check hash keys
-    return if !is_hash_key($elem);
-
-    my $c = $elem->content;
-    # Quotes allowed, if not matching following regex
-    return unless $c =~ m/^(["'])[a-zA-Z][0-9a-zA-Z]*\1$/;
-
-    my $desc = qq{Hash key $c with quotes};
-    my $expl = q{Avoid useless quotes};
-    return $self->violation($desc, $expl, $elem);
-}
-
-1;

++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.GkWGsi/_old  2026-04-15 16:07:28.638169296 +0200
+++ /var/tmp/diff_new_pack.GkWGsi/_new  2026-04-15 16:07:28.662170283 +0200
@@ -1,5 +1,5 @@
 name: os-autoinst
-version: 5.1776093529.6913c36
-mtime: 1776093529
-commit: 6913c369c5314bdc441fe373a954d42f3b15aebb
+version: 5.1776179508.bd2644d
+mtime: 1776179508
+commit: bd2644d4d18402e34c7e49ea9dab47bd110081b6
 

Reply via email to