This PR adds a test that uses the Blivet interface to create an LVM
layout with ext4 filesystem as well as a postinstall test that checks
that the LVM layout has been created correctly.
We finally saw a test where there were *no* errors logged by the
time Cockpit reached the log screen, so there were no entries to
click. Let's just make the test set log level to info before
looking for entries - I prefer this to 'click entry if found,
otherwise change log level' as that's twice as many branches to
look after. Of course, it means the warning triangle entry needle
is useless now :(
Signed-off-by: Adam Williamson <awilliam@redhat.com>
KDE in F34+ is now placing sleep, restart and shutdown buttons
right on the system menu, not in a submenu. So we need to sort of
tweak this logic. The approach here is: we count the GNOME
submenu as both a "power" and "leave" menu, so the needle to
enter it has both tags. KDE still has a "leave" submenu, but the
power options are not in a submenu any more, so the new "leave"
needle only has the leave tag, not the power tag. For "leave"
actions we just unconditionally expect the "leave" tag; for
power actions we first match on *either* the submenu tag (for
GNOME and earlier KDE) *or* the action tag, click whatever we
found, and then if we matched the submenu (not the action), we
assert and click the action. After that all paths should be in
sync again and we can continue.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Cockpit 237 has misaligned radio buttons here. We know about the
issue and want the test to not fail on unrelated updates, so let's
make it a soft fail.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This PR uses the Anaconda Blivet partitioning to recreate a partition
layout while preserving the content of the /home subvolume.
It also adds the postinstall test to check that the home has been
preserved.
This PR adds the `install_btrfs_upload` to install the btrfs based
image, the `btrfs_preserve_home_extras` to prepare and test the data
on the home partition, as well as the `custom_btrfs_preserve_home` that
uses the preinstalled btrfs image and uses its current partitioning to
preserve the home partition and the data on it.
We don't always get a smartd error any more, so add one for a
different error that's more consistent ATM.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The background seems to be different in different tests, even
the reduced area I tried most recently seems to be different in
some runs. So let's just match in the text area instead. This
captures some "Fedora" text so it should still notice if branding
is broken.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Required because ppc64le has a PReP partition
before boot partition.
PReP partition must not be changed by this script.
Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
The font of the identifier text got a bit smaller. I think it
looks kinda bad now, but it's not an outright bug, so just
living with it. I did file an upstream issue:
https://github.com/cockpit-project/cockpit/issues/15111
Signed-off-by: Adam Williamson <awilliam@redhat.com>
There's a race issue with just treating it as a next button: it's
not in the same place as a next button. Sometimes in the g-i-s
code we actually get ahead of ourselves and click early, which
isn't really a problem when the buttons are all in the same
place, but if we click "Start Setup" in the middle of transition
to the Privacy screen - as in
https://openqa.fedoraproject.org/tests/745034#step/_graphical_wait_login/4
- the click effectively gets lost. So let's make it its own tag
and have the initial assert look for it too. That way we won't
match on it again in the main loop over "@nexts".
Signed-off-by: Adam Williamson <awilliam@redhat.com>
There seem to be some weird shenanigans going on with the pipe
bit here (it looks different on different test runs? what?) so
let's just match on the plain grey area. Should still be enough.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Just matching the Overview entry isn't really enough, the app
hasn't really run yet. This makes the test more robust and also
helps out on aarch64 desktop tests where the app window takes a
long time to appear.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
When Fedora went to BTRFS as a default, we lost the LVM based image to
run LVM resize tests with.
This PR introduces the `install_lvm.pm` installation test that creates
an LVM based qcow2 image to be used by follow-up tests.
Styling on the KDE base disk image seems to have gone wrong
again, which throws this test off. We need to figure out what's
gone wrong in the base image, but it's a Friday night and I don't
want the test failing all weekend, and there's nothing wrong in
the *test itself*, so let's create some workaround needles and
figure it out next week.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Update a needle with slightly different text rendering, and add
a workaround to hit tab three times rather than once on entering
the "Join a domain" screen, see
https://github.com/cockpit-project/cockpit/issues/14895 .
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We've been getting failures lately on the first page load, I
think because Firefox is getting even more grindy on startup. So
turn the 'sleep' into a 'wait_still_screen', extend another wait,
and tweak the 'browser' needle so it only matches after the
bookmark bar has loaded rather than as soon as half the chrome
appears. Also make all the wait_still_screens use similarity 45
for consistency (flashing cursor could be there on any of them).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Dropped the use of this in the recent notification simplification,
but forgot to remove the needle. Should've run tox...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This is the best option I can come up with to deal with #195.
Update notifications seem to have become transient in KDE lately
(even in F31 and F32, if I'm looking at these screenshots right).
This actually simplifies things a lot to do more or less the
same in the KDE and GNOME paths: open the 'permanent' store of
notifications (in GNOME you get to it by clicking on the clock,
in KDE via the systray) and then look for no notifications (live
path) or only an update notification (post-install path). We
only run this test for composes so we shouldn't need to worry
about anything older than F32, and I believe this should work
for KDE in F32 and F33. I left out click_unwanted_notifications
for now as I'm hoping it should be unnecessary, but we can add
it back in if necessary.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We don't need a separate 'welcome' needle because it just matches
on an OK button anyway. So turn that needle into an OK needle
(we don't have any existing 'blue OK button' needle) and simplify
the logic to a single loop for kde_ok and krusader_settings_close.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It had krusader_settings_close as its tag, not kde_ok. That's
why the krusader test module was failing weirdly.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The 'universal' tests have quite a few failures if you run them
on an image where btrfs is the default (currently they usually
run on the Server DVD, where xfs-on-LVM is still the default).
This fixes some of them, the others would need code fixes.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Even though we have subdirs, we actually usually make needle
names unique across subdirs due to limitations of openQA's UI
upstream.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
OTP field was moved into the last position in the password change dialog
to prevent issues with OTP code expiring while users enter their
passwords.
Signed-off-by: Alexander Bokovoy <abokovoy@redhat.com>
In g-i-s 3.37.91, the first screen has a 'Start Setup' button
rather than a 'Next' button. Easiest thing for us to do here is
just to add a new needle which has the 'next_button' tag even
though it's clearly not a 'Next' button, because then the code
still works :) So do that, but give the file a suggestive name
and explain the situation in a code comment.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
GNOME now also splits 'Restart...' and 'Power Off...' as KDE
does, so we need to tweak the conditional and add some needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This is a bit complex to automate, because we cannot really use
the production Zezere server (provision.fedoraproject.org) as
the test case shows, as we'd have to solve authentication and
we also don't really want to constantly keep registering new
hosts to it that are going to disappear and never be seen again.
So, instead we'll do it by setting up our *own* Zezere, and
provisioning our IoT system in that. We run two tests. The
'ignition' test is the actual IoT 'device'; all it really does
is boot up, sit around, and wait to be provisioned. The 'server'
test first sets up a Zezere server, then logs into it, adds an
ssh key, claims the IoT device, provisions it, and connects to
it to create a special file which tells the 'ignition' test
everything worked and it can close out.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
See https://pagure.io/background-logo-extension/issue/26 - in
current Rawhide, the search box in the overview is not active
when the overview is opened, so you can't just open the
overview and type, you have to click it first.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
See https://bugzilla.redhat.com/show_bug.cgi?id=1854225 . A new
fontawesome release broke nearly all font-based interface
elements in the FreeIPA web UI, which breaks several of our
needles. This adds workaround needles for each one (plus a couple
of non-workaround needles for cases which don't seem to be the
icon bug, but somehow changed anyway).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
In some recent tests the text is rendered slightly differently
for some reason. Not sure why, but I don't see a problem with
just adding a variant needle.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Recent live respins were built with livecd-creator rather than
livemedia-creator because the maintainer had trouble with LMC.
This results in grub looking a bit different, we need a variant
needle for it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Not sure if the needles changed or just the way they're rendered
in the overview, but either way, we need to update a bunch.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The little triangle that's used on drop-down menus and stuff got
bigger. That breaks all these needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This goes back to when we called this needle desktop_clean, but
there's really no point in having it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
In Cockpit 220, the Updates entry is off the bottom of the screen
so we need to scroll the left bar down before we can click it.
Also update some other needles.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It seems like sometimes the machine ID is off the bottom of the
screen now, so let's just match on the section title instead.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Unfortunately only the entry name is clickable now so we can't
have a 'generic' needle that'll work for any service.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Since GDM shows the "system-menu-button", it could not correctly
switch users on a locked screen. I added a check to see
if we are on a locked screen and behave accordingly.
This adds a new test that implementsQA:Testcase_desktop_login
on both GNOME and KDE.
While working on this, we realized that the "desktop_clean"
needles were really "app menu" needles, and for KDE, this was
a duplication with the new "system menu" needles, because on KDE
the app menu and the system menu are the same. So I (Adam)
started to de-duplicate that, but also realized that "app menu
button" is a much more accurate name for these needles, so I was
renaming the old desktop_clean needles to app_menu_button. That
led me to the realization that "check_desktop_clean" is itself a
dumb name, because we don't (at least, any more, way back in the
mists of time we may have done) do anything to check that the
desktop is "clean" - we're really just asserting that we're at a
desktop *at all*. While thinking *that* through, I *also* realized
that the whole "open the overview and look for the app grid icon"
workaround it did is no longer necessary, because GNOME doesn't
use a translucent top bar any more. That went away in GNOME 3.32,
which is in Fedora 30, our oldest supported release.
So I threw that away, renamed the function "check_desktop",
cleaned up all the needle naming and tagging, and also added an
app menu needle for GNOME in Japanese because we were missing
one (the Japanese tests have been using the "app grid icon"
workaround the whole time).
This adds a needle for the 'day' background from 32.1.1, which
is the non-animated default, and renames the needle for the
background from 32.0.0 to 'old' as it's no longer present at all
in the new build. Depending on whether animation actually works
after the update we may later need to add needles for the other
images plus possibly some transition needles too. Sigh.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
There's this weird thing where the vertical alignment of the
language name in the keyboard layout indicator is sometimes
different. I never can figure out why. It may be to do with
presence or absence of the pre-release indicator.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I call this...The @lruzicka Catcher!
It's a script that checks for needles that aren't actually used
anywhere. It also checks for cases where we have a needle JSON
file but no image, or an image file but no JSON file (and wipes
one case of the latter). It also adds a run of the script to tox
so we get it in CI.
You could make this script a lot more elaborate if you like, by
being fancier about parsing the test code and templates, but I
don't think it's really warranted, I think it just needs to be
'good enough'. It's not the end of the world if it misses the
odd thing or the whitelisting goes stale.
Quite a lot of the removed needles are remnants of different
approaches to app start/stop testing which weren't caught in the
initial PR review. The short-name partitioning ones are odd; they
were introduced in the commit that moved needles into subdirs,
but at least some of them don't actually appear to be moves. They
may have been non-tracked files Josef had lying around that got
into the commit by mistake, or they may just be old needles we
really used at some point but aren't using any more.
reclaim_space_second_partition was introduced as part of the
shrink test (along with reclaim_space_first_partition) but was
never actually used by that test - I guess, again, the test got
re-written during review but we forgot to remove the needle. We
rejigged user creation to use tab presses not a needle match a
while back, which made user_creation_password_input unnecessary.
The various cockpit_updates_* needles are I think remnants of
rewrites of the cockpit update tests that again were missed in
PR review, the tests as merged never used them.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This reverts commit d784bf54ca.
It turned out that Locations are not connected to Konqueror
at all. The reason why the test is failing is that the
application has been removed to limit the number of
web browsers.
Remove a bunch of needles that have not been used for some time,
plus a few workarounds that are similarly stale.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I think what happens here is the kerning and/or subpixel hinting
changes depending on the column position, and the column position
keeps changing as upstream releases new versions on different
dates and stuff. Hopefully eventually we'll have enough needles
to cover all possibilities...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This test has been failing forever, now the bug is fixed, we need
to update the needles for font changes...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This reverts commit adf3f91818.
The bug has been fixed in anaconda, so we can drop this, which
is good as it has timing issues producing false positives on
Rawhide...
Rawhide seems to have developed a bug where a single disk is no
longer automatically selected as the install target when you
enter the INSTALLATION DESTINATION spoke. We need to work around
this (but register it as a soft failure).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Seems some changes to symbolic icons and widgets have happened
in GTK+ or something, this updates anaconda needles for them.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
IoT is becoming a release-blocking edition for F32, so we should
be testing it for sure. We may add specific tests, but for now
let's run the install and base tests on it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I updated this last month without looking closely enough; one of
the matches was bogus. We now don't seem to get the 'added to
Firefox' popup any more, so we can't match on it, but I guess we
can match on the 'remove' button as an indicator that the add
worked.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Again, no reason not to run these on updates. Includes adding
oldcantarell versions of several needles for current cockpit,
as they're needed for the tests to pass. Also tweak a couple of
needles to avoid false matches (add more empty space).
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Note we need two variants of most of these, one for Rawhide with
Cantarell 0.201, one for F30/F31 with Cantarell 0.111.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This one from ppc64le test. The difference between all the
recent needles here is the amount of white space between the
'Domain' and 'domain.local'. I don't want to change it to two
match areas as there's a chance we may get a false positive
match when the join actually failed (it may match on 'Domain'
in the right place, and 'domain.local' somewhere else just as
part of the system's hostname). I suppose if this keeps happening
we could try two match areas but include some white space to the
left of 'domain.local' to avoid matching on it as part of the
hostname...
Signed-off-by: Adam Williamson <awilliam@redhat.com>