]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Extend test_open_failure to verify the case documented in Issue 134.
authorTim Kientzle <kientzle@gmail.com>
Sun, 6 Feb 2011 05:38:41 +0000 (00:38 -0500)
committerTim Kientzle <kientzle@gmail.com>
Sun, 6 Feb 2011 05:38:41 +0000 (00:38 -0500)
This tests archive_write_free() after an open failure with zip format.

SVN-Revision: 2956

libarchive/test/test_open_failure.c

index 5aa2cefa2028b669323ac936466d8b73c179d81d..62ae542e3681ff818a796963837bdbdfa077ba05 100644 (file)
@@ -176,6 +176,23 @@ DEFINE_TEST(test_open_failure)
        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_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);
+       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;