diff options
author | Dmitriy Ivanov | 2014-07-15 21:33:00 -0500 |
---|---|---|
committer | Dmitriy Ivanov | 2015-01-30 19:57:13 -0600 |
commit | 40b52b2c884e2a0abf9c4af8b785433286b7e84b (patch) | |
tree | 3fcbfee057ce1576507ea59fda4c06e8c9c3b647 /libziparchive/zip_archive_test.cc | |
parent | d170bb035dc652b7e350ab7ccca0b1ffa332054e (diff) | |
download | platform-system-core-40b52b2c884e2a0abf9c4af8b785433286b7e84b.tar.gz platform-system-core-40b52b2c884e2a0abf9c4af8b785433286b7e84b.tar.xz platform-system-core-40b52b2c884e2a0abf9c4af8b785433286b7e84b.zip |
Add close_file flag to OpenArchiveFd()
* We should be able to keep fd alive after CloseArchive()
Change-Id: I1aa2c039bb2a590ae72f256acc9ba5401c2c59b1
Diffstat (limited to 'libziparchive/zip_archive_test.cc')
-rw-r--r-- | libziparchive/zip_archive_test.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libziparchive/zip_archive_test.cc b/libziparchive/zip_archive_test.cc index 4775de00c..c8dafa9f6 100644 --- a/libziparchive/zip_archive_test.cc +++ b/libziparchive/zip_archive_test.cc | |||
@@ -17,6 +17,7 @@ | |||
17 | #include "ziparchive/zip_archive.h" | 17 | #include "ziparchive/zip_archive.h" |
18 | 18 | ||
19 | #include <errno.h> | 19 | #include <errno.h> |
20 | #include <fcntl.h> | ||
20 | #include <getopt.h> | 21 | #include <getopt.h> |
21 | #include <stdio.h> | 22 | #include <stdio.h> |
22 | #include <unistd.h> | 23 | #include <unistd.h> |
@@ -88,6 +89,26 @@ TEST(ziparchive, OpenMissing) { | |||
88 | ASSERT_EQ(-1, GetFileDescriptor(handle)); | 89 | ASSERT_EQ(-1, GetFileDescriptor(handle)); |
89 | } | 90 | } |
90 | 91 | ||
92 | TEST(ziparchive, OpenAssumeFdOwnership) { | ||
93 | int fd = open((test_data_dir + "/" + kValidZip).c_str(), O_RDONLY); | ||
94 | ASSERT_NE(-1, fd); | ||
95 | ZipArchiveHandle handle; | ||
96 | ASSERT_EQ(0, OpenArchiveFd(fd, "OpenWithAssumeFdOwnership", &handle)); | ||
97 | CloseArchive(handle); | ||
98 | ASSERT_EQ(-1, lseek(fd, 0, SEEK_SET)); | ||
99 | ASSERT_EQ(EBADF, errno); | ||
100 | } | ||
101 | |||
102 | TEST(ziparchive, OpenDoNotAssumeFdOwnership) { | ||
103 | int fd = open((test_data_dir + "/" + kValidZip).c_str(), O_RDONLY); | ||
104 | ASSERT_NE(-1, fd); | ||
105 | ZipArchiveHandle handle; | ||
106 | ASSERT_EQ(0, OpenArchiveFd(fd, "OpenWithAssumeFdOwnership", &handle, false)); | ||
107 | CloseArchive(handle); | ||
108 | ASSERT_EQ(0, lseek(fd, 0, SEEK_SET)); | ||
109 | close(fd); | ||
110 | } | ||
111 | |||
91 | TEST(ziparchive, Iteration) { | 112 | TEST(ziparchive, Iteration) { |
92 | ZipArchiveHandle handle; | 113 | ZipArchiveHandle handle; |
93 | ASSERT_EQ(0, OpenArchiveWrapper(kValidZip, &handle)); | 114 | ASSERT_EQ(0, OpenArchiveWrapper(kValidZip, &handle)); |