summaryrefslogtreecommitdiffstats
path: root/tests/component/updater_test.cpp
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2018-05-25 06:43:50 +0200
committerTao Bao <tbao@google.com>2018-05-25 06:49:58 +0200
commit7064aa286275e824927587bb3c99a00733de0c69 (patch)
treecdd56e9c0de90719328da8fdd45feeedbb49f27c /tests/component/updater_test.cpp
parentMerge "tests: Refactor the common lines in UpdaterTest." (diff)
downloadandroid_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar.gz
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar.bz2
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar.lz
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar.xz
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.tar.zst
android_bootable_recovery-7064aa286275e824927587bb3c99a00733de0c69.zip
Diffstat (limited to 'tests/component/updater_test.cpp')
-rw-r--r--tests/component/updater_test.cpp28
1 files changed, 15 insertions, 13 deletions
diff --git a/tests/component/updater_test.cpp b/tests/component/updater_test.cpp
index d9582155e..de8fafd30 100644
--- a/tests/component/updater_test.cpp
+++ b/tests/component/updater_test.cpp
@@ -143,13 +143,20 @@ class UpdaterTest : public ::testing::Test {
RegisterInstallFunctions();
RegisterBlockImageFunctions();
+ // Each test is run in a separate process (isolated mode). Shared temporary files won't cause
+ // conflicts.
Paths::Get().set_cache_temp_source(temp_saved_source_.path);
+ Paths::Get().set_last_command_file(temp_last_command_.path);
Paths::Get().set_stash_directory_base(temp_stash_base_.path);
+ last_command_file_ = temp_last_command_.path;
image_file_ = image_temp_file_.path;
}
void TearDown() override {
+ // Clean up the last_command_file if any.
+ ASSERT_TRUE(android::base::RemoveFileIfExists(last_command_file_));
+
// Clear partition updated marker if any.
std::string updated_marker{ temp_stash_base_.path };
updated_marker += "/" + get_sha1(image_temp_file_.path) + ".UPDATED";
@@ -158,9 +165,11 @@ class UpdaterTest : public ::testing::Test {
TemporaryFile temp_saved_source_;
TemporaryDir temp_stash_base_;
+ std::string last_command_file_;
std::string image_file_;
private:
+ TemporaryFile temp_last_command_;
TemporaryFile image_temp_file_;
};
@@ -714,14 +723,12 @@ TEST_F(UpdaterTest, last_command_update) {
// "2\nstash " + block3_hash + " 2,2,3"
std::string last_command_content = "2\n" + transfer_list_fail[kTransferListHeaderLines + 2];
- TemporaryFile last_command_file;
- Paths::Get().set_last_command_file(last_command_file.path);
RunBlockImageUpdate(false, entries, image_file_, "");
// Expect last_command to contain the last stash command.
std::string last_command_actual;
- ASSERT_TRUE(android::base::ReadFileToString(last_command_file.path, &last_command_actual));
+ ASSERT_TRUE(android::base::ReadFileToString(last_command_file_, &last_command_actual));
EXPECT_EQ(last_command_content, last_command_actual);
std::string updated_contents;
@@ -764,16 +771,13 @@ TEST_F(UpdaterTest, last_command_update_unresumable) {
ASSERT_TRUE(android::base::WriteStringToFile(block1 + block1, image_file_));
- // Set up the last_command_file.
- TemporaryFile last_command_file;
- Paths::Get().set_last_command_file(last_command_file.path);
std::string last_command_content = "0\n" + transfer_list_unresumable[kTransferListHeaderLines];
- ASSERT_TRUE(android::base::WriteStringToFile(last_command_content, last_command_file.path));
+ ASSERT_TRUE(android::base::WriteStringToFile(last_command_content, last_command_file_));
RunBlockImageUpdate(false, entries, image_file_, "");
// The last_command_file will be deleted if the update encounters an unresumable failure later.
- ASSERT_EQ(-1, access(last_command_file.path, R_OK));
+ ASSERT_EQ(-1, access(last_command_file_.c_str(), R_OK));
}
TEST_F(UpdaterTest, last_command_verify) {
@@ -805,18 +809,16 @@ TEST_F(UpdaterTest, last_command_verify) {
ASSERT_TRUE(android::base::WriteStringToFile(block1 + block1 + block3, image_file_));
- TemporaryFile last_command_file;
- Paths::Get().set_last_command_file(last_command_file.path);
// Last command: "move " + block1_hash + " 2,1,2 1 2,0,1"
std::string last_command_content = "2\n" + transfer_list_verify[kTransferListHeaderLines + 2];
// First run: expect the verification to succeed and the last_command_file is intact.
- ASSERT_TRUE(android::base::WriteStringToFile(last_command_content, last_command_file.path));
+ ASSERT_TRUE(android::base::WriteStringToFile(last_command_content, last_command_file_));
RunBlockImageUpdate(true, entries, image_file_, "t");
std::string last_command_actual;
- ASSERT_TRUE(android::base::ReadFileToString(last_command_file.path, &last_command_actual));
+ ASSERT_TRUE(android::base::ReadFileToString(last_command_file_, &last_command_actual));
EXPECT_EQ(last_command_content, last_command_actual);
// Second run with a mismatching block image: expect the verification to succeed but
@@ -824,5 +826,5 @@ TEST_F(UpdaterTest, last_command_verify) {
// expected contents for the second move command.
ASSERT_TRUE(android::base::WriteStringToFile(block1 + block2 + block3, image_file_));
RunBlockImageUpdate(true, entries, image_file_, "t");
- ASSERT_EQ(-1, access(last_command_file.path, R_OK));
+ ASSERT_EQ(-1, access(last_command_file_.c_str(), R_OK));
}