Merge "Save the target file when applypatch tests fail"
am: 957c1abfba
Change-Id: I100dd5ba4fb2c3bd4a29bd8759dcd65f03afbe50
diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp
index 39b8030..14137de 100644
--- a/applypatch/applypatch.cpp
+++ b/applypatch/applypatch.cpp
@@ -672,6 +672,14 @@
bonus_digest);
printf("bonus size %zu sha1 %s\n", bonus_data->data.size(), short_sha1(bonus_digest).c_str());
+ // 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 {
printf("now %s\n", short_sha1(target_sha1).c_str());
diff --git a/applypatch/imgpatch.cpp b/applypatch/imgpatch.cpp
index b06a64f..c4c2707 100644
--- a/applypatch/imgpatch.cpp
+++ b/applypatch/imgpatch.cpp
@@ -60,6 +60,11 @@
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;
@@ -101,26 +106,17 @@
size_t have = buffer_size - strm.avail_out;
total_written += have;
-
- // TODO(b/67849209) Remove after debugging the unit test flakiness.
- if (android::base::GetMinimumLogSeverity() <= android::base::LogSeverity::DEBUG &&
- have != 0) {
- SHA1_Update(&sha_ctx, data, len - strm.avail_in);
- SHA_CTX temp_ctx;
- memcpy(&temp_ctx, &sha_ctx, sizeof(SHA_CTX));
- uint8_t digest_so_far[SHA_DIGEST_LENGTH];
- SHA1_Final(digest_so_far, &temp_ctx);
- LOG(DEBUG) << "Processed " << actual_target_length + len - strm.avail_in
- << " bytes input data in the sink function, sha1 so far: "
- << short_sha1(digest_so_far);
- }
-
if (sink(buffer.data(), have) != have) {
LOG(ERROR) << "Failed to write " << have << " compressed bytes to output.";
return 0;
}
} 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;
};