From df195a78535ae2e2feec95cd2dc61706ca22484a Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Fri, 8 Apr 2016 13:21:29 -0700 Subject: [PATCH] rename BOOT_UPDATES_IMG_URL to TEST_UPDATES, add GRUBADD Summary: BOOT_UPDATES_IMG_URL is a pretty misleading name - it used to be the actual URL, but now it's simply a boolean that decides whether we look for the effect of the openQA updates image or not. TEST_UPDATES seems clearer. GRUBADD does the same thing as GRUB, on top of it. The point of this is so we can add an option to the scheduler CLI that lets you say 'run the normal tests, but with this updates image' - so we can easily (albeit manually triggered) check the impact of some anaconda change that needs testing. It should never be set in the templates or the tests, it's there strictly for the scheduler (whether that's fedora_openqa_schedule or literally a person calling `client isos post`) to use as a kind of override. The tests that test updates image loading will probably fail when doing this, but all other tests should work as intended, including ones that specify GRUB, becase the extra params will just get added on top. That's why I invented a new var instead of just letting the scheduler override GRUB's value when POST ing. Test Plan: Check the rename didn't break anything (updates tests still work). Run tests with GRUBADD param, make sure value is correctly appended to cmdline both when GRUB is also specified and when it is not. Reviewers: jskladan, garretraziel Reviewed By: garretraziel Subscribers: tflink Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D801 --- VARIABLES.md | 3 ++- templates | 4 ++-- tests/_boot_to_anaconda.pm | 11 ++++++++++- tests/disk_guided_empty.pm | 2 +- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/VARIABLES.md b/VARIABLES.md index 26b46710..49d46bdb 100644 --- a/VARIABLES.md +++ b/VARIABLES.md @@ -67,9 +67,10 @@ it also means that `B` conflicts `A` even if not shown in the table). | `DESKTOP` | boolean | `false`/not set | nothing | set to indicate that Fedora is running with GUI (so for example OpenQA should expect graphical login screen) | | `ROOT_PASSWORD` | string | `weakpassword` | nothing | root password is set to this value | | `GRUB` | string | not set | nothing | when set, append this string to kernel line in GRUB | +| `GRUBADD` | string | not set | nothing | when set, append this string to kernel line in GRUB, after the `GRUB` string if that one is set too. This is never set by tests; instead it's provided as a way to e.g. run the normal tests with an `updates.img` to test some anaconda change (the scheduler CLI can help you use this feature) | | `USER_LOGIN` | string | not set | should be used with `USER_PASSWORD` (unless `false`) | when set, user login is set to this value. If not set, default value `test` is used for console installs, no login is done for graphical installs. If set to `false`, no user login will be done | | `USER_PASSWORD` | string | not set | should be used with `USER_LOGIN` | when set, user password is set to this value. If not set, default value `weakpassword` is used for console installs, no login is done for graphical installs | -| `BOOT_UPDATES_IMG_URL` | boolean | `false`/not set | set to indicate that path to updates.img was appended to kernel line | +| `TEST_UPDATES` | boolean | `false`/not set | set to indicate that this test checks updates.img loading, so we should check for the expected effect of the updates image used for this testing | | `POSTINSTALL` | string | not set | nothing | If set, `tests/(value)_postinstall.pm` will be loaded after install, boot, login, and other postinstall tests | `UEFI` | boolean | `false`/not set | nothing | whether to use UEFI, this variable isn't usually set in test suites but in machine definition | diff --git a/templates b/templates index e5ac6325..a9a39ee8 100755 --- a/templates +++ b/templates @@ -1103,7 +1103,7 @@ { name => "install_scsi_updates_img", settings => [ - { key => "BOOT_UPDATES_IMG_URL", value => "1" }, + { key => "TEST_UPDATES", value => "1" }, { key => "GRUB", value => "inst.updates=https://fedorapeople.org/groups/qa/updates/updates-openqa.img" }, { key => "HDDMODEL", value => "virtio-scsi-pci" }, { key => "CDMODEL", value => "scsi-cd" }, @@ -1286,7 +1286,7 @@ settings => [ { key => "NUMDISKS", value => "2" }, { key => "HDD_2", value => "disk_updates_img_2.img" }, - { key => "BOOT_UPDATES_IMG_URL", value => "1" }, + { key => "TEST_UPDATES", value => "1" }, { key => "GRUB", value => "inst.updates=hd:LABEL=UPDATES_IMG:/updates.img" }, ], }, diff --git a/tests/_boot_to_anaconda.pm b/tests/_boot_to_anaconda.pm index f73999de..0423fcd7 100644 --- a/tests/_boot_to_anaconda.pm +++ b/tests/_boot_to_anaconda.pm @@ -34,9 +34,18 @@ sub run { } + # if GRUBADD is set, add that to kernel line too. this is for doing + # stuff like running the tests with an updates.img to test some + # anaconda change + if (get_var("GRUBADD")) { + # unless GRUB was also set, we need to get to the kernel line now + get_kernel_line unless (get_var("GRUB")); + type_string " ".get_var("GRUBADD"); + } + # if variable REPOSITORY_VARIATION is set, construct inst.repo url and add it to kernel line if (get_var("REPOSITORY_VARIATION")){ - unless (get_var("GRUB")){ + unless (get_var("GRUB") || get_var("GRUBADD")) { get_kernel_line; } my $repourl = ""; diff --git a/tests/disk_guided_empty.pm b/tests/disk_guided_empty.pm index a9ebc660..ced18da4 100644 --- a/tests/disk_guided_empty.pm +++ b/tests/disk_guided_empty.pm @@ -10,7 +10,7 @@ sub run { # updates.img tests work by changing the appearance of the INSTALLATION # DESTINATION screen, so check that if needed. - if (get_var('BOOT_UPDATES_IMG_URL')){ + if (get_var('TEST_UPDATES')){ assert_screen "anaconda_install_destination_updates", 30; }