]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Windows and Posix libarchive ports handle errors a little differently for external...
authorTim Kientzle <kientzle@gmail.com>
Thu, 23 Jul 2009 04:16:09 +0000 (00:16 -0400)
committerTim Kientzle <kientzle@gmail.com>
Thu, 23 Jul 2009 04:16:09 +0000 (00:16 -0400)
SVN-Revision: 1265

libarchive/test/test_read_compress_program.c

index c866e8ae80d0dfad978f92c03fb3d2301169e45b..396d92ac3c42f5304b4813d17693d1a9a11d5f4e 100644 (file)
@@ -53,11 +53,15 @@ DEFINE_TEST(test_read_compress_program)
        assertEqualIntA(a, ARCHIVE_OK, r);
        assertEqualIntA(a, ARCHIVE_OK,
            archive_read_support_format_all(a));
-       assertEqualIntA(a, ARCHIVE_OK,
-           archive_read_open_memory(a, archive, sizeof(archive)));
-       assertEqualIntA(a, ARCHIVE_FATAL,
-           archive_read_next_header(a, &ae));
-       assertEqualIntA(a, ARCHIVE_WARN, archive_read_close(a));
+       /* On Windows, archive_read_open_memory() fails if we try
+        * to run a nonexistent filter program; POSIX platforms
+        * don't return failure until the first read_next_header.
+        */
+       r = archive_read_open_memory(a, archive, sizeof(archive));
+       if (r == ARCHIVE_OK) {
+               assertEqualIntA(a, ARCHIVE_FATAL,
+                  archive_read_next_header(a, &ae));
+       }
        assertEqualInt(ARCHIVE_OK, archive_read_finish(a));
 
        /*