From 093da03139747a79ed8e4702212421338dfdba9b Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Tue, 20 Sep 2022 15:48:22 -0700 Subject: [PATCH] Try and workaround IoT rebase problems with F37 read-only change The change to read-only sysroot for IoT in F37 causes problems with this rebase test. It's not supported to rebase from an RO release (37 or 38) to a non-RO release (36). So we need to make sure we don't try and do that. This uses some quick hack logic, but it should be OK and sufficiently specific not to break anything even if we forget to remove it in future. Signed-off-by: Adam Williamson --- tests/iot_rpmostree_rebase.pm | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) 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; } }