diff --git a/tests/iot_rpmostree_rebase.pm b/tests/iot_rpmostree_rebase.pm index c34b312a..1194f635 100644 --- a/tests/iot_rpmostree_rebase.pm +++ b/tests/iot_rpmostree_rebase.pm @@ -21,6 +21,23 @@ sub run { unless (script_run "rpm-ostree status -b | grep stable") { $rebase = "devel"; } + + # FIXME special cases for read-only transition from 36 to 37 + # we can drop these (revert the whole relevant commit) once + # 37 is stable + my $orig; + if (get_var("CURRREL") eq "36") { + if (get_var("VERSION") eq "37") { + # rebase to rawhide + $rebase = "rawhide"; + $orig = "devel"; + } + elsif (get_var("VERSION") eq "38") { + # rebase to devel + $rebase = "devel"; + $orig = "rawhide"; + } + } # 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; @@ -29,12 +46,7 @@ sub run { $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; - } + validate_script_output "rpm-ostree status -b", sub { m/$rebase/ }, 300; # rollback and reboot validate_script_output "rpm-ostree rollback", sub { m/systemctl reboot/ }, 300; @@ -44,10 +56,13 @@ sub run { $self->root_console(tty => 3); # check to make sure rollback successful, also account for branched (devel) - if ($rebase eq "devel") { + if ($orig) { + validate_script_output "rpm-ostree status -b", sub { m/$orig/ }, 300; + } + elsif ($rebase eq "devel") { validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300; } - if ($rebase eq "stable") { + elsif ($rebase eq "stable") { validate_script_output "rpm-ostree status -b", sub { m/rawhide|devel/ }, 300; } }