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-07-12 16:21:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old)
 and      /work/SRC/openSUSE:Factory/.os-autoinst.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "os-autoinst"

Sun Jul 12 16:21:07 2026 rev:613 rq:1364946 version:5.1783672666.346fbe5

Changes:
--------
--- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes  2026-07-09 
22:20:47.549009520 +0200
+++ /work/SRC/openSUSE:Factory/.os-autoinst.new.1991/os-autoinst.changes        
2026-07-12 16:22:00.873743171 +0200
@@ -1,0 +2,11 @@
+Fri Jul 10 12:56:21 UTC 2026 - [email protected]
+
+- Update to version 5.1783672666.346fbe5:
+  * fix(consoles): strip video parameters from shm sink name
+  * feat(consoles): add mediadev/mediaentity parameters for ustreamer
+  * refactor(consoles): use Mojo::URL for GENERAL_HW_VIDEO_STREAM_URL
+  * feat(consoles): add ustreamer version 10 frame format
+  * feat: Log module step in case of failed needle match
+  * feat: allow UEFI_PFLASH_CODE as asset
+
+-------------------------------------------------------------------

Old:
----
  os-autoinst-5.1783514748.b19cdea.obscpio

New:
----
  os-autoinst-5.1783672666.346fbe5.obscpio

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

Other differences:
------------------
++++++ os-autoinst-devel-test.spec ++++++
--- /var/tmp/diff_new_pack.ccDksL/_old  2026-07-12 16:22:01.789774046 +0200
+++ /var/tmp/diff_new_pack.ccDksL/_new  2026-07-12 16:22:01.793774181 +0200
@@ -18,7 +18,7 @@
 
 %define         short_name os-autoinst-devel
 Name:           %{short_name}-test
-Version:        5.1783514748.b19cdea
+Version:        5.1783672666.346fbe5
 Release:        0
 Summary:        Test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-openvswitch-test.spec ++++++
--- /var/tmp/diff_new_pack.ccDksL/_old  2026-07-12 16:22:01.833775529 +0200
+++ /var/tmp/diff_new_pack.ccDksL/_new  2026-07-12 16:22:01.833775529 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst-openvswitch
 Name:           %{short_name}%{?name_ext}
-Version:        5.1783514748.b19cdea
+Version:        5.1783672666.346fbe5
 Release:        0
 Summary:        test package for %{short_name}
 License:        GPL-2.0-or-later

++++++ os-autoinst-test.spec ++++++
--- /var/tmp/diff_new_pack.ccDksL/_old  2026-07-12 16:22:01.865776607 +0200
+++ /var/tmp/diff_new_pack.ccDksL/_new  2026-07-12 16:22:01.869776742 +0200
@@ -19,7 +19,7 @@
 %define name_ext -test
 %define         short_name os-autoinst
 Name:           %{short_name}%{?name_ext}
-Version:        5.1783514748.b19cdea
+Version:        5.1783672666.346fbe5
 Release:        0
 Summary:        test package for os-autoinst
 License:        GPL-2.0-or-later

++++++ os-autoinst.spec ++++++
--- /var/tmp/diff_new_pack.ccDksL/_old  2026-07-12 16:22:01.893777552 +0200
+++ /var/tmp/diff_new_pack.ccDksL/_new  2026-07-12 16:22:01.897777686 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           os-autoinst
-Version:        5.1783514748.b19cdea
+Version:        5.1783672666.346fbe5
 Release:        0
 Summary:        OS-level test automation
 License:        GPL-2.0-or-later

++++++ os-autoinst-5.1783514748.b19cdea.obscpio -> 
os-autoinst-5.1783672666.346fbe5.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os-autoinst-5.1783514748.b19cdea/consoles/video_stream.pm 
new/os-autoinst-5.1783672666.346fbe5/consoles/video_stream.pm
--- old/os-autoinst-5.1783514748.b19cdea/consoles/video_stream.pm       
2026-07-08 14:45:48.000000000 +0200
+++ new/os-autoinst-5.1783672666.346fbe5/consoles/video_stream.pm       
2026-07-10 10:37:46.000000000 +0200
@@ -133,18 +133,24 @@
 }
 
 sub _get_ustreamer_cmd ($self, $url, $sink_name) {
-    my $fps = $url =~ s/[\?&]fps=([0-9]+)// ? $1 : 5;
-    my $format = $url =~ s/[\?&]format=([A-Z0-9]+(swap)?)// ? $1 : 'UYVY';
+    my $parsed_url = Mojo::URL->new($url);
+    my $dev = $parsed_url->path;
+    my $fps = $parsed_url->query->param('fps') // 5;
+    my $format = $parsed_url->query->param('format') // 'UYVY';
+    my $mediadev = $parsed_url->query->param('mediadev');
+    my $mediaentity = $parsed_url->query->param('mediaentity');
     my $swap = ($format =~ /swap$/);
     $format =~ s/swap$//;
     my $cmd = [
-        'ustreamer', '--device', $url, '-f', $fps,
+        'ustreamer', '--device', $dev, '-f', $fps,
         '-m', $format,    # specify preferred format
         '-c', 'NOOP',    # do not produce JPEG stream
         '--raw-sink', $sink_name, '--raw-sink-rm',    # raw memsink
         '--persistent',    # smarter watching for reconnecting HDMI, and since 
ustreamer 6.0 - necessary for --dv-timings to work
         '--dv-timings',    # enable using DV timings (getting resolution, and 
reacting to changes)
     ];
