Merge "tests: Take the ownership of the FD when calling fdopen." am: 166479b259
am: 450918158d
Change-Id: I2a5b9c162d1c704added2edca3bbd62a15c0acc1
This commit is contained in:
@@ -148,7 +148,7 @@ TEST(ImgdiffTest, image_mode_smoke) {
|
||||
TEST(ImgdiffTest, zip_mode_smoke_store) {
|
||||
// Construct src and tgt zip files.
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
ASSERT_EQ(0, src_writer.StartEntry("file1.txt", 0)); // Store mode.
|
||||
const std::string src_content("abcdefg");
|
||||
@@ -158,7 +158,7 @@ TEST(ImgdiffTest, zip_mode_smoke_store) {
|
||||
ASSERT_EQ(0, fclose(src_file_ptr));
|
||||
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
ASSERT_EQ(0, tgt_writer.StartEntry("file1.txt", 0)); // Store mode.
|
||||
const std::string tgt_content("abcdefgxyz");
|
||||
@@ -197,7 +197,7 @@ TEST(ImgdiffTest, zip_mode_smoke_store) {
|
||||
TEST(ImgdiffTest, zip_mode_smoke_compressed) {
|
||||
// Construct src and tgt zip files.
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
ASSERT_EQ(0, src_writer.StartEntry("file1.txt", ZipWriter::kCompress));
|
||||
const std::string src_content("abcdefg");
|
||||
@@ -207,7 +207,7 @@ TEST(ImgdiffTest, zip_mode_smoke_compressed) {
|
||||
ASSERT_EQ(0, fclose(src_file_ptr));
|
||||
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
ASSERT_EQ(0, tgt_writer.StartEntry("file1.txt", ZipWriter::kCompress));
|
||||
const std::string tgt_content("abcdefgxyz");
|
||||
@@ -246,7 +246,7 @@ TEST(ImgdiffTest, zip_mode_smoke_compressed) {
|
||||
TEST(ImgdiffTest, zip_mode_smoke_trailer_zeros) {
|
||||
// Construct src and tgt zip files.
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
ASSERT_EQ(0, src_writer.StartEntry("file1.txt", ZipWriter::kCompress));
|
||||
const std::string src_content("abcdefg");
|
||||
@@ -256,7 +256,7 @@ TEST(ImgdiffTest, zip_mode_smoke_trailer_zeros) {
|
||||
ASSERT_EQ(0, fclose(src_file_ptr));
|
||||
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
ASSERT_EQ(0, tgt_writer.StartEntry("file1.txt", ZipWriter::kCompress));
|
||||
const std::string tgt_content("abcdefgxyz");
|
||||
@@ -761,7 +761,7 @@ TEST(ImgdiffTest, zip_mode_store_large_apk) {
|
||||
// 3 blocks 'a' 12 blocks 'd' (exceeds limit)
|
||||
// 3 blocks 'e'
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
construct_store_entry(
|
||||
{ { "a", 3, 'a' }, { "b", 3, 'b' }, { "c", 8, 'c' }, { "d", 12, 'd' }, { "e", 3, 'e' } },
|
||||
@@ -770,7 +770,7 @@ TEST(ImgdiffTest, zip_mode_store_large_apk) {
|
||||
ASSERT_EQ(0, fclose(tgt_file_ptr));
|
||||
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
construct_store_entry({ { "d", 12, 'd' }, { "c", 8, 'c' }, { "b", 3, 'b' }, { "a", 3, 'a' } },
|
||||
&src_writer);
|
||||
@@ -792,7 +792,7 @@ TEST(ImgdiffTest, zip_mode_store_large_apk) {
|
||||
std::string tgt;
|
||||
ASSERT_TRUE(android::base::ReadFileToString(tgt_file.path, &tgt));
|
||||
|
||||
// Expect 4 pieces of patch.(Rougly 3'a',3'b'; 8'c'; 10'd'; 2'd'3'e')
|
||||
// Expect 4 pieces of patch. (Roughly 3'a',3'b'; 8'c'; 10'd'; 2'd'3'e')
|
||||
GenerateAndCheckSplitTarget(debug_dir.path, 4, tgt);
|
||||
}
|
||||
|
||||
@@ -810,7 +810,7 @@ TEST(ImgdiffTest, zip_mode_deflate_large_apk) {
|
||||
// 8 blocks, "c" 20 blocks, "d" (exceeds limit)
|
||||
// 1 block, "f" 2 blocks, "e"
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
|
||||
construct_deflate_entry(
|
||||
@@ -821,7 +821,7 @@ TEST(ImgdiffTest, zip_mode_deflate_large_apk) {
|
||||
ASSERT_EQ(0, fclose(tgt_file_ptr));
|
||||
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
|
||||
construct_deflate_entry(
|
||||
@@ -911,7 +911,7 @@ TEST(ImgdiffTest, zip_mode_no_match_source) {
|
||||
generate_n(back_inserter(random_data), 4096 * 20, []() { return rand() % 256; });
|
||||
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
|
||||
construct_deflate_entry({ { "a", 0, 4 }, { "b", 5, 5 }, { "c", 11, 5 } }, &tgt_writer,
|
||||
@@ -922,7 +922,7 @@ TEST(ImgdiffTest, zip_mode_no_match_source) {
|
||||
|
||||
// We don't have a matching source entry.
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
construct_store_entry({ { "d", 1, 'd' } }, &src_writer);
|
||||
ASSERT_EQ(0, src_writer.Finish());
|
||||
@@ -954,7 +954,7 @@ TEST(ImgdiffTest, zip_mode_large_enough_limit) {
|
||||
generate_n(back_inserter(random_data), 4096 * 20, []() { return rand() % 256; });
|
||||
|
||||
TemporaryFile tgt_file;
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.fd, "wb");
|
||||
FILE* tgt_file_ptr = fdopen(tgt_file.release(), "wb");
|
||||
ZipWriter tgt_writer(tgt_file_ptr);
|
||||
|
||||
construct_deflate_entry({ { "a", 0, 10 }, { "b", 10, 5 } }, &tgt_writer, random_data);
|
||||
@@ -964,7 +964,7 @@ TEST(ImgdiffTest, zip_mode_large_enough_limit) {
|
||||
|
||||
// Construct 10 blocks of source.
|
||||
TemporaryFile src_file;
|
||||
FILE* src_file_ptr = fdopen(src_file.fd, "wb");
|
||||
FILE* src_file_ptr = fdopen(src_file.release(), "wb");
|
||||
ZipWriter src_writer(src_file_ptr);
|
||||
construct_deflate_entry({ { "a", 1, 10 } }, &src_writer, random_data);
|
||||
ASSERT_EQ(0, src_writer.Finish());
|
||||
@@ -985,6 +985,6 @@ TEST(ImgdiffTest, zip_mode_large_enough_limit) {
|
||||
std::string tgt;
|
||||
ASSERT_TRUE(android::base::ReadFileToString(tgt_file.path, &tgt));
|
||||
|
||||
// Expect 1 pieces of patch since limit is larger than the zip file size.
|
||||
// Expect 1 piece of patch since limit is larger than the zip file size.
|
||||
GenerateAndCheckSplitTarget(debug_dir.path, 1, tgt);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
TEST(InstallTest, verify_package_compatibility_no_entry) {
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
// The archive must have something to be opened correctly.
|
||||
ASSERT_EQ(0, writer.StartEntry("dummy_entry", 0));
|
||||
@@ -54,7 +54,7 @@ TEST(InstallTest, verify_package_compatibility_no_entry) {
|
||||
|
||||
TEST(InstallTest, verify_package_compatibility_invalid_entry) {
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("compatibility.zip", 0));
|
||||
ASSERT_EQ(0, writer.FinishEntry());
|
||||
@@ -70,7 +70,7 @@ TEST(InstallTest, verify_package_compatibility_invalid_entry) {
|
||||
|
||||
TEST(InstallTest, read_metadata_from_package_smoke) {
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("META-INF/com/android/metadata", kCompressStored));
|
||||
const std::string content("abcdefg");
|
||||
@@ -87,7 +87,7 @@ TEST(InstallTest, read_metadata_from_package_smoke) {
|
||||
CloseArchive(zip);
|
||||
|
||||
TemporaryFile temp_file2;
|
||||
FILE* zip_file2 = fdopen(temp_file2.fd, "w");
|
||||
FILE* zip_file2 = fdopen(temp_file2.release(), "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()));
|
||||
@@ -104,7 +104,7 @@ TEST(InstallTest, read_metadata_from_package_smoke) {
|
||||
|
||||
TEST(InstallTest, read_metadata_from_package_no_entry) {
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("dummy_entry", kCompressStored));
|
||||
ASSERT_EQ(0, writer.FinishEntry());
|
||||
@@ -120,7 +120,7 @@ TEST(InstallTest, read_metadata_from_package_no_entry) {
|
||||
|
||||
TEST(InstallTest, verify_package_compatibility_with_libvintf_malformed_xml) {
|
||||
TemporaryFile compatibility_zip_file;
|
||||
FILE* compatibility_zip = fdopen(compatibility_zip_file.fd, "w");
|
||||
FILE* compatibility_zip = fdopen(compatibility_zip_file.release(), "w");
|
||||
ZipWriter compatibility_zip_writer(compatibility_zip);
|
||||
ASSERT_EQ(0, compatibility_zip_writer.StartEntry("system_manifest.xml", kCompressDeflated));
|
||||
std::string malformed_xml = "malformed";
|
||||
@@ -130,7 +130,7 @@ TEST(InstallTest, verify_package_compatibility_with_libvintf_malformed_xml) {
|
||||
ASSERT_EQ(0, fclose(compatibility_zip));
|
||||
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("compatibility.zip", kCompressStored));
|
||||
std::string compatibility_zip_content;
|
||||
@@ -165,7 +165,7 @@ TEST(InstallTest, verify_package_compatibility_with_libvintf_system_manifest_xml
|
||||
ASSERT_TRUE(
|
||||
android::base::ReadFileToString(system_manifest_xml_path, &system_manifest_xml_content));
|
||||
TemporaryFile compatibility_zip_file;
|
||||
FILE* compatibility_zip = fdopen(compatibility_zip_file.fd, "w");
|
||||
FILE* compatibility_zip = fdopen(compatibility_zip_file.release(), "w");
|
||||
ZipWriter compatibility_zip_writer(compatibility_zip);
|
||||
ASSERT_EQ(0, compatibility_zip_writer.StartEntry("system_manifest.xml", kCompressDeflated));
|
||||
ASSERT_EQ(0, compatibility_zip_writer.WriteBytes(system_manifest_xml_content.data(),
|
||||
@@ -175,7 +175,7 @@ TEST(InstallTest, verify_package_compatibility_with_libvintf_system_manifest_xml
|
||||
ASSERT_EQ(0, fclose(compatibility_zip));
|
||||
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("compatibility.zip", kCompressStored));
|
||||
std::string compatibility_zip_content;
|
||||
@@ -202,7 +202,7 @@ TEST(InstallTest, verify_package_compatibility_with_libvintf_system_manifest_xml
|
||||
#ifdef AB_OTA_UPDATER
|
||||
static void VerifyAbUpdateBinaryCommand(const std::string& serialno, bool success = true) {
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
ASSERT_EQ(0, writer.StartEntry("payload.bin", kCompressStored));
|
||||
ASSERT_EQ(0, writer.FinishEntry());
|
||||
@@ -258,7 +258,7 @@ TEST(InstallTest, update_binary_command_smoke) {
|
||||
VerifyAbUpdateBinaryCommand({});
|
||||
#else
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
static constexpr const char* UPDATE_BINARY_NAME = "META-INF/com/google/android/update-binary";
|
||||
ASSERT_EQ(0, writer.StartEntry(UPDATE_BINARY_NAME, kCompressStored));
|
||||
@@ -303,7 +303,7 @@ TEST(InstallTest, update_binary_command_smoke) {
|
||||
TEST(InstallTest, update_binary_command_invalid) {
|
||||
#ifdef AB_OTA_UPDATER
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
// Missing payload_properties.txt.
|
||||
ASSERT_EQ(0, writer.StartEntry("payload.bin", kCompressStored));
|
||||
@@ -334,7 +334,7 @@ TEST(InstallTest, update_binary_command_invalid) {
|
||||
CloseArchive(zip);
|
||||
#else
|
||||
TemporaryFile temp_file;
|
||||
FILE* zip_file = fdopen(temp_file.fd, "w");
|
||||
FILE* zip_file = fdopen(temp_file.release(), "w");
|
||||
ZipWriter writer(zip_file);
|
||||
// The archive must have something to be opened correctly.
|
||||
ASSERT_EQ(0, writer.StartEntry("dummy_entry", 0));
|
||||
|
||||
Reference in New Issue
Block a user