Merge "Dump debug information for apply_patch unit tests"

This commit is contained in:
Tianjie Xu 2018-04-24 18:30:29 +00:00 committed by Gerrit Code Review
commit fe527cced4
3 changed files with 22 additions and 1 deletions

View file

@ -630,6 +630,11 @@ 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, sha1: " << short_sha1(digest);
}
SHA1_Update(&ctx, data, len);
memory_sink_str.append(reinterpret_cast<const char*>(data), len);
return len;

View file

@ -182,6 +182,8 @@ int ApplyImagePatch(const unsigned char* old_data, size_t old_size, const Value&
printf("Failed to apply bsdiff patch.\n");
return -1;
}
LOG(DEBUG) << "Processed chunk type normal";
} else if (type == CHUNK_RAW) {
const char* raw_header = patch_header + pos;
pos += 4;
@ -201,6 +203,8 @@ int ApplyImagePatch(const unsigned char* old_data, size_t old_size, const Value&
return -1;
}
pos += data_len;
LOG(DEBUG) << "Processed chunk type raw";
} else if (type == CHUNK_DEFLATE) {
// deflate chunks have an additional 60 bytes in their chunk header.
const char* deflate_header = patch_header + pos;
@ -276,6 +280,7 @@ int ApplyImagePatch(const unsigned char* old_data, size_t old_size, const Value&
return -1;
}
LOG(DEBUG) << "Processed chunk type deflate";
} else {
printf("patch chunk %d is unknown type %d\n", i, type);
return -1;

View file

@ -31,6 +31,7 @@
#include <vector>
#include <android-base/file.h>
#include <android-base/logging.h>
#include <android-base/stringprintf.h>
#include <android-base/test_utils.h>
#include <android-base/unique_fd.h>
@ -46,7 +47,7 @@
using namespace std::string_literals;
static void sha1sum(const std::string& fname, std::string* sha1, size_t* fsize = nullptr) {
ASSERT_NE(nullptr, sha1);
ASSERT_TRUE(sha1 != nullptr);
std::string data;
ASSERT_TRUE(android::base::ReadFileToString(fname, &data));
@ -68,6 +69,14 @@ static void mangle_file(const std::string& fname) {
ASSERT_TRUE(android::base::WriteStringToFile(content, fname));
}
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 ApplyPatchTest : public ::testing::Test {
public:
virtual void SetUp() override {
@ -109,6 +118,8 @@ class ApplyPatchModesTest : public ::testing::Test {
protected:
void SetUp() override {
CacheLocation::location().set_cache_temp_source(cache_source.path);
android::base::InitLogging(nullptr, &test_logger);
android::base::SetMinimumLogSeverity(android::base::LogSeverity::DEBUG);
}
TemporaryFile cache_source;