+    push @$cmd, ('--media-device', $mediadev) if ($mediadev);
+    push @$cmd, ('--media-entity-name', $mediaentity) if ($mediaentity);
     # workaround for https://github.com/raspberrypi/linux/issues/6068
     push @$cmd, qw(--format-swap-rgb 1) if ($swap);
     return $cmd;
@@ -165,6 +171,7 @@
         my $dev = ($url =~ m^ustreamer://(.*)^)[0];
         my $sink_name = "raw-sink$dev.raw";
         $sink_name =~ s^/^-^g;
+        $sink_name =~ s^\?.*\.raw^.raw^g;
         my $cmd = $self->_get_ustreamer_cmd($dev, $sink_name);
         my $ffmpeg;
         $self->{ustreamerpid} = open $ffmpeg, '-|', @$cmd
@@ -318,6 +325,44 @@
         #     // 128
         #     ... data
         # } us_memsink_shared_s;
+        #
+        # #define US_MEMSINK_VERSION  ((u32)10)
+        # typedef struct {
+        #     uint    width;
+        #     uint    height;
+        #     uint    format;
+        #     uint    fps;
+        #     bool    key;
+        # } us_memsink_wants_s;
+        #
+        # typedef struct {
+        #     uint64_t     magic;
+        #     uint32_t     version;
+        #     // pad
+        #     uint64_t     id;
+        #     size_t      used;
+        #     // 32
+        #     long double     last_client_ts;
+        #     us_memsink_wants_s  wants;
+        #
+        #     unsigned    width;
+        #     unsigned    height;
+        #     unsigned    format;
+        #     unsigned    stride;
+        #     /* Stride is a bytesperline in V4L2 */ \
+        #     /* 
https://www.kernel.org/doc/html/v4.14/media/uapi/v4l/pixfmt-v4l2.html */ \
+        #     /* 
https://medium.com/@oleg.shipitko/what-does-stride-mean-in-image-processing-bba158a72bcd
 */ \
+        #     bool    online;
+        #     bool    key;
+        #     unsigned    gop;
+        #
+        #     long double     grab_begin_ts;
+        #     long double     grab_end_ts;
+        #     long double     encode_begin_ts;
+        #     long double     encode_end_ts;
+        #     // 160
+        #     ... data
+        # } us_memsink_shared_s;
 
         my ($magic, $version, $id, $used) = unpack 'QLx4QQ', $ustreamer_map;
         # This is US_MEMSINK_MAGIC, but perl considers hex literals over 
32bits non-portable
@@ -334,6 +379,10 @@
             $client_clock_offset = 32;
             $data_offset = 128;
             $meta_offset = 52;
+        } elsif ($version == 10) {
+            $client_clock_offset = 32;
+            $data_offset = 160;
+            $meta_offset = 68;
         } else {
             die "Unsupported ustreamer version '$version' (only versions 4, 7 
and 8 are supported)";
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1783514748.b19cdea/doc/backend_vars.md 
new/os-autoinst-5.1783672666.346fbe5/doc/backend_vars.md
--- old/os-autoinst-5.1783514748.b19cdea/doc/backend_vars.md    2026-07-08 
14:45:48.000000000 +0200
+++ new/os-autoinst-5.1783672666.346fbe5/doc/backend_vars.md    2026-07-10 
10:37:46.000000000 +0200
@@ -323,7 +323,7 @@
 | GENERAL_HW_VNC_DEPTH | integer | 16 | Color depth for VNC server |
 | GENERAL_HW_VNC_JPEG | integer | 0 | Advertise support for Tight JPEG 
encoding |
 | GENERAL_HW_NO_SERIAL | boolean |  | Don't use serial |
