Merge "Remove the debug code for bspatch flakiness"
This commit is contained in:
@@ -587,11 +587,6 @@ static int GenerateTarget(const FileContents& source_file, const std::unique_ptr
|
||||
SHA_CTX ctx;
|
||||
SHA1_Init(&ctx);
|
||||
SinkFn sink = [&memory_sink_str, &ctx](const unsigned char* data, size_t len) {
|
||||
if (len != 0) {
|
||||
uint8_t digest[SHA_DIGEST_LENGTH];
|
||||
SHA1(data, len, digest);
|
||||
LOG(DEBUG) << "Appending " << len << " bytes data, SHA-1: " << short_sha1(digest);
|
||||
}
|
||||
SHA1_Update(&ctx, data, len);
|
||||
memory_sink_str.append(reinterpret_cast<const char*>(data), len);
|
||||
return len;
|
||||
@@ -632,14 +627,6 @@ static int GenerateTarget(const FileContents& source_file, const std::unique_ptr
|
||||
<< short_sha1(bonus_digest);
|
||||
}
|
||||
|
||||
// TODO(b/67849209) Remove after debugging the unit test flakiness.
|
||||
if (android::base::GetMinimumLogSeverity() <= android::base::LogSeverity::DEBUG) {
|
||||
if (WriteToPartition(reinterpret_cast<const unsigned char*>(memory_sink_str.c_str()),
|
||||
memory_sink_str.size(), target_filename) != 0) {
|
||||
LOG(DEBUG) << "Failed to write patched data " << target_filename;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
} else {
|
||||
LOG(INFO) << " now " << short_sha1(target_sha1);
|
||||
|
||||
@@ -61,11 +61,6 @@ static bool ApplyBSDiffPatchAndStreamOutput(const uint8_t* src_data, size_t src_
|
||||
int mem_level = Read4(deflate_header + 52);
|
||||
int strategy = Read4(deflate_header + 56);
|
||||
|
||||
// TODO(b/67849209) Remove after debugging the unit test flakiness.
|
||||
if (android::base::GetMinimumLogSeverity() <= android::base::LogSeverity::DEBUG) {
|
||||
LOG(DEBUG) << "zlib version " << zlibVersion();
|
||||
}
|
||||
|
||||
z_stream strm;
|
||||
strm.zalloc = Z_NULL;
|
||||
strm.zfree = Z_NULL;
|
||||
@@ -83,10 +78,8 @@ static bool ApplyBSDiffPatchAndStreamOutput(const uint8_t* src_data, size_t src_
|
||||
size_t actual_target_length = 0;
|
||||
size_t total_written = 0;
|
||||
static constexpr size_t buffer_size = 32768;
|
||||
SHA_CTX sha_ctx;
|
||||
SHA1_Init(&sha_ctx);
|
||||
auto compression_sink = [&strm, &actual_target_length, &expected_target_length, &total_written,
|
||||
&ret, &sink, &sha_ctx](const uint8_t* data, size_t len) -> size_t {
|
||||
&ret, &sink](const uint8_t* data, size_t len) -> size_t {
|
||||
// The input patch length for an update never exceeds INT_MAX.
|
||||
strm.avail_in = len;
|
||||
strm.next_in = data;
|
||||
@@ -113,11 +106,6 @@ static bool ApplyBSDiffPatchAndStreamOutput(const uint8_t* src_data, size_t src_
|
||||
}
|
||||
} while ((strm.avail_in != 0 || strm.avail_out == 0) && ret != Z_STREAM_END);
|
||||
|
||||
// TODO(b/67849209) Remove after debugging the unit test flakiness.
|
||||
if (android::base::GetMinimumLogSeverity() <= android::base::LogSeverity::DEBUG) {
|
||||
SHA1_Update(&sha_ctx, data, len);
|
||||
}
|
||||
|
||||
actual_target_length += len;
|
||||
return len;
|
||||
};
|
||||
@@ -125,11 +113,6 @@ static bool ApplyBSDiffPatchAndStreamOutput(const uint8_t* src_data, size_t src_
|
||||
int bspatch_result = ApplyBSDiffPatch(src_data, src_len, patch, patch_offset, compression_sink);
|
||||
deflateEnd(&strm);
|
||||
|
||||
if (android::base::GetMinimumLogSeverity() <= android::base::LogSeverity::DEBUG) {
|
||||
uint8_t digest[SHA_DIGEST_LENGTH];
|
||||
SHA1_Final(digest, &sha_ctx);
|
||||
LOG(DEBUG) << "sha1 of " << actual_target_length << " bytes input data: " << short_sha1(digest);
|
||||
}
|
||||
if (bspatch_result != 0) {
|
||||
return false;
|
||||
}
|
||||
@@ -144,7 +127,7 @@ static bool ApplyBSDiffPatchAndStreamOutput(const uint8_t* src_data, size_t src_
|
||||
<< actual_target_length;
|
||||
return false;
|
||||
}
|
||||
LOG(DEBUG) << "bspatch writes " << total_written << " bytes in total to streaming output.";
|
||||
LOG(DEBUG) << "bspatch wrote " << total_written << " bytes in total to streaming output.";
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -21,13 +21,11 @@
|
||||
#include <vector>
|
||||
|
||||
#include <android-base/file.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android-base/stringprintf.h>
|
||||
#include <android-base/test_utils.h>
|
||||
#include <bsdiff/bsdiff.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <openssl/sha.h>
|
||||
#include <zlib.h>
|
||||
|
||||
#include "applypatch/applypatch_modes.h"
|
||||
#include "common/test_constants.h"
|
||||
@@ -36,47 +34,6 @@
|
||||
|
||||
using namespace std::string_literals;
|
||||
|
||||
// TODO(b/67849209) Remove after debug the flakiness.
|
||||
static void DecompressAndDumpRecoveryImage(const std::string& image_path) {
|
||||
// Expected recovery_image structure
|
||||
// chunk normal: 45066 bytes
|
||||
// chunk deflate: 479442 bytes
|
||||
// chunk normal: 5199 bytes
|
||||
std::string recovery_content;
|
||||
ASSERT_TRUE(android::base::ReadFileToString(image_path, &recovery_content));
|
||||
ASSERT_GT(recovery_content.size(), 45066 + 5199);
|
||||
|
||||
z_stream strm = {};
|
||||
strm.avail_in = recovery_content.size() - 45066 - 5199;
|
||||
strm.next_in =
|
||||
const_cast<uint8_t*>(reinterpret_cast<const uint8_t*>(recovery_content.data())) + 45066;
|
||||
|
||||
ASSERT_EQ(Z_OK, inflateInit2(&strm, -15));
|
||||
|
||||
constexpr unsigned int BUFFER_SIZE = 32768;
|
||||
std::vector<uint8_t> uncompressed_data(BUFFER_SIZE);
|
||||
size_t uncompressed_length = 0;
|
||||
SHA_CTX ctx;
|
||||
SHA1_Init(&ctx);
|
||||
int ret;
|
||||
do {
|
||||
strm.avail_out = BUFFER_SIZE;
|
||||
strm.next_out = uncompressed_data.data();
|
||||
|
||||
ret = inflate(&strm, Z_NO_FLUSH);
|
||||
ASSERT_GE(ret, 0);
|
||||
|
||||
SHA1_Update(&ctx, uncompressed_data.data(), BUFFER_SIZE - strm.avail_out);
|
||||
uncompressed_length += BUFFER_SIZE - strm.avail_out;
|
||||
} while (ret != Z_STREAM_END);
|
||||
inflateEnd(&strm);
|
||||
|
||||
uint8_t digest[SHA_DIGEST_LENGTH];
|
||||
SHA1_Final(digest, &ctx);
|
||||
GTEST_LOG_(INFO) << "uncompressed length " << uncompressed_length
|
||||
<< " sha1: " << short_sha1(digest);
|
||||
}
|
||||
|
||||
static void sha1sum(const std::string& fname, std::string* sha1, size_t* fsize = nullptr) {
|
||||
ASSERT_TRUE(sha1 != nullptr);
|
||||
|
||||
@@ -92,20 +49,10 @@ static void sha1sum(const std::string& fname, std::string* sha1, size_t* fsize =
|
||||
*sha1 = print_sha1(digest);
|
||||
}
|
||||
|
||||
static void test_logger(android::base::LogId /* id */, android::base::LogSeverity severity,
|
||||
const char* /* tag */, const char* /* file */, unsigned int /* line */,
|
||||
const char* message) {
|
||||
if (severity >= android::base::GetMinimumLogSeverity()) {
|
||||
fprintf(stdout, "%s\n", message);
|
||||
}
|
||||
}
|
||||
|
||||
class ApplyPatchModesTest : public ::testing::Test {
|
||||
protected:
|
||||
void SetUp() override {
|
||||
Paths::Get().set_cache_temp_source(cache_source.path);
|
||||
android::base::InitLogging(nullptr, &test_logger);
|
||||
android::base::SetMinimumLogSeverity(android::base::LogSeverity::DEBUG);
|
||||
}
|
||||
|
||||
TemporaryFile cache_source;
|
||||
@@ -178,10 +125,7 @@ TEST_F(ApplyPatchModesTest, PatchModeEmmcTargetWithoutBonusFile) {
|
||||
recovery_img_size_arg.c_str(),
|
||||
patch_arg.c_str() };
|
||||
|
||||
if (applypatch_modes(args.size(), args.data()) != 0) {
|
||||
DecompressAndDumpRecoveryImage(tgt_file.path);
|
||||
FAIL();
|
||||
}
|
||||
ASSERT_EQ(0, applypatch_modes(args.size(), args.data()));
|
||||
}
|
||||
|
||||
TEST_F(ApplyPatchModesTest, PatchModeEmmcTargetWithMultiplePatches) {
|
||||
@@ -219,16 +163,8 @@ TEST_F(ApplyPatchModesTest, PatchModeEmmcTargetWithMultiplePatches) {
|
||||
patch1.c_str(),
|
||||
patch2.c_str(),
|
||||
patch3.c_str() };
|
||||
// TODO(b/67849209): Remove after addressing the flakiness.
|
||||
printf("Calling applypatch_modes with the following args:\n");
|
||||
for (const auto& arg : args) {
|
||||
printf(" %s\n", arg);
|
||||
}
|
||||
|
||||
if (applypatch_modes(args.size(), args.data()) != 0) {
|
||||
DecompressAndDumpRecoveryImage(tgt_file.path);
|
||||
FAIL();
|
||||
}
|
||||
ASSERT_EQ(0, applypatch_modes(args.size(), args.data()));
|
||||
}
|
||||
|
||||
// Ensures that applypatch works with a bsdiff based recovery-from-boot.p.
|
||||
|
||||
Reference in New Issue
Block a user