diff options
author | Tao Bao <tbao@google.com> | 2017-04-19 20:55:22 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-04-19 20:55:22 +0200 |
commit | c08c055ce0060030514c2e6e04f0dceaecdb679e (patch) | |
tree | 4c6bcd814c3d7d45f3468c29533a5dc53c10ca60 /tests/component/install_test.cpp | |
parent | Merge "Minor clean up to install.cpp." (diff) | |
parent | Merge "Add tests for read_metadata_from_package()." (diff) | |
download | android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar.gz android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar.bz2 android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar.lz android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar.xz android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.tar.zst android_bootable_recovery-c08c055ce0060030514c2e6e04f0dceaecdb679e.zip |
Diffstat (limited to 'tests/component/install_test.cpp')
-rw-r--r-- | tests/component/install_test.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/component/install_test.cpp b/tests/component/install_test.cpp index fd3b28b07..2143dd7bb 100644 --- a/tests/component/install_test.cpp +++ b/tests/component/install_test.cpp @@ -62,6 +62,56 @@ TEST(InstallTest, verify_package_compatibility_invalid_entry) { CloseArchive(zip); } +TEST(InstallTest, read_metadata_from_package_smoke) { + TemporaryFile temp_file; + FILE* zip_file = fdopen(temp_file.fd, "w"); + ZipWriter writer(zip_file); + ASSERT_EQ(0, writer.StartEntry("META-INF/com/android/metadata", kCompressStored)); + const std::string content("abcdefg"); + ASSERT_EQ(0, writer.WriteBytes(content.data(), content.size())); + ASSERT_EQ(0, writer.FinishEntry()); + ASSERT_EQ(0, writer.Finish()); + ASSERT_EQ(0, fclose(zip_file)); + + ZipArchiveHandle zip; + ASSERT_EQ(0, OpenArchive(temp_file.path, &zip)); + std::string metadata; + ASSERT_TRUE(read_metadata_from_package(zip, &metadata)); + ASSERT_EQ(content, metadata); + CloseArchive(zip); + + TemporaryFile temp_file2; + FILE* zip_file2 = fdopen(temp_file2.fd, "w"); + ZipWriter writer2(zip_file2); + ASSERT_EQ(0, writer2.StartEntry("META-INF/com/android/metadata", kCompressDeflated)); + ASSERT_EQ(0, writer2.WriteBytes(content.data(), content.size())); + ASSERT_EQ(0, writer2.FinishEntry()); + ASSERT_EQ(0, writer2.Finish()); + ASSERT_EQ(0, fclose(zip_file2)); + + ASSERT_EQ(0, OpenArchive(temp_file2.path, &zip)); + metadata.clear(); + ASSERT_TRUE(read_metadata_from_package(zip, &metadata)); + ASSERT_EQ(content, metadata); + CloseArchive(zip); +} + +TEST(InstallTest, read_metadata_from_package_no_entry) { + TemporaryFile temp_file; + FILE* zip_file = fdopen(temp_file.fd, "w"); + ZipWriter writer(zip_file); + ASSERT_EQ(0, writer.StartEntry("dummy_entry", kCompressStored)); + ASSERT_EQ(0, writer.FinishEntry()); + ASSERT_EQ(0, writer.Finish()); + ASSERT_EQ(0, fclose(zip_file)); + + ZipArchiveHandle zip; + ASSERT_EQ(0, OpenArchive(temp_file.path, &zip)); + std::string metadata; + ASSERT_FALSE(read_metadata_from_package(zip, &metadata)); + CloseArchive(zip); +} + TEST(InstallTest, update_binary_command_smoke) { #ifdef AB_OTA_UPDATER TemporaryFile temp_file; |