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-01-26 11:02:38
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
 and      /work/SRC/openSUSE:Factory/.os-autoinst.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "os-autoinst"

Mon Jan 26 11:02:38 2026 rev:560 rq:1328963 version:5.1769153586.72cabd0

Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes  2026-01-17 
21:43:24.363534416 +0100
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.1928/os-autoinst.changes        
2026-01-26 11:03:07.964020152 +0100
@@ -1,0 +2,13 @@
+Fri Jan 23 21:33:15 UTC 2026 - [email protected]
+
+- Update to version 5.1769153586.72cabd0:
+  * Replace remaining functions with subroutine signatures in 18-qemu.t
+  * Fix snapshot overlay mechanism to avoid duplication
+  * fix(dist): provide proper copyright headers in all spec-files
+  * fix(dist): try to fix os-autoinst-obs-auto-submit reverting content
+  * fix(dist): exclude unstable t/28-signalblocker.t in OBS checks
+  * Add documentation of APPEND variable
+  * Add undocumented KERNEL/INITRD to the supported variables
+  * os-autoinst-generate-needle-preview: Embed PNG
+
+-------------------------------------------------------------------

Old:
----
  os-autoinst-5.1768577300.b85e486.obscpio

New:
----
  os-autoinst-5.1769153586.72cabd0.obscpio

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

Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.Shgbc7/_old  2026-01-26 11:03:11.064152008 +0100
+++ /var/tmp/diff_new_pack.Shgbc7/_new  2026-01-26 11:03:11.068152178 +0100
@@ -18,7 +18,7 @@
 
 %define         short_name os-autoinst-devel
 Name:           %{short_name}-test
-Version:        5.1768577300.b85e486
+Version:        5.1769153586.72cabd0
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.Shgbc7/_old  2026-01-26 11:03:11.108153879 +0100
+++ /var/tmp/diff_new_pack.Shgbc7/_new  2026-01-26 11:03:11.112154050 +0100
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst-openvswitch
 Name:           %{short_name}%{?name_ext}
-Version:        5.1768577300.b85e486
+Version:        5.1769153586.72cabd0
 Release:        0
 Summary:        test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.Shgbc7/_old  2026-01-26 11:03:11.144155411 +0100
+++ /var/tmp/diff_new_pack.Shgbc7/_new  2026-01-26 11:03:11.144155411 +0100
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst
 Name:           %{short_name}%{?name_ext}
-Version:        5.1768577300.b85e486
+Version:        5.1769153586.72cabd0
 Release:        0
 Summary:        test package for os-autoinst
 License:        GPL-2.0-or-later

++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.Shgbc7/_old  2026-01-26 11:03:11.184157112 +0100
+++ /var/tmp/diff_new_pack.Shgbc7/_new  2026-01-26 11:03:11.188157282 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           os-autoinst
-Version:        5.1768577300.b85e486
+Version:        5.1769153586.72cabd0
 Release:        0
 Summary:        OS-level test automation
 License:        GPL-2.0-or-later

