Commit Graph

724 Commits

Author SHA1 Message Date
Jan Sedlák
0b1d4d1f92 fix small bug with selecting custom partitioning 2015-08-06 16:15:48 +02:00
Jan Sedlák
4778d23f8c small fix 2015-08-06 13:53:43 +02:00
Jan Sedlák
335ce280f3 merge DISK_GUIDED and DISK_CUSTOM into PARTITIONING
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D486
2015-08-06 11:02:18 +02:00
Jan Sedlák
a18b6f8f69 fixes for current code
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D485
2015-08-06 11:01:41 +02:00
Adam Williamson
3df993404c needle tweaks for eurlatgr font in anaconda
Summary:
I discovered another fun font issue today. Current anaconda
images don't use the intended 'default' console font, eurlatgr.
Neither do live images, but installed systems *do*.

The font they use is the system BIOS font, which in openQA
cases means the qemu firmware font. The easiest way to spot the
difference is the @ character; the shorter version is from the
system BIOS, the slightly taller one is what it looks like in
eurlatgr and latarcyrheb-sun16 (the old default).

In a test image I built, for some reason, I *did* get eurlatgr
in the tmux console, and that broke some needle matches. After
figuring all this out, bcl has sent a lorax patch to use
eurlatgr in the installer, so it makes sense to add these fixes
to the repo for when that kicks in.

We shrink the match on root_logged_in.json by one line. This
screenshot is taken from a post-install case where the prompt
appears in the middle of the screen, and has three black rows
above the prompt; in anaconda, when the prompt appears right at
the top of the screen, there's only *two* rows of black above
it, so the match fails. This fixes that. It's been working so
far because installs have been matching root_logged_in_
rawhide20150311, which is taken with the firmware font, but
once the installer starts using eurlatgr, that won't match any
more.

