Add fedup_minimal test

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D358
This commit is contained in:
Garret Raziel 2015-05-13 13:00:46 +02:00
parent f7d4bc69ce
commit 1422d2c0e2
18 changed files with 296 additions and 22 deletions

33
lib/fedoralog.pm Normal file
View File

@ -0,0 +1,33 @@
package fedoralog;
use base 'basetest';
use testapi;
sub post_fail_hook() {
my $self = shift;
my $password = get_var("ROOT_PASSWORD", "weakpassword");
send_key "ctrl-alt-f2";
assert_screen "text_console_login", 20;
type_string "root";
send_key "ret";
assert_screen "console_password_required", 10;
type_string $password;
send_key "ret";
assert_screen "root_logged_in", 10;
# Upload all ABRT logs
type_string "cd /var/tmp/abrt && tar czvf abrt.tar.gz *";
send_key "ret";
upload_logs "/var/tmp/abrt/abrt.tar.gz";
# Upload /var/log
type_string "tar czvf /tmp/var_log.tar.gz /var/log";
send_key "ret";
upload_logs "/tmp/var_log.tar.gz";
}
1;
# vim: set sw=4 et:

View File

@ -55,6 +55,12 @@ if (get_var("ENTRYPOINT"))
{ {
autotest::loadtest get_var('CASEDIR')."/tests/".get_var("ENTRYPOINT").".pm"; autotest::loadtest get_var('CASEDIR')."/tests/".get_var("ENTRYPOINT").".pm";
} }
elsif (get_var("UPGRADE"))
{
autotest::loadtest get_var('CASEDIR')."/tests/upgrade_preinstall_".get_var("UPGRADE").".pm";
autotest::loadtest get_var('CASEDIR')."/tests/upgrade_run_".get_var("UPGRADE").".pm";
autotest::loadtest get_var('CASEDIR')."/tests/upgrade_postinstall_".get_var("UPGRADE").".pm";
}
else else
{ {
autotest::loadtest get_var('CASEDIR')."/tests/_boot_to_anaconda.pm"; autotest::loadtest get_var('CASEDIR')."/tests/_boot_to_anaconda.pm";

View File

@ -7,11 +7,12 @@
], ],
"area": [ "area": [
{ {
"width": 1018,
"height": 13,
"xpos": 0, "xpos": 0,
"ypos": 0, "ypos": 0,
"width": 204,
"height": 13,
"type": "match" "type": "match"
} }
] ],
"properties": []
} }

View File

@ -1,18 +1,18 @@
{ {
"area": [
{
"height": 13,
"width": 204,
"ypos": 16,
"type": "match",
"xpos": 0
}
],
"tags": [ "tags": [
"console_command_success", "console_command_success",
"ENV-DISTRI-fedora", "ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US", "ENV-INSTLANG-en_US",
"ENV-FLAVOR-server" "ENV-FLAVOR-server"
], ],
"area": [
{
"type": "match",
"width": 1012,
"height": 13,
"xpos": 0,
"ypos": 16
}
],
"properties": [] "properties": []
} }

View File

