diff options
author | David Anderson <dvander@google.com> | 2020-05-18 17:38:47 +0000 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2020-05-18 18:00:49 +0000 |
commit | d028b91f4a795db858f60d040fd1e6de13b1c32f (patch) | |
tree | e022f6ba75fbb84ba6d2f36036ea1148fbc48ee3 /boot | |
parent | 41084e7ef46b698d47c3229a0740963e337a9fc4 (diff) |
Re-enable boot HAL tests and make sure they restore previous slot flags.
Bug: 154667790
Test: set slot to a
run SetActiveBootSlot/SetSlotAsUnbootable tests
fastboot reboot bootloader
fastboot getvar current-slot shoud be a
repeat on b slot
Change-Id: Icff45d3949d0ad76d22bdf8830c0903e81027b6e
Diffstat (limited to 'boot')
-rw-r--r-- | boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp b/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp index 08958bd1f9..2f6b23ee5c 100644 --- a/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp +++ b/boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp @@ -80,9 +80,11 @@ TEST_P(BootHidlTest, MarkBootSuccessful) { } } -// TODO(b/156557331): The test should switch back to the original boot slot. -// Sanity check Boot::setActiveBootSlot() on good and bad inputs. -TEST_P(BootHidlTest, DISABLED_SetActiveBootSlot) { +TEST_P(BootHidlTest, SetActiveBootSlot) { + Slot curSlot = boot->getCurrentSlot(); + Slot otherSlot = curSlot ? 0 : 1; + auto otherBootable = boot->isSlotBootable(otherSlot); + for (Slot s = 0; s < 2; s++) { CommandResult cr; Return<void> result = boot->setActiveBootSlot(s, generate_callback(&cr)); @@ -91,7 +93,17 @@ TEST_P(BootHidlTest, DISABLED_SetActiveBootSlot) { { // Restore original flags to avoid problems on reboot CommandResult cr; - Return<void> result = boot->markBootSuccessful(generate_callback(&cr)); + auto result = boot->setActiveBootSlot(curSlot, generate_callback(&cr)); + EXPECT_TRUE(result.isOk()); + EXPECT_TRUE(cr.success); + + if (otherBootable == BoolResult::FALSE) { + result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); + EXPECT_TRUE(result.isOk()); + EXPECT_TRUE(cr.success); + } + + result = boot->markBootSuccessful(generate_callback(&cr)); EXPECT_TRUE(result.isOk()); EXPECT_TRUE(cr.success); } @@ -104,22 +116,23 @@ TEST_P(BootHidlTest, DISABLED_SetActiveBootSlot) { } } -// TODO(b/156557331): It should switch back the original boot slot after testing. -// Sanity check Boot::setSlotAsUnbootable() on good and bad inputs. -TEST_P(BootHidlTest, DISABLED_SetSlotAsUnbootable) { +TEST_P(BootHidlTest, SetSlotAsUnbootable) { + Slot curSlot = boot->getCurrentSlot(); + Slot otherSlot = curSlot ? 0 : 1; + auto otherBootable = boot->isSlotBootable(otherSlot); { CommandResult cr; - Slot curSlot = boot->getCurrentSlot(); - Slot otherSlot = curSlot ? 0 : 1; Return<void> result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); if (cr.success) { EXPECT_EQ(BoolResult::FALSE, boot->isSlotBootable(otherSlot)); // Restore original flags to avoid problems on reboot - result = boot->setActiveBootSlot(otherSlot, generate_callback(&cr)); - EXPECT_TRUE(result.isOk()); - EXPECT_TRUE(cr.success); + if (otherBootable == BoolResult::TRUE) { + result = boot->setActiveBootSlot(otherSlot, generate_callback(&cr)); + EXPECT_TRUE(result.isOk()); + EXPECT_TRUE(cr.success); + } result = boot->setActiveBootSlot(curSlot, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); EXPECT_TRUE(cr.success); |