From 2df55efb49014df60c5a9fb6b4d0b002e3967c5d Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 5 May 2016 16:39:47 -0700 Subject: [PATCH] add desktop_terminal test, refactor test loading a bit Summary: I really just want to add the desktop_terminal test, but I think this refactor is in order now. It splits up loading of the various test phases (much as SUSE do it) and allows us to run the post-install tests without the install tests, for e.g. I tweaked things to allow the upgrade tests to use the existing _wait_login tests for final login and combine the two upgrade postinstall tests into one simple one. This comes with a bit of a behaviour change to make graphical wait login behave the same as console wait login: it will log in unless USER_LOGIN is set to 'false'. Previously it only logged in if both USER_LOGIN and USER_PASSWORD were set, which I don't think ever happened in a graphical test, so we never actually did a graphical login. The intent here is we should do a login on the default_install tests. That's going a bit beyond the test case, but it seems like a reasonable thing to test. We can set USER_LOGIN to false if we don't want to do it. Test Plan: Do a full test run, make sure the new tests work and no old tests break. Reviewers: jskladan, garretraziel Reviewed By: garretraziel Subscribers: tflink Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D839 --- lib/installedtest.pm | 12 ++ main.pm | 127 ++++++++++-------- needles/getting_started.json | 15 +++ needles/getting_started.png | Bin 0 -> 47508 bytes needles/next_button-gtk.json | 15 +++ needles/next_button-gtk.png | Bin 0 -> 30891 bytes needles/skip_button-gtk.json | 15 +++ needles/skip_button-gtk.png | Bin 0 -> 34403 bytes templates | 87 +++++++++--- tests/_console_wait_login.pm | 11 +- tests/_graphical_wait_login.pm | 49 +++++-- tests/desktop_terminal_postinstall.pm | 30 +++++ ...tall_minimal.pm => upgrade_postinstall.pm} | 2 - tests/upgrade_postinstall_desktop.pm | 38 ------ tests/upgrade_preinstall.pm | 12 +- tests/upgrade_run.pm | 13 +- 16 files changed, 281 insertions(+), 145 deletions(-) create mode 100644 needles/getting_started.json create mode 100644 needles/getting_started.png create mode 100644 needles/next_button-gtk.json create mode 100644 needles/next_button-gtk.png create mode 100644 needles/skip_button-gtk.json create mode 100644 needles/skip_button-gtk.png create mode 100644 tests/desktop_terminal_postinstall.pm rename tests/{upgrade_postinstall_minimal.pm => upgrade_postinstall.pm} (93%) delete mode 100644 tests/upgrade_postinstall_desktop.pm diff --git a/lib/installedtest.pm b/lib/installedtest.pm index 1280302f..1467e7db 100644 --- a/lib/installedtest.pm +++ b/lib/installedtest.pm @@ -44,6 +44,18 @@ sub check_release { validate_script_output $check_command, sub { $_ =~ m/REDHAT_SUPPORT_PRODUCT_VERSION=$release/ }; } +sub menu_launch_type { + my $self = shift; + my $app = shift; + # super does not work on KDE, because fml + send_key 'alt-f1'; + # srsly KDE y u so slo + wait_still_screen 3; + type_string "$app"; + wait_still_screen 3; + send_key 'ret'; +} + 1; # vim: set sw=4 et: diff --git a/main.pm b/main.pm index a697f9a0..7e79bbba 100644 --- a/main.pm +++ b/main.pm @@ -24,6 +24,9 @@ my $distri = testapi::get_var("CASEDIR") . '/lib/fedoradistribution.pm'; require $distri; testapi::set_distribution(fedoradistribution->new()); +## UTILITY SUBROUTINES + + # Stolen from openSUSE. sub unregister_needle_tags($) { my $tag = shift; @@ -90,29 +93,20 @@ sub cleanup_needles() { } $needle::cleanuphandler = \&cleanup_needles; -if (get_var('LIVE')) { - # No package set selection for lives. - set_var('PACKAGE_SET', "default"); -} +## TEST LOADING SUBROUTINES -# if user set ENTRYPOINT, run required test directly -# (good for tests where it doesn't make sense to use _boot_to_anaconda, _software_selection etc.) -if (get_var("ENTRYPOINT")) -{ - autotest::loadtest "tests/".get_var("ENTRYPOINT").".pm"; -} -elsif (get_var("UPGRADE")) -{ + +sub load_upgrade_tests() { # all upgrade tests consist of: preinstall phase (where packages are upgraded and # dnf-plugin-system-upgrade is installed), run phase (where upgrade is run) and postinstall # phase (where is checked if fedora was upgraded successfully) autotest::loadtest "tests/upgrade_preinstall.pm"; autotest::loadtest "tests/upgrade_run.pm"; - # UPGRADE can be set to "minimal", "encrypted", "desktop"... - autotest::loadtest "tests/upgrade_postinstall_".get_var("UPGRADE").".pm"; + # set postinstall test + set_var('POSTINSTALL', "upgrade" ); } -else -{ + +sub load_install_tests() { # normal installation test consists of several phases, from which some of them are # loaded automatically and others are loaded based on what env variables are set @@ -122,50 +116,54 @@ else # boot phase is loaded automatically every time autotest::loadtest "tests/_boot_to_anaconda.pm"; - # with kickstart tests, booting to anaconda is the only thing required (kickstart file handles - # everything else) - unless (get_var("KICKSTART")) - { + # if this is a kickstart install, that's all folks + return if (get_var("KICKSTART")); - ## Installation source - if (get_var('MIRRORLIST_GRAPHICAL') || get_var("REPOSITORY_GRAPHICAL")){ - autotest::loadtest "tests/install_source_graphical.pm"; - } - if (get_var("REPOSITORY_VARIATION")){ - autotest::loadtest "tests/install_source_variation.pm"; - } - - ## Select package set. Minimal is the default, if 'default' is specified, skip selection. - autotest::loadtest "tests/_software_selection.pm"; - - ## Disk partitioning. - # If PARTITIONING is set, we pick the storage test - # to run based on the value (usually we run the test with the name - # that matches the value, except for a couple of commented cases). - my $storage = ''; - my $partitioning = get_var('PARTITIONING'); - # if PARTITIONING is unset, or one of [...], use disk_guided_empty, - # which is the simplest / 'default' case. - if (! $partitioning || $partitioning ~~ ['guided_empty', 'guided_free_space']) { - $storage = "tests/disk_guided_empty.pm"; - } - else { - $storage = "tests/disk_".$partitioning.".pm"; - } - autotest::loadtest $storage; - - if (get_var("ENCRYPT_PASSWORD")){ - autotest::loadtest "tests/disk_guided_encrypted.pm"; - } - - # Start installation, set user & root passwords, reboot - # install and reboot phase is loaded automatically every time (except when KICKSTART is set) - autotest::loadtest "tests/_do_install_and_reboot.pm"; + ## Installation source + if (get_var('MIRRORLIST_GRAPHICAL') || get_var("REPOSITORY_GRAPHICAL")){ + autotest::loadtest "tests/install_source_graphical.pm"; + } + if (get_var("REPOSITORY_VARIATION")){ + autotest::loadtest "tests/install_source_variation.pm"; } + if (get_var('LIVE')) { + # No package set selection for lives. + set_var('PACKAGE_SET', "default"); + } + + ## Select package set. Minimal is the default, if 'default' is specified, skip selection. + autotest::loadtest "tests/_software_selection.pm"; + + ## Disk partitioning. + # If PARTITIONING is set, we pick the storage test + # to run based on the value (usually we run the test with the name + # that matches the value, except for a couple of commented cases). + my $storage = ''; + my $partitioning = get_var('PARTITIONING'); + # if PARTITIONING is unset, or one of [...], use disk_guided_empty, + # which is the simplest / 'default' case. + if (! $partitioning || $partitioning ~~ ['guided_empty', 'guided_free_space']) { + $storage = "tests/disk_guided_empty.pm"; + } + else { + $storage = "tests/disk_".$partitioning.".pm"; + } + autotest::loadtest $storage; + + if (get_var("ENCRYPT_PASSWORD")){ + autotest::loadtest "tests/disk_guided_encrypted.pm"; + } + + # Start installation, set user & root passwords, reboot + # install and reboot phase is loaded automatically every time (except when KICKSTART is set) + autotest::loadtest "tests/_do_install_and_reboot.pm"; +} + +sub load_postinstall_tests() { # Unlock encrypted storage volumes, if necessary. The test name here # follows the 'storage post-install' convention, but must be run earlier. - if (get_var("ENCRYPT_PASSWORD")){ + if (get_var("ENCRYPT_PASSWORD")) { autotest::loadtest "tests/disk_guided_encrypted_postinstall.pm"; } @@ -204,8 +202,27 @@ else } } +## LOADING STARTS HERE +# if user set ENTRYPOINT, run required test directly +# (good for tests where it doesn't make sense to use _boot_to_anaconda, _software_selection etc.) +if (get_var("ENTRYPOINT")) { + autotest::loadtest "tests/".get_var("ENTRYPOINT").".pm"; +} +elsif (get_var("UPGRADE")) { + load_upgrade_tests; +} +elsif (!get_var("START_AFTER_TEST")) { + # for now we can assume START_AFTER_TEST means this test picks up + # after an install, so we skip to post-install + load_install_tests; +} + +if (!get_var("ENTRYPOINT")) { + load_postinstall_tests; +} + 1; # vim: set sw=4 et: diff --git a/needles/getting_started.json b/needles/getting_started.json new file mode 100644 index 00000000..12029602 --- /dev/null +++ b/needles/getting_started.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 454, + "ypos": 34, + "width": 115, + "height": 17, + "type": "match" + } + ], + "properties": [], + "tags": [ + "getting_started" + ] +} \ No newline at end of file diff --git a/needles/getting_started.png b/needles/getting_started.png new file mode 100644 index 0000000000000000000000000000000000000000..99b6d002584f3c36a51ce6dc44350cfec3ee4845 GIT binary patch literal 47508 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 literal 0 HcmV?d00001 diff --git a/needles/next_button-gtk.json b/needles/next_button-gtk.json new file mode 100644 index 00000000..0c76dcfb --- /dev/null +++ b/needles/next_button-gtk.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 958, + "ypos": 38, + "width": 55, + "height": 25, + "type": "match" + } + ], + "properties": [], + "tags": [ + "next_button" + ] +} \ No newline at end of file diff --git a/needles/next_button-gtk.png b/needles/next_button-gtk.png new file mode 100644 index 0000000000000000000000000000000000000000..0c936cc3c2acae64724f0e7f259b6be5a0f8fe0e GIT binary patch literal 30891 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 F{{rRtBrpH~ literal 0 HcmV?d00001 diff --git a/needles/skip_button-gtk.json b/needles/skip_button-gtk.json new file mode 100644 index 00000000..a0bcb8b3 --- /dev/null +++ b/needles/skip_button-gtk.json @@ -0,0 +1,15 @@ +{ + "area": [ + { + "xpos": 965, + "ypos": 41, + "width": 44, + "height": 21, + "type": "match" + } + ], + "properties": [], + "tags": [ + "skip_button" + ] +} \ No newline at end of file diff --git a/needles/skip_button-gtk.png b/needles/skip_button-gtk.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3313e76b9b047b16f4dc535928ddd2f0349c2f GIT binary patch literal 34403 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 { name => "base_service_manipulation" }, }, + { + machine => { name => "64bit" }, + prio => 30, + product => { + arch => "x86_64", + distri => "fedora", + flavor => "Workstation-live-iso", + version => "*", + }, + test_suite => { name => "desktop_terminal" }, + }, + { + machine => { name => "64bit" }, + prio => 32, + product => { + arch => "x86_64", + distri => "fedora", + flavor => "KDE-live-iso", + version => "*", + }, + test_suite => { name => "desktop_terminal" }, + }, { machine => { name => "64bit" }, prio => 30, @@ -1293,18 +1315,21 @@ name => "upgrade_minimal_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "false" }, { key => "BOOTFROM", value => "c" }, { key => "HDD_1", value => "disk_f%CURRREL%_minimal_x86_64.img" }, - { key => "UPGRADE", value => "minimal" }, + { key => "UPGRADE", value => "1" }, ], }, { name => "upgrade_desktop_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%CURRREL%_desktop_x86_64.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%CURRREL%_desktop_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "gnome" }, ], }, @@ -1312,18 +1337,22 @@ name => "upgrade_server_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%CURRREL%_server_x86_64.img" }, - { key => "UPGRADE", value => "minimal" }, + { key => "HDD_1", value => "disk_f%CURRREL%_server_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, ], }, { name => "upgrade_kde_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%CURRREL%_kde_x86_64.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%CURRREL%_kde_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "kde" }, ], }, @@ -1331,37 +1360,45 @@ name => "upgrade_2_minimal_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "false" }, { key => "BOOTFROM", value => "c" }, { key => "HDD_1", value => "disk_f%PREVREL%_minimal_x86_64.img" }, - { key => "UPGRADE", value => "minimal" }, + { key => "UPGRADE", value => "1" }, ], }, { name => "upgrade_2_desktop_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%PREVREL%_desktop_x86_64.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%PREVREL%_desktop_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "gnome" }, + ], }, { name => "upgrade_2_server_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%PREVREL%_server_x86_64.img" }, - { key => "UPGRADE", value => "minimal" }, + { key => "HDD_1", value => "disk_f%PREVREL%_server_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, ], }, { name => "upgrade_2_kde_64bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%PREVREL%_kde_x86_64.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%PREVREL%_kde_2_x86_64.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "kde" }, ], }, @@ -1369,9 +1406,11 @@ name => "upgrade_desktop_32bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%CURRREL%_desktop_i686.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%CURRREL%_desktop_2_i686.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "gnome" }, ], }, @@ -1379,9 +1418,11 @@ name => "upgrade_2_desktop_32bit", settings => [ { key => "ROOT_PASSWORD", value => "weakpassword" }, + { key => "USER_LOGIN", value => "test" }, + { key => "USER_PASSWORD", value => "weakpassword" }, { key => "BOOTFROM", value => "c" }, - { key => "HDD_1", value => "disk_f%PREVREL%_desktop_i686.img" }, - { key => "UPGRADE", value => "desktop" }, + { key => "HDD_1", value => "disk_f%PREVREL%_desktop_2_i686.img" }, + { key => "UPGRADE", value => "1" }, { key => "DESKTOP", value => "gnome" }, ], }, @@ -1431,6 +1472,7 @@ settings => [ { key => "DESKTOP", value => "kde" }, { key => "PACKAGE_SET", value => "kde" }, + { key => "USER_LOGIN", value => "false" }, ], }, { @@ -1508,5 +1550,14 @@ { key => "WORKER_CLASS", value => "tap" }, ], }, + { + name => "desktop_terminal", + settings => [ + { key => "POSTINSTALL", value => "desktop_terminal" }, + { key => "START_AFTER_TEST", value => "install_default_upload" }, + { key => "BOOTFROM", value => "c" }, + { key => "HDD_1", value => "disk_%FLAVOR%_%MACHINE%.qcow2" }, + ], + }, ], } diff --git a/tests/_console_wait_login.pm b/tests/_console_wait_login.pm index 28e42452..b4a55872 100644 --- a/tests/_console_wait_login.pm +++ b/tests/_console_wait_login.pm @@ -4,12 +4,13 @@ use testapi; sub run { my $self = shift; + # If KICKSTART is set, then the wait_time needs to consider the + # install time. if UPGRADE, we have to wait for the entire upgrade + my $wait_time = 300; + $wait_time = 1800 if (get_var("KICKSTART")); + $wait_time = 6000 if (get_var("UPGRADE")); - # If KICKSTART is set, then the wait_time needs to - # consider the install time - my $wait_time = get_var("KICKSTART") ? 1800 : 300; - - # Reboot and wait for the text login + # Wait for the text login assert_screen "text_console_login", $wait_time; # do user login unless USER_LOGIN is set to string 'false' diff --git a/tests/_graphical_wait_login.pm b/tests/_graphical_wait_login.pm index 00a9e561..420e2d70 100644 --- a/tests/_graphical_wait_login.pm +++ b/tests/_graphical_wait_login.pm @@ -3,22 +3,53 @@ use strict; use testapi; sub run { - # If KICKSTART is set, then the wait_time needs to - # consider the install time - my $wait_time = get_var("KICKSTART") ? 1800 : 300; + # If KICKSTART is set, then the wait_time needs to consider the + # install time. if UPGRADE, we have to wait for the entire upgrade + my $wait_time = 300; + $wait_time = 1800 if (get_var("KICKSTART")); + $wait_time = 6000 if (get_var("UPGRADE")); # Wait for the login screen assert_screen "graphical_login", $wait_time; + # handle the qemu display buffer sometimes showing the DM from the + # *previous* boot - https://openqa.stg.fedoraproject.org/tests/17116 + wait_still_screen; + assert_screen "graphical_login"; + # do user login unless USER_LOGIN is set to string 'false' + unless (get_var("USER_LOGIN") eq "false") { + if (get_var("DESKTOP") eq 'gnome') { + # we have to hit enter to get the password dialog + send_key "ret"; + } + assert_screen "graphical_login_input"; + type_string get_var("USER_PASSWORD", "weakpassword"); + send_key "ret"; + + # Handle initial-setup, for GNOME, unless START_AFTER_TEST + # is set in which case it will have been done already + if (get_var("DESKTOP") eq 'gnome' && !get_var("START_AFTER_TEST")) { + for my $n (1..3) { + # click 'Next' three times, moving the mouse to avoid + # highlight problems, sleeping to give it time to get + # to the next screen between clicks + mouse_set(100, 100); + wait_screen_change { assert_and_click "next_button", 60; }; + } + # click 'Skip' one time + mouse_set(100,100); + wait_screen_change { assert_and_click "skip_button"; }; + send_key "ret"; + # wait for the stupid 'help' screen to show and kill it + assert_screen "getting_started"; + send_key "alt-f4"; + wait_still_screen 5; + } - if (get_var("USER_LOGIN") && get_var("USER_PASSWORD")) { - send_key "ret"; - type_string get_var("USER_PASSWORD"); - send_key "ret"; # Move the mouse somewhere it won't highlight the match areas mouse_set(300, 200); - assert_screen "graphical_desktop_clean", 30; + # KDE can take ages to start up + assert_screen "graphical_desktop_clean", 120; } - } sub test_flags { diff --git a/tests/desktop_terminal_postinstall.pm b/tests/desktop_terminal_postinstall.pm new file mode 100644 index 00000000..ac1895ad --- /dev/null +++ b/tests/desktop_terminal_postinstall.pm @@ -0,0 +1,30 @@ +use base "installedtest"; +use strict; +use testapi; + +sub run { + my $self=shift; + assert_screen 'graphical_desktop_clean'; + $self->menu_launch_type('terminal'); + wait_still_screen 5; + # need to be root + my $rootpass = get_var("ROOT_PASSWORD", "weakpassword"); + type_string "su\n"; + wait_still_screen 3; + type_string "$rootpass\n"; + wait_still_screen 3; + # if we can do an assert_script_run, we're at a console + assert_script_run 'ls'; +} + +sub test_flags { + # without anything - rollback to 'lastgood' snapshot if failed + # 'fatal' - whole test suite is in danger if this fails + # 'milestone' - after this test succeeds, update 'lastgood' + # 'important' - if this fails, set the overall state to 'fail' + return { fatal => 1 }; +} + +1; + +# vim: set sw=4 et: diff --git a/tests/upgrade_postinstall_minimal.pm b/tests/upgrade_postinstall.pm similarity index 93% rename from tests/upgrade_postinstall_minimal.pm rename to tests/upgrade_postinstall.pm index fec3f415..0d85571b 100644 --- a/tests/upgrade_postinstall_minimal.pm +++ b/tests/upgrade_postinstall.pm @@ -5,9 +5,7 @@ use testapi; sub run { my $self = shift; - # try to login, check whether target release is installed - $self->boot_to_login_screen(); $self->root_console(tty=>3); $self->check_release(lc(get_var('VERSION'))); } diff --git a/tests/upgrade_postinstall_desktop.pm b/tests/upgrade_postinstall_desktop.pm deleted file mode 100644 index f313ee61..00000000 --- a/tests/upgrade_postinstall_desktop.pm +++ /dev/null @@ -1,38 +0,0 @@ -use base "installedtest"; -use strict; -use testapi; - - -sub run { - my $self = shift; - my $password = get_var("USER_PASSWORD", "weakpassword"); - - # wait for DM to appear - $self->boot_to_login_screen("graphical_login", 20); - - # login as normal user - if (get_var("DESKTOP") eq 'gnome') { - send_key "ret"; - } - assert_screen "graphical_login_input"; - type_string $password; - send_key "ret"; - # wait until desktop appears - assert_screen "graphical_desktop_clean", 60; - # check an upgrade actually happened (and we can log into a console) - $self->root_console(tty=>3); - $self->check_release(lc(get_var('VERSION'))); -} - - -sub test_flags { - # without anything - rollback to 'lastgood' snapshot if failed - # 'fatal' - whole test suite is in danger if this fails - # 'milestone' - after this test succeeds, update 'lastgood' - # 'important' - if this fails, set the overall state to 'fail' - return { fatal => 1 }; -} - -1; - -# vim: set sw=4 et: diff --git a/tests/upgrade_preinstall.pm b/tests/upgrade_preinstall.pm index ec4b9a3e..6e04247a 100644 --- a/tests/upgrade_preinstall.pm +++ b/tests/upgrade_preinstall.pm @@ -5,9 +5,9 @@ use testapi; sub run { my $self = shift; - # wait for either GDM or text login - if (get_var('UPGRADE') eq "desktop") { - $self->boot_to_login_screen("graphical_login", 30); # GDM takes time to load + # wait for either graphical or text login + if (get_var('DESKTOP')) { + $self->boot_to_login_screen("graphical_login", 15, 90); # DM takes time to load } else { $self->boot_to_login_screen(); } @@ -22,15 +22,15 @@ sub run { script_run "reboot"; - if (get_var('UPGRADE') eq "desktop") { - $self->boot_to_login_screen("graphical_login", 30); # GDM takes time to load + if (get_var('DESKTOP')) { + $self->boot_to_login_screen("graphical_login", 15, 90); # DM takes time to load } else { $self->boot_to_login_screen(); } $self->root_console(tty=>3); my $update_command = 'dnf -y --enablerepo=updates-testing install dnf-plugin-system-upgrade'; - assert_script_run $update_command, 1800; + assert_script_run $update_command, 300; } diff --git a/tests/upgrade_run.pm b/tests/upgrade_run.pm index 0f54f3cf..def1378c 100644 --- a/tests/upgrade_run.pm +++ b/tests/upgrade_run.pm @@ -16,10 +16,7 @@ sub run { # disable screen blanking (download can take a long time) script_run "setterm -blank 0"; - script_run "dnf -y system-upgrade download ${args}"; - - # wait until dnf finishes its work (screen stops moving for 30 seconds) - wait_still_screen 30, 6000; # TODO: shorter timeout, longer stillscreen? + assert_script_run "dnf -y system-upgrade download ${args}", 6000; upload_logs "/var/log/dnf.log"; upload_logs "/var/log/dnf.rpm.log"; @@ -27,14 +24,6 @@ sub run { script_run "dnf system-upgrade reboot"; # fail immediately if we see a DNF error message die "DNF reported failure" if (check_screen "upgrade_fail"); - - # now offline upgrading starts. user doesn't have to do anything, just wait untill - # system reboots and login screen is shown - if (get_var('UPGRADE') eq "desktop") { - assert_screen "graphical_login", 6000; - } else { - assert_screen "text_console_login", 6000; - } }