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-06-19 16:35:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old) and /work/SRC/openSUSE:Factory/.os-autoinst.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst" Fri Jun 19 16:35:27 2026 rev:604 rq:1360382 version:5.1781797043.0fb1077 Changes: -------- --- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2026-06-18 18:40:55.685791829 +0200 +++ /work/SRC/openSUSE:Factory/.os-autoinst.new.1956/os-autoinst.changes 2026-06-19 17:19:50.050899395 +0200 @@ -1,0 +2,13 @@ +Thu Jun 18 16:56:33 UTC 2026 - [email protected] + +- Update to version 5.1781797043.0fb1077: + * test: assert Level 3 pretty serial markers + * fix: fallback pretty marker console to 'sut' + * test: fix color test resilience to NO_COLOR + * fix: stop QMP wait hangs on early QEMU exits + * fix: stop autodie unlink crashes in qemu backend + * fix: cleanly recreate virtio console pipe if already exists + * fix: suppress spurious virtio console unlink warnings + * test: reliably assert pipe size adjustments + +------------------------------------------------------------------- Old: ---- os-autoinst-5.1781702821.22ced0d.obscpio New: ---- os-autoinst-5.1781797043.0fb1077.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ os-autoinst-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.ccQVaU/_old 2026-06-19 17:19:55.407083754 +0200 +++ /var/tmp/diff_new_pack.ccQVaU/_new 2026-06-19 17:19:55.411083892 +0200 @@ -18,7 +18,7 @@ %define short_name os-autoinst-devel Name: %{short_name}-test -Version: 5.1781702821.22ced0d +Version: 5.1781797043.0fb1077 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-openvswitch-test.spec ++++++ --- /var/tmp/diff_new_pack.ccQVaU/_old 2026-06-19 17:19:55.475086095 +0200 +++ /var/tmp/diff_new_pack.ccQVaU/_new 2026-06-19 17:19:55.479086233 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst-openvswitch Name: %{short_name}%{?name_ext} -Version: 5.1781702821.22ced0d +Version: 5.1781797043.0fb1077 Release: 0 Summary: test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-test.spec ++++++ --- /var/tmp/diff_new_pack.ccQVaU/_old 2026-06-19 17:19:55.515087473 +0200 +++ /var/tmp/diff_new_pack.ccQVaU/_new 2026-06-19 17:19:55.523087747 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst Name: %{short_name}%{?name_ext} -Version: 5.1781702821.22ced0d +Version: 5.1781797043.0fb1077 Release: 0 Summary: test package for os-autoinst License: GPL-2.0-or-later ++++++ os-autoinst.spec ++++++ --- /var/tmp/diff_new_pack.ccQVaU/_old 2026-06-19 17:19:55.599090363 +0200 +++ /var/tmp/diff_new_pack.ccQVaU/_new 2026-06-19 17:19:55.603090501 +0200 @@ -17,7 +17,7 @@ Name: os-autoinst -Version: 5.1781702821.22ced0d +Version: 5.1781797043.0fb1077 Release: 0 Summary: OS-level test automation License: GPL-2.0-or-later ++++++ os-autoinst-5.1781702821.22ced0d.obscpio -> os-autoinst-5.1781797043.0fb1077.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/OpenQA/Qemu/Proc.pm new/os-autoinst-5.1781797043.0fb1077/OpenQA/Qemu/Proc.pm --- old/os-autoinst-5.1781702821.22ced0d/OpenQA/Qemu/Proc.pm 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/OpenQA/Qemu/Proc.pm 2026-06-18 17:37:23.000000000 +0200 @@ -265,7 +265,7 @@ my $data = _make_resolution_hex_data($+{width}, $+{height}); my %vars = (name => 'PlatformConfig', guid => '7235c51c-0c80-4cab-87ac-3b084a6304b1', attr => 7, data => $data); my %json = (version => 2, variables => [\%vars]); - my $json_path = path('resolution-fw-conf.json')->spurt(encode_json(\%json)); + my $json_path = path('resolution-fw-conf.json')->spew(encode_json(\%json)); return ('--set-json' => $json_path->to_abs->to_string); } @@ -455,7 +455,7 @@ condition => sub () { $sk }, or => sub () { die q{Can't open QMP socket} }, cb => sub () { - die "QEMU terminated before QMP connection could be established. Check for errors below\n" if $self->{_qemu_terminated}; + die "QEMU terminated before QMP connection could be established. Check for errors below\n" if $self->{_qemu_terminated} || !$self->_process->is_running; $sk = IO::Socket::UNIX->new( Type => IO::Socket::UNIX::SOCK_STREAM, Peer => 'qmp_socket', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/backend/qemu.pm new/os-autoinst-5.1781797043.0fb1077/backend/qemu.pm --- old/os-autoinst-5.1781702821.22ced0d/backend/qemu.pm 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/backend/qemu.pm 2026-06-18 17:37:23.000000000 +0200 @@ -589,13 +589,17 @@ sub virtio_console_fifo_names () { map { $_ . '.in', $_ . '.out' } virtio_console_names } sub console_fifo ($name) { - return bmwqemu::fctwarn("Fifo pipe '$name' already exists!") if -e $name; + no autodie 'unlink'; + unlink $name or $!{ENOENT} or bmwqemu::fctwarn("Could not unlink existing pipe $name: $!"); mkfifo($name, 0666) or bmwqemu::fctwarn("Failed to create pipe $name: $!"); } sub create_virtio_console_fifo () { console_fifo($_) for virtio_console_fifo_names } -sub delete_virtio_console_fifo () { unlink or bmwqemu::fctwarn("Could not unlink $_ $!") for grep { -e } virtio_console_fifo_names } +sub delete_virtio_console_fifo () { + no autodie 'unlink'; + unlink or $!{ENOENT} or bmwqemu::fctwarn("Could not unlink $_: $!") for virtio_console_fifo_names; +} sub qemu_params_ofw ($self) { my $vars = \%bmwqemu::vars; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/distribution.pm new/os-autoinst-5.1781797043.0fb1077/distribution.pm --- old/os-autoinst-5.1781702821.22ced0d/distribution.pm 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/distribution.pm 2026-06-18 17:37:23.000000000 +0200 @@ -464,8 +464,7 @@ # Sourcing ~/.bashrc then activates the hook in the current session. testapi::type_string "grep -q __oa_prompt ~/.bashrc 2>/dev/null || { echo '$func; $pc' | tee -a ~/.bashrc ~/.profile >/dev/null; }; . ~/.bashrc\n"; - my $console = testapi::current_console(); - return undef unless defined $console; + my $console = testapi::current_console() // 'sut'; $self->{_serial_marker_hook_installed}->{$console} = 1; $self->{_serial_marker_hook_persistent}->{$console} = 1; } @@ -485,8 +484,7 @@ =cut sub reset_serial_marker ($self, $console = undef) { - $console //= testapi::current_console(); - return undef unless defined $console; + $console //= testapi::current_console() // 'sut'; delete $self->{_serial_marker_level}->{$console}; $self->invalidate_serial_marker_hook($console); } @@ -506,8 +504,7 @@ =cut sub invalidate_serial_marker_hook ($self, $console = undef) { - $console //= testapi::current_console(); - return undef unless defined $console; + $console //= testapi::current_console() // 'sut'; delete $self->{_serial_marker_hook_installed}->{$console}; } @@ -583,8 +580,7 @@ =cut sub detect_serial_marker_capability ($self) { - my $console = testapi::current_console(); - return 1 unless defined $console; + my $console = testapi::current_console() // 'sut'; if (my $level = $self->{_serial_marker_level}->{$console}) { return $level if $level < 2 || $self->{_serial_marker_hook_installed}->{$console}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/t/10-test-image-conversion-benchmark.t new/os-autoinst-5.1781797043.0fb1077/t/10-test-image-conversion-benchmark.t --- old/os-autoinst-5.1781702821.22ced0d/t/10-test-image-conversion-benchmark.t 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/t/10-test-image-conversion-benchmark.t 2026-06-18 17:37:23.000000000 +0200 @@ -17,9 +17,6 @@ cv::init(); require tinycv; - -my ($image, $img_src); - my $data_dir = "$Bin/data"; my $result_dir = "$data_dir/results"; @@ -34,7 +31,7 @@ foreach my $img_src (@all_images) { my (undef, $filename) = tempfile('test-XXXXX', DIR => $result_dir, SUFFIX => $img_src, OPEN => 0); - $image = tinycv::read($data_dir . '/' . $img_src); + my $image = tinycv::read($data_dir . '/' . $img_src); if ($image) { $image->write($filename); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/t/15-logging.t new/os-autoinst-5.1781797043.0fb1077/t/15-logging.t --- old/os-autoinst-5.1781702821.22ced0d/t/15-logging.t 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/t/15-logging.t 2026-06-18 17:37:23.000000000 +0200 @@ -40,7 +40,9 @@ }; subtest 'Color output can be disabled' => sub { + local %ENV = %ENV; delete $ENV{ANSI_COLORS_DISABLED}; + delete $ENV{NO_COLOR}; my $out = stderr_from { bmwqemu::fctwarn('with color') }; isnt $out, colorstrip($out), 'logs use colors'; $ENV{ANSI_COLORS_DISABLED} = 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/t/23-baseclass.t new/os-autoinst-5.1781797043.0fb1077/t/23-baseclass.t --- old/os-autoinst-5.1781702821.22ced0d/t/23-baseclass.t 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/t/23-baseclass.t 2026-06-18 17:37:23.000000000 +0200 @@ -740,15 +740,15 @@ }; my $video_encoders = $baseclass->{video_encoders} = {}; $bmwqemu::vars{EXTERNAL_VIDEO_ENCODER_CMD} = 'true -o %OUTPUT_FILE_NAME% "trailing arg"'; - $bmwqemu::vars{XRES} = '640'; - $bmwqemu::vars{YRES} = '480'; + $bmwqemu::vars{XRES} = '100'; + $bmwqemu::vars{YRES} = '100'; stderr_like { ok $baseclass->_start_external_video_encoder_if_configured, 'video encoder started' } qr{Launching external video encoder}, 'message logged'; my @video_encoder_pids = keys %$video_encoders; is scalar @video_encoder_pids, 1, 'one video encoder started'; my $launched_video_encoder = $video_encoders->{$video_encoder_pids[0]}; my $pipe_sz = fcntl $launched_video_encoder->{pipe}, Fcntl::F_GETPIPE_SZ, 0; subtest 'pipe size set' => sub { - ok $pipe_sz >= 640 * 480 * 3, 'pipe size set'; + ok $pipe_sz >= 100 * 100 * 3, 'pipe size set'; } or always_explain $pipe_sz; # now a bigger size to trigger a warning diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/t/99-full-stack.t new/os-autoinst-5.1781797043.0fb1077/t/99-full-stack.t --- old/os-autoinst-5.1781702821.22ced0d/t/99-full-stack.t 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/t/99-full-stack.t 2026-06-18 17:37:23.000000000 +0200 @@ -75,6 +75,8 @@ like $log, qr/Saving storage complete/, 'save_storage done'; like $log, qr/get_test_data returned expected file/, 'get_test_data test'; like $log, qr/save_tmp_file returned expected file/, 'save_tmp_file test'; +like $log, qr/serial_marker: console 'sut' Level 3 detected/, 'pretty serial markers reach Level 3'; +like $log, qr/wait_serial:.*OA:DONE.*ok/, 'Level 3 marker response seen in serial output'; unlike $log, qr/warn.*qemu-system.*terminating/, 'No warning about expected termination'; my $ignore_results_re = qr/fail/; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1781702821.22ced0d/xt/01-style.t new/os-autoinst-5.1781797043.0fb1077/xt/01-style.t --- old/os-autoinst-5.1781702821.22ced0d/xt/01-style.t 2026-06-17 15:27:01.000000000 +0200 +++ new/os-autoinst-5.1781797043.0fb1077/xt/01-style.t 2026-06-18 17:37:23.000000000 +0200 @@ -17,7 +17,7 @@ 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 \$\@'}, '', '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 -I -l '\<spurt\>'}, '', 'No deprecated "Mojo::File::spurt", use "spew" instead'; +is qx{git grep -I -l '\\<spurt\\>' ':!xt/01-style.t'}, '', 'No deprecated "Mojo::File::spurt", use "spew" instead'; is qx{git grep -I -l '^use testapi' backend/ consoles/}, '', 'No backend or console files use external facing testapi'; is qx[git grep -l -e '^\\s*sub \\S\\+ [^(]\\+' --and --not -e 'sub [(\{]' --and --not -e 'sub \\S\\+\\s*[:(]' --and --not -e 'sub \\S\\+;' --and --not -e '# no:style:signatures' ':!external/' ':!t/48-testmodules-style.t'], '', 'All files use sub signatures everywhere (nameless and in-place definitions still allowed)'; is qx[git grep -l -P 'sub\\s*\\{\\s*my\\s*\\(?\\\$' t/], '', 'Anonymous subs in tests should use signatures instead of manual unpacking of @_'; ++++++ os-autoinst.obsinfo ++++++ --- /var/tmp/diff_new_pack.ccQVaU/_old 2026-06-19 17:19:58.067175315 +0200 +++ /var/tmp/diff_new_pack.ccQVaU/_new 2026-06-19 17:19:58.071175452 +0200 @@ -1,5 +1,5 @@ name: os-autoinst -version: 5.1781702821.22ced0d -mtime: 1781702821 -commit: 22ced0db810357e853386e7dc6aed23ce4ed5b68 +version: 5.1781797043.0fb1077 +mtime: 1781797043 +commit: 0fb10771665c8db2173a5097c1dbdc837464c9d7
