This works more or less like testing side tags. We also fix up
some flow problems with this path (that also affect the side tag
case), and enable the package checks on this path - it's not too
hard really, we just need to write the updatepkgs file when we
set up the repo, which we can do with dnf repoquery.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
From https://openqa.fedoraproject.org/tests/2594954 it looks
like this takes more than three minutes for updates with hundreds
of packages when running in a container (in the container build/
validate test). So, let's give it more time in that case.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
dnf5 config-manager can now do this, but the syntax is different
to dnf4, and honestly, it seems easier to just stick with this
going forward than make it conditional on dnf version until
dnf4 goes away. So let's stop marking this as a FIXME.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This test, much like _live_build or _installer_build, builds a
container image in a way intended to be as similar as possible
to how official compose images are built. The purpose of the test
is to make sure updates do not break official container image
builds.
At the end of the test, we also check that the built container
is functional (at least, that we can run a 'hello world' command
in it). This can't really be rolled into podman.pm because that
test is more about testing podman itself, and it's just a one-
liner here anyway. We also run the 'if any packages from the
update are installed, are they the versions from the update?'
check inside the container, which required giving that check the
ability to 'wrap' the rpm commands to run inside a container.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
osbuild is struggling with the pre-release warnings ATM:
https://pagure.io/fedora-iot/issue/57https://github.com/osbuild/images/issues/515
Until that mess is cleaned up we can't really make sensible
assertions for osbuild images, so let's make the check a soft
failure for now (now we know about the bugs, we want to let
the rest of the tests run and not block them on this).
Note for IoT the behaviour has never really been correct (IoT
images never get pre-release warnings), but the logic in this
check matches the wrong behaviour (IoT composes always have
RC- labels even when they're clearly not RCs), so the test
didn't fail. While fixing this in osbuild we might try to get
'correct' behaviour for IoT, and then we'd need to tweak the
logic here.
While we're at it, tweak the implementation a bit; without this
tweak, implementing this 'soft fail if osbuild' behaviour is more
awkward and ugly.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This PR partly solves the issue #301 when it adds the navigation
testing for Gnome. It uses the keyboard combinations to cycle through
running applications and checks that applications could be switched
accordingly. It also tests that you can switch between workspaces
and that you can move an applications to another workspace.
This is actually a very useful to wait a little bit before
we try to operate with the started application, especially
if we want to send keys.
Having this wait time here can save us doing this every time,
we start an application.
The mistypes on KDE are bugging me. Let's see if this - mainly
the wait_screen_change, the other just seems like a logical
tweak - helps at all.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
gvfs from the GNOME 46 megaupdate needs it. It's been pushed
stable but not included in a compose, yet.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
It's queued for stable but blocked by the freeze, and
FEDORA-2024-9c9174f3dd requires it. Let's just make it a
workaround to clear the other update's tests.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Just checking for the package update list is wrong in a couple of
ways:
1. It goes wrong for child tests that inherit the main disk from
the parent test, but not the second disk where the actual update
repo lives. They'll have the package list, but not the repo. So
we should test for both the package list and the repo dir.
2. It goes wrong for side tag tests, because we don't write a
package list (or create an update repo) on that path. So on that
path let's check whether we already created the repo definition
we use on that path.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
https://bugzilla.redhat.com/show_bug.cgi?id=2268505 made it
clear that this is a bit of a hole. We don't test installing the
Silverblue image we build on UEFI, only on BIOS. Add this as a
separate test so we don't uselessly upload a disk image we won't
use for any follow-on tests.
This also adds an anaconda build that fixes a bug in this path
as a workaround for F40, so the test won't fail on all F40
updates.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This should mean all F40 update tests get the new background,
and we can once again make that test fail if it doesn't see it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The Java 21 update broke FreeIPA and was waived stable. This
update rebuilds dogtag-pki and should fix it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
I missed reverting the g-i-s page skip config when deferring
the webUI Change to F40. Now I changed the conditional in the
openQA test to expect F40 to behave like F39 and earlier, it's
failing because it's seeing too many pages. This should resolve
it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
jlebon and jmarrero figured out the fix for this, while we wait
for the packager to merge it their preferred way, let's use
scratch builds to work around it so every update doesn't get a
failed test.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Another case where an update was submitted after its deps had
gone stable, but before they made a compose. Maybe we really need
to set up a buildroot repo for tests of updates to branched-before
-bodhi-activation too. I'll think about it.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
Now the fedora-kickstarts PR to remove anaconda-webui was merged
we need this for tests to pass. Remove after next compose.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
The new gnome-shell from FEDORA-2024-f543e8595c requires this.
We don't use a buildroot repo for Branched even in the short
period where it acts like Rawhide (no karma or time requirements)
so let's just use a workaround.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
F38 is the oldest thing we test, and it has this flow. So let's
just drop the check here and always hit tab twice.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We should wipe it both before and after running repo_setup to
really get rid of it. Ideally we should stop doing this at all,
but for right now the repo isn't there for Rawhide post-F40
branching yet, so let's keep this until that's done.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
We don't need this anaconda scratch build any more (the official
build has the fix now), but we *do* need the new lorax update I
just built to fix installer image builds with branched F40. See
https://github.com/weldr/lorax/pull/1379
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This adds a scratch build with my proposed patch:
https://github.com/rhinstaller/anaconda/pull/5460
to get the tests to start passing again, so we don't have the
flood of red which makes it hard to spot other problems.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This is a surprisingly large change as we want to go back to
the console we were previously on after doing it. To do that we
need to know what console we were on, and to know *that*, we need
to port everything that currently uses (ctrl-)alt-fX to switch
consoles to use select_console instead.
This is primarily intended to make running setup_repos.py faster
when it has to download a lot of packages (as typing in hundreds
of package names is quite slow). But it actually makes the whole
thing faster, even when only downloading one or two packages.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
This uses a Python script which implements concurrent downloads
(via asyncio) to download workaround and update packages and
configure the repos. This should speed up the process for large
multi-package updates.
Signed-off-by: Adam Williamson <awilliam@redhat.com>