Commit graph

405 commits

Author SHA1 Message Date
Adam Williamson
0fa6138448 Have non-English tests do graphical install and login
Summary:
The non-English tests so far did not test that graphical login
worked as expected, which is a fairly large hole. With this
change, they should do a Workstation install and test login to
both GNOME and the console works as expected. KDE is not yet
tested.

As part of this we tweak the implementation of keyboard layout
switching in graphical environments to use a generic function
in main_common which can handle both anaconda and desktops
(just GNOME at present, but should extend easily to any desktop
with a known switcher key and a visible layout indicator),
replacing the anacondatest class method. I kinda don't like that
the test has to specifically tell the function when it's in
anaconda, but I don't think I want to start experimenting with
a global 'test phase' openQA variable or anything like that at
present.

Fixes T842.

Test Plan:
Run the French and Russian install tests and check
they work as expected. Also run an English Workstation install
if you like, and make sure that didn't break. This change is
live on staging ATM, seems to work fine.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Maniphest Tasks: T842

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1071
2016-12-16 09:40:29 -08:00
Adam Williamson
332a955814 disable updates as well as updates-testing in repo_setup
This should solve all those annoying "Failed to synchronize
cache for repo 'updates'" failures we've had: there's no need
for the 'updates' repository to be enabled when we've decided
we want the `repo_setup` changes to be made, and having it
enabled causes problems when we run right after the Rawhide
compose completes. We hit the awkward period where the rawhide
repo has been synced but mirrormanager has not been updated
with the new metadata checksums, so mirrormanager rejects the
metadata from dl.fp.o and DNF has to go out and hit other
mirrors until it finds one which didn't sync yet. Since the
point of `repo_setup` is specifically to hack up the config so
we only use packages from the compose *anyway*, there's no
reason at all to worry about leaving 'updates' enabled and
nerfing it like we do 'fedora' and 'rawhide', we can just turn
it off.
2016-12-15 16:11:37 -08:00
Adam Williamson
d8ba53aefc workaround #1402427 in support_server
support_server was failing because of #1402427. I re-generated
the disk image with latest F25 so the fixed selinux-policy is
used, but even then, it seems we have to run 'restorecon' on
rpcbind manually before starting nfs.
2016-12-13 16:38:22 -08:00
Jan Sedlák
44cf1cd89c reintroduce rescue on UEFI
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1060
2016-12-13 09:18:34 +01:00
Adam Williamson
fbe5f0f1ba Add SDDM variant for updated F24
Looks like F24 sddm appearance changed again.
2016-12-12 15:06:19 -08:00
Adam Williamson
5c94924c59 guh, main_common 2016-12-08 12:20:09 -08:00
Adam Williamson
6dc20de0b0 move 'loadkeys us' call into avc_crash test for now
Ugh, there's no good way to do this ATM. If this doesn't work
I might just skip the test for this case.
2016-12-08 12:18:45 -08:00
Adam Williamson
cc7fe4b971 Tweaks to AVC test loading / run
Committing without review as this causes failures...try to make
sure we only run the AVC test when it makes sense, and fix
running it on the French install test.
2016-12-08 12:03:26 -08:00
Adam Williamson
7687a3aa34 Add a non-fatal console AVC / crash post-install check
Summary:
This has all console tests check for AVCs (with ausearch) and
crashes (with coredumpctl) at post-install stage. It's non-
fatal as this doesn't really mean the test failed, but we want
to spot when there are unexpected AVCs or crashes.

