diff options
author | Tianjie Xu <xunchang@google.com> | 2017-07-24 20:31:54 +0200 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-24 20:31:54 +0200 |
commit | 92aef7fa881eadca04deaf93f5b0602620b2d8ba (patch) | |
tree | 17e6cb6f3373b87f861b3865fc0ed8a4b46dcf0b /tests/component | |
parent | Avoid crashing recovery with unwritable /cache. (diff) | |
parent | Fix a case when brotli writer fails to write last few blocks of data (diff) | |
download | android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar.gz android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar.bz2 android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar.lz android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar.xz android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.tar.zst android_bootable_recovery-92aef7fa881eadca04deaf93f5b0602620b2d8ba.zip |
Diffstat (limited to 'tests/component')
-rw-r--r-- | tests/component/updater_test.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tests/component/updater_test.cpp b/tests/component/updater_test.cpp index 01b86f224..6c341c111 100644 --- a/tests/component/updater_test.cpp +++ b/tests/component/updater_test.cpp @@ -592,10 +592,10 @@ TEST_F(UpdaterTest, brotli_new_data) { ASSERT_EQ(0, zip_writer.StartEntry("new.dat.br", 0)); auto generator = []() { return rand() % 128; }; - // Generate 2048 blocks of random data. + // Generate 100 blocks of random data. std::string brotli_new_data; - brotli_new_data.reserve(4096 * 2048); - generate_n(back_inserter(brotli_new_data), 4096 * 2048, generator); + brotli_new_data.reserve(4096 * 100); + generate_n(back_inserter(brotli_new_data), 4096 * 100, generator); size_t encoded_size = BrotliEncoderMaxCompressedSize(brotli_new_data.size()); std::vector<uint8_t> encoded_data(encoded_size); @@ -609,8 +609,19 @@ TEST_F(UpdaterTest, brotli_new_data) { ASSERT_EQ(0, zip_writer.StartEntry("patch_data", 0)); ASSERT_EQ(0, zip_writer.FinishEntry()); + // Write a few small chunks of new data, then a large chunk, and finally a few small chunks. + // This helps us to catch potential short writes. std::vector<std::string> transfer_list = { - "4", "2048", "0", "0", "new 4,0,512,512,1024", "new 2,1024,2048", + "4", + "100", + "0", + "0", + "new 2,0,1", + "new 2,1,2", + "new 4,2,50,50,97", + "new 2,97,98", + "new 2,98,99", + "new 2,99,100", }; ASSERT_EQ(0, zip_writer.StartEntry("transfer_list", 0)); std::string commands = android::base::Join(transfer_list, '\n'); |