diff options
Diffstat (limited to 'contrib/libarchive/libarchive/test/test_open_failure.c')
-rw-r--r-- | contrib/libarchive/libarchive/test/test_open_failure.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/contrib/libarchive/libarchive/test/test_open_failure.c b/contrib/libarchive/libarchive/test/test_open_failure.c index 0a7632a8ad69..06a3a2c1fa35 100644 --- a/contrib/libarchive/libarchive/test/test_open_failure.c +++ b/contrib/libarchive/libarchive/test/test_open_failure.c @@ -42,6 +42,8 @@ static ssize_t my_read(struct archive *a, void *_private, const void **buff) { struct my_data *private = (struct my_data *)_private; + (void)a; /* UNUSED */ + (void)buff; /* UNUSED */ assertEqualInt(MAGIC, private->magic); ++private->read_called; return (private->read_return); @@ -51,6 +53,9 @@ static ssize_t my_write(struct archive *a, void *_private, const void *buff, size_t s) { struct my_data *private = (struct my_data *)_private; + (void)a; /* UNUSED */ + (void)buff; /* UNUSED */ + (void)s; /* UNUSED */ assertEqualInt(MAGIC, private->magic); ++private->write_called; return (private->write_return); @@ -60,6 +65,7 @@ static int my_open(struct archive *a, void *_private) { struct my_data *private = (struct my_data *)_private; + (void)a; /* UNUSED */ assertEqualInt(MAGIC, private->magic); ++private->open_called; return (private->open_return); @@ -69,6 +75,7 @@ static int my_close(struct archive *a, void *_private) { struct my_data *private = (struct my_data *)_private; + (void)a; /* UNUSED */ assertEqualInt(MAGIC, private->magic); ++private->close_called; return (private->close_return); @@ -132,7 +139,7 @@ DEFINE_TEST(test_open_failure) a = archive_read_new(); assert(a != NULL); assertEqualInt(ARCHIVE_OK, - archive_read_support_compression_compress(a)); + archive_read_support_filter_compress(a)); assertEqualInt(ARCHIVE_OK, archive_read_support_format_tar(a)); assertEqualInt(ARCHIVE_FATAL, archive_read_open(a, &private, my_open, my_read, my_close)); @@ -153,8 +160,24 @@ DEFINE_TEST(test_open_failure) archive_write_open(a, &private, my_open, my_write, my_close)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); - // Broken in 2.8, fixed in 3.0 - //assertEqualInt(1, private.close_called); + assertEqualInt(1, private.close_called); + assertEqualInt(ARCHIVE_OK, archive_write_finish(a)); + assertEqualInt(1, private.open_called); + assertEqualInt(0, private.write_called); + assertEqualInt(1, private.close_called); + + memset(&private, 0, sizeof(private)); + private.magic = MAGIC; + private.open_return = ARCHIVE_FATAL; + a = archive_write_new(); + assert(a != NULL); + archive_write_add_filter_compress(a); + archive_write_set_format_ustar(a); + assertEqualInt(ARCHIVE_FATAL, + archive_write_open(a, &private, my_open, my_write, my_close)); + assertEqualInt(1, private.open_called); + assertEqualInt(0, private.write_called); + assertEqualInt(1, private.close_called); assertEqualInt(ARCHIVE_OK, archive_write_finish(a)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); @@ -165,14 +188,12 @@ DEFINE_TEST(test_open_failure) private.open_return = ARCHIVE_FATAL; a = archive_write_new(); assert(a != NULL); - archive_write_set_compression_compress(a); archive_write_set_format_zip(a); assertEqualInt(ARCHIVE_FATAL, archive_write_open(a, &private, my_open, my_write, my_close)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); - // Broken in 2.8, fixed in 3.0 - //assertEqualInt(1, private.close_called); + assertEqualInt(1, private.close_called); assertEqualInt(ARCHIVE_OK, archive_write_finish(a)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); @@ -183,13 +204,12 @@ DEFINE_TEST(test_open_failure) private.open_return = ARCHIVE_FATAL; a = archive_write_new(); assert(a != NULL); - archive_write_set_compression_gzip(a); + archive_write_add_filter_gzip(a); assertEqualInt(ARCHIVE_FATAL, archive_write_open(a, &private, my_open, my_write, my_close)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); - // Broken in 2.8, fixed in 3.0 - //assertEqualInt(1, private.close_called); + assertEqualInt(1, private.close_called); assertEqualInt(ARCHIVE_OK, archive_write_finish(a)); assertEqualInt(1, private.open_called); assertEqualInt(0, private.write_called); |