Merge "updater: Remove the redundant check on line count."
This commit is contained in:
commit
4a8f5ec06d
2 changed files with 24 additions and 11 deletions
|
@ -100,7 +100,8 @@ static void BuildUpdatePackage(const PackageEntries& entries, int fd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void RunBlockImageUpdate(bool is_verify, const PackageEntries& entries,
|
static void RunBlockImageUpdate(bool is_verify, const PackageEntries& entries,
|
||||||
const std::string& image_file, const std::string& result) {
|
const std::string& image_file, const std::string& result,
|
||||||
|
CauseCode cause_code = kNoCause) {
|
||||||
CHECK(entries.find("transfer_list") != entries.end());
|
CHECK(entries.find("transfer_list") != entries.end());
|
||||||
|
|
||||||
// Build the update package.
|
// Build the update package.
|
||||||
|
@ -124,7 +125,7 @@ static void RunBlockImageUpdate(bool is_verify, const PackageEntries& entries,
|
||||||
std::string script = is_verify ? "block_image_verify" : "block_image_update";
|
std::string script = is_verify ? "block_image_verify" : "block_image_update";
|
||||||
script += R"((")" + image_file + R"(", package_extract_file("transfer_list"), ")" + new_data +
|
script += R"((")" + image_file + R"(", package_extract_file("transfer_list"), ")" + new_data +
|
||||||
R"(", "patch_data"))";
|
R"(", "patch_data"))";
|
||||||
expect(result.c_str(), script.c_str(), kNoCause, &updater_info);
|
expect(result.c_str(), script.c_str(), cause_code, &updater_info);
|
||||||
|
|
||||||
ASSERT_EQ(0, fclose(updater_info.cmd_pipe));
|
ASSERT_EQ(0, fclose(updater_info.cmd_pipe));
|
||||||
CloseArchive(handle);
|
CloseArchive(handle);
|
||||||
|
@ -504,6 +505,24 @@ TEST_F(UpdaterTest, show_progress) {
|
||||||
ASSERT_EQ(0, fclose(updater_info.cmd_pipe));
|
ASSERT_EQ(0, fclose(updater_info.cmd_pipe));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(UpdaterTest, block_image_update_parsing_error) {
|
||||||
|
std::vector<std::string> transfer_list{
|
||||||
|
// clang-format off
|
||||||
|
"4",
|
||||||
|
"2",
|
||||||
|
"0",
|
||||||
|
// clang-format on
|
||||||
|
};
|
||||||
|
|
||||||
|
PackageEntries entries{
|
||||||
|
{ "new_data", "" },
|
||||||
|
{ "patch_data", "" },
|
||||||
|
{ "transfer_list", android::base::Join(transfer_list, '\n') },
|
||||||
|
};
|
||||||
|
|
||||||
|
RunBlockImageUpdate(false, entries, image_file_, "", kArgsParsingFailure);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(UpdaterTest, block_image_update_patch_data) {
|
TEST_F(UpdaterTest, block_image_update_patch_data) {
|
||||||
std::string src_content = std::string(4096, 'a') + std::string(4096, 'c');
|
std::string src_content = std::string(4096, 'a') + std::string(4096, 'c');
|
||||||
std::string tgt_content = std::string(4096, 'b') + std::string(4096, 'd');
|
std::string tgt_content = std::string(4096, 'b') + std::string(4096, 'd');
|
||||||
|
|
|
@ -1628,9 +1628,10 @@ static Value* PerformBlockImageUpdate(const char* name, State* state,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static constexpr size_t kTransferListHeaderLines = 4;
|
||||||
std::vector<std::string> lines = android::base::Split(transfer_list_value->data, "\n");
|
std::vector<std::string> lines = android::base::Split(transfer_list_value->data, "\n");
|
||||||
if (lines.size() < 2) {
|
if (lines.size() < kTransferListHeaderLines) {
|
||||||
ErrorAbort(state, kArgsParsingFailure, "too few lines in the transfer list [%zd]",
|
ErrorAbort(state, kArgsParsingFailure, "too few lines in the transfer list [%zu]",
|
||||||
lines.size());
|
lines.size());
|
||||||
return StringValue("");
|
return StringValue("");
|
||||||
}
|
}
|
||||||
|
@ -1654,12 +1655,6 @@ static Value* PerformBlockImageUpdate(const char* name, State* state,
|
||||||
return StringValue("t");
|
return StringValue("t");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lines.size() < 4) {
|
|
||||||
ErrorAbort(state, kArgsParsingFailure, "too few lines in the transfer list [%zu]",
|
|
||||||
lines.size());
|
|
||||||
return StringValue("");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Third line is how many stash entries are needed simultaneously.
|
// Third line is how many stash entries are needed simultaneously.
|
||||||
LOG(INFO) << "maximum stash entries " << lines[2];
|
LOG(INFO) << "maximum stash entries " << lines[2];
|
||||||
|
|
||||||
|
@ -1698,7 +1693,6 @@ static Value* PerformBlockImageUpdate(const char* name, State* state,
|
||||||
|
|
||||||
int rc = -1;
|
int rc = -1;
|
||||||
|
|
||||||
static constexpr size_t kTransferListHeaderLines = 4;
|
|
||||||
// Subsequent lines are all individual transfer commands
|
// Subsequent lines are all individual transfer commands
|
||||||
for (size_t i = kTransferListHeaderLines; i < lines.size(); i++) {
|
for (size_t i = kTransferListHeaderLines; i < lines.size(); i++) {
|
||||||
const std::string& line = lines[i];
|
const std::string& line = lines[i];
|
||||||
|
|
Loading…
Reference in a new issue