From fd440bfd3a19ef03f0b463456c39bc110ea9cc94 Mon Sep 17 00:00:00 2001 From: Paul Whalen Date: Thu, 4 Jun 2020 14:00:32 -0400 Subject: [PATCH] Add QA:Testcase_RpmOstree_Rebase for iot testing (#167) Signed-off-by: Paul Whalen --- templates.fif.json | 14 ++++++++ tests/iot_rpmostree_rebase.pm | 61 +++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 tests/iot_rpmostree_rebase.pm diff --git a/templates.fif.json b/templates.fif.json index 76a0d14f..d0c35c56 100644 --- a/templates.fif.json +++ b/templates.fif.json @@ -1518,6 +1518,20 @@ "START_AFTER_TEST": "install_default_upload" } }, + "iot_rpmostree_rebase": { + "profiles": { + "fedora-IoT-dvd_ostree-iso-aarch64-*-aarch64": 20, + "fedora-IoT-dvd_ostree-iso-x86_64-*-64bit": 40 + }, + "settings": { + "BOOTFROM": "c", + "HDD_1": "disk_%FLAVOR%_%MACHINE%.qcow2", + "POSTINSTALL": "iot_rpmostree_rebase", + "ROOT_PASSWORD": "weakpassword", + "START_AFTER_TEST": "install_default_upload", + "USER_LOGIN": "false" + } + }, "mediakit_fileconflicts": { "profiles": { "fedora-Server-dvd-iso-aarch64-*-aarch64": 10, diff --git a/tests/iot_rpmostree_rebase.pm b/tests/iot_rpmostree_rebase.pm new file mode 100644 index 00000000..55b47fd5 --- /dev/null +++ b/tests/iot_rpmostree_rebase.pm @@ -0,0 +1,61 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; + +sub run { + + my $self = shift; + $self->root_console(tty=>3); + + # list available branches + assert_script_run "ostree remote refs fedora-iot"; + + # check arch + my $arch = lc(get_var("ARCH")); + + # set default for rawhide or devel + my $rebase = "stable"; + + # if testing the current release, rebase to devel + unless (script_run "rpm-ostree status -b | grep stable") { + $rebase = "devel" + } + # rebase to the appropriate release, arch + validate_script_output "rpm-ostree rebase fedora/${rebase}/${arch}/iot", sub { m/systemctl reboot/ }, 300; + script_run "systemctl reboot", 0; + + boot_to_login_screen; + $self->root_console(tty=>3); + + # check booted branch to make sure successful rebase + if ($rebase eq "devel") { + validate_script_output "rpm-ostree status -b", sub { m/devel/ }, 300; + } + if ($rebase eq "stable") { + validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300; + } + + # rollback and reboot + validate_script_output "rpm-ostree rollback", sub { m/systemctl reboot/ }, 300; + script_run "systemctl reboot", 0; + + boot_to_login_screen; + $self->root_console(tty=>3); + + # check to make sure rollback successful, also account for branched (devel) + if ($rebase eq "devel") { + validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300; + } + if ($rebase eq "stable") { + validate_script_output "rpm-ostree status -b", sub { m/rawhide|devel/ }, 300; + } +} + +sub test_flags { + return { fatal => 1 }; +} + +1; + +# vim: set sw=4 et: