]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Modernize this test. Add additional assertions to verify that
authorTim Kientzle <kientzle@gmail.com>
Wed, 17 Feb 2010 05:54:50 +0000 (00:54 -0500)
committerTim Kientzle <kientzle@gmail.com>
Wed, 17 Feb 2010 05:54:50 +0000 (00:54 -0500)
     archive_position_compressed()
     == archive_position_uncompressed()
     == number of bytes actually written
when we didn't overflow the buffer.  These may not match when
the buffer does overflow because some writes down the pipeline
will fail.

SVN-Revision: 1908

libarchive/test/test_write_compress_gzip.c
libarchive/test/test_write_open_memory.c

index 47a636c9db369010584944c07e1bfc5e25ec21b8..2659795d72a154192f9c3bb9a2ed919ab377d78b 100644 (file)
@@ -55,6 +55,8 @@ DEFINE_TEST(test_write_compress_gzip)
         */
        assert((a = archive_write_new()) != NULL);
        assertEqualIntA(a, ARCHIVE_OK, archive_write_set_format_ustar(a));
+       assertEqualIntA(a, ARCHIVE_OK,
+           archive_write_set_compression_compress(a));
        r = archive_write_set_compression_gzip(a);
        if (r == ARCHIVE_FATAL) {
                skipping("gzip writing not supported on this platform");
@@ -89,8 +91,6 @@ DEFINE_TEST(test_write_compress_gzip)
                skipping("Can't verify gzip writing by reading back;"
                    " gzip reading not fully supported on this platform");
        } else {
-               assertEqualIntA(a, ARCHIVE_OK,
-                   archive_read_support_compression_all(a));
                assertEqualIntA(a, ARCHIVE_OK,
                    archive_read_open_memory(a, buff, used1));
                for (i = 0; i < 100; i++) {
index efa167ad677367a6f889263fa56409a6d0ca8c51..e9a01de08829091a85b5ccbdc2752d587d54fb13 100644 (file)
@@ -45,28 +45,40 @@ DEFINE_TEST(test_write_open_memory)
        /* Make sure that we get failure on too-small buffers, success on
         * large enough ones. */
        for (i = 100; i < 1600; i++) {
-               size_t s;
+               size_t used;
                size_t blocksize = 94;
                assert((a = archive_write_new()) != NULL);
-               assertA(0 == archive_write_set_format_ustar(a));
-               assertA(0 == archive_write_set_bytes_in_last_block(a, 1));
-               assertA(0 == archive_write_set_bytes_per_block(a, (int)blocksize));
+               assertEqualIntA(a, ARCHIVE_OK,
+                   archive_write_set_format_ustar(a));
+               assertEqualIntA(a, ARCHIVE_OK,
+                   archive_write_set_bytes_in_last_block(a, 1));
+               assertEqualIntA(a, ARCHIVE_OK,
+                   archive_write_set_bytes_per_block(a, (int)blocksize));
                buff[i] = 0xAE;
-               assertA(0 == archive_write_open_memory(a, buff, i, &s));
+               assertEqualIntA(a, ARCHIVE_OK,
+                   archive_write_open_memory(a, buff, i, &used));
                /* If buffer is smaller than a tar header, this should fail. */
                if (i < (511/blocksize)*blocksize)
-                       assertA(ARCHIVE_FATAL == archive_write_header(a,ae));
+                       assertEqualIntA(a, ARCHIVE_FATAL,
+                           archive_write_header(a,ae));
                else
-                       assertA(0 == archive_write_header(a, ae));
+                       assertEqualIntA(a, ARCHIVE_OK,
+                           archive_write_header(a, ae));
                /* If buffer is smaller than a tar header plus 1024 byte
                 * end-of-archive marker, then this should fail. */
+               failure("buffer size=%d\n", (int)i);
                if (i < 1536)
-                       assertA(ARCHIVE_FATAL == archive_write_close(a));
-               else
+                       assertEqualIntA(a, ARCHIVE_FATAL,
+                           archive_write_close(a));
+               else {
                        assertEqualIntA(a, ARCHIVE_OK, archive_write_close(a));
+                       assertEqualInt(used, archive_position_compressed(a));
+                       assertEqualInt(archive_position_compressed(a),
+                           archive_position_uncompressed(a));
+               }
                assertEqualInt(ARCHIVE_OK, archive_write_free(a));
-               assert(buff[i] == 0xAE);
-               assert(s <= i);
+               assertEqualInt(buff[i], 0xAE);
+               assert(used <= i);
        }
        archive_entry_free(ae);
 }