Test Plan:
Run some console tests, check it works right. I only
tested with one test, since so many are broken on Rawhide ATM

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1066
2016-12-08 08:58:29 -08:00
Adam Williamson
85d9fa4bf6 Add one more F24 needle variant 2016-12-07 17:29:15 -08:00
Adam Williamson
62ef578758 Extend a timeout in the graphical update test
The 'refresh' button takes a bit longer to appear on F24 respin
tests.
2016-12-07 17:27:35 -08:00
Adam Williamson
601815af93 Add several more F24 variants for live-respins tests 2016-12-07 17:10:45 -08:00
Adam Williamson
8510fbc008 Add updated variants of a few more needles 2016-12-07 16:11:27 -08:00
Adam Williamson
f11d5265b7 add F24 variants of some needles
To fix tests of the live-respins (which are still F24 ATM).
2016-12-07 16:01:22 -08:00
Adam Williamson
5da52acc75 tweak firefox 'download complete' needle
Rawhide changed the color of the popover outline, so exclude it
from the needle so the needle continues to work for 24/25/RH.
2016-12-07 11:51:48 -08:00
Adam Williamson
3889000907 update text install main hub needle for text change in Rawhide 2016-12-05 14:41:20 -08:00
Adam Williamson
6f90ff0143 collect_data: run top *before* everything else
Committing without review as this is pretty trivial. Running
top *after* all the other collect_data tasks leads to some
meaningless fluctuations in the output; I intended to look for
activity caused by stuff running 'as usual', not activity from
the other collect_data tasks.
2016-12-02 15:01:40 -08:00
Adam Williamson
b76da0452f update anaconda_rescue_mounted needle
changed a bit in Rawhide
2016-11-29 21:45:46 -08:00
Adam Williamson
571cf3c035 bump the initial ARM boot timeout a bit 2016-11-09 07:21:03 -08:00
Adam Williamson
65cadb11df Collect some data on freshly-installed systems after some tests
Summary:
I've been wanting to do this for a while; I think it'll let us
check for some significant changes between composes. This should
cause runs of a few test cases to collect and upload info on:

* installed packages
* free memory
* disk space
* active services
* 1 minute of CPU usage info (via top)

immediately after install and initial login. In some cases this
will be useful / interesting simply to look at directly, but
we can also have check-compose analyze the data and include
significant changes in its reports.

Test Plan:
Run affected tests, make sure the data collection
works.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1046
2016-11-09 07:20:17 -08:00
Adam Williamson
c4edf8009e Improve and simplify post_fail_hook existence checks
Summary:
The current installedtest post_fail_hook assumes /var/tmp/abrt
exists at all, and dies if it doesn't, leading to no /var/log
upload. We can also avoid using openQA `script_output` - which
is annoyingly indirect and slow - by using this neat `test -n`
trick I found on SO. Let's also use it in the anacondatest
post_fail_hook to avoid uploading /var/tmp when it's empty
(which we currently do). This also drops the 0 arg from a few
more script_run calls, because it's safe to wait for the run
to complete and we should probably do so to avoid later typing
errors if the commands are slow.

Test Plan:
Cause both anaconda and installed tests to fail and
check the hooks work as intended. Maybe twiddle the failures to
ensure directories do and don't exist and/or have contents and
make sure things work OK. I've tested this to some degree and
I'm pretty sure it works right.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1041
2016-10-31 11:41:10 -07:00
Adam Williamson
600dd39a64 install tar in installedtest post_fail_hook
It's not always in minimal installs. This is a simple change
and needed to make the post-fail hook work for minimal installs,
so pushing without review.
2016-10-27 17:08:27 -07:00
Adam Williamson
7b31b8263e Force GNOME to notify updates, re-enable test on Workstation
Summary:
GNOME's update notification criteria are pretty braindead: it
fires the update check timer once on login then once every hour
thereafter, but only actually checks for and notifies of updates
once a day if it's after 6am(?!?!?!). So we have to do a bunch
of fiddling around to ensure we reliably get a notification.
Move the clock to 6am if it's earlier than that, and reset the
'last update check' timer to 48 hours ago, then log in to GNOME
after that.

Note: I thought this still wasn't fully reliable, but I've looked
into all the recent failures of either test on staging and
there's only one which was really 'no update notification came
up', and the logs clearly indicate PK did run an update check,
so I don't think that was a test bug (I think something went
wrong with the update check). The other failures are all 'GNOME
did something wacky', plus one case where the needle didn't quite
match because I think the match area is slightly too tall; I'll
fix that in a second.

