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-02 16:02:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/os-autoinst (Old) and /work/SRC/openSUSE:Factory/.os-autoinst.new.1937 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "os-autoinst" Tue Jun 2 16:02:41 2026 rev:599 rq:1356447 version:5.1780332012.6ee8da2 Changes: -------- --- /work/SRC/openSUSE:Factory/os-autoinst/os-autoinst.changes 2026-05-28 23:12:27.880695714 +0200 +++ /work/SRC/openSUSE:Factory/.os-autoinst.new.1937/os-autoinst.changes 2026-06-02 16:04:10.078553182 +0200 @@ -1,0 +2,10 @@ +Mon Jun 01 16:40:23 UTC 2026 - [email protected] + +- Update to version 5.1780332012.6ee8da2: + * chore(AGENTS.md): phrase tidying as mandatory + * feat(mouse_drag): use the clickpoints + * test: allow to configure full-stack test output directory + * test: allow shortening long typing in full-stack tests + * chore: video_stream: accept ustreamer version 8 + +------------------------------------------------------------------- Old: ---- os-autoinst-5.1779973703.70686ac.obscpio New: ---- os-autoinst-5.1780332012.6ee8da2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ os-autoinst-devel-test.spec ++++++ --- /var/tmp/diff_new_pack.WYmbMh/_old 2026-06-02 16:04:11.850626667 +0200 +++ /var/tmp/diff_new_pack.WYmbMh/_new 2026-06-02 16:04:11.854626833 +0200 @@ -18,7 +18,7 @@ %define short_name os-autoinst-devel Name: %{short_name}-test -Version: 5.1779973703.70686ac +Version: 5.1780332012.6ee8da2 Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-openvswitch-test.spec ++++++ --- /var/tmp/diff_new_pack.WYmbMh/_old 2026-06-02 16:04:11.902628824 +0200 +++ /var/tmp/diff_new_pack.WYmbMh/_new 2026-06-02 16:04:11.906628990 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst-openvswitch Name: %{short_name}%{?name_ext} -Version: 5.1779973703.70686ac +Version: 5.1780332012.6ee8da2 Release: 0 Summary: test package for %{short_name} License: GPL-2.0-or-later ++++++ os-autoinst-test.spec ++++++ --- /var/tmp/diff_new_pack.WYmbMh/_old 2026-06-02 16:04:11.950630814 +0200 +++ /var/tmp/diff_new_pack.WYmbMh/_new 2026-06-02 16:04:11.950630814 +0200 @@ -19,7 +19,7 @@ %define name_ext -test %define short_name os-autoinst Name: %{short_name}%{?name_ext} -Version: 5.1779973703.70686ac +Version: 5.1780332012.6ee8da2 Release: 0 Summary: test package for os-autoinst License: GPL-2.0-or-later ++++++ os-autoinst.spec ++++++ --- /var/tmp/diff_new_pack.WYmbMh/_old 2026-06-02 16:04:12.002632971 +0200 +++ /var/tmp/diff_new_pack.WYmbMh/_new 2026-06-02 16:04:12.006633137 +0200 @@ -17,7 +17,7 @@ Name: os-autoinst -Version: 5.1779973703.70686ac +Version: 5.1780332012.6ee8da2 Release: 0 Summary: OS-level test automation License: GPL-2.0-or-later ++++++ os-autoinst-5.1779973703.70686ac.obscpio -> os-autoinst-5.1780332012.6ee8da2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/AGENTS.md new/os-autoinst-5.1780332012.6ee8da2/AGENTS.md --- old/os-autoinst-5.1779973703.70686ac/AGENTS.md 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/AGENTS.md 2026-06-01 18:40:12.000000000 +0200 @@ -13,7 +13,8 @@ ## Conventions - Code style: Run `tools/tidyall --all` (or `tools/tidyall --git` for changed - files only). + files only). This MUST be done before every commit and before claiming + completion. - Linter: Always run `make test-perl-testsuite TESTS="xt/01-style.t xt/02-perlcritic.t"` for Perl changes before claiming completion. - Testing: Always add tests for new features or bug fixes in `t/`. Prefer diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/consoles/sshVirtsh.pm new/os-autoinst-5.1780332012.6ee8da2/consoles/sshVirtsh.pm --- old/os-autoinst-5.1779973703.70686ac/consoles/sshVirtsh.pm 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/consoles/sshVirtsh.pm 2026-06-01 18:40:12.000000000 +0200 @@ -624,6 +624,10 @@ my $nvram_path = sprintf '/vmfs/volumes/%s/openQA/%s', $bmwqemu::vars{VMWARE_DATASTORE} // 'datastore1', $nvram; $ret = $self->run_cmd("test -e $nvram_path", domain => 'sshVMwareServer'); $self->run_cmd(qq{echo 'nvram = "$nvram"' >> $vmx}, domain => 'sshVMwareServer') unless ($ret); + # set virtual hardware version if specified + if ($bmwqemu::vars{VMWARE_VM_HWVERSION}) { + $self->run_cmd(qq{sed -i 's/^virtualHW.version = ".*"/virtualHW.version = "$bmwqemu::vars{VMWARE_VM_HWVERSION}"/' $vmx}, domain => 'sshVMwareServer'); + } my $fb_tool = $bmwqemu::vars{GUESTINFO_CONFIG}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/consoles/video_stream.pm new/os-autoinst-5.1780332012.6ee8da2/consoles/video_stream.pm --- old/os-autoinst-5.1779973703.70686ac/consoles/video_stream.pm 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/consoles/video_stream.pm 2026-06-01 18:40:12.000000000 +0200 @@ -330,12 +330,12 @@ $client_clock_offset = 112; $data_offset = 129; $meta_offset = 32; - } elsif ($version == 7) { + } elsif ($version == 7 or $version == 8) { $client_clock_offset = 32; $data_offset = 128; $meta_offset = 52; } else { - die "Unsupported ustreamer version '$version' (only versions 4 and 7 are supported)"; + die "Unsupported ustreamer version '$version' (only versions 4, 7 and 8 are supported)"; } # tell ustreamer we are reading, otherwise it won't write new frames diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/doc/backend_vars.md new/os-autoinst-5.1780332012.6ee8da2/doc/backend_vars.md --- old/os-autoinst-5.1779973703.70686ac/doc/backend_vars.md 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/doc/backend_vars.md 2026-06-01 18:40:12.000000000 +0200 @@ -243,6 +243,7 @@ | VMWARE_REMOTE_VMM | string | | Set the vmware Virtual Machine Manager | | VMWARE_VNC_OVER_WS | boolean | 0 | Whether to use VNC over WebSockets (instead of raw VNC connection) | | VMWARE_VNC_OVER_WS_INSECURE | boolean | 0 | Do not require a valid TLS certificate for VNC over WebSockets | +| VMWARE_VM_HWVERSION | integer | | VM hardware version | | GUESTINFO_COMBUSTION | string | | Set the location of combustion's bash script file among the data folder | | GUESTINFO_IGNITION | string | | Set the location of ignition's config file formated in json, among the data folder | | GUESTINFO_CLOUD_INIT | string | | Set the location of user-data and meta-data files, separated by a comma in data folder | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/01-test_needle.t new/os-autoinst-5.1780332012.6ee8da2/t/01-test_needle.t --- old/os-autoinst-5.1779973703.70686ac/t/01-test_needle.t 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/01-test_needle.t 2026-06-01 18:40:12.000000000 +0200 @@ -217,7 +217,7 @@ my @alltags = sort keys %needle::tags; my @needles = @{needle::tags('none') || []}; -is(@needles, 4, 'four needles found'); +is(@needles, 3, 'three needles found'); for my $n (@needles) { $n->unregister(); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/03-testapi.t new/os-autoinst-5.1780332012.6ee8da2/t/03-testapi.t --- old/os-autoinst-5.1779973703.70686ac/t/03-testapi.t 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/03-testapi.t 2026-06-01 18:40:12.000000000 +0200 @@ -1042,30 +1042,46 @@ my %fake_needle_area = (x => 100, y => 100, w => 50, h => 40); my %fake_click_point = (xpos => 20, ypos => 10); - # Everything is provided. - my ($x, $y) = testapi::_calculate_clickpoint(\%fake_needle, \%fake_needle_area, \%fake_click_point); - is $x, 120, 'clickpoint x'; - is $y, 110, 'clickpoint y'; - - # Everything is provided but the click point is 'center' - ($x, $y) = testapi::_calculate_clickpoint(\%fake_needle, \%fake_needle_area, 'center'); - is $x, 125, 'clickpoint x centered'; - is $y, 120, 'clickpoint y centered'; - - # Just the area is provided and no click point. - ($x, $y) = testapi::_calculate_clickpoint(\%fake_needle, \%fake_needle_area); - is $x, 125, 'clickpoint x from area'; - is $y, 120, 'clickpoint y from area'; - - # Just the needle is provided and no area and click point. - ($x, $y) = testapi::_calculate_clickpoint(\%fake_needle); + # A needle without click point. + my %simple_needle = ( + area => [{x => 10, y => 10, w => 20, h => 30}], + ); + my ($x, $y) = testapi::_calculate_clickpoint(\%simple_needle); is $x, 20, 'clickpoint x from needle'; is $y, 25, 'clickpoint y from needle'; + + # A needle with an explicit click point. + my %explicit_clickpoint_needle = ( + area => [{x => 10, y => 10, w => 20, h => 30, click_point => {xpos => 2, ypos => 3}}], + ); + ($x, $y) = testapi::_calculate_clickpoint(\%explicit_clickpoint_needle); + is $x, 12, 'clickpoint x from area'; + is $y, 13, 'clickpoint y from area'; + + # A needle with a centered click point. + my %centered_clickpoint_needle = ( + area => [{x => 10, y => 10, w => 20, h => 30, click_point => 'center'}], + ); + ($x, $y) = testapi::_calculate_clickpoint(\%centered_clickpoint_needle); + is $x, 20, 'clickpoint x from area'; + is $y, 25, 'clickpoint y from area'; + + # A needle with many areas and an explicit click point. + my %full_clickpoint_needle = ( + area => [ + {x => 10, y => 10, w => 20, h => 30, click_point => {id => 'nr1', xpos => 2, ypos => 3}}, + {x => 30, y => 40, w => 20, h => 30, click_point => {id => 'nr2', xpos => 2, ypos => 3}}, + {x => 50, y => 80, w => 20, h => 30, click_point => {id => 'nr3', xpos => 2, ypos => 3}}, + ], + ); + ($x, $y) = testapi::_calculate_clickpoint(\%full_clickpoint_needle, 'nr2'); + is $x, 32, 'clickpoint x from area nr2'; + is $y, 43, 'clickpoint y from area nr2'; }; subtest 'mouse_drag' => sub { my $mock_testapi = Test::MockModule->new('testapi'); - my @area = ({x => 100, y => 100, w => 20, h => 20}); + my @area = ({x => 100, y => 100, w => 20, h => 20, click_point => {xpos => 2, ypos => 3}}); $mock_testapi->redefine(assert_screen => {area => \@area}); my ($startx, $starty) = (0, 0); @@ -1077,8 +1093,8 @@ is_deeply($cmds, [ { cmd => 'backend_mouse_set', - x => 110, - y => 110 + x => 102, + y => 103 }, { bstate => 1, @@ -1113,8 +1129,8 @@ }, { cmd => 'backend_mouse_set', - x => 110, - y => 110 + x => 102, + y => 103 }, { bstate => 0, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/22-svirt.t new/os-autoinst-5.1780332012.6ee8da2/t/22-svirt.t --- old/os-autoinst-5.1779973703.70686ac/t/22-svirt.t 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/22-svirt.t 2026-06-01 18:40:12.000000000 +0200 @@ -241,6 +241,14 @@ _check_vmware_cmds(\@cmds); }; +subtest 'starting VMware console with a specified hardware version' => sub { + local $bmwqemu::vars{VMWARE_VM_HWVERSION} = '13'; + my (@cmds, @ssh_cmds); + my $mocks = _mock_svirt_vmware(\@cmds, \@ssh_cmds); + $svirt_console->define_and_start; + _check_vmware_cmds(\@cmds, [qq{sed -i 's/^virtualHW.version = ".*"/virtualHW.version = "$bmwqemu::vars{VMWARE_VM_HWVERSION}"/' /vmfs/volumes/datastore1/openQA/openQA-SUT-1.vmx}]); +}; + subtest 'test config encoding' => sub { $bmwqemu::vars{GUESTINFO_COMBUSTION} = 'someTestScript'; my $test_script_dir = path(File::Temp->newdir('testXXXX')); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/99-full-stack.t new/os-autoinst-5.1780332012.6ee8da2/t/99-full-stack.t --- old/os-autoinst-5.1779973703.70686ac/t/99-full-stack.t 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/99-full-stack.t 2026-06-01 18:40:12.000000000 +0200 @@ -16,7 +16,7 @@ use Mojo::File qw(path tempdir); use Mojo::Util qw(scope_guard); -my $dir = tempdir("/tmp/$FindBin::Script-XXXX"); +my $dir = $ENV{OS_AUTOINST_FULL_STACK_TEST_DIR} // tempdir("/tmp/$FindBin::Script-XXXX"); my $toplevel_dir = "$Bin/.."; my $data_dir = "$Bin/data/"; my $pool_dir = "$dir/pool/"; @@ -43,6 +43,7 @@ "CDMODEL" : "ide-cd", "HDDMODEL" : "ide-hd", "VERSION" : "1", + "FAST_TYPING" : "@{[ $ENV{OS_AUTOINST_FAST_TYPING} // 0 ]}", "SSH_CONNECT_RETRY" : "2", "SSH_CONNECT_RETRY_INTERVAL" : ".001", "VNC_CONNECT_SLEEP" : "0", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/data/font-kerning.ref.json new/os-autoinst-5.1780332012.6ee8da2/t/data/font-kerning.ref.json --- old/os-autoinst-5.1779973703.70686ac/t/data/font-kerning.ref.json 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/data/font-kerning.ref.json 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -{ - "area": [ - { - "height": 155, - "type": "match", - "width": 280, - "xpos": 500, - "ypos": 295 - } - ], - "tags": [ - "none" - ] -} Binary files old/os-autoinst-5.1779973703.70686ac/t/data/font-kerning.ref.png and new/os-autoinst-5.1780332012.6ee8da2/t/data/font-kerning.ref.png differ Binary files old/os-autoinst-5.1779973703.70686ac/t/data/font-kerning.test.png and new/os-autoinst-5.1780332012.6ee8da2/t/data/font-kerning.test.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/t/data/tests/tests/typing.pm new/os-autoinst-5.1780332012.6ee8da2/t/data/tests/tests/typing.pm --- old/os-autoinst-5.1779973703.70686ac/t/data/tests/tests/typing.pm 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/t/data/tests/tests/typing.pm 2026-06-01 18:40:12.000000000 +0200 @@ -23,9 +23,15 @@ When ORL was closed in 2002 some of the key people behind VNC and RFB formed [[RealVNC]], Ltd., in order to continue development of VNC and to maintain the RFB protocol. The current RFB protocol is published on the RealVNC website. END + my $md5 = '924095f2cb4d622a8796de66a5e0a44a'; + if (get_var('FAST_TYPING')) { + $text = "==Description==\nShort text for fast typing.\n"; + $md5 = 'e5e578ebcb49c765134bcfa1640b3821'; + } + type_string $text; type_string "\nEOF\n"; - script_run "echo '924095f2cb4d622a8796de66a5e0a44a text' > text.md5"; + script_run "echo '$md5 text' > text.md5"; assert_script_run 'md5sum -c text.md5'; # TinyCore busybox sh acts as bash but does not provide it so we do here Binary files old/os-autoinst-5.1779973703.70686ac/t/data/welcome.test.png and new/os-autoinst-5.1780332012.6ee8da2/t/data/welcome.test.png differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/os-autoinst-5.1779973703.70686ac/testapi.pm new/os-autoinst-5.1780332012.6ee8da2/testapi.pm --- old/os-autoinst-5.1779973703.70686ac/testapi.pm 2026-05-28 15:08:23.000000000 +0200 +++ new/os-autoinst-5.1780332012.6ee8da2/testapi.pm 2026-06-01 18:40:12.000000000 +0200 @@ -114,13 +114,23 @@ This subroutine is used to by several subroutines dealing with mouse clicks to calculate a clickpoint, when only the needle area is available. It takes the area coordinates and -returns the center of that area. It is meant to be a helper subroutine not available -to be used in tests. +returns the configured clickpoint or else the center of that area. It is meant to be a +helper subroutine not available to be used in tests. =cut -sub _calculate_clickpoint ($needle_to_use, $needle_area = undef, $click_point = undef) { - # If there is no needle area defined, take it from the needle itself. +sub _calculate_clickpoint ($needle_to_use, $point_id = undef) { + + # determine click coordinates from the last area which has those explicitly specified + my $needle_area; + my $click_point; + for my $area (reverse @{$needle_to_use->{area}}) { + next unless ($click_point = $area->{click_point}); + next if defined $point_id && $click_point->{id} ne $point_id; + $needle_area = $area; + last; + } + # If there is no area with a click point defined, use the last area. $needle_area ||= $needle_to_use->{area}->[-1]; # If there is no clickpoint defined, or if it has been specifically defined as "center" # then calculate the click point as a central point of the specified area. @@ -515,18 +525,8 @@ my $old_mouse_coords = query_isotovideo('backend_get_last_mouse_set'); - # determine click coordinates from the last area which has those explicitly specified - my $relevant_area; - my $relative_click_point; - for my $area (reverse @{$last_matched_needle->{area}}) { - next unless ($relative_click_point = $area->{click_point}); - next if defined $args{point_id} && $relative_click_point->{id} ne $args{point_id}; - $relevant_area = $area; - last; - } - # Calculate the absolute click point. - my ($x, $y) = _calculate_clickpoint($last_matched_needle, $relevant_area, $relative_click_point); + my ($x, $y) = _calculate_clickpoint($last_matched_needle, $args{point_id}); bmwqemu::diag("clicking at $x/$y"); mouse_set($x, $y); if ($args{dclick}) { @@ -1582,7 +1582,7 @@ the two needle areas. Alternatively, you can set all the coordinates explicitly with C<$startx>, C<$starty>, C<$endx>, and C<$endy>. You can also set one point using a needle and another one using coordinates. If both the coordinates and the needle are provided, the coordinates -will be used to set up the locations and the needle location will be overridden. +will be used to set up the locations and the needle location will be ignored. =cut @@ -1598,7 +1598,7 @@ my $startmatch = $args{startpoint}; # Check that the needle exists. my $start_matched_needle = assert_screen($startmatch, $args{timeout}); - # Calculate the click point from the area defined by the needle (take the center of it) + # Calculate the click point from the area defined by the needle ($startx, $starty) = _calculate_clickpoint($start_matched_needle); } # If neither coordinates nor a needle is provided, report an error and quit. ++++++ os-autoinst.obsinfo ++++++ --- /var/tmp/diff_new_pack.WYmbMh/_old 2026-06-02 16:04:14.830750249 +0200 +++ /var/tmp/diff_new_pack.WYmbMh/_new 2026-06-02 16:04:14.850751078 +0200 @@ -1,5 +1,5 @@ name: os-autoinst -version: 5.1779973703.70686ac -mtime: 1779973703 -commit: 70686ac4d35c47520ae0e038f1e8cdf4908c866d +version: 5.1780332012.6ee8da2 +mtime: 1780332012 +commit: 6ee8da2b6ee5c5f5c0a30581cc3a0b42ab5a8224
