diff options
Diffstat (limited to 'tests/component')
-rw-r--r-- | tests/component/bootloader_message_test.cpp | 44 | ||||
-rw-r--r-- | tests/component/uncrypt_test.cpp | 20 |
2 files changed, 61 insertions, 3 deletions
diff --git a/tests/component/bootloader_message_test.cpp b/tests/component/bootloader_message_test.cpp index dbcaf619e..c32519d80 100644 --- a/tests/component/bootloader_message_test.cpp +++ b/tests/component/bootloader_message_test.cpp @@ -14,23 +14,38 @@ * limitations under the License. */ +#include <string> +#include <vector> + #include <android-base/strings.h> #include <bootloader_message/bootloader_message.h> #include <gtest/gtest.h> -#include <string> -#include <vector> +#include "common/component_test_util.h" class BootloaderMessageTest : public ::testing::Test { protected: + BootloaderMessageTest() : has_misc(true) {} + + virtual void SetUp() override { + has_misc = parse_misc(); + } + virtual void TearDown() override { // Clear the BCB. std::string err; ASSERT_TRUE(clear_bootloader_message(&err)) << "Failed to clear BCB: " << err; } + + bool has_misc; }; TEST_F(BootloaderMessageTest, clear_bootloader_message) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Clear the BCB. std::string err; ASSERT_TRUE(clear_bootloader_message(&err)) << "Failed to clear BCB: " << err; @@ -45,6 +60,11 @@ TEST_F(BootloaderMessageTest, clear_bootloader_message) { } TEST_F(BootloaderMessageTest, read_and_write_bootloader_message) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Write the BCB. bootloader_message boot = {}; strlcpy(boot.command, "command", sizeof(boot.command)); @@ -63,6 +83,11 @@ TEST_F(BootloaderMessageTest, read_and_write_bootloader_message) { } TEST_F(BootloaderMessageTest, write_bootloader_message_options) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Write the options to BCB. std::vector<std::string> options = { "option1", "option2" }; std::string err; @@ -88,6 +113,11 @@ TEST_F(BootloaderMessageTest, write_bootloader_message_options) { } TEST_F(BootloaderMessageTest, write_bootloader_message_options_empty) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Write empty vector. std::vector<std::string> options; std::string err; @@ -109,6 +139,11 @@ TEST_F(BootloaderMessageTest, write_bootloader_message_options_empty) { } TEST_F(BootloaderMessageTest, write_bootloader_message_options_long) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Write super long message. std::vector<std::string> options; for (int i = 0; i < 100; i++) { @@ -139,6 +174,11 @@ TEST_F(BootloaderMessageTest, write_bootloader_message_options_long) { } TEST_F(BootloaderMessageTest, update_bootloader_message) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Inject some bytes into boot, which should be not overwritten later. bootloader_message boot; strlcpy(boot.recovery, "random message", sizeof(boot.recovery)); diff --git a/tests/component/uncrypt_test.cpp b/tests/component/uncrypt_test.cpp index a554c3e48..4f2b8164f 100644 --- a/tests/component/uncrypt_test.cpp +++ b/tests/component/uncrypt_test.cpp @@ -29,6 +29,8 @@ #include <bootloader_message/bootloader_message.h> #include <gtest/gtest.h> +#include "common/component_test_util.h" + static const std::string UNCRYPT_SOCKET = "/dev/socket/uncrypt"; static const std::string INIT_SVC_SETUP_BCB = "init.svc.setup-bcb"; static const std::string INIT_SVC_CLEAR_BCB = "init.svc.clear-bcb"; @@ -37,7 +39,9 @@ static constexpr int SOCKET_CONNECTION_MAX_RETRY = 30; class UncryptTest : public ::testing::Test { protected: - virtual void SetUp() { + UncryptTest() : has_misc(true) {} + + virtual void SetUp() override { ASSERT_TRUE(android::base::SetProperty("ctl.stop", "setup-bcb")); ASSERT_TRUE(android::base::SetProperty("ctl.stop", "clear-bcb")); ASSERT_TRUE(android::base::SetProperty("ctl.stop", "uncrypt")); @@ -57,10 +61,19 @@ class UncryptTest : public ::testing::Test { } ASSERT_TRUE(success) << "uncrypt service is not available."; + + has_misc = parse_misc(); } + + bool has_misc; }; TEST_F(UncryptTest, setup_bcb) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Trigger the setup-bcb service. ASSERT_TRUE(android::base::SetProperty("ctl.start", "setup-bcb")); @@ -126,6 +139,11 @@ TEST_F(UncryptTest, setup_bcb) { } TEST_F(UncryptTest, clear_bcb) { + if (!has_misc) { + GTEST_LOG_(INFO) << "Test skipped due to no /misc partition found on the device."; + return; + } + // Trigger the clear-bcb service. ASSERT_TRUE(android::base::SetProperty("ctl.start", "clear-bcb")); |