Enable IoT testing with install and base tests

IoT is becoming a release-blocking edition for F32, so we should
be testing it for sure. We may add specific tests, but for now
let's run the install and base tests on it.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2020-02-13 11:50:32 -08:00
parent b09936ba0a
commit 0f8f6082eb
6 changed files with 99 additions and 19 deletions

View File

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 13,
"height": 20,
"width": 124,
"type": "match",
"xpos": 764
}
],
"properties": [],
"tags": [
"version_31_ident"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -133,6 +133,30 @@
}, },
"version": "*" "version": "*"
}, },
"fedora-IoT-dvd_ostree-iso-aarch64-*": {
"arch": "aarch64",
"distri": "fedora",
"flavor": "IoT-dvd_ostree-iso",
"settings": {
"CANNED": "1",
"PACKAGE_SET": "default",
"CONSOLE_INITIAL_SETUP": "1",
"TEST_TARGET": "ISO"
},
"version": "*"
},
"fedora-IoT-dvd_ostree-iso-x86_64-*": {
"arch": "x86_64",
"distri": "fedora",
"flavor": "IoT-dvd_ostree-iso",
"settings": {
"CANNED": "1",
"PACKAGE_SET": "default",
"CONSOLE_INITIAL_SETUP": "1",
"TEST_TARGET": "ISO"
},
"version": "*"
},
"fedora-KDE-live-iso-x86_64-*": { "fedora-KDE-live-iso-x86_64-*": {
"arch": "x86_64", "arch": "x86_64",
"distri": "fedora", "distri": "fedora",
@ -310,6 +334,18 @@
"machine": "uefi", "machine": "uefi",
"product": "fedora-Everything-boot-iso-x86_64-*" "product": "fedora-Everything-boot-iso-x86_64-*"
}, },
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": {
"machine": "aarch64",
"product": "fedora-IoT-dvd_ostree-iso-aarch64-*"
},
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": {
"machine": "64bit",
"product": "fedora-IoT-dvd_ostree-iso-x86_64-*"
},
"fedora-IoT-dvd_ostree-iso-x86_64-*-uefi": {
"machine": "uefi",
"product": "fedora-IoT-dvd_ostree-iso-x86_64-*"
},
"fedora-KDE-live-iso-x86_64-*-64bit": { "fedora-KDE-live-iso-x86_64-*-64bit": {
"machine": "64bit", "machine": "64bit",
"product": "fedora-KDE-live-iso-x86_64-*" "product": "fedora-KDE-live-iso-x86_64-*"
@ -411,6 +447,8 @@
}, },
"base_reboot_unmount": { "base_reboot_unmount": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 40,
"fedora-KDE-live-iso-x86_64-*-64bit": 50, "fedora-KDE-live-iso-x86_64-*-64bit": 50,
"fedora-Server-dvd-iso-aarch64-*-aarch64": 40, "fedora-Server-dvd-iso-aarch64-*-aarch64": 40,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 20, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 20,
@ -431,6 +469,8 @@
}, },
"base_selinux": { "base_selinux": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 40,
"fedora-KDE-live-iso-x86_64-*-64bit": 42, "fedora-KDE-live-iso-x86_64-*-64bit": 42,
"fedora-Server-dvd-iso-aarch64-*-aarch64": 40, "fedora-Server-dvd-iso-aarch64-*-aarch64": 40,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40,
@ -451,6 +491,8 @@
}, },
"base_service_manipulation": { "base_service_manipulation": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 40,
"fedora-KDE-live-iso-x86_64-*-64bit": 42, "fedora-KDE-live-iso-x86_64-*-64bit": 42,
"fedora-Server-dvd-iso-aarch64-*-aarch64": 40, "fedora-Server-dvd-iso-aarch64-*-aarch64": 40,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40,
@ -471,6 +513,8 @@
}, },
"base_services_start": { "base_services_start": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 40,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 40,
"fedora-KDE-live-iso-x86_64-*-64bit": 42, "fedora-KDE-live-iso-x86_64-*-64bit": 42,
"fedora-Server-dvd-iso-aarch64-*-aarch64": 40, "fedora-Server-dvd-iso-aarch64-*-aarch64": 40,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 40,
@ -505,6 +549,8 @@
}, },
"base_system_logging": { "base_system_logging": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 20,
"fedora-KDE-live-iso-x86_64-*-64bit": 22, "fedora-KDE-live-iso-x86_64-*-64bit": 22,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 20, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 20,
"fedora-Server-dvd-iso-x86_64-*-64bit": 20, "fedora-Server-dvd-iso-x86_64-*-64bit": 20,
@ -819,6 +865,7 @@
}, },
"install_default": { "install_default": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-x86_64-*-uefi": 21,
"fedora-Everything-boot-iso-ppc64le-*-ppc64le": 62, "fedora-Everything-boot-iso-ppc64le-*-ppc64le": 62,
"fedora-Everything-boot-iso-x86_64-*-64bit": 10, "fedora-Everything-boot-iso-x86_64-*-64bit": 10,
"fedora-Everything-boot-iso-x86_64-*-uefi": 11, "fedora-Everything-boot-iso-x86_64-*-uefi": 11,
@ -838,6 +885,8 @@
}, },
"install_default_upload": { "install_default_upload": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 20,
"fedora-KDE-live-iso-x86_64-*-64bit": 15, "fedora-KDE-live-iso-x86_64-*-64bit": 15,
"fedora-Server-dvd-iso-aarch64-*-aarch64": 10, "fedora-Server-dvd-iso-aarch64-*-aarch64": 10,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 10, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 10,
@ -1502,6 +1551,8 @@
}, },
"release_identification": { "release_identification": {
"profiles": { "profiles": {
"fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20,
"fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 20,
"fedora-KDE-live-iso-x86_64-*-64bit": 50, "fedora-KDE-live-iso-x86_64-*-64bit": 50,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 50, "fedora-Server-dvd-iso-ppc64le-*-ppc64le": 50,
"fedora-Server-dvd-iso-x86_64-*-64bit": 50, "fedora-Server-dvd-iso-x86_64-*-64bit": 50,

View File

@ -15,6 +15,16 @@ sub run {
$wait_time = 180; $wait_time = 180;
} }
# handle initial-setup, if we're expecting it (the variable is set
# and this is an install test)
my $testname = get_var("TEST");
if (get_var("CONSOLE_INITIAL_SETUP") && index($testname, 'install') != -1) {
assert_screen "console_initial_setup", $wait_time;
type_string "q\n";
type_string "yes\n";
$wait_time = 180;
}
# Wait for the text login # Wait for the text login
boot_to_login_screen(timeout => $wait_time); boot_to_login_screen(timeout => $wait_time);

View File

@ -154,6 +154,12 @@ sub run {
# OK, if we're here, we got actions, so head to a console. Switch # OK, if we're here, we got actions, so head to a console. Switch
# to console after liveinst sometimes takes a while, so 30 secs # to console after liveinst sometimes takes a while, so 30 secs
$self->root_console(timeout=>30); $self->root_console(timeout=>30);
# this is something a couple of actions may need to know
my $mount = "/mnt/sysimage";
if (get_var("CANNED")) {
# finding the actual host system root is fun for ostree...
$mount = "/mnt/sysimage/ostree/deploy/fedora*/deploy/*.?";
}
if (grep {$_ eq 'consoletty0'} @actions) { if (grep {$_ eq 'consoletty0'} @actions) {
# somehow, by this point, localized keyboard layout has been # somehow, by this point, localized keyboard layout has been
# loaded for this tty, so for French and Arabic at least we # loaded for this tty, so for French and Arabic at least we
@ -164,20 +170,15 @@ sub run {
# in boot messages going to serial console on aarch64, we need # in boot messages going to serial console on aarch64, we need
# them on tty0. We also need 'quiet' so we don't get kernel # them on tty0. We also need 'quiet' so we don't get kernel
# messages, which screw up some needles # messages, which screw up some needles
assert_script_run 'sed -i -e "s,\(GRUB_CMDLINE_LINUX.*\)\",\1 console=tty0 quiet\",g" /mnt/sysimage/etc/default/grub'; assert_script_run 'sed -i -e "s,\(GRUB_CMDLINE_LINUX.*\)\",\1 console=tty0 quiet\",g" ' . $mount . '/etc/default/grub';
# regenerate the bootloader config # regenerate the bootloader config
assert_script_run "chroot /mnt/sysimage grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg"; assert_script_run "chroot $mount grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg";
} }
if (grep {$_ eq 'abrt'} @actions) { if (grep {$_ eq 'abrt'} @actions) {
# Chroot in the newly installed system and switch on ABRT systemwide # Chroot in the newly installed system and switch on ABRT systemwide
assert_script_run "chroot /mnt/sysimage abrt-auto-reporting 1"; assert_script_run "chroot $mount abrt-auto-reporting 1";
} }
if (grep {$_ eq 'rootpw'} @actions) { if (grep {$_ eq 'rootpw'} @actions) {
my $mount = "/mnt/sysimage";
if (get_var("CANNED")) {
# finding the actual host system root is fun for ostree...
$mount = "/mnt/sysimage/ostree/deploy/fedora/deploy/*.?";
}
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword"; my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
assert_script_run "echo 'root:$root_password' | chpasswd -R $mount"; assert_script_run "echo 'root:$root_password' | chpasswd -R $mount";
} }

View File

@ -34,15 +34,15 @@ sub run {
# correct variables to compare the system data with. # correct variables to compare the system data with.
# First, we know the basic stuff # First, we know the basic stuff
my $id = get_var("DISTRI"); # Should be "fedora" my $id = get_var("DISTRI"); # Should be "fedora"
my $isovar = get_var("ISO"); # Takes the build string for Silverblue variants. my $isovar = get_var("ISO"); # Takes the build string for canned variants.
# Split the ISO variable at "-" and read fields 4 (release version) # Split the ISO variable at "-" and read fields 4 (release version)
# and 5 (the build number). # and 5 (the build number).
my ($sbver, $sbnum) = (split /-/, $isovar)[4, 5]; my ($cannedver, $cannednum) = (split /-/, $isovar)[4, 5];
# Get rid of the ".iso" part of the tag. # Get rid of the ".iso" part of the tag.
$sbnum =~ s/\.iso//g; $cannednum =~ s/\.iso//g;
# Now, we merge the fields into one expression to create the correct Silverblue tag # Now, we merge the fields into one expression to create the correct canned tag
# that will contain both the version number and the build number. # that will contain both the version number and the build number.
my $silvertag = "$sbver.$sbnum"; my $cannedtag = "$cannedver.$cannednum";
my $name = ucfirst($id); my $name = ucfirst($id);
my $version_id = get_var("VERSION"); # Should be the version number or Rawhide. my $version_id = get_var("VERSION"); # Should be the version number or Rawhide.
my $varstr = spell_version_number($version_id); my $varstr = spell_version_number($version_id);
@ -69,6 +69,7 @@ sub run {
CoreOS => ["coreos", "CoreOS"], CoreOS => ["coreos", "CoreOS"],
KDE => ["kde", "KDE Plasma"], KDE => ["kde", "KDE Plasma"],
Silverblue => ["workstation", "Workstation Edition"], Silverblue => ["workstation", "Workstation Edition"],
IoT => ["iot", "IoT Edition"],
); );
if (exists($variants{$subvariant})) { if (exists($variants{$subvariant})) {
($variant_id, $variant) = @{$variants{$subvariant}}; ($variant_id, $variant) = @{$variants{$subvariant}};
@ -76,16 +77,18 @@ sub run {
} }
my $version = "$version_id ($varstr)"; my $version = "$version_id ($varstr)";
# Version looks differently when the build is a Silverblue. We need to form # Version looks different when the build is canned (because
# a different string here by using the above createad silvertag. # rpm-ostree fiddles around with it, documented at
if ($subvariant eq "Silverblue") { # https://github.com/projectatomic/rpm-ostree/blob/master/docs/manual/treefile.md )
$version = "$silvertag ($varstr)"; # We need to form a different string here by using the above created cannedtag.
if (get_var("CANNED")) {
$version = "$cannedtag ($varstr)";
} }
my $platform_id = "platform:f$version_id"; my $platform_id = "platform:f$version_id";
my $pretty = "$name $version_id ($varstr)"; my $pretty = "$name $version_id ($varstr)";
# Same problem is when testing the PRETTY_NAME. # Same problem is when testing the PRETTY_NAME.
if ($subvariant eq "Silverblue") { if (get_var("CANNED")) {
$pretty = "$name $silvertag ($varstr)"; $pretty = "$name $cannedtag ($varstr)";
} }
#Now. we can start testing the real values from the installed system. #Now. we can start testing the real values from the installed system.