-| GENERAL_HW_VIDEO_STREAM_URL | string |  | Video stream URL (in ffmpeg's 
syntax) to receive, for example 'udp://@:5004' or '/dev/video0'. Using 
'ustreamer:///dev/videoN' will use ustreamer from PiKVM instead of ffmpeg to 
read '/dev/videoN'. The URL can have '?fps=..' appended to specify desired FPS 
to capture with. The URL can also have 'format=' parameter to specify ustream 
format (default is UYVY, can be also set to BGR24, RGB24, RGB24swap). Ustreamer 
support requires pack("D") working, which rules out openSUSE 15.5's perl. |
+| GENERAL_HW_VIDEO_STREAM_URL | string |  | Video stream URL (in ffmpeg's 
syntax) to receive, for example 'udp://@:5004' or '/dev/video0'. Using 
'ustreamer:///dev/videoN' will use ustreamer from PiKVM instead of ffmpeg to 
read '/dev/videoN'. The URL can have '?fps=..' appended to specify desired FPS 
to capture with. The URL can also have 'format=' parameter to specify ustream 
format (default is UYVY, can be also set to BGR24, RGB24, RGB24swap). The URL 
can also have 'mediadev=...' and 'mediaentity=' parameters, necessary on 
Raspberry Pi 5. Ustreamer support requires pack("D") working, which rules out 
openSUSE 15.5's perl. |
 | GENERAL_HW_VIDEO_CMD_PREFIX | string |  | Prefix to prepend to 'ffmpeg' and 
'v4l2-ctl' commands, can be used to run them on a different host via SSH. 
Example: 'ssh root@pikvm'. Note: the value is tokenized on spaces, so avoid 
their use in command name or any of the parameters. |
 | VIDEO_STREAM_PIPE_BUFFER_SIZE | integer | 1680*1050*3+20 | Buffer containing 
at least a single PPM frame for video capturing |
 | GENERAL_HW_KEYBOARD_URL | string |  | URL to keyboard emulation device. eg. 
'http://1.2.3.4/cmd' - see 
https://github.com/os-autoinst/os-autoinst-distri-opensuse/tree/master/data/generalhw_scripts/rpi_pico_w_keyboard[rpi_pico_w_keyboard]
 |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1783514748.b19cdea/t/03-testapi.t 
new/os-autoinst-5.1783672666.346fbe5/t/03-testapi.t
--- old/os-autoinst-5.1783514748.b19cdea/t/03-testapi.t 2026-07-08 
14:45:48.000000000 +0200
+++ new/os-autoinst-5.1783672666.346fbe5/t/03-testapi.t 2026-07-10 
10:37:46.000000000 +0200
@@ -500,8 +500,19 @@
 
     $report_timeout_called = 0;
 
+    subtest 'module step logging' => sub {
+        local $autotest::current_test->{script} = 'dummy';
+        local $autotest::current_test->{category} = 'cat';
+        combined_like {
+            throws_ok { assert_screen('foo', 3, timeout => 2) }
+            qr/no candidate needle/,
+              'error message like expeected';
+        } qr{\Q[step:cat,basetest,16]\E.*called testapi::assert_screen}, 
'module step logged in case of failed assert_screen';
+    };
+
     subtest 'handle assert_screen timeout' => sub {
         $cmds = [];
+        $report_timeout_called = 0;
 
         # simulate that we don't want to pause at all and just let it fail
         throws_ok { assert_screen('foo', 3, timeout => 2) }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1783514748.b19cdea/t/26-video_stream.t 
new/os-autoinst-5.1783672666.346fbe5/t/26-video_stream.t
--- old/os-autoinst-5.1783514748.b19cdea/t/26-video_stream.t    2026-07-08 
14:45:48.000000000 +0200
+++ new/os-autoinst-5.1783672666.346fbe5/t/26-video_stream.t    2026-07-10 
10:37:46.000000000 +0200
@@ -150,20 +150,29 @@
         '-c', 'NOOP',
         '--raw-sink', 'raw-sink-dev-video0.raw', '--raw-sink-rm',
         '--persistent', '--dv-timings'], 'correct cmd built for fps=2 and 
format=BGR24';
-    $cmd = $mock_console->original('_get_ustreamer_cmd')->($console, 
'/dev/video0&format=BGR24', 'raw-sink-dev-video0.raw');
+    $cmd = $mock_console->original('_get_ustreamer_cmd')->($console, 
'/dev/video0?format=BGR24', 'raw-sink-dev-video0.raw');
     is_deeply $cmd, [
         'ustreamer', '--device', '/dev/video0', '-f', '5',
         '-m', 'BGR24',
         '-c', 'NOOP',
         '--raw-sink', 'raw-sink-dev-video0.raw', '--raw-sink-rm',
         '--persistent', '--dv-timings'], 'correct cmd built for format=BGR24';
