summaryrefslogtreecommitdiffstats
path: root/lib/libarchive/test/test_read_large.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libarchive/test/test_read_large.c')
-rw-r--r--lib/libarchive/test/test_read_large.c35
1 files changed, 17 insertions, 18 deletions
diff --git a/lib/libarchive/test/test_read_large.c b/lib/libarchive/test/test_read_large.c
index c524ae8..ba716c2 100644
--- a/lib/libarchive/test/test_read_large.c
+++ b/lib/libarchive/test/test_read_large.c
@@ -29,6 +29,11 @@ static unsigned char testdata[10 * 1024 * 1024];
static unsigned char testdatacopy[10 * 1024 * 1024];
static unsigned char buff[11 * 1024 * 1024];
+#if defined(_WIN32) && !defined(__CYGWIN__)
+#define open _open
+#define close _close
+#endif
+
/* Check correct behavior on large reads. */
DEFINE_TEST(test_read_large)
{
@@ -38,6 +43,7 @@ DEFINE_TEST(test_read_large)
size_t used;
struct archive *a;
struct archive_entry *entry;
+ FILE *f;
for (i = 0; i < sizeof(testdata); i++)
testdata[i] = (unsigned char)(rand());
@@ -52,11 +58,7 @@ DEFINE_TEST(test_read_large)
assertA(0 == archive_write_header(a, entry));
archive_entry_free(entry);
assertA(sizeof(testdata) == archive_write_data(a, testdata, sizeof(testdata)));
-#if ARCHIVE_VERSION_NUMBER < 2000000
- archive_write_finish(a);
-#else
assertA(0 == archive_write_finish(a));
-#endif
assert(NULL != (a = archive_read_new()));
assertA(0 == archive_read_support_format_all(a));
@@ -64,11 +66,7 @@ DEFINE_TEST(test_read_large)
assertA(0 == archive_read_open_memory(a, buff, sizeof(buff)));
assertA(0 == archive_read_next_header(a, &entry));
assertA(0 == archive_read_data_into_buffer(a, testdatacopy, sizeof(testdatacopy)));
-#if ARCHIVE_VERSION_NUMBER < 2000000
- archive_read_finish(a);
-#else
assertA(0 == archive_read_finish(a));
-#endif
assert(0 == memcmp(testdata, testdatacopy, sizeof(testdata)));
@@ -77,18 +75,19 @@ DEFINE_TEST(test_read_large)
assertA(0 == archive_read_support_compression_all(a));
assertA(0 == archive_read_open_memory(a, buff, sizeof(buff)));
assertA(0 == archive_read_next_header(a, &entry));
- assert(0 < (tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY, 0755)));
- assertA(0 == archive_read_data_into_fd(a, tmpfilefd));
- close(tmpfilefd);
-#if ARCHIVE_VERSION_NUMBER < 2000000
- archive_read_finish(a);
+#if defined(__BORLANDC__)
+ tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY);
#else
- assertA(0 == archive_read_finish(a));
+ tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY, 0755);
#endif
- tmpfilefd = open(tmpfilename, O_RDONLY);
- read(tmpfilefd, testdatacopy, sizeof(testdatacopy));
+ assert(0 < tmpfilefd);
+ assertA(0 == archive_read_data_into_fd(a, tmpfilefd));
close(tmpfilefd);
- assert(0 == memcmp(testdata, testdatacopy, sizeof(testdata)));
+ assertA(0 == archive_read_finish(a));
- unlink(tmpfilename);
+ f = fopen(tmpfilename, "rb");
+ assertEqualInt(sizeof(testdatacopy),
+ fread(testdatacopy, 1, sizeof(testdatacopy), f));
+ fclose(f);
+ assert(0 == memcmp(testdata, testdatacopy, sizeof(testdata)));
}
OpenPOWER on IntegriCloud