summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitriy Ivanov2014-07-15 21:33:00 -0500
committerDmitriy Ivanov2015-01-30 19:57:13 -0600
commit40b52b2c884e2a0abf9c4af8b785433286b7e84b (patch)
tree3fcbfee057ce1576507ea59fda4c06e8c9c3b647 /libziparchive/zip_archive_test.cc
parentd170bb035dc652b7e350ab7ccca0b1ffa332054e (diff)
downloadplatform-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.cc21
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
92TEST(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
102TEST(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
91TEST(ziparchive, Iteration) { 112TEST(ziparchive, Iteration) {
92 ZipArchiveHandle handle; 113 ZipArchiveHandle handle;
93 ASSERT_EQ(0, OpenArchiveWrapper(kValidZip, &handle)); 114 ASSERT_EQ(0, OpenArchiveWrapper(kValidZip, &handle));