-    $cmd = $mock_console->original('_get_ustreamer_cmd')->($console, 
'/dev/video0&format=RGB24swap', 'raw-sink-dev-video0.raw');
+    $cmd = $mock_console->original('_get_ustreamer_cmd')->($console, 
'/dev/video0?format=RGB24swap', 'raw-sink-dev-video0.raw');
     is_deeply $cmd, [
         'ustreamer', '--device', '/dev/video0', '-f', '5',
         '-m', 'RGB24',
         '-c', 'NOOP',
         '--raw-sink', 'raw-sink-dev-video0.raw', '--raw-sink-rm',
         '--persistent', '--dv-timings', '--format-swap-rgb', '1'], 'correct 
cmd built for format=RGB24swap';
+    $cmd = $mock_console->original('_get_ustreamer_cmd')->($console, 
'/dev/video0?fps=5&format=BGR24&mediadev=/dev/media-csi&mediaentity=tc358743 
11-000f', 'raw-sink-dev-video0.raw');
+    is_deeply $cmd, [
+        'ustreamer', '--device', '/dev/video0', '-f', '5',
+        '-m', 'BGR24',
+        '-c', 'NOOP',
+        '--raw-sink', 'raw-sink-dev-video0.raw', '--raw-sink-rm',
+        '--persistent', '--dv-timings',
+        '--media-device', '/dev/media-csi',
+        '--media-entity-name', 'tc358743 11-000f'], 'correct cmd built with 
media device params';
 };
 
 subtest 'frames parsing' => sub {
@@ -297,6 +306,16 @@
     ok $received_img, 'current screen available to read for BGR3 v7 frame' or 
return;
     is $received_img->similarity($img), 1_000_000, 'received correct BGR3 v7 
frame';
     $console->disable_video;
+
+    # ustreamer v10 frame, full frame encoded as JPEG
+    copy($data_dir . 'ustreamer10-shared-full-frame-jpeg', 
'/dev/shm/raw-sink-dev-video0.raw');
+    $console->connect_remote({url => 'ustreamer:///dev/video0?format=JPEG'});
+
+    $img = tinycv::read($data_dir . 'ustreamer10-shared-full-frame-jpeg.png');
+    $received_img = $console->current_screen();
+    ok $received_img, 'current screen available to read for JPEG v10 frame' or 
return;
+    is $received_img->similarity($img), 1_000_000, 'received correct JPEG v10 
frame';
+    $console->disable_video;
 };
 
 subtest 'v4l2 resolution' => sub {
Binary files 
old/os-autoinst-5.1783514748.b19cdea/t/data/ustreamer10-shared-full-frame-jpeg 
and 
new/os-autoinst-5.1783672666.346fbe5/t/data/ustreamer10-shared-full-frame-jpeg 
differ
Binary files 
old/os-autoinst-5.1783514748.b19cdea/t/data/ustreamer10-shared-full-frame-jpeg.png
 and 
new/os-autoinst-5.1783672666.346fbe5/t/data/ustreamer10-shared-full-frame-jpeg.png
 differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os-autoinst-5.1783514748.b19cdea/testapi.pm 
new/os-autoinst-5.1783672666.346fbe5/testapi.pm
--- old/os-autoinst-5.1783514748.b19cdea/testapi.pm     2026-07-08 
14:45:48.000000000 +0200
+++ new/os-autoinst-5.1783672666.346fbe5/testapi.pm     2026-07-10 
10:37:46.000000000 +0200
@@ -336,6 +336,7 @@
                 overall => (!$rsp->{saveresult} && $check) ? undef : 'fail',
                 frame => $l->{frame},
             );
+            bmwqemu::update_line_number();
         }
         # Handle case where a stall was detected: fail if this is an
         # assert_screen, warn if it's a check_screen

++++++ os-autoinst.obsinfo ++++++
--- /var/tmp/diff_new_pack.ccDksL/_old  2026-07-12 16:22:04.277858301 +0200
+++ /var/tmp/diff_new_pack.ccDksL/_new  2026-07-12 16:22:04.285858585 +0200
@@ -1,5 +1,5 @@
 name: os-autoinst
-version: 5.1783514748.b19cdea
-mtime: 1783514748
-commit: b19cdeaf9793917db2bd16bc64fd707d01dff10b
+version: 5.1783672666.346fbe5
+mtime: 1783672666
+commit: 346fbe526713586654b58f57623daf98bf546088
 

Reply via email to