diff options
Diffstat (limited to 'lib/libarchive/test/test_read_large.c')
-rw-r--r-- | lib/libarchive/test/test_read_large.c | 35 |
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))); } |