From 0e007e8edc7a3c1bd1076451269dad21c4672158 Mon Sep 17 00:00:00 2001 From: Zhomart Mukhamejanov Date: Tue, 17 Apr 2018 16:09:31 -0700 Subject: Add sample_updater style check to PREUPLOAD.cfg Test: N/A Change-Id: I13f4295a85d50c0a63cac5680e7a3200b0e6c909 --- PREUPLOAD.cfg | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index b5f5f0362..878651c8e 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -4,3 +4,8 @@ clang_format = true [Builtin Hooks Options] # Handle native codes only. clang_format = --commit ${PREUPLOAD_COMMIT} --style file --extensions c,h,cc,cpp + +[Hook Scripts] +checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} + -fw sample_updater/ + -- cgit v1.2.3 From 4f834304715229dc6a94060e6b2a146a329b1f1c Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 19 Apr 2018 12:35:14 -0700 Subject: applypatch: Dump patch info on mismatching patching result. After splitting the previously flaky ApplyPatchModesTest#PatchModeEmmcTarget tests, PatchModeEmmcTargetWithMultiplePatches now becomes the sole victim. This CL dumps additional info to narrow down the cause. Bug: 67849209 Test: `recovery_component_test` on marlin. Test: It dumps additional info after using corrupt bonus.file. Change-Id: Ic5436de457cc882a51d03f49d5cee70077f7d3df --- applypatch/applypatch.cpp | 17 ++++++++++++++++- tests/component/applypatch_test.cpp | 5 +++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp index 6f6c187be..120add6d6 100644 --- a/applypatch/applypatch.cpp +++ b/applypatch/applypatch.cpp @@ -652,7 +652,22 @@ static int GenerateTarget(const FileContents& source_file, const std::unique_ptr uint8_t current_target_sha1[SHA_DIGEST_LENGTH]; SHA1_Final(current_target_sha1, &ctx); if (memcmp(current_target_sha1, target_sha1, SHA_DIGEST_LENGTH) != 0) { - printf("patch did not produce expected sha1\n"); + printf("patch did not produce expected sha1 of %s\n", short_sha1(target_sha1).c_str()); + + printf("target size %zu sha1 %s\n", memory_sink_str.size(), + short_sha1(current_target_sha1).c_str()); + printf("source size %zu sha1 %s\n", source_file.data.size(), + short_sha1(source_file.sha1).c_str()); + + uint8_t patch_digest[SHA_DIGEST_LENGTH]; + SHA1(reinterpret_cast(patch->data.data()), patch->data.size(), patch_digest); + printf("patch size %zu sha1 %s\n", patch->data.size(), short_sha1(patch_digest).c_str()); + + uint8_t bonus_digest[SHA_DIGEST_LENGTH]; + SHA1(reinterpret_cast(bonus_data->data.data()), bonus_data->data.size(), + bonus_digest); + printf("bonus size %zu sha1 %s\n", bonus_data->data.size(), short_sha1(bonus_digest).c_str()); + return 1; } else { printf("now %s\n", short_sha1(target_sha1).c_str()); diff --git a/tests/component/applypatch_test.cpp b/tests/component/applypatch_test.cpp index aa0959bf5..f19f28c60 100644 --- a/tests/component/applypatch_test.cpp +++ b/tests/component/applypatch_test.cpp @@ -344,6 +344,11 @@ 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); + } ASSERT_EQ(0, applypatch_modes(args.size(), args.data())); } -- cgit v1.2.3