@ -0,0 +1,18 @@
{
"properties": [],
"area": [
{
"xpos": 0,
"ypos": 129,
"width": 238,
"height": 12,
"type": "match"
}
],
"tags": [
"console_f22_installed",
"ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US",
"ENV-FLAVOR-develop"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,18 @@
{
"properties": [],
"area": [
{
"xpos": 1,
"height": 17,
"width": 77,
"ypos": 79,
"type": "match"
}
],
"tags": [
"console_password_required",
"ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US",
"ENV-FLAVOR-server"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 882 B

18
needles/grub_fedup.json Normal file
View File

@ -0,0 +1,18 @@
{
"properties": [],
"area": [
{
"xpos": 119,
"ypos": 51,
"width": 61,
"height": 10,
"type": "match"
}
],
"tags": [
"grub_fedup",
"ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US",
"ENV-FLAVOR-server"
]
}

BIN
needles/grub_fedup.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -1,17 +1,18 @@
{ {
"properties": [],
"area": [
{
"width": 156,
"xpos": 0,
"height": 19,
"ypos": 113,
"type": "match"
}
],
"tags": [ "tags": [
"root_logged_in", "root_logged_in",
"ENV-DISTRI-fedora", "ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US", "ENV-INSTLANG-en_US",
"ENV-FLAVOR-server" "ENV-FLAVOR-server"
],
"area": [
{
"xpos": 0,
"ypos": 126,
"width": 156,
"height": 22,
"type": "match"
}
] ]
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,18 @@
{
"tags": [
"tmp_failed_proc",
"ENV-DISTRI-fedora",
"ENV-INSTLANG-en_US",
"ENV-FLAVOR-develop"
],
"properties": [],
"area": [
{
"xpos": 71,
"ypos": 338,
"width": 251,
"height": 11,
"type": "match"
}
]
}

BIN
needles/tmp_failed_proc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@ -176,6 +176,16 @@
}, },
test_suite => { name => "server_kickstart_hdd" }, test_suite => { name => "server_kickstart_hdd" },
}, },
{
machine => { name => "64bit" },
product => {
arch => "x86_64",
distri => "fedora",
flavor => "universal",
version => "*",
},
test_suite => { name => "fedup_minimal" },
},
], ],
Machines => [ Machines => [
{ {
@ -369,7 +379,7 @@
}, },
{ {
name => "server_kickstart_hdd", name => "server_kickstart_hdd",
prio => 13, prio => 14,
settings => [ settings => [
{ key => "KICKSTART", value => "1" }, { key => "KICKSTART", value => "1" },
{ key => "GRUB", value => "inst.ks=hd:vdb1:/root-user-crypted-net.ks" }, { key => "GRUB", value => "inst.ks=hd:vdb1:/root-user-crypted-net.ks" },
@ -381,5 +391,16 @@
], ],
variables => "", variables => "",
}, },
{
name => "fedup_minimal",
prio => 15,
settings => [
{ key => "ROOT_PASSWORD", value => "weakpassword" },
{ key => "BOOTFROM", value => "c" },
{ key => "HDD_1", value => "disk_f21.img" },
{ key => "UPGRADE", value => "minimal" },
],
variables => "",
},
], ],
} }

View File

@ -0,0 +1,37 @@
use base "fedoralog";
use strict;
use testapi;
sub boot_and_login {
wait_still_screen 10;
my $password = get_var("ROOT_PASSWORD", "weakpassword");
send_key "ctrl-alt-f3";
assert_screen "text_console_login", 20;
type_string "root";
send_key "ret";
assert_screen "console_password_required", 10;
type_string $password;
send_key "ret";
assert_screen "root_logged_in", 10;
}
sub run {
boot_and_login();
assert_screen "console_f22_installed";
}
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:

View File

@ -0,0 +1,50 @@
use base "fedoralog";
use strict;
use testapi;
sub boot_and_login {
wait_still_screen 10;
my $password = get_var("ROOT_PASSWORD", "weakpassword");
send_key "ctrl-alt-f3";
assert_screen "text_console_login", 20;
type_string "root";
send_key "ret";
assert_screen "console_password_required", 10;
type_string $password;
send_key "ret";
assert_screen "root_logged_in", 10;
}
sub run {
boot_and_login();
type_string 'yum -y update; echo $?';
send_key "ret";
assert_screen "console_command_success", 1800;
type_string "reboot";
send_key "ret";
boot_and_login();
type_string 'yum -y install fedup; echo $?';
send_key "ret";
assert_screen "console_command_success", 1800;
}
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:

View File

@ -0,0 +1,53 @@
use base "fedoralog";
use strict;
use testapi;
sub run {
my $fedup_url;
my $to_version;
# FIXME: this is just a workaround, see https://phab.qadevel.cloud.fedoraproject.org/T478
if (get_var("BUILD") =~ /^(\d+)_Final_(.*)$/) {
$fedup_url = "https://dl.fedoraproject.org/pub/alt/stage/".$1."_".$2."/Server/".get_var("ARCH")."/os";
$to_version = $1;
} else {
$fedup_url = "https://dl.fedoraproject.org/pub/alt/stage/".get_var("BUILD")."/Server/".get_var("ARCH")."/os";
get_var("BUILD") =~ /^(\d+)/;
$to_version = $1;
}
type_string "fedup --network ".$to_version." --instrepo ".$fedup_url;
send_key "ret";
wait_still_screen 30, 6000; # TODO: shorter timeout, longer stillscreen?
upload_logs "/var/log/fedup.log";
type_string "reboot";
send_key "ret";
assert_screen "grub_fedup", 30;
send_key "ret";
my $counter = 0;
while (!check_screen ("text_console_login", 10) && $counter < 180) {
if (check_screen "tmp_failed_proc", 1) {
send_key "ctrl-alt-delete";
}
$counter++;
}
assert_screen "text_console_login", 10;
}
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: