diff options
Diffstat (limited to 'lib/libarchive/test/test_read_data_large.c')
-rw-r--r-- | lib/libarchive/test/test_read_data_large.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/libarchive/test/test_read_data_large.c b/lib/libarchive/test/test_read_data_large.c index 76b9e12..ecacf65 100644 --- a/lib/libarchive/test/test_read_data_large.c +++ b/lib/libarchive/test/test_read_data_large.c @@ -33,6 +33,11 @@ __FBSDID("$FreeBSD$"); * had a bug relating to this, fixed in Nov 2006). */ +#if defined(_WIN32) && !defined(__CYGWIN__) +#define open _open +#define close _close +#endif + char buff1[11000000]; char buff2[10000000]; char buff3[10000000]; @@ -43,6 +48,7 @@ DEFINE_TEST(test_read_data_large) struct archive *a; char tmpfilename[] = "largefile"; int tmpfilefd; + FILE *f; unsigned int i; size_t used; @@ -96,7 +102,11 @@ DEFINE_TEST(test_read_data_large) assertA(0 == archive_read_support_compression_all(a)); assertA(0 == archive_read_open_memory(a, buff1, sizeof(buff1))); assertA(0 == archive_read_next_header(a, &ae)); - tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT, 0777); +#if defined(__BORLANDC__) + tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY); +#else + tmpfilefd = open(tmpfilename, O_WRONLY | O_CREAT | O_BINARY, 0777); +#endif assert(tmpfilefd != 0); assertEqualIntA(a, 0, archive_read_data_into_fd(a, tmpfilefd)); assert(0 == archive_read_close(a)); @@ -107,11 +117,9 @@ DEFINE_TEST(test_read_data_large) #endif close(tmpfilefd); - tmpfilefd = open(tmpfilename, O_RDONLY); - assert(tmpfilefd != 0); - assertEqualIntA(NULL, sizeof(buff3), read(tmpfilefd, buff3, sizeof(buff3))); - close(tmpfilefd); + f = fopen(tmpfilename, "rb"); + assert(f != NULL); + assertEqualInt(sizeof(buff3), fread(buff3, 1, sizeof(buff3), f)); + fclose(f); assert(0 == memcmp(buff2, buff3, sizeof(buff3))); - - unlink(tmpfilename); } |