Test Plan:
Run the tests on both KDE and GNOME and check they
work properly now (assuming nothing unrelated breaks, like KDE
crashing...)

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1039
2016-10-27 16:23:59 -07:00
Adam Williamson
638aa01de2 update some iscsi needles for current f25 (and rawhide) 2016-10-27 00:35:42 -07:00
Adam Williamson
35568a50d7 Re-enable notifications tests for KDE
The notifications tests actually work pretty well on KDE, it's
only Workstation where they're busted. So let's keep them on
for KDE, for now at least.
2016-10-26 14:08:01 -07:00
Adam Williamson
1ae1b6e2cb wait longer for system to shutdown in _console_shutdown
We're not really *testing* shutdown here, we're just shutting
down to make sure the uploaded disk image is clean. So we don't
really mind if shutdown takes a while. It often seems to take
longer than 1 minute on KDE installs and cause a soft fail, so
let's bump the timeout to 3 minutes.
2016-10-26 14:03:15 -07:00
Adam Williamson
02d4594cd2 disable notifications tests until I have time to fix them
These keep failing because they don't work right. I have it
partially fixed on a branch but not fully fixed yet, and it's
been this way for a few weeks already, so let's disable the
tests for now until I can actually complete the fix.
2016-10-26 13:52:22 -07:00
Adam Williamson
b129bf5487 don't wait for dnf system-upgrade reboot command to return
because it won't.
2016-10-21 17:43:04 -07:00
Adam Williamson
f95e1d55a8 give IPA server decommission longer to complete (RHBZ #1387425)
It's suddenly taking longer in Rawhide - reported to RHBZ - so
let it take longer.
2016-10-20 13:44:08 -07:00
Adam Williamson
dcb68d93c8 drop our implementation of script_run in favour of os-autoinst
Summary:
os-autoinst implements `script_run` itself now, we aren't
required to implement it ourselves any more. os-autoinst's
implementation is better than ours, as it allows for verifying
the script actually ran (via the redirect-output-to-serial-
console trick).

So this drops our implementation so we'll just use the upstream
one. Where I judged we don't want to bother with the 'check
the command actually ran' feature I've adjusted our direct
`script_run` calls to pass a wait time of 0, which skips the
'wait for command to run' stuff entirely and just does a simple
'type the string and hit enter'.

Because of how the inheritance works, our `assert_script_run`
calls already used the os-autoinst `script_run`, rather than
the one from our distribution.

This should prevent `prepare_test_packages` sometimes going
wrong right after removing the python3-kickstart package, as
we'll properly wait for that removal to complete now (before
we weren't, we'd just start typing the next command while it
was still running, which could result in lost keypresses).

Test Plan:
Check all tests still run OK (I've tried this on
staging and it seems fine).

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1034
2016-10-20 09:24:48 -07:00
Adam Williamson
7869c3d07a drop check_type_string, use upstream merged code instead
Summary:
The code from `check_type_string` was effectively merged into
os-autoinst's `testapi::type_string` as an optional argument,
so let's drop this downstream version and just have the 'safe
typing' functions use `type_string`.

Test Plan:
Run tests, check they pass and work the same (i.e.
make sure they're actually checking for screen change when
typing).

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1033
2016-10-20 09:12:55 -07:00
Jan Sedlák
7f93843dd6 Revert "add rescue mode test for UEFI" because it doesn't work and never would
This reverts commit 361a0ed150.
2016-10-19 10:48:14 +02:00
Adam Williamson
cf2ce903c5 drop cockpit workaround entirely
now 119 hit F25, this is no longer needed (and breaks the test
in fact).
2016-10-17 16:52:17 -07:00
Jan Sedlák
ab316cfe48 move APPEND argument from scheduler to templates
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1024
2016-10-17 12:23:06 +02:00
Jan Sedlák
361a0ed150 add rescue mode test for UEFI
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1025
2016-10-14 10:28:05 +02:00
Adam Williamson
3d84e2a8c2 type root password faster on ostree installs
Summary:
Since we started using `type_very_safely` for typing the root
password, we starting hitting a race issue. If we complete the
root password spoke so slowly that the software deployment
process completes in the meantime, anaconda will wait until we
complete the spoke then immediately flip to the 'post-install
configuration' step, at which point access to the USER CREATION
spoke is blocked.

We don't hit this case on regular RPM installs or live installs
as the deployment phase still takes a while for both of those,
but we are sometimes hitting it for the Atomic ostree install
image, as the software deployment phase is pretty fast there.
We *could* just not bother creating a user and testing we can
log in as a user for that test, but I don't like that approach,
we *should* be testing that user creation and login works OK
for ostree installs. So instead, let's just type the root
password a bit less safely for ostree installs; this will be
more vulnerable to typing errors but hopefully will avoid the
race problem.

