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-11 22:26:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old) and /work/SRC/openSUSE:Factory/.os-autoinst.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst" Sat Apr 11 22:26:57 2026 rev:585 rq:1346105 version:5.1775932217.bd11042 Changes: -------- --- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2026-04-10 18:01:53.711845701 +0200 +++ /work/SRC/openSUSE:Factory/.os-autoinst.new.21863/os-autoinst.changes 2026-04-11 22:32:40.051834371 +0200 @@ -1,0 +2,11 @@ +Sat Apr 11 18:30:24 UTC 2026 - [email protected] + +- Update to version 5.1775932217.bd11042: + * fix: prevent deprecation warning about "spurt" + * feat(edid): Add virtio-vga-gl support + * 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 + +------------------------------------------------------------------- Old: ---- os-autoinst-5.1775744546.1ee50c6.obscpio New: ---- os-autoinst-5.1775932217.bd11042.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ os-autoinst-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.gzKMm5/_old 2026-04-11 22:32:41.063875764 +0200 +++ /var/tmp/diff_new_pack.gzKMm5/_new 2026-04-11 22:32:41.063875764 +0200 @@ -18,7 +18,7 @@ %define short_name os-autoinst-devel Name: %{short_name}-test -Version: 5.1775744546.1ee50c6 +Version: 5.1775932217.bd11042 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-openvswitch-test.spec ++++++ --- /var/tmp/diff_new_pack.gzKMm5/_old 2026-04-11 22:32:41.107877564 +0200 +++ /var/tmp/diff_new_pack.gzKMm5/_new 2026-04-11 22:32:41.111877727 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst-openvswitch Name: %{short_name}%{?name_ext} -Version: 5.1775744546.1ee50c6 +Version: 5.1775932217.bd11042 Release: 0 Summary: test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-test.spec ++++++ --- /var/tmp/diff_new_pack.gzKMm5/_old 2026-04-11 22:32:41.159879690 +0200 +++ /var/tmp/diff_new_pack.gzKMm5/_new 2026-04-11 22:32:41.163879854 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst Name: %{short_name}%{?name_ext} -Version: 5.1775744546.1ee50c6 +Version: 5.1775932217.bd11042 Release: 0 Summary: test package for os-autoinst License: GPL-2.0-or-later ++++++ os-autoinst.spec ++++++ --- /var/tmp/diff_new_pack.gzKMm5/_old 2026-04-11 22:32:41.207881654 +0200 +++ /var/tmp/diff_new_pack.gzKMm5/_new 2026-04-11 22:32:41.211881817 +0200 @@ -17,7 +17,7 @@ Name: os-autoinst -Version: 5.1775744546.1ee50c6 +Version: 5.1775932217.bd11042 Release: 0 Summary: OS-level test automation License: GPL-2.0-or-later ++++++ os-autoinst-5.1775744546.1ee50c6.obscpio -> os-autoinst-5.1775932217.bd11042.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/OpenQA/Isotovideo/LLMAnalysis.pm new/os-autoinst-5.1775932217.bd11042/OpenQA/Isotovideo/LLMAnalysis.pm --- old/os-autoinst-5.1775744546.1ee50c6/OpenQA/Isotovideo/LLMAnalysis.pm 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/OpenQA/Isotovideo/LLMAnalysis.pm 2026-04-11 20:30:17.000000000 +0200 @@ -123,7 +123,7 @@ my $model = $bmwqemu::vars{LLM_FAILURE_ANALYSIS_MODEL} || 'gemma-4-26B-A4B-it'; $output = query_llm_api($prompt, $url, $model); } - path("$result_dir/llm-failure-analysis.txt")->spurt($output); + path("$result_dir/llm-failure-analysis.txt")->spew($output); bmwqemu::diag("LLM Analysis complete. Saved to $result_dir/llm-failure-analysis.txt"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/backend/qemu.pm new/os-autoinst-5.1775932217.bd11042/backend/qemu.pm --- old/os-autoinst-5.1775744546.1ee50c6/backend/qemu.pm 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/backend/qemu.pm 2026-04-11 20:30:17.000000000 +0200 @@ -659,7 +659,7 @@ $device = 'virtio-gpu'; } $device //= 'VGA'; - my @edids = ('VGA', 'virtio-vga', 'virtio-gpu-pci', 'bochs-display', 'virtio-gpu'); + my @edids = ('VGA', 'virtio-vga', 'virtio-vga-gl', 'virtio-gpu-pci', 'bochs-display', 'virtio-gpu'); if (grep { $device eq $_ } @edids) { # these devices support EDID $options = ",edid=on,xres=$self->{xres},yres=$self->{yres}"; @@ -668,6 +668,10 @@ $options .= ',' . $vars->{QEMU_VIDEO_DEVICE_OPTIONS}; } sp('device', "${device}${options}"); + # enable openGL support + if ($device eq 'virtio-vga-gl') { + sp('display', 'egl-headless,gl=on'); + } } sub determine_qemu_version ($self, $qemubin) { @@ -882,7 +886,7 @@ bmwqemu::diag('Initializing block device images'); $self->{proc}->init_blockdev_images(); - sp('only-migratable') if $self->can_handle({function => 'snapshots', no_warn => 1}); + sp('only-migratable') if $self->can_handle({function => 'snapshots', no_warn => 1}) and (($vars->{QEMU_VIDEO_DEVICE} // '') ne 'virtio-vga-gl'); sp('chardev', 'ringbuf,id=serial0,logfile=serial0,logappend=on'); sp('serial', 'chardev:serial0'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/t/14-isotovideo.t new/os-autoinst-5.1775932217.bd11042/t/14-isotovideo.t --- old/os-autoinst-5.1775744546.1ee50c6/t/14-isotovideo.t 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/t/14-isotovideo.t 2026-04-11 20:30:17.000000000 +0200 @@ -342,9 +342,9 @@ path('testresults/')->remove_tree; path('testresults/')->make_path; # Create a dummy failed test result to trigger gathering context - path('testresults/result-failing_module.json')->spurt('{"result": "fail", "name": "failing_module"}'); - path('autoinst-log.txt')->spurt("Something went wrong in the log\n"); - path('serial0')->spurt("Kernel panic in serial output\n"); + path('testresults/result-failing_module.json')->spew('{"result": "fail", "name": "failing_module"}'); + path('autoinst-log.txt')->spew("Something went wrong in the log\n"); + path('serial0')->spew("Kernel panic in serial output\n"); my $log = combined_from { isotovideo( opts => "casedir=$data_dir/tests schedule=module1 LLM_FAILURE_ANALYSIS=1 LLM_FAILURE_ANALYSIS_CMD=cat", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/t/18-backend-qemu.t new/os-autoinst-5.1775932217.bd11042/t/18-backend-qemu.t --- old/os-autoinst-5.1775744546.1ee50c6/t/18-backend-qemu.t 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/t/18-backend-qemu.t 2026-04-11 20:30:17.000000000 +0200 @@ -326,6 +326,13 @@ like $cmdline, qr/-device virtio-tablet/, '-device virtio-tablet option added'; }; +subtest x86_64_opengl_options => sub { + my $cmdline = qemu_cmdline(ARCH => 'x86_64', QEMU_VIDEO_DEVICE => 'virtio-vga-gl'); + like $cmdline, qr/-device virtio-vga-gl,edid=on/, '-device virtio-vga-gl,edid=on option added'; + like $cmdline, qr/-display egl-headless,gl=on/, '-device virtio-vga-gl,enabled openGL'; + unlike $cmdline, qr/-only-migratable/, 'virgl is not yet migratable'; +}; + subtest 'capturing audio' => sub { $called{handle_qmp_command} = undef; $backend->start_audiocapture({filename => 'foo'}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/t/44-llm-failure-analysis.t new/os-autoinst-5.1775932217.bd11042/t/44-llm-failure-analysis.t --- old/os-autoinst-5.1775744546.1ee50c6/t/44-llm-failure-analysis.t 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/t/44-llm-failure-analysis.t 2026-04-11 20:30:17.000000000 +0200 @@ -24,7 +24,7 @@ my $i = 1; for my $res (@results) { - $testresults->child("result-$i.json")->spurt(qq({"name":"test$i", "result":"$res"})); + $testresults->child("result-$i.json")->spew(qq({"name":"test$i", "result":"$res"})); $i++; } } @@ -38,20 +38,20 @@ # Missing names setup_results('fail'); - path($bmwqemu::result_dir)->child('result-1.json')->spurt('{"result":"fail"}'); + path($bmwqemu::result_dir)->child('result-1.json')->spew('{"result":"fail"}'); my $ctx = OpenQA::Isotovideo::LLMAnalysis::gather_context($bmwqemu::result_dir); is $ctx->{failed_tests}, '1', 'Fallback to filename for test name'; # Truncation logic - path($bmwqemu::result_dir)->child('autoinst-log.txt')->spurt(join "\n", map { "L$_" } 1 .. 300); - path($bmwqemu::result_dir)->child('serial0')->spurt(join "\n", map { "S$_" } 1 .. 150); + path($bmwqemu::result_dir)->child('autoinst-log.txt')->spew(join "\n", map { "L$_" } 1 .. 300); + path($bmwqemu::result_dir)->child('serial0')->spew(join "\n", map { "S$_" } 1 .. 150); $ctx = OpenQA::Isotovideo::LLMAnalysis::gather_context($bmwqemu::result_dir); is scalar(split "\n", $ctx->{log_tail}), 200, 'Log tail truncated'; is scalar(split "\n", $ctx->{serial_tail}), 100, 'Serial tail truncated'; # Empty files - path($bmwqemu::result_dir)->child('autoinst-log.txt')->spurt(''); - path($bmwqemu::result_dir)->child('serial0')->spurt(''); + path($bmwqemu::result_dir)->child('autoinst-log.txt')->spew(''); + path($bmwqemu::result_dir)->child('serial0')->spew(''); $ctx = OpenQA::Isotovideo::LLMAnalysis::gather_context($bmwqemu::result_dir); is $ctx->{log_tail}, '', 'Handles empty log'; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1775744546.1ee50c6/xt/01-style.t new/os-autoinst-5.1775932217.bd11042/xt/01-style.t --- old/os-autoinst-5.1775744546.1ee50c6/xt/01-style.t 2026-04-09 16:22:26.000000000 +0200 +++ new/os-autoinst-5.1775932217.bd11042/xt/01-style.t 2026-04-11 20:30:17.000000000 +0200 @@ -17,6 +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 '^use testapi' backend/ consoles/}, '', 'No backend or console files use external facing testapi'; is qx{git grep -l -e '^sub \\S\\+ [^(]\\+' --and --not -e 'sub [(\{]' --and --not -e 'sub \\S\\+(' --and --not -e 'sub \\S\\+;' --and --not -e '# no:style:signatures' ':!external/'}, '', 'All files use sub signatures everywhere (nameless and in-place definitions still allowed)'; is qx{git grep -L '^#!.*perl' t/**.t}, '', 'All test files have shebang'; ++++++ os-autoinst.obsinfo ++++++ --- /var/tmp/diff_new_pack.gzKMm5/_old 2026-04-11 22:32:43.835989143 +0200 +++ /var/tmp/diff_new_pack.gzKMm5/_new 2026-04-11 22:32:43.843989471 +0200 @@ -1,5 +1,5 @@ name: os-autoinst -version: 5.1775744546.1ee50c6 -mtime: 1775744546 -commit: 1ee50c6b1d20225a21621ae0444360c8cee56374 +version: 5.1775932217.bd11042 +mtime: 1775932217 +commit: bd110427246346f423fddbb4ac2b9c02c0ce15ca
