Improve Fedora Media Writer tests by validating written USB media
against the original ISO and by making the workflow work reliably
across classic and Silverblue variants.
The previous post-write verification relied on mounting the USB partitions
and checking for a handful of expected directory structures. This is replaced
with a stronger end-to-end check that verifies the embedded checksum on the
target device and then compares the raw device contents byte-for-byte
with the downloaded ISO, treating the expected cmp “EOF” condition as success.
To support Silverblue, where the required isomd5sum package is not installed
by default, a generic toolbox helper is introduced in utils.pm to create a toolbox,
install required packages inside it, and run the necessary command there.
The media writer test template is updated to explicitly model the USB target
as /dev/sda by enforcing a single-disk setup and adjusting that QEMU uses
a snapshot to create the device and thus not create a file lock on it to
prevent other tests from running.
This PR adds the test suite for Fedora Media Writer, which is
an application to download and copy the installation media files
to the a USB disk which can be then used for installation.
So far, we have been testing this application with manual testing,
this is an attempt to automate it. It tests the following:
* It chooses the Workstation media, downloads it, saves it locally
and writes it to the USB disk. It also checks that the usual
content exists on the USB disk.
* It opens the previously downloaded ISO and writes it to the USB disk.
Then it check that the usual content exists on the USB disk.
* Removes the installation from the USB disk and restores it to its
original state.
* This does not test any hotplugging mechanisms yet.
Fixes: https://pagure.io/fedora-qa/os-autoinst-distri-fedora/issue/450
Fix after review
It's going to go stable fairly soon, but I need to go out and I
don't want to wait to re-trigger all the other failed tests.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
All of these are no longer needed, now F39 and F41 are EOL. We
can go back to our 'preferred' rebase logics.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
So...the bug is allegedly fixed upstream, but I just tested and
type_very_safely still doesn't work. type_safely has been working
OK, so...let's just stick with it and drop the FIXME.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
As the comment noted, now we're no longer testing < 47.0, we can
simplify this to only handle the 'it goes inactive on stop' path.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Cockpit has worked around the Firefox bug with the Services page,
so let's add the fixed builds to workarounds and re-enable the
tests.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Whoops. We only put this in _do_install_and_reboot, which is not
hit for CoreOS installs, so the CoreOS USB install test never
worked. It always boots back to the USB stick.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This needle hasn't matched for many months (two years in prod),
suggesting the handling is no longer necessary. Let's get rid.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It looks like we haven't need to do this for some time. The search
needle doesn't match current Cockpit at all, so we'd be getting
test failures if we needed to scroll the sidebar to see the
Updates link, but we aren't. This needle hasn't matched for 8
months.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Also explain why, in cleanup-needles and also in the test code.
This is for the "gnome-initial-setup before anaconda" flow for
Workstation live. It was temporarily implemented, which is why
we have the code and the needles, but then disabled because the
changes weren't successfully upstreamed and we didn't want to
maintain them downstream any more. It's still *supposed* to come
back at some point, so let's keep the code and the needles for a
while at least.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
All 'Security notice' texts were dropped upstream in
ba292cce35907707cab41e651fd86b847117ed73 , in March 2025.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It seems to have disappeared, the last time it showed up was in
Fedora-43-20250912.n.0. Ever since then we seem to be just going
straight to apps_run_kleopatra.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It seems kinda random whether the sharing permissions and/or
kwallet flows appear on app startup, so let's give up on handling
them and just check we can see the app, whether it's behind them
or not.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The flatpak was updated to/past 48 a while ago, so we no longer
need all these conditionals and needles, yay.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Let's not make this conditional, let's just add it, and add the
update that adds the screen as a workaround until it's stable and
in the next nightly.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It doesn't seem like anyone is getting around to bumping Zuul CI
off of F41 yet, so we're stuck with the perl test failing because
F41 os-autoinst doesn't have disconnect_usb in it. Let's hack
around it by installing an unofficial os-autoinst rebuild I just
did.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The non-fullscreen video player window isn't centred any more.
Not sure why not, but this shouldn't really fail the test.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Seems it's gone on both KDE and GNOME. KDE gets stuck in an endless
loop waiting for it, so let's fix that. Not sure why it's gone...
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Seems in recent Rawhide we no longer get an auth_required in
GNOME after hitting the 'Restart & Upgrade' button; we go
straight to the confirm dialog. So, handle both possibilities.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
kwriteconfig5 is gone. KDE folks say these invocations should be
fine still, just bump to kwriteconfig6.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It's not reliably in ELN (it's sometimes in the buildroot repo
but we shouldn't rely on that). We already pass --nomacboot to
the actual build command on ELN, so this should be OK.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We know we need these, but I can't get them created yet because
there's a bug in plasma-setup preventing us getting that far...
when we type in the language search box, we're typing Greek, for
some reason.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Can't get the rest because there appears to be a bug with the
keyboard layout; we're typing Greek.
Signed-off-by: Adam Williamson <awilliam@redhat.com>