Test Plan:
Run a few Atomic installs, see if they hit the race.
Might need to run other tests at the same time, and you may not
be able to hit it, this is obviously dependent on the I/O of
the worker host...

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1022
2016-10-13 18:39:33 -07:00
Adam Williamson
fc1dc167f9 support_server: give the DVD copy a bit longer to complete
seems like it took more than 2 minutes in F25 testing today.
2016-10-11 18:11:34 -07:00
Adam Williamson
2a97d137ea tweak kde installer icon a bit more 2016-10-10 09:34:36 -07:00
Adam Williamson
e56b228f21 add yet another sddm variant
goddamn background change
2016-10-10 09:29:17 -07:00
Adam Williamson
0d51cdf5c1 tweak KDE 'anaconda icon' needle to not include background 2016-10-10 09:23:44 -07:00
Adam Williamson
660dde164f disable cockpit login workaround for Rawhide
Rawhide now has cockpit 119, where this is fixed.
2016-10-08 10:59:57 -07:00
Adam Williamson
b1f42f068d add new SDDM needle variants for Rawhide 2016-10-08 10:58:07 -07:00
Adam Williamson
e317244d1e revise install_done needles to include button text
OK, we once again hit an annoying case where the button match
that doesn't include text got matched in the sidebar:

https://openqa.fedoraproject.org/tests/39576#step/_do_install_and_reboot/13

so I think it's time to give up on that approach and just go
ahead and deal with the button text varying between live and
traditional installs. So let's change the existing needles to
include the button text and add one new needle to cover the
English live F25/F26 case. I don't think we need a 'quit'
needle for F24 (as the only thing we test for F24 is the Atomic
installer image, which says 'Reboot') or for French or Russian
(as we only test a traditional installer image for those, not
a live image).
2016-10-07 10:10:10 -07:00
Adam Williamson
d9aa6b8ad6 update Atomic ostree installer image flavor name
Goes along with the commit to openqa_fedora_tools that makes
flavor generation go through fedfind's `correct_image` helper,
which changes the 'type' of ostree installer images from 'boot'
to 'dvd-ostree'. See https://pagure.io/pungi/issue/417 for
more background on this. Committing without review as it's an
urgent issue we have to fix right away.
2016-10-05 16:43:07 -07:00
Adam Williamson
fdeb333ff3 fix desktop_notifications to use assert_screen not check
whoops...this test should have been failing...
2016-09-30 09:21:01 -07:00
Adam Williamson
bacb6f1f7b redo console_login with multiple matches, move to main_common
Summary:
Since we can match on multiple needles, we can drop the loop
from console_login and instead do it this way, which is simpler
and should work better on ARM (the timeouts will scale and
allow ARM to be slow here). Also move it to main_common as
there's no logical reason for it to be a class method.

Also remove the `check` arg. `check` was only set to 0 by two
tests, _console_shutdown and anacondatest's _post_fail_hook.

For _console_shutdown, I think I just wanted to give it the
best possible chance of succeeding. But we're really not going
to lose anything significant by checking, the only case where
check=>0 would've helped is if the 'good' needle had stopped
matching, and all sorts of other tests will fail in that case.

anacondatest was only using it to save a screenshot of whatever
was on the tty if it didn't reach a root console, which doesn't
seem that useful, and we'll get screenshots from check_screen
and assert_screen anyway.

Test Plan:
Run all tests, check they behave as expected and
none inappropriately fails on console login.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D1016
2016-09-30 08:42:45 -07:00
Adam Williamson
ab5c97907e add 'finish configuration' needle variants for f24
the Atomic installer test is hitting 'finish configuration' now
(thanks, slow typing!) so we need an F24 needle variant (font
rendering changed).
2016-09-29 15:23:40 -07:00
Adam Williamson
acb20f1a70 lengthen the wait_idle timeout in prepare_test_packages
we're still having trouble, the idle wait is timing out...
2016-09-28 18:26:29 -07:00
Adam Williamson
92cea9f8a8 tweak initial_setup_done match for change in Rawhide
The time spoke is now named 'Time settings' (not 'Timezone
settings') so the needle didn't match. Tweak the match so it
matches both versions.
2016-09-28 13:41:33 -07:00
Adam Williamson
8a6529526f fix ARM initial-setup handling for extra choice
As with the text install test, there's an additional choice on
the 'Time settings' path compared to whatever image garret
developed the test on; right after 'Time settings' you have to
pick 'Set timezone' or 'Configure NTP servers'. So adjust the
test to handle this, just like we did there.
2016-09-28 13:15:56 -07:00