From: Tim Kientzle Date: Thu, 23 Jul 2009 04:16:09 +0000 (-0400) Subject: Windows and Posix libarchive ports handle errors a little differently for external... X-Git-Tag: v2.7.1~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fd582d986d2978be28d4640bc60db00539725873;p=thirdparty%2Flibarchive.git Windows and Posix libarchive ports handle errors a little differently for external decompression programs; verify that the responses are reasonable, but don't be too rigid. SVN-Revision: 1265 --- diff --git a/libarchive/test/test_read_compress_program.c b/libarchive/test/test_read_compress_program.c index c866e8ae8..396d92ac3 100644 --- a/libarchive/test/test_read_compress_program.c +++ b/libarchive/test/test_read_compress_program.c @@ -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)); /*