Loading boot/1.0/vts/functional/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -19,5 +19,5 @@ cc_test { defaults: ["VtsHalTargetTestDefaults"], srcs: ["VtsHalBootV1_0TargetTest.cpp"], static_libs: ["android.hardware.boot@1.0"], test_suites: ["general-tests"], test_suites: ["general-tests", "vts-core"], } boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp +92 −111 Original line number Diff line number Diff line Loading @@ -21,8 +21,9 @@ #include <android/hardware/boot/1.0/IBootControl.h> #include <VtsHalHidlTargetTestBase.h> #include <VtsHalHidlTargetTestEnvBase.h> #include <gtest/gtest.h> #include <hidl/GtestPrinter.h> #include <hidl/ServiceManagement.h> #include <unordered_set> Loading @@ -37,24 +38,11 @@ using std::string; using std::unordered_set; using std::vector; // Test environment for Boot HIDL HAL. class BootHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { public: // get the test environment singleton static BootHidlEnvironment* Instance() { static BootHidlEnvironment* instance = new BootHidlEnvironment; return instance; } virtual void registerTestServices() override { registerTestService<IBootControl>(); } }; // The main test class for the Boot HIDL HAL. class BootHidlTest : public ::testing::VtsHalHidlTargetTestBase { class BootHidlTest : public ::testing::TestWithParam<std::string> { public: virtual void SetUp() override { boot = ::testing::VtsHalHidlTargetTestBase::getService<IBootControl>( BootHidlEnvironment::Instance()->getServiceName<IBootControl>()); boot = IBootControl::getService(GetParam()); ASSERT_NE(boot, nullptr); } Loading @@ -68,20 +56,20 @@ auto generate_callback(CommandResult *dest) { } // Sanity check Boot::getNumberSlots(). TEST_F(BootHidlTest, GetNumberSlots) { TEST_P(BootHidlTest, GetNumberSlots) { uint32_t slots = boot->getNumberSlots(); EXPECT_LE((uint32_t)2, slots); } // Sanity check Boot::getCurrentSlot(). TEST_F(BootHidlTest, GetCurrentSlot) { TEST_P(BootHidlTest, GetCurrentSlot) { Slot curSlot = boot->getCurrentSlot(); uint32_t slots = boot->getNumberSlots(); EXPECT_LT(curSlot, slots); } // Sanity check Boot::markBootSuccessful(). TEST_F(BootHidlTest, MarkBootSuccessful) { TEST_P(BootHidlTest, MarkBootSuccessful) { CommandResult cr; Return<void> result = boot->markBootSuccessful(generate_callback(&cr)); ASSERT_TRUE(result.isOk()); Loading @@ -93,7 +81,7 @@ TEST_F(BootHidlTest, MarkBootSuccessful) { } // Sanity check Boot::setActiveBootSlot() on good and bad inputs. TEST_F(BootHidlTest, SetActiveBootSlot) { TEST_P(BootHidlTest, SetActiveBootSlot) { for (Slot s = 0; s < 2; s++) { CommandResult cr; Return<void> result = boot->setActiveBootSlot(s, generate_callback(&cr)); Loading @@ -109,21 +97,19 @@ TEST_F(BootHidlTest, SetActiveBootSlot) { { CommandResult cr; uint32_t slots = boot->getNumberSlots(); Return<void> result = boot->setActiveBootSlot(slots, generate_callback(&cr)); Return<void> result = boot->setActiveBootSlot(slots, generate_callback(&cr)); ASSERT_TRUE(result.isOk()); EXPECT_EQ(false, cr.success); } } // Sanity check Boot::setSlotAsUnbootable() on good and bad inputs. TEST_F(BootHidlTest, SetSlotAsUnbootable) { TEST_P(BootHidlTest, SetSlotAsUnbootable) { { CommandResult cr; Slot curSlot = boot->getCurrentSlot(); Slot otherSlot = curSlot ? 0 : 1; Return<void> result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); Return<void> result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); if (cr.success) { EXPECT_EQ(BoolResult::FALSE, boot->isSlotBootable(otherSlot)); Loading @@ -143,15 +129,14 @@ TEST_F(BootHidlTest, SetSlotAsUnbootable) { { CommandResult cr; uint32_t slots = boot->getNumberSlots(); Return<void> result = boot->setSlotAsUnbootable(slots, generate_callback(&cr)); Return<void> result = boot->setSlotAsUnbootable(slots, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); EXPECT_EQ(false, cr.success); } } // Sanity check Boot::isSlotBootable() on good and bad inputs. TEST_F(BootHidlTest, IsSlotBootable) { TEST_P(BootHidlTest, IsSlotBootable) { for (Slot s = 0; s < 2; s++) { EXPECT_NE(BoolResult::INVALID_SLOT, boot->isSlotBootable(s)); } Loading @@ -160,7 +145,7 @@ TEST_F(BootHidlTest, IsSlotBootable) { } // Sanity check Boot::isSlotMarkedSuccessful() on good and bad inputs. TEST_F(BootHidlTest, IsSlotMarkedSuccessful) { TEST_P(BootHidlTest, IsSlotMarkedSuccessful) { for (Slot s = 0; s < 2; s++) { EXPECT_NE(BoolResult::INVALID_SLOT, boot->isSlotMarkedSuccessful(s)); } Loading @@ -169,7 +154,7 @@ TEST_F(BootHidlTest, IsSlotMarkedSuccessful) { } // Sanity check Boot::getSuffix() on good and bad inputs. TEST_F(BootHidlTest, GetSuffix) { TEST_P(BootHidlTest, GetSuffix) { string suffixStr; unordered_set<string> suffixes; auto cb = [&](hidl_string suffix) { suffixStr = suffix.c_str(); }; Loading @@ -191,11 +176,7 @@ TEST_F(BootHidlTest, GetSuffix) { } } int main(int argc, char **argv) { ::testing::AddGlobalTestEnvironment(BootHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); BootHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); LOG(INFO) << "Test result = " << status; return status; } INSTANTIATE_TEST_SUITE_P( PerInstance, BootHidlTest, testing::ValuesIn(android::hardware::getAllHalInstanceNames(IBootControl::descriptor)), android::hardware::PrintInstanceNameToString); Loading
boot/1.0/vts/functional/Android.bp +1 −1 Original line number Diff line number Diff line Loading @@ -19,5 +19,5 @@ cc_test { defaults: ["VtsHalTargetTestDefaults"], srcs: ["VtsHalBootV1_0TargetTest.cpp"], static_libs: ["android.hardware.boot@1.0"], test_suites: ["general-tests"], test_suites: ["general-tests", "vts-core"], }
boot/1.0/vts/functional/VtsHalBootV1_0TargetTest.cpp +92 −111 Original line number Diff line number Diff line Loading @@ -21,8 +21,9 @@ #include <android/hardware/boot/1.0/IBootControl.h> #include <VtsHalHidlTargetTestBase.h> #include <VtsHalHidlTargetTestEnvBase.h> #include <gtest/gtest.h> #include <hidl/GtestPrinter.h> #include <hidl/ServiceManagement.h> #include <unordered_set> Loading @@ -37,24 +38,11 @@ using std::string; using std::unordered_set; using std::vector; // Test environment for Boot HIDL HAL. class BootHidlEnvironment : public ::testing::VtsHalHidlTargetTestEnvBase { public: // get the test environment singleton static BootHidlEnvironment* Instance() { static BootHidlEnvironment* instance = new BootHidlEnvironment; return instance; } virtual void registerTestServices() override { registerTestService<IBootControl>(); } }; // The main test class for the Boot HIDL HAL. class BootHidlTest : public ::testing::VtsHalHidlTargetTestBase { class BootHidlTest : public ::testing::TestWithParam<std::string> { public: virtual void SetUp() override { boot = ::testing::VtsHalHidlTargetTestBase::getService<IBootControl>( BootHidlEnvironment::Instance()->getServiceName<IBootControl>()); boot = IBootControl::getService(GetParam()); ASSERT_NE(boot, nullptr); } Loading @@ -68,20 +56,20 @@ auto generate_callback(CommandResult *dest) { } // Sanity check Boot::getNumberSlots(). TEST_F(BootHidlTest, GetNumberSlots) { TEST_P(BootHidlTest, GetNumberSlots) { uint32_t slots = boot->getNumberSlots(); EXPECT_LE((uint32_t)2, slots); } // Sanity check Boot::getCurrentSlot(). TEST_F(BootHidlTest, GetCurrentSlot) { TEST_P(BootHidlTest, GetCurrentSlot) { Slot curSlot = boot->getCurrentSlot(); uint32_t slots = boot->getNumberSlots(); EXPECT_LT(curSlot, slots); } // Sanity check Boot::markBootSuccessful(). TEST_F(BootHidlTest, MarkBootSuccessful) { TEST_P(BootHidlTest, MarkBootSuccessful) { CommandResult cr; Return<void> result = boot->markBootSuccessful(generate_callback(&cr)); ASSERT_TRUE(result.isOk()); Loading @@ -93,7 +81,7 @@ TEST_F(BootHidlTest, MarkBootSuccessful) { } // Sanity check Boot::setActiveBootSlot() on good and bad inputs. TEST_F(BootHidlTest, SetActiveBootSlot) { TEST_P(BootHidlTest, SetActiveBootSlot) { for (Slot s = 0; s < 2; s++) { CommandResult cr; Return<void> result = boot->setActiveBootSlot(s, generate_callback(&cr)); Loading @@ -109,21 +97,19 @@ TEST_F(BootHidlTest, SetActiveBootSlot) { { CommandResult cr; uint32_t slots = boot->getNumberSlots(); Return<void> result = boot->setActiveBootSlot(slots, generate_callback(&cr)); Return<void> result = boot->setActiveBootSlot(slots, generate_callback(&cr)); ASSERT_TRUE(result.isOk()); EXPECT_EQ(false, cr.success); } } // Sanity check Boot::setSlotAsUnbootable() on good and bad inputs. TEST_F(BootHidlTest, SetSlotAsUnbootable) { TEST_P(BootHidlTest, SetSlotAsUnbootable) { { CommandResult cr; Slot curSlot = boot->getCurrentSlot(); Slot otherSlot = curSlot ? 0 : 1; Return<void> result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); Return<void> result = boot->setSlotAsUnbootable(otherSlot, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); if (cr.success) { EXPECT_EQ(BoolResult::FALSE, boot->isSlotBootable(otherSlot)); Loading @@ -143,15 +129,14 @@ TEST_F(BootHidlTest, SetSlotAsUnbootable) { { CommandResult cr; uint32_t slots = boot->getNumberSlots(); Return<void> result = boot->setSlotAsUnbootable(slots, generate_callback(&cr)); Return<void> result = boot->setSlotAsUnbootable(slots, generate_callback(&cr)); EXPECT_TRUE(result.isOk()); EXPECT_EQ(false, cr.success); } } // Sanity check Boot::isSlotBootable() on good and bad inputs. TEST_F(BootHidlTest, IsSlotBootable) { TEST_P(BootHidlTest, IsSlotBootable) { for (Slot s = 0; s < 2; s++) { EXPECT_NE(BoolResult::INVALID_SLOT, boot->isSlotBootable(s)); } Loading @@ -160,7 +145,7 @@ TEST_F(BootHidlTest, IsSlotBootable) { } // Sanity check Boot::isSlotMarkedSuccessful() on good and bad inputs. TEST_F(BootHidlTest, IsSlotMarkedSuccessful) { TEST_P(BootHidlTest, IsSlotMarkedSuccessful) { for (Slot s = 0; s < 2; s++) { EXPECT_NE(BoolResult::INVALID_SLOT, boot->isSlotMarkedSuccessful(s)); } Loading @@ -169,7 +154,7 @@ TEST_F(BootHidlTest, IsSlotMarkedSuccessful) { } // Sanity check Boot::getSuffix() on good and bad inputs. TEST_F(BootHidlTest, GetSuffix) { TEST_P(BootHidlTest, GetSuffix) { string suffixStr; unordered_set<string> suffixes; auto cb = [&](hidl_string suffix) { suffixStr = suffix.c_str(); }; Loading @@ -191,11 +176,7 @@ TEST_F(BootHidlTest, GetSuffix) { } } int main(int argc, char **argv) { ::testing::AddGlobalTestEnvironment(BootHidlEnvironment::Instance()); ::testing::InitGoogleTest(&argc, argv); BootHidlEnvironment::Instance()->init(&argc, argv); int status = RUN_ALL_TESTS(); LOG(INFO) << "Test result = " << status; return status; } INSTANTIATE_TEST_SUITE_P( PerInstance, BootHidlTest, testing::ValuesIn(android::hardware::getAllHalInstanceNames(IBootControl::descriptor)), android::hardware::PrintInstanceNameToString);