++++++ os-autoinst-5.1768577300.b85e486.obscpio -> 
os-autoinst-5.1769153586.72cabd0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/BlockDev.pm 
new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/BlockDev.pm
--- old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/BlockDev.pm        
2026-01-16 16:28:20.000000000 +0100
+++ new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/BlockDev.pm        
2026-01-23 08:33:06.000000000 +0100
@@ -168,8 +168,6 @@
 
 sub gen_unlink_list ($self) {
     return () unless $self->needs_creating;
-    return ($self->file, $self->backing_file->gen_unlink_list())
-      if defined $self->backing_file;
     return ($self->file);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/BlockDevConf.pm 
new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/BlockDevConf.pm
--- old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/BlockDevConf.pm    
2026-01-16 16:28:20.000000000 +0100
+++ new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/BlockDevConf.pm    
2026-01-23 08:33:06.000000000 +0100
@@ -210,6 +210,8 @@
     die 'The last block device in ' . $drive->id . "'s block device chain is a 
snapshot"
       unless defined $snap->backing_file;
 
+    # This prevents deleted overlays breaking the sequence
+    $snap->overlay(undef);
     # Will cause the snapshot overlay to be recreated when 
init_blockdev_images is run
     $snap->needs_creating(1);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/DriveDevice.pm 
new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/DriveDevice.pm
--- old/os-autoinst-5.1768577300.b85e486/OpenQA/Qemu/DriveDevice.pm     
2026-01-16 16:28:20.000000000 +0100
+++ new/os-autoinst-5.1769153586.72cabd0/OpenQA/Qemu/DriveDevice.pm     
2026-01-23 08:33:06.000000000 +0100
@@ -151,7 +151,8 @@
         bootindex => $self->bootindex,
         serial => $self->serial,
         id => $self->id,
-        num_queues => $self->num_queues};
+        num_queues => $self->num_queues,
+        last_overlay_id => $self->last_overlay_id};
 }
 
 sub _from_map ($self, $map, $cont_conf, $snap_conf) {
@@ -166,7 +167,8 @@
       ->bootindex($map->{bootindex})
       ->serial($map->{serial})
       ->id($map->{id})
-      ->num_queues($map->{num_queues});
+      ->num_queues($map->{num_queues})
+      ->last_overlay_id($map->{last_overlay_id} // 0);
 }
 
 sub CARP_TRACE ($self) { 'OpenQA::Qemu::DriveDevice(' . ($self->id || '') . 
')' }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1768577300.b85e486/t/18-qemu.t 
new/os-autoinst-5.1769153586.72cabd0/t/18-qemu.t
--- old/os-autoinst-5.1768577300.b85e486/t/18-qemu.t    2026-01-16 
16:28:20.000000000 +0100
+++ new/os-autoinst-5.1769153586.72cabd0/t/18-qemu.t    2026-01-23 
08:33:06.000000000 +0100
@@ -236,9 +236,10 @@
 
 $ss = $ssc->revert_to_snapshot('a snapshot');
 is($ss->sequence, 1, 'Returned snapshot sequence number');
-$bdc->for_each_drive(sub {
-        my $drive = shift;
-        $bdc->revert_to_snapshot($drive, $ss);
+$bdc->for_each_drive(sub ($drive) {
+        my $unlinks = $bdc->revert_to_snapshot($drive, $ss);
+        is(scalar(@$unlinks), 0, 'Correct number of overlay files need 
unlinking for ' . $drive->id);
+        is($drive->drive->{overlay}, undef, 'Reverted snapshot has no forward 
link');
         is($drive->drive->needs_creating, 1, 'Active layer set to be recreated 
for drive ' . $drive->id);
 });
 @gcmdl = $proc->gen_cmdline();
@@ -302,8 +303,7 @@
 
 $ss = $ssc->revert_to_snapshot('snapshot 1');
 is($ss->sequence, 1, 'Returned snapshot sequence number');
-$bdc->for_each_drive(sub {
-        my $drive = shift;
+$bdc->for_each_drive(sub ($drive) {
         my $unlinks = $bdc->revert_to_snapshot($drive, $ss);
         is(scalar(@$unlinks), 9, 'Correct number of overlay files need 
unlinking for ' . $drive->id);
 });
@@ -358,8 +358,7 @@
 
 $ss = $ssc->revert_to_snapshot('snapshot 1');
 is($ss->sequence, 1, 'Returned snapshot sequence number');
-$bdc->for_each_drive(sub {
-        my $drive = shift;
+$bdc->for_each_drive(sub ($drive) {
         my $unlinks = $bdc->revert_to_snapshot($drive, $ss);
         is(scalar(@$unlinks), 10, 'Correct number of overlay files need 
unlinking for ' . $drive->id);
 });
@@ -434,8 +433,7 @@
 subtest 'qemu is not called on an empty file when ISO_1 is an empty string' => 
sub {
     my $mock_proc = Test::MockModule->new('OpenQA::Qemu::Proc');
     my $call_count = 0;
-    $mock_proc->redefine(get_img_size => sub {
-            my ($iso) = @_;    # uncoverable statement
+    $mock_proc->redefine(get_img_size => sub ($iso) {
             $call_count++;    # uncoverable statement
             die 'get_img_size called on an empty string' unless $iso;    # 
uncoverable statement
     });
@@ -593,4 +591,58 @@
     is $diag[0], 'Unlinking foo', 'Message about unlinking foo';
 };
 
+subtest 'verify incremental overlay mapping to snapshot' => sub {
+    %vars = (NUMDISKS => 1,
+        HDDMODEL => 'scsi-hd',
+        CDMODEL => 'scsi-cd',
+        ISO => "$Bin/data/Core-7.2.iso",
+        HDDSIZEGB => 10,
+        SCSICONTROLLER => 'virtio-scsi-device');
+
+    $proc = qemu_proc('-static-args', \%vars);
+    $ssc = $proc->snapshot_conf;
+    $bdc = $proc->blockdev_conf;
+
+    for my $i (1 .. 3) {
+        my $ss = $ssc->add_snapshot("snapshot$i");
+        $bdc->for_each_drive(sub ($drive) {
+                $bdc->add_snapshot_to_drive($drive, $ss);
+                is $drive->last_overlay_id, $i, 'Each snapshot is a chain with 
increased last_overlay_id';
+
+        });
+    }
+    $bdc->mark_all_created();
+
+    my %overlay_files;
+    subtest 'check overlay chain' => sub {
+        $bdc->for_each_drive(sub ($drive) {
+                $drive->for_each_overlay(sub ($overlay) {
+                        my $olfile = $overlay->file;
+                        $overlay_files{$olfile}++;
+                });
+        });
+        for my $olfile (keys %overlay_files) {
+            ok(exists $overlay_files{"$olfile"}, 'hd0-overlay1 exists for 
snapshot1');
+        }
+    };
+
+    subtest 'no duplicated overlays are being created' => sub {
+        my @duplicates = grep { $overlay_files{$_} > 1 } keys %overlay_files;
+        is(scalar(@duplicates), 0, 'No duplicate overlay filenames found')
+          or always_explain \@duplicates;
+    };
+
+    subtest 'revert_to_snapshot should recreate overlay1' => sub {
+        my $ss = $ssc->revert_to_snapshot('snapshot1');
+        $bdc->for_each_drive(sub ($drive) { $bdc->revert_to_snapshot($drive, 
$ss) });
+
+        my @unlink_list = $bdc->gen_unlink_list();
+        my @hd_overlays = grep { /hd0-overlay/ } @unlink_list;
+        is(scalar(@hd_overlays), 1, 'should only include the overlay marked 
for recreation');
+        like($hd_overlays[0], qr/hd0-overlay1$/, 'Correct overlay1 marked for 
unlinking');
+        my @base_files = grep { !/overlay/ } @unlink_list;
+        is(scalar(@base_files), 0, 'No base backing files in unlink list');
+    };
+};
+
 done_testing();

++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.Shgbc7/_old  2026-01-26 11:03:13.728265319 +0100
+++ /var/tmp/diff_new_pack.Shgbc7/_new  2026-01-26 11:03:13.736265659 +0100
@@ -1,5 +1,5 @@
 name: os-autoinst
-version: 5.1768577300.b85e486
-mtime: 1768577300
-commit: b85e4864b41e812c63df80ccd7adb4bf0cd4b2f9
+version: 5.1769153586.72cabd0
+mtime: 1769153586
+commit: 72cabd06219204bb1c60c664ac5edbd87f26e030
 

Reply via email to