We also add a new needle for the anaconda_install_source_check
_repo_added tag, taken with eurlatgr. The existing screenshot
was taken either with the firmware font or with latarcyrheb.
They both use a curly glyph for a single quote ('), while
eurlatgr uses a straight line.

This also renames the root_logged_in variant needle to be
clearer about why it's there. We'll probably need variants of
some needles until we're sure lives, anaconda env, and installed
systems are all using eurlatgr. RHBZ #1250262 is a bug I filed
for the live images not using eurlatgr.

Test Plan:
Run the tests with both BIOS font and eurlatgr as
the anaconda font and make sure they all work. The latter
might be a bit tricky till the change lands upstream, I've no
idea how it worked out that way in my test boot.iso.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D483
2015-08-05 09:15:41 -07:00
Adam Williamson
ce4cf5d022 drop the user_logged_in_20150721f23 variant needle
Summary:
I actually have no idea why I created this, now. Examining it
closely there is no difference in the matched area between it
and user_logged_in. Both are evidently using the eurlatgr font
(tall @ sign). I tested that the kickstart_user_creation test
still works on F23 Alpha TC2 with this needle gone, and the
kickstart tests are the only ones that use it.

Test Plan: Run the kickstart tests and verify they still work.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D484
2015-08-05 03:25:55 -07:00
Jan Sedlák
e000209967 add comments and documentation
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D481
2015-08-05 08:23:59 +02:00
Adam Williamson
248b7a9536 revise storage: better test loading, shared disk selection
Summary:
This contains several tweaks to storage handling. It adds a
method for disk selection which all the storage tests can
share. It sets up a more extensible approach for main.pm to
run the storage tests, instead of an ever-growing forest of
'else' clauses. Finally it sets up a couple of methods for
changing partitioning schemes on the custom part screen and
uses one of them in the software RAID test; the other will
be used for other custom storage tests.

This kills the two_disks needle. I could keep it and work
it into select_disks, but it doesn't fit naturally and I
really just don't see the point of the needle. The only thing
we lose is we don't check that anaconda actually sees two
disks in the 'attach two disks, only install to one' test
(that's server_sata_multi), but the other multi-disk tests
will serve to catch that case failing for some reason.

What I actually intended to do was add some more tests for
different custom part storage types, but it seemed a good
idea to do some of this cleanup so that can be implemented
efficiently. I'll have followups for that.

Test Plan:
Run all tests and ensure they work exactly as
before (not just that they still pass, but that the correct
test steps are actually scheduled in each case.)

Reviewers: garretraziel, jskladan

Reviewed By: garretraziel, jskladan

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D475
2015-07-31 01:31:27 -07:00
Jan Sedlák
3b2e0b60b3 wait for anaconda even on live system
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D478
2015-07-29 08:16:05 +02:00
Adam Williamson
c11e7bb99b retake another screenshot for 96dpi
Summary:
Missed this one in D456. It causes the software RAID test to
fail.

Test Plan: Run the software RAID test on Alpha TC2.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D476
2015-07-26 23:47:39 -07:00
Adam Williamson
212926a078 add a 1 second sleep before begin install
Summary:
I was having a weird failure that I finally figured out: when
software source config runs then storage config, the 'begin_
installation' needle can match while the 'slide down from the
top' animation is still playing, and by the time os-autoinst
positions the cursor to click where the button was when the
match happened, it's moved down and we wind up clicking outside
the button area. So, wait a sec before clicking to avoid this.

Test Plan: Run the server_sata_multi test.

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D464
2015-07-22 11:26:10 -07:00
Adam Williamson
25b9271e37 tweak two disk matching to be more robust
Summary:
Depending on the disks attached to the system and some other
idiosyncracries (like what the disk 'description' currently
happens to be), the distance between the two disk icons can
vary, so a needle that matches on the two disk icons is fragile
(whenever the distance differs, the match fails). So instead of
that, let's have a needle that matches on a single icon with
a lot of grey space to its left, plus the two little matches
we later use in the select_disk(1/2) needles. This should be
robust enough and doesn't need us to keep duplicating it when
the distance between the icons changes. With this tweak, the
'2' variant is no longer needed.

Test Plan:
Run the various tests that use two disks and check this
needle always matches. You'll also want to have D456 applied.

Reviewers: garretraziel, jskladan

Reviewed By: garretraziel, jskladan

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D463
2015-07-22 11:25:48 -07:00
Adam Williamson
4b8e411479 create fedora base class, factor out console login
Summary:
Root console in anaconda got broken by RHBZ #1222413 - no
shell on tty2. Decided to clean up console use in general as
part of fixing it.

This creates a class 'fedorabase' and has 'anacondalog' and
'fedoralog' both inherit from it. boot_to_login_screen is
moved there (as it seems appropriate) and it has a new
method, console_login, which basically handles 'get me a
shell on a console': if we're already at one it returns,
if not it'll type the user name and the password *if
necessary* (sometimes it's not) and return once it sees a
prompt. It takes a hash of named parameters for user,
password and 'check', which is whether it should die if it
fails to reach a console or not (some users don't want it
to).

anacondalog and fedoralog both get 'root_console' methods
which do something appropriate and then call
console_login; both have a hash of named parameters,
anacondalog's version only bothers with 'check', while
fedoralog's also accepts 'tty' to pick the tty to use.

This also adjusts all things which try to get to a console
prompt to use either root_console or console_login as
appropriate.

It also tweaks the needle tags a bit, drops some unneeded
needles, and adds a new 'user console prompt' needle; we
really just need two versions of the root prompt needle
and two of the user prompt needle (one for <F23, one for
F23+ - the console font changed in F23, and the @ character
at least doesn't match between the two). I think we still
need the <F23 case for upgrade tests, for now.

Test Plan:
Do a full test run and see that more tests
succeed. I've done a run on happyassassin with a hack to
workaround the SELinux issue for interactive installs,
and the results look good. I also fiddled about a bit to
test some different cases, like forcing a failure in a
live test to test post_fail_hook (and hence root_console)
in that scenario, and forcing failures after some console
commands had been run to check that it DTRT when we've
already reached a console, etc.

Reviewers: jskladan, garretraziel

Reviewed By: jskladan, garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D462
2015-07-22 11:24:40 -07:00
Adam Williamson
2e4c1c2325 re-do most anaconda screenshots for 96dpi
Summary:
Most of the anaconda screenshots were taken with older netinst
images, at 96.09dpi. Workstation lives use 96dpi exactly. This
led to some needles failing on the Workstation live as fonts
render slightly differently at 96 and 96.09dpi. LONG STORY
SHORT, we got a change in GTK+ which means traditional install
images now use 96dpi exactly too; so we should be consistent
between lives and trad images now, but we need to retake all
the screenshots taken at 96.09dpi. That's what this is.

I also cleaned up a couple of other things. The anaconda_error
needle was effectively a duplicate of anaconda_report_btn.
Neither is actually used atm, but I kept report_btn in case we
use it in future.

anaconda_main_hub_installdest_selected isn't needed any more,
since my tweaks to the matching in anaconda_main_hub_nonlive;
it will now match the case this needle was created for initially.

anaconda_software_select_box is no longer used by any test. The
software selection tests were changed to use key sequences and
dropped their use of this needle, but the needle wasn't removed.

anaconda_select_install_lang_english_filtered_english_selected_
as_default was never really necessary, the situation it's meant
for can be handled by simply adding the anaconda_select_install_
lang_english_filtered tag to the anaconda_select_install_lang_
english_selected needle (as this commit does). That achieves
the needed effect and doesn't break the case where the UI is in
Czech.

Most of the match area changes are just because the layout
changed a bit since the screenshot was taken. I did reduce some
over-precision in some needles, notably the multi-disk needles
- there is no reason we need to match on the disk descriptions
and sizes when we're just selecting the appropriate disks. We
aren't testing anaconda's description of the disks (which may
change unexpectedly), only that it *works* with the disk
types used in the test.

After this commit a little under half of the tests pass with
the 23 Branched 20150717 nightly. Most of the ones that fail
fail because of the anaconda tty2 bug (there's no console on
tty2) or the selinux bug (#1243168) that prevents console login
post-install with SELinux enabled. There are a few other fails
too, but none of them seems to be caused by a needle mismatch,
so I'll investigate and fix them separately.

Test Plan:
Run the full test suite on a current nightly, see that some
tests actually pass now!

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D456
2015-07-20 09:10:37 -07:00
Garret Raziel
c8f02969f2 add fedup desktop test
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D451
2015-07-17 12:52:56 +02:00
Garret Raziel
4abc1aecf2 move logging in as a root into parent class
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D440
2015-07-15 07:00:47 +02:00
Adam Williamson
2f20e8e103 don't include radio button state in anaconda_minimal_highlighted
Summary:
There's no need to include the radio button state here, which
causes the match to fail if Minimal is highlighted and already
selected. Hitting Space in this case won't de-select it (it's
a radio button, not a checkbox), and will give the desired
result. So we should accept it.

Test Plan:
Run tests against Rawhide (and maybe F22 as a regression check)
and ensure the package set selection step works, in tests where
it's included.

Reviewers: garretraziel, jskladan

Reviewed By: jskladan

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D385
2015-06-11 09:59:51 -07:00
Adam Williamson
53fcc86ae3 avoid branded areas, tighten 'Done' button matches
Summary:
Two needles (at least, there may be more) fail to match properly
with Rawhide (F23) because the top part of some screens now has
branding, while before it was plain grey. On root_password_screen
we can just throw that match away, we don't really need it, the
text 'Root Password:' seems specific enough to be reliable. On
user_creation_screen let's replace the branded area match with a
couple of the text box labels.

This also tightens the 'Done' button match area on both spokes;
the original area is too loose and covers some of the now-branded
area outside the button, so the match fails.

This fixes the default_install test for 2015-06-07 nightly.

Test Plan:
Try a test run against the 2015-06-07 nightly and see if the
default_install test passes. Maybe also check that it still
passes for an F22 build.

Reviewers: garretraziel, jskladan

Reviewed By: jskladan

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D386
2015-06-11 09:57:40 -07:00
Garret Raziel
1422d2c0e2 Add fedup_minimal test
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D358
2015-05-13 13:03:23 +02:00
Garret Raziel
f7d4bc69ce changes to solve 173 and 167
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D335
2015-04-10 10:38:28 +02:00
Garret Raziel
469d8d2e92 upload Anaconda ABRT directory
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D310
2015-04-03 13:42:59 +02:00
Garret Raziel
3146a72d99 try to fix anaconda user creation
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D326
2015-04-03 10:27:31 +02:00
Garret Raziel
c866851e4b select environment programmatically
Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D312
2015-03-25 11:56:48 +01:00
Adam Williamson
eed0deb6c8 correct job templates added after 'live' merge
The flavor names changed and we started using the * version
wild card in the 'live' merge, so we need to correct the jobs
that were added to master in the meantime.
2015-03-19 14:11:17 -07:00
Adam Williamson
84a14cdb67 Support for live image testing
This requires adding products, flavors and needles and test
cases, and tweaking some existing ones to handle the
slightly different behaviour of live images in shared tests.

To handle the different main hub screens in live and non-live,
a less stringent needle is added which is unregistered for
non-live tests, so they don't match on it before they've
finished updating repository metadata.

There are a few small bugfix tweaks in this too, like some
delays in user creation to try and avoid intermittent failures
there.

A new root_logged_in needle is also included, to handle a new
console font in Rawhide - that has nothing strictly to do with
live testing, it just happened to come up while working on
this.
2015-03-18 14:28:03 -07:00
Garret Raziel
cab8bcc4de we will use develop branch 2015-03-18 13:28:43 +01:00
Garret Raziel
f8f6d2f8bc fixing some issues - doublequotes and type_string 2015-03-13 12:58:03 +01:00
Garret Raziel
65e4745eca add arcconfig 2015-03-13 10:17:48 +01:00
Garret Raziel
7c352d4b29 fix typo 2015-03-12 11:11:47 +01:00
Garret Raziel
591861586e add kickstart hdd testsuite 2015-03-12 10:58:04 +01:00
Garret Raziel
b8e011e2ff wait for Password: prompt 2015-03-11 16:35:54 +01:00
Garret Raziel
3863d840b0 add software RAID test suite 2015-03-06 10:36:25 +01:00
Garret Raziel
2038451b96 add multiple disks test 2015-03-05 13:57:47 +01:00
Garret Raziel
41d859cc7d add disk guided free space test 2015-03-05 11:44:02 +01:00
Garret Raziel
2191f7a5c5 get rid of unused code 2015-03-05 10:21:45 +01:00
Garret Raziel
e7ae288abd remove hardcoded repo urls 2015-03-04 12:26:02 +01:00
Garret Raziel
c6542c27b8 bits and hacks 2015-02-25 18:20:41 +01:00
Garret Raziel
f51b1c916e click on input box in select lang 2015-02-20 10:30:23 +01:00
Garret Raziel
b3e118fe79 changes in install source test 2015-02-19 16:55:29 +01:00
Garret Raziel
20504fa965 add ABRT logs uploading, sleep in lang selection 2015-02-19 15:40:33 +01:00
Garret Raziel
7eb9eaa090 changes in user creation, http mirrors 2015-02-19 14:15:29 +01:00
Garret Raziel
e819d7f9bd base class for logging 2015-02-13 16:36:35 +01:00
Garret Raziel
235377708f beginning of test logging 2015-02-13 15:08:29 +01:00
Garret Raziel
faf54a2055 completed delete partial testsuite 2015-02-13 12:11:47 +01:00
Garret Raziel
4f8bc70d37 update templates 2015-02-13 10:58:24 +01:00
Josef Skladanka
07b75b1a30 fixed typo 2015-02-13 10:01:38 +01:00
Garret Raziel
a00cf9e530 New tests 2015-02-13 09:51:24 +01:00
Josef Skladanka
98462fc270 Minor fix to the check_repo_added needle 2015-02-11 12:05:25 +01:00
Josef Skladanka
fe36bf1c83 Disk guided encrypted 2015-02-04 17:16:21 +01:00
Josef Skladanka
376ec0d81b Inst-repo HTTP variation 2015-02-04 14:45:37 +01:00