]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Add a test to check whether ISO images that interleave files and
authorTim Kientzle <kientzle@gmail.com>
Mon, 15 Aug 2011 04:29:25 +0000 (00:29 -0400)
committerTim Kientzle <kientzle@gmail.com>
Mon, 15 Aug 2011 04:29:25 +0000 (00:29 -0400)
directories can be properly read.
Currently, the ISO reader fails this test.

SVN-Revision: 3605

Makefile.am
libarchive/test/CMakeLists.txt
libarchive/test/test_read_format_iso_2.iso.Z.uu [new file with mode: 0644]
libarchive/test/test_read_format_iso_Z.c [moved from libarchive/test/test_read_format_iso_gz.c with 59% similarity]

index a322cdae3e1e5cb0e671047047811c57bf2334c7..e814835839a2cc84f9dc57f44d28a262e301a512 100644 (file)
@@ -325,7 +325,7 @@ libarchive_test_SOURCES=                                    \
        libarchive/test/test_read_format_gtar_gz.c              \
        libarchive/test/test_read_format_gtar_lzma.c            \
        libarchive/test/test_read_format_gtar_sparse.c          \
-       libarchive/test/test_read_format_iso_gz.c               \
+       libarchive/test/test_read_format_iso_Z.c                \
        libarchive/test/test_read_format_iso_multi_extent.c     \
        libarchive/test/test_read_format_iso_xorriso.c          \
        libarchive/test/test_read_format_isojoliet_bz2.c        \
@@ -468,6 +468,7 @@ libarchive_test_EXTRA_DIST=\
        libarchive/test/test_read_format_gtar_sparse_1_17_posix10.tar.uu \
        libarchive/test/test_read_format_gtar_sparse_1_17_posix10_modified.tar.uu \
        libarchive/test/test_read_format_iso.iso.Z.uu                   \
+       libarchive/test/test_read_format_iso_2.iso.Z.uu                 \
        libarchive/test/test_read_format_iso_joliet.iso.Z.uu            \
        libarchive/test/test_read_format_iso_joliet_by_nero.iso.Z.uu    \
        libarchive/test/test_read_format_iso_joliet_long.iso.Z.uu       \
index 8b5f162a73563102fa7c8c28a9cf842755005076..2fc14705ec03aa016872e6f14c8261a351578d3b 100644 (file)
@@ -89,7 +89,7 @@ IF(ENABLE_TEST)
     test_read_format_gtar_gz.c
     test_read_format_gtar_lzma.c
     test_read_format_gtar_sparse.c
-    test_read_format_iso_gz.c
+    test_read_format_iso_Z.c
     test_read_format_iso_multi_extent.c
     test_read_format_iso_xorriso.c
     test_read_format_isojoliet_bz2.c
diff --git a/libarchive/test/test_read_format_iso_2.iso.Z.uu b/libarchive/test/test_read_format_iso_2.iso.Z.uu
new file mode 100644 (file)
index 0000000..688ec36
--- /dev/null
@@ -0,0 +1,35 @@
+begin 644 test_read_format_iso_2.iso.Z
+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
+`
+end
similarity index 59%
rename from libarchive/test/test_read_format_iso_gz.c
rename to libarchive/test/test_read_format_iso_Z.c
index 25b5f09d99ad6d9ff6c0f7a307cd18d2e4483f7f..ee0c3e28b644d3c07ca0b2ec5b6250f517fd2bbe 100644 (file)
@@ -25,7 +25,7 @@
 #include "test.h"
 __FBSDID("$FreeBSD: head/lib/libarchive/test/test_read_format_iso_gz.c 201247 2009-12-30 05:59:21Z kientzle $");
 
-DEFINE_TEST(test_read_format_iso_gz)
+static void test1()
 {
        struct archive_entry *ae;
        struct archive *a;
@@ -50,4 +50,48 @@ DEFINE_TEST(test_read_format_iso_gz)
        assertEqualInt(ARCHIVE_OK, archive_read_free(a));
 }
 
+static void test2()
+{
+       struct archive_entry *ae;
+       struct archive *a;
+       const char *name = "test_read_format_iso_2.iso.Z";
+
+       extract_reference_file(name);
+
+       assert((a = archive_read_new()) != NULL);
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_support_filter_all(a));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_support_format_all(a));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_open_filename(a, name, 512));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_next_header(a, &ae));
+       assertEqualString(".", archive_entry_pathname(ae));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_next_header(a, &ae));
+       assertEqualString("A", archive_entry_pathname(ae));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_next_header(a, &ae));
+       assertEqualString("A/B", archive_entry_pathname(ae));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_next_header(a, &ae));
+       assertEqualString("C", archive_entry_pathname(ae));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_read_next_header(a, &ae));
+       assertEqualString("C/D", archive_entry_pathname(ae));
+       assertEqualIntA(a, ARCHIVE_EOF,
+           archive_read_next_header(a, &ae));
+       assertEqualInt(4, archive_file_count(a));
+       assertEqualInt(archive_compression(a),
+           ARCHIVE_COMPRESSION_COMPRESS);
+       assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660);
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
+       assertEqualInt(ARCHIVE_OK, archive_read_free(a));
+}
 
+DEFINE_TEST(test_read_format_iso_Z)
+{
+       test1();
+       test2();
+}