Commit Graph

589 Commits

Author SHA1 Message Date
Adam Williamson d445a80016 update testing: use a concurrent script to download packages
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>
2024-01-11 11:31:40 -08:00
Adam Williamson 8251756331 Revert to having tests, not the scheduler, download packages (#108)
This effectively reverts 97618193 - but had to be done manually
and adjusted to maintain support for testing side tags and for
testing multiple tasks, since those features were added since
the update ISO change.

The 'scheduler injects ISOs of packages into the tests' approach
was intended to speed things up, especially for large updates,
and it did, but it had a few drawbacks. It means restarting
older tests from the web UI doesn't work as the ISOs get garbage
collected (you have to re-schedule in this case). And it has the
rather large problem that you can now only schedule tests from
the openQA server (or at least a machine with the openQA asset
share mounted), because the package download and ISO creation
just happen wherever the scheduler is running and assume that
the openQA asset share that will be used by the tests is at
/var/lib/openqa/share in that filesystem.

That's too big of a drawback to continue with this approach, IMO,
so this reverts back to the old way of doing things, with a bit
of refactoring to clean up the flow a little, and with support
for testing side tags and multiple tasks maintained.

As a follow-up I'm going to see if I can replace
_download_packages with a much more efficient downloader script
to mitigate the time this process takes on each test, especially
for large updates.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-11 11:31:40 -08:00
Adam Williamson 45c7e7a63a disks: drop a workaround we did not hit for a long time
The issue is not marked as fixed, but per the needle cleanup we
have not hit this workaround condition for a long time. I checked
past failures and it doesn't look like we're still hitting the
problem but the needle stopped matching, or anything.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-09 17:48:28 -08:00
Adam Williamson 04e9f84338 decrypt: instead of waiting, let's try slow typing
Seems the bug might just be that plymouth got more sensitive to
fast typing, so instead of waiting, let's try slow typing.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-03 17:40:31 -08:00
Adam Williamson ce0a04b40a Wait and re-assert before entering decryption passphrase (#2256682)
New Plymouth seems to have a bug where it shows the decryption
prompt briefly then shows a spinner and refreshes it, throwing
away any already-typed input. This is breaking our tests quite
often (any time os-autoinst is "lucky" enough to spot the first
brief appearance of the prompt and start typing). To work around
it, after we first see the prompt, wait for the screen to settle
and re-assert the needle before typing. This should reliably
wait out the refresh cycle.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-03 14:13:30 -08:00
Adam Williamson 4e62eb8ec5 Remove the anaconda_help test
Help support has been removed from anaconda:
https://github.com/rhinstaller/anaconda/pull/5335
so we no longer ought to test it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-11-29 12:11:00 -08:00
Adam Williamson 838d65f86c solidify_wallpaper: handle KDE no longer having a handy 'black'
Plasma 6's color chooser seems to have dropped the nice "basic
colors", so choosing black got harder. Let's try using the HTML
color input box thingy instead, and typing #000000, the HTML
color code for black.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-11-29 11:51:17 -08:00
Lukas Ruzicka d50885e584 Create a test for basic Flatpak operations.
This PR tries to respond to issue #294.
On Silverblue, this will try:

* flatpak install
* flatpak remote-add
* flatpak list
* flatpak remotes
* flatpak remove
* flatpak update

and also it tests that a flatpak can be built.
2023-11-13 10:37:52 -08:00
Lukas Ruzicka 2d726d4ccb Add subroutine to set update notification timestamp. 2023-10-10 17:43:06 -07:00
Lukas Ruzicka 296b43381a Allow language selection on WebUI installations.
Currently, the installation via WebUI is mostly pushing the Next button
which seems to be ok for the production which is based in the US.

This PR makes openQA to select languages when the  G-I-S runs
before Anaconda. The particular language is selected based on
the LANGUAGE variable.
2023-09-26 00:16:22 +00:00
Adam Williamson e92ddbbece Use shift-tab, not tab, to get to Try button in g-i-s live flow
The latest version of g-i-s grew a "Previous" button on the
final page, and hitting tab once now activates that, not the
Try button. shift-tab *should* get us to Try on both old and
new versions.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-21 17:59:34 -07:00
Lukas Ruzicka 380a8d5dd6 Revert "Add print."
This reverts commit e977a70cb0.

By mistake, I pushed into the main branch.
2023-09-14 12:56:26 +02:00
Lukas Ruzicka e977a70cb0 Add print. 2023-09-14 12:45:24 +02:00
Adam Williamson ea8500cf07 Various changes for webUI deferral to F40
webUI has been deferred to F40, so we need to expect the old UI
flow on F39 now. This should cover everything, I hope.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-12 16:13:49 -07:00
Adam Williamson 2458ff7580 Adjust tests to handle webUI reversion
We're reverting webUI for Fedora 39.
https://bodhi.fedoraproject.org/updates/FEDORA-2023-73c4f1a802
is the update that implements this; adapt the tests to handle it
(by expecting the old flow when testing that update, and editing
the kickstart to drop anaconda-webui when building the live
image).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-12 11:09:52 -07:00
Adam Williamson 82ae0a3b81 gnome-initial-setup: handle keyboard being skipped
We now have a fix for the bug on the new webUI flow where the
language and keyboard screens weren't skipped on the first boot
after install, as intended. language is never *really* skipped -
it just turns into welcome - but keyboard is now being skipped,
which messes up the logic here.

For a short time we need to handle both paths, to get the new
anaconda builds through and new composes built. In a couple of
days we can simplify this to just always assume keyboard will
be skipped on the first boot on Workstation live installs on
F39+.

Also drop handling of auth_required in g-i-s - I'm pretty sure
that bug got fixed years ago - and wait_still_screen for three
seconds on each page, to let animated transitions settle.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-09-07 13:11:45 -07:00
Adam Williamson df1c9037d6 Add a missing ; in utils.pm
I've no idea how this isn't making things crash?

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-25 14:38:40 -07:00
Adam Williamson f1a6c91784 Drop a couple of webUI conditionals to 39, not 40
We just landed the webUI stuff for F39, so now we need these
conditionals to kick in for F39+, not F40+.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-23 15:48:53 -07:00
Adam Williamson 9528d37582 launch desktop, not installer, at end of g-i-s on notifications
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-23 10:15:07 -07:00
Adam Williamson ec5bab0176 Initial anaconda webUI support
This is tailored to the initial deployment of webUI in
Workstation live images only; we may need to tweak flows and
approaches as webUI goes further.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-22 18:05:51 -07:00
Adam Williamson 91bf4e423f Disable forced use of HTTP 1.1 for curl and git
To see if the bug has gone away now -
https://pagure.io/fedora-infrastructure/issue/11426#comment-867456

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-10 15:13:04 -07:00
Adam Williamson edcfed346d Revert "Work around there being no F40 toolbox container yet"
This reverts commit 265e5c027a.
The f40 toolbox container is now findable, so this shouldn't be
needed any more.
2023-08-10 12:54:36 -07:00
Adam Williamson 265e5c027a Work around there being no F40 toolbox container yet
See https://github.com/containers/toolbox/issues/1233#issuecomment-1672247681
we'll have to use an F39 container for now.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-09 15:33:44 -07:00
Adam Williamson 475b875bc0 Forcibly install dnf for FEDORA-2023-5fd964c1bf
Per https://bodhi.fedoraproject.org/updates/FEDORA-2023-5fd964c1bf#comment-3149533
we kinda need to do this to allow this update through, so long as
we're not going to have dnf obsolete dnf5 or anything like that.
It's a bit unfortunate but I don't see an alternative.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-07 15:34:20 -07:00
Adam Williamson 92dbd802e8 koji-rawhide: set skip_if_unavailable=1 for now due to 404 issues
We're seeing a lot of tests fail on 404s when trying to access
the koji-rawhide repo (the repo for the Rawhide build tag, which
we use to get packages tagged since the last compose. nirik is
trying to figure this out from the server end, but for now at
least, let's mark the repo as skip_if_unavailable. This should
mean that if we hit a 404, the test will continue, it just won't
have access to the packages from that repo. Occasionally this
will cause a problem - a false failure or false pass - but this
still seems better than every test that hits it failing. The
false pass case is the most concerning, but I would hope in that
case some other tests from the same update would fail, making it
not an issue.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-08-02 09:10:55 +01:00
Adam Williamson 0e01e4e659 Use fXX-build in the koji-rawhide repo definition, not rawhide
Per nirik, 'repos/rawhide' is just a symlink to 'repos/fXX-build'
and this could possibly be part of our 404 problem. So let's
try using fXX-build directly instead of the symlink.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-28 10:31:32 -07:00
Lukáš Růžička f528904344 Add the Turkish installation test.
Add turkish console to console_loadkeys_us
2023-07-27 21:18:15 +00:00
Adam Williamson c00e0283dd Set very low metadata expiry for koji-rawhide repo
This repo gets regenerated a lot, so we should be very aggressive
about metadata expiry. Hopefully this will forestall most of
the cases where we get a 404 trying to access this repo's
metadata files.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-25 11:09:27 -07:00
Adam Williamson 94773cd726 Try --http1.1 for curl as well
Still trying to debug the mysterious pagure connection issues.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-22 12:00:32 -07:00
Adam Williamson f2fc758051 Add `--verbose` to curl commands for Pagure
We're still getting failures from pagure.io even with the retry
stuff. nirik asked us to add this to help figure out what the
heck is going on there.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-22 09:50:03 -07:00
Adam Williamson d5a9e4777e Retry all pagure.io downloads
This tweaks all pagure.io downloads to be retried a few times,
since we seem to be getting failures quite often. We use curl
for this as it has nice options for it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-19 13:37:29 -07:00
Adam Williamson 1f24f84bb1 Support testing a side tag instead of an update or task
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-07-04 19:10:03 -07:00
Adam Williamson 0a87a76ff9 Run base tests on ELN
This requires a change in the package we use for base_update_cli
because pandoc-common is not in ELN.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-23 11:53:11 +02:00
Adam Williamson 6fefd092e9 Try and fix Cockpit tests breaking with update ISO change
We drop the line for the update ISO from /etc/fstab before
uploading the image after the cockpit_default test, but we don't
make sure it's set up again before Cockpit tries to use it, in
the subsequent Cockpit tests. I don't know why this didn't fail
on stg before, but it sure as hell is failing in prod...

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-20 15:18:01 +02:00
Adam Williamson 74730f904a Workaround config-manager plugin missing from dnf5 using sed
This is ugly, but ought to work, I hope.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-20 12:42:34 +02:00
Adam Williamson 97618193c6 Adjust tests for update and workaround repos provided as ISO
I'm attempting a new approach to the update and workaround repos.
Instead of having each update test recreate them for itself -
which is slow and wastes bandwidth - the dispatcher will create
an ISO at test schedule time and pass it as ISO_2. Then the test
just mounts the ISO. This makes the necessary adjustments on the
test side.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-19 20:21:07 +02:00
Adam Williamson f6d92f92eb Drop e2fsprogs scratch build workaround
Drop the e2fsprogs scratch build workaround we were using for
https://github.com/fedora-silverblue/issue-tracker/issues/470 -
with the new 'use a custom ref and rebase to the official ref'
thing I implemented for update ostree tests, it shouldn't be
necessary any longer.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-06-12 08:57:27 -07:00
Adam Williamson 818c2d5d8f Handle `rpm -q` commands failing if we didn't download anything
I think this is new behaviour in rpm 4.19, or else we would have
run into this before when testing an s390utils update. But it's
easy enough to handle.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-31 10:26:45 -07:00
Adam Williamson 80df47e82a Add workaround e2fsprogs build for
https://github.com/fedora-silverblue/issue-tracker/issues/470

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-25 18:52:48 -07:00
Adam Williamson 077a31835a Drop syslinux handling from do_bootloader
F36 is now EOL, and from F37 onwards, grub is the bootloader in
any situation where it actually matters to do_bootloader (which
is only when we're editing parameters). We do still use syslinux
in the PXE tests on x86_64 BIOS, but we don't edit the parameters
in that case.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-24 14:48:39 -07:00
Adam Williamson 78c52cedc2 Revert "Workaround KDE bug accessing desktop settings (#1933118)"
This reverts commit 7c6188c087.
We shouldn't need this workaround any more.
2023-05-24 14:42:32 -07:00
Adam Williamson a2dc22255b Revert "Note when #1933118 workaround can be removed"
This reverts commit 01c2962f41.
We're removing the workaround now.
2023-05-24 14:41:28 -07:00
Adam Williamson 542b9cd526 Revert "Work around the f39 toolbox container not existing"
This reverts commit 6baf67aefd.
The f39 toolbox container exists now.
2023-05-24 14:40:52 -07:00
Adam Williamson ef93c46ce5 Drop old workarounds and f36 from the workarounds hash
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-24 14:39:22 -07:00
Adam Williamson 3cd5963b10 disks: also authenticate when unmounting
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-18 15:45:57 -07:00
Adam Williamson 89fa04661f Disks: workaround partitions sometimes being mounted after format
https://github.com/storaged-project/udisks/issues/1102 - udisks2
seems to have a bug where it leaves filesystems mounted at a
"temporary" mount point after creating them. We need to work
around this when it happens or else we'll frequently get test
failures.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-18 15:15:02 -07:00
Lukas Ruzicka e211a87fc7 Create a test suite for Disks. 2023-05-12 17:05:44 -07:00
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
Adam Williamson 1de9d7fa34 Drop click_unwanted_notifications (and associated needle)
It looks like neither of these has been a problem for some time.
The notification needle has not matched for a year. The akonadi
needle doesn't exist any more - it was cleaned up in the 2021
needle cleanup, meaning it hadn't matched for weeks in 2021. I
checked the last several months of KDE app start/stop tests and
don't see any case where there was a stray notification that we
missed. So I think we can just ditch this whole mechanism for
now; if we have problems with these notifications again in future
we can put it back.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2023-05-04 09:57:15 -07:00
Adam Williamson ae40eea065 Drop another no-op workaround (Japanese in g-i-s)
For several releases now, the 'new user mode' of g-i-s is just
gone: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/12
so this whole path where we used to be able to set up Japanese
input methods on first boot after install doesn't work any more.
We had to set up a whole different route to set the input method
via control center instead (which lives in _graphical_input).
This block is never reached any more, and the needles for it were
cleaned up in 2021.

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