1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-22 18:33:07 +00:00
os-autoinst-distri-fedora/tests/_software_selection.pm
Adam Williamson 119229cce7 Add a needle cleanup script, enhance the needle check script
This adds a new script - cleanup-needles.py - to use for cleaning
up old needles. It has to be used in conjunction with a database
query; the comment at the top explains how to do that query and
export the needed information. It produces a git commit with
needles that haven't matched since a certain date (specified in
the sql query) removed, subject to a 'keeplist' of needles we
keep even if they seem to be old.

I also enhanced check-needles.py to check for cases where tests
seem to be trying to match a tag we have no needles for. This
was necessary to find cases where the cleanup script was too
aggressive (i.e. the things that wound up in the 'keeplist'),
but it also turned out to find quite a lot of cases where the
code really *was* looking for a needle that had gone in a
previous cleanup or that never existed; the commits before this
one clean up a lot of those cases.

The code to decide which string literals are needle tags is
pretty dumb and hacky and needs some manual cueing sometimes -
that's what the `# testtag` changes in this commit are for.
Making it smarter would probably require this script to get a
lot more complicated and either incorporate or become a
tokenizer, which I don't really want to do.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-04 09:57:15 -07:00

65 lines
1.9 KiB
Perl

use base "anacondatest";
use strict;
use testapi;
sub run {
my $self = shift;
# Anaconda hub
assert_screen "anaconda_main_hub", 300;
# Select package set. Minimal is the default, if 'default' is specified, skip selection,
# but verify correct default in some cases
my $packageset = get_var('PACKAGE_SET', 'minimal');
if ($packageset eq 'default') {
# we can't or don't want to check the selected package set in this case
return if (get_var('CANNED') || get_var('LIVE') || get_var('MEMCHECK'));
$self->root_console;
my $env = 'custom-environment';
if (get_var('SUBVARIANT') eq 'Server') {
$env = 'server-product-environment';
}
elsif (get_var('SUBVARIANT') eq 'Workstation') {
$env = 'workstation-product-environment';
}
# line looks like:
# 07:40:26,614 DBG ui.lib.software: Selecting the 'custom-environment' environment.
assert_script_run "grep 'Selecting the.*environment' /tmp/anaconda.log /tmp/packaging.log | tail -1 | grep $env";
send_key "ctrl-alt-f6";
assert_screen "anaconda_main_hub", 30;
return;
}
assert_and_click "anaconda_main_hub_select_packages";
# Focus on "base environment" list
send_key "tab";
wait_still_screen 1;
send_key "tab";
wait_still_screen 1;
# select desired environment
# go through the list 20 times at max (to prevent infinite loop when it's missing)
for (my $i = 0; !check_screen("anaconda_${packageset}_highlighted", 1) && $i < 20; $i++) {
send_key "down";
}
send_key "spc";
# check that desired environment is selected
assert_screen "anaconda_${packageset}_selected";
assert_and_click "anaconda_spoke_done";
# Anaconda hub
assert_screen "anaconda_main_hub", 50;
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: