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-30 15:14:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old) and /work/SRC/openSUSE:Factory/.os-autoinst.new.11887 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst" Tue Jun 30 15:14:46 2026 rev:607 rq:1362645 version:5.1782809557.0ae98f8 Changes: -------- --- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2026-06-23 17:44:04.116997841 +0200 +++ /work/SRC/openSUSE:Factory/.os-autoinst.new.11887/os-autoinst.changes 2026-06-30 15:15:09.603552731 +0200 @@ -1,0 +2,11 @@ +Tue Jun 30 08:52:49 UTC 2026 - [email protected] + +- Update to version 5.1782809557.0ae98f8: + * docs: document testing custom os-autoinst forks within openQA + * feat: Also output module information for wait_serial result steps + * feat: Add module name and step number to autoinst-log + * feat: Log the CASEDIR git url/hash for easy frontend access + * fix: exclude virt-firmware on older Leap ppc64 + * fix: stop deepening when repo is no longer shallow + +------------------------------------------------------------------- Old: ---- os-autoinst-5.1782140090.fe34efb.obscpio New: ---- os-autoinst-5.1782809557.0ae98f8.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ os-autoinst-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.Tyc037/_old 2026-06-30 15:15:10.507583419 +0200 +++ /var/tmp/diff_new_pack.Tyc037/_new 2026-06-30 15:15:10.511583556 +0200 @@ -18,7 +18,7 @@ %define short_name os-autoinst-devel Name: %{short_name}-test -Version: 5.1782140090.fe34efb +Version: 5.1782809557.0ae98f8 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-openvswitch-test.spec ++++++ --- /var/tmp/diff_new_pack.Tyc037/_old 2026-06-30 15:15:10.547584778 +0200 +++ /var/tmp/diff_new_pack.Tyc037/_new 2026-06-30 15:15:10.551584913 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst-openvswitch Name: %{short_name}%{?name_ext} -Version: 5.1782140090.fe34efb +Version: 5.1782809557.0ae98f8 Release: 0 Summary: test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-test.spec ++++++ --- /var/tmp/diff_new_pack.Tyc037/_old 2026-06-30 15:15:10.599586543 +0200 +++ /var/tmp/diff_new_pack.Tyc037/_new 2026-06-30 15:15:10.603586678 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst Name: %{short_name}%{?name_ext} -Version: 5.1782140090.fe34efb +Version: 5.1782809557.0ae98f8 Release: 0 Summary: test package for os-autoinst License: GPL-2.0-or-later ++++++ os-autoinst.spec ++++++ --- /var/tmp/diff_new_pack.Tyc037/_old 2026-06-30 15:15:10.643588036 +0200 +++ /var/tmp/diff_new_pack.Tyc037/_new 2026-06-30 15:15:10.643588036 +0200 @@ -17,7 +17,7 @@ Name: os-autoinst -Version: 5.1782140090.fe34efb +Version: 5.1782809557.0ae98f8 Release: 0 Summary: OS-level test automation License: GPL-2.0-or-later ++++++ os-autoinst-5.1782140090.fe34efb.obscpio -> os-autoinst-5.1782809557.0ae98f8.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/OpenQA/Isotovideo/Runner.pm new/os-autoinst-5.1782809557.0ae98f8/OpenQA/Isotovideo/Runner.pm --- old/os-autoinst-5.1782140090.fe34efb/OpenQA/Isotovideo/Runner.pm 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/OpenQA/Isotovideo/Runner.pm 2026-06-30 10:52:37.000000000 +0200 @@ -223,6 +223,8 @@ # git repo fail silently, i.e. store an empty variable ($bmwqemu::vars{TEST_GIT_URL}, $bmwqemu::vars{TEST_GIT_HASH}) = checkout_git_refspec($bmwqemu::vars{CASEDIR} => 'TEST_GIT_REFSPEC'); + # For the frontend to display links to the source code + diag "TEST_GIT_HASH=$bmwqemu::vars{TEST_GIT_HASH} TEST_GIT_URL=$bmwqemu::vars{TEST_GIT_URL}"; checkout_wheels($bmwqemu::vars{CASEDIR}, $bmwqemu::vars{WHEELS_DIR}); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/README.md new/os-autoinst-5.1782809557.0ae98f8/README.md --- old/os-autoinst-5.1782140090.fe34efb/README.md 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/README.md 2026-06-30 10:52:37.000000000 +0200 @@ -346,6 +346,25 @@ `WITH_COVER_OPTIONS`, …) can be combined and can also be used with the `coverage` target. +# Testing os-autoinst modifications within openQA + +To easily test your `os-autoinst` modifications within an existing openQA +setup, openQA provides support for building os-autoinst dynamically in a container. + +When scheduling a job (e.g. via `openqa-clone-job`), provide the following +variables: +* `OS_AUTOINST_GIT_REPO`: The URL of your fork (e.g., + `https://github.com/$USER/os-autoinst.git`) +* `OS_AUTOINST_GIT_BRANCH`: The branch to test (default: `master`) +* `OS_AUTOINST_CONTAINER_IMAGE`: The container image to use (default: + `registry.opensuse.org/devel/openqa/containers/os-autoinst_dev:latest`) + +When `OS_AUTOINST_GIT_REPO` is set, the openQA worker will automatically use +rootless Podman to fetch your repository, compile it, and use it to execute the test run +within the container specified via `OS_AUTOINST_CONTAINER_IMAGE`. Additional dependencies +(e.g. `os-autoinst-distri-opensuse-deps`) must be provided by that container image rather +than the worker host. + # Running isotovideo as CI check We provide a container to run `isotovideo` which can be used to run diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/basetest.pm new/os-autoinst-5.1782809557.0ae98f8/basetest.pm --- old/os-autoinst-5.1782140090.fe34efb/basetest.pm 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/basetest.pm 2026-06-30 10:52:37.000000000 +0200 @@ -461,6 +461,8 @@ if (defined $captured_val && $args{capture_name}) { $output .= "# $args{capture_name}: $captured_val\n"; } + # log every step that is shown in the webui + bmwqemu::update_line_number(); $self->record_resultfile('wait_serial', $output, result => $res); return undef; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/bmwqemu.pm new/os-autoinst-5.1782809557.0ae98f8/bmwqemu.pm --- old/os-autoinst-5.1782140090.fe34efb/bmwqemu.pm 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/bmwqemu.pm 2026-06-30 10:52:37.000000000 +0200 @@ -228,8 +228,8 @@ } sub update_line_number () { - return unless current_test; - return unless current_test->{script}; + return unless my $current_test = current_test; + return unless $current_test->{script}; my @out; my $casedir = $vars{CASEDIR} // ''; for (my $i = 10; $i > 0; $i--) { @@ -238,7 +238,9 @@ $filename =~ s@$casedir/?@@; push @out, "$filename:$line called $subroutine"; } - log::logger->debug(join ' -> ', @out); + my $step_info = sprintf '[step:%s,%s,%s]', + $current_test->{category} // '-', $current_test->{name} // '-', ($current_test->{test_count} // 0) + 1; + log::logger->debug("$step_info " . join ' -> ', @out); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/t/12-bmwqemu.t new/os-autoinst-5.1782809557.0ae98f8/t/12-bmwqemu.t --- old/os-autoinst-5.1782140090.fe34efb/t/12-bmwqemu.t 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/t/12-bmwqemu.t 2026-06-30 10:52:37.000000000 +0200 @@ -82,8 +82,8 @@ $log::direct_output = 1; bmwqemu::init_logger(); ok !bmwqemu::update_line_number(), 'update_line_number needs current_test defined'; - $autotest::current_test = {script => 'my/module.pm'}; - stderr_like { bmwqemu::update_line_number() } qr{bmwqemu.t.*called.*subtest}, 'update_line_number identifies caller scope'; + $autotest::current_test = {script => 'my/module.pm', name => 'module'}; + stderr_like { bmwqemu::update_line_number() } qr{\[step:-,module,1\].*bmwqemu.t.*called.*subtest}, 'update_line_number identifies caller scope'; }; subtest 'CASEDIR is mandatory' => sub { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/t/14-isotovideo.t new/os-autoinst-5.1782809557.0ae98f8/t/14-isotovideo.t --- old/os-autoinst-5.1782140090.fe34efb/t/14-isotovideo.t 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/t/14-isotovideo.t 2026-06-30 10:52:37.000000000 +0200 @@ -132,6 +132,20 @@ opts => "casedir=$data_dir/tests test_git_refspec=deadbeef _exit_after_schedule=1") } qr/Checking.*local.*deadbeef/, 'refspec in local git repository would be checked out'; }; +subtest 'log TEST_GIT_ vars' => sub { + my @diags; + my $runner_mock = Test::MockModule->new('OpenQA::Isotovideo::Runner'); + $runner_mock->noop('checkout_wheels'); + $runner_mock->noop('checkout_git_repo_and_branch'); + $runner_mock->redefine(checkout_git_refspec => sub { ('url', 'c0ffee') }); + $runner_mock->redefine(diag => sub { push @diags, $_[0] }); + my $bmwqemu_mock = Test::MockModule->new('bmwqemu'); + $bmwqemu_mock->noop('ensure_valid_vars'); + local $bmwqemu::vars{HDDSIZEGB_1} = 1; + OpenQA::Isotovideo::Runner->checkout_code; + is $diags[0], 'TEST_GIT_HASH=c0ffee TEST_GIT_URL=url', 'vars are logged'; +}; + subtest 'isotovideo with wheels' => sub { chdir $pool_dir; unlink 'vars.json' if -e 'vars.json'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1782140090.fe34efb/t/17-basetest.t new/os-autoinst-5.1782809557.0ae98f8/t/17-basetest.t --- old/os-autoinst-5.1782140090.fe34efb/t/17-basetest.t 2026-06-22 16:54:50.000000000 +0200 +++ new/os-autoinst-5.1782809557.0ae98f8/t/17-basetest.t 2026-06-30 10:52:37.000000000 +0200 @@ -7,7 +7,7 @@ use lib "$Bin/../external/os-autoinst-common/lib"; use OpenQA::Test::TimeLimit '5'; use Test::MockModule; -use Test::Output qw(combined_like combined_from); +use Test::Output qw(combined_like combined_from stderr_like); use File::Basename; use Mojo::File qw(path tempdir); use Mojo::JSON qw(decode_json); @@ -538,6 +538,17 @@ is $basetest->{result}, 'successfully called function', 'search for expected serial failures is working'; }; +subtest 'record_serialresult log step' => sub { + my $basetest = basetest->new(); + $basetest->{name} = 'test'; + $basetest->{category} = 'cat'; + $basetest->{script} = 'foo'; + local $autotest::current_test = $basetest; + my $mock_basetest_local = Test::MockModule->new('basetest'); + $mock_basetest_local->noop('record_resultfile'); + stderr_like { $basetest->record_serialresult('regex', 'ok', 'output', command => 'my_command') } qr/\[step:cat,test,2\].*called basetest::record_serialresult/, 'module step is logged'; +}; + subtest record_serialresult_with_command => sub { my $basetest = basetest->new(); $basetest->{name} = 'test'; ++++++ os-autoinst.obsinfo ++++++ --- /var/tmp/diff_new_pack.Tyc037/_old 2026-06-30 15:15:12.799661226 +0200 +++ /var/tmp/diff_new_pack.Tyc037/_new 2026-06-30 15:15:12.803661363 +0200 @@ -1,5 +1,5 @@ name: os-autoinst -version: 5.1782140090.fe34efb -mtime: 1782140090 -commit: fe34efb51586bd82c830ab3660764b2ac1ea4402 +version: 5.1782809557.0ae98f8 +mtime: 1782809557 +commit: 0ae98f87a1675ecc971059b72eb581a02863dd22
