diff options
Diffstat (limited to 'archivers/libarchive/files/libarchive/test/test_read_data_large.c')
-rw-r--r-- | archivers/libarchive/files/libarchive/test/test_read_data_large.c | 44 |
1 files changed, 26 insertions, 18 deletions
diff --git a/archivers/libarchive/files/libarchive/test/test_read_data_large.c b/archivers/libarchive/files/libarchive/test/test_read_data_large.c index a690b7b0daa..fe9120b5954 100644 --- a/archivers/libarchive/files/libarchive/test/test_read_data_large.c +++ b/archivers/libarchive/files/libarchive/test/test_read_data_large.c @@ -23,7 +23,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_data_large.c,v 1.3 2007/05/29 01:00:20 kientzle Exp $"); +__FBSDID("$FreeBSD: head/lib/libarchive/test/test_read_data_large.c 201247 2009-12-30 05:59:21Z kientzle $"); /* * Test read/write of a 10M block of data in a single operation. @@ -33,6 +33,11 @@ __FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_data_large.c,v 1.3 2007/05 * 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; @@ -63,14 +69,14 @@ DEFINE_TEST(test_read_data_large) archive_entry_set_size(ae, sizeof(buff2)); assertA(0 == archive_write_header(a, ae)); archive_entry_free(ae); - assertA(sizeof(buff2) == archive_write_data(a, buff2, sizeof(buff2))); + assertA((int)sizeof(buff2) == archive_write_data(a, buff2, sizeof(buff2))); /* Close out the archive. */ assertA(0 == archive_write_close(a)); -#if ARCHIVE_API_VERSION > 1 - assertA(0 == archive_write_finish(a)); -#else +#if ARCHIVE_VERSION_NUMBER < 2000000 archive_write_finish(a); +#else + assertA(0 == archive_write_finish(a)); #endif /* Check that archive_read_data can handle 10*10^6 at a pop. */ @@ -84,10 +90,10 @@ DEFINE_TEST(test_read_data_large) failure("Read expected 10MB, but data read didn't match what was written"); assert(0 == memcmp(buff2, buff3, sizeof(buff3))); assert(0 == archive_read_close(a)); -#if ARCHIVE_API_VERSION > 1 - assert(0 == archive_read_finish(a)); -#else +#if ARCHIVE_VERSION_NUMBER < 2000000 archive_read_finish(a); +#else + assert(0 == archive_read_finish(a)); #endif /* Check archive_read_data_into_fd */ @@ -96,22 +102,24 @@ 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)); -#if ARCHIVE_API_VERSION > 1 - assert(0 == archive_read_finish(a)); -#else +#if ARCHIVE_VERSION_NUMBER < 2000000 archive_read_finish(a); +#else + assert(0 == archive_read_finish(a)); #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); } |