]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
tests: update expected return codes from FATAL to FAILED
authorTim Kientzle <kientzle@acm.org>
Sun, 3 May 2026 22:23:48 +0000 (15:23 -0700)
committerTim Kientzle <kientzle@acm.org>
Tue, 5 May 2026 20:39:27 +0000 (13:39 -0700)
Per-entry data errors (encryption, invalid filters, bad bitstream) now
return ARCHIVE_FAILED instead of ARCHIVE_FATAL.  Update tests that were
asserting the old incorrect ARCHIVE_FATAL return codes.

The one exception is test_read_format_7zip_encryption_partially line 71,
which asserts ARCHIVE_FATAL after archive_read_next_header on the entry
following an encrypted entry: 7zip cannot skip an encrypted entry (the
decode-folder setup fails), so the skip legitimately returns ARCHIVE_FATAL
and the archive is done.

libarchive/test/test_read_format_7zip_encryption_data.c
libarchive/test/test_read_format_7zip_encryption_partially.c
libarchive/test/test_read_format_rar5.c
libarchive/test/test_read_format_rar_encryption.c
libarchive/test/test_read_format_rar_encryption_data.c
libarchive/test/test_read_format_rar_encryption_partially.c
libarchive/test/test_read_format_rar_invalid1.c
libarchive/test/test_read_format_rar_overflow.c

index 653044a46317c63c2447befa34d2c6c57ea2e623..faf0bce2e53cbe51506527610ecd77d761456822 100644 (file)
@@ -51,7 +51,7 @@ DEFINE_TEST(test_read_format_7zip_encryption_data)
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualIntA(a, 1, archive_read_has_encrypted_entries(a));
-       assertEqualInt(ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
 
        assertEqualInt(1, archive_file_count(a));
 
index 51a6c06116d7a702ec5ed7899f80601397e52653..07a5e234901ce255795805edad458716cb5a3c8c 100644 (file)
@@ -63,7 +63,7 @@ DEFINE_TEST(test_read_format_7zip_encryption_partially)
                assertEqualInt(1, archive_entry_is_data_encrypted(ae));
                assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
                assertEqualIntA(a, 1, archive_read_has_encrypted_entries(a));
-               assertEqualInt(ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+               assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
 
                assertEqualInt(2, archive_file_count(a));
 
index 6ab0d236a1eda891b8373c7851cd52175bae1a92..4ab5690c46ac39d8e70b0c8440624cd78e9a785e 100644 (file)
@@ -1452,7 +1452,7 @@ DEFINE_TEST(test_read_format_rar5_only_crypt_exfld)
           during data extraction. */
 
        assertA(archive_read_next_header(a, &ae) == ARCHIVE_OK);
-       assertA(archive_read_data(a, buf, sizeof(buf)) == ARCHIVE_FATAL);
+       assertA(archive_read_data(a, buf, sizeof(buf)) == ARCHIVE_FAILED);
 
        /* The reader should also provide a valid error message. */
        assertA(archive_error_string(a) != NULL);
index 2355468be8096148c42c188810e7ff91683f4878..5b592e2b52335400c8a508505f69334fb28728d2 100644 (file)
@@ -47,7 +47,7 @@ static void test_encrypted_rar_archive(const char *filename, int filenamesEncryp
 
        /* We should only ever fail to read the data for "a.txt" and "c.txt" if they are encrypted */
        /* NOTE: We'll never attempt this when filenames are encrypted, so we only check for solid here */
-       expected_read_data_result = solid ? ARCHIVE_FATAL : expected_file_size;
+       expected_read_data_result = solid ? ARCHIVE_FAILED : expected_file_size;
 
        extract_reference_file(filename);
        assert((a = archive_read_new()) != NULL);
@@ -96,7 +96,7 @@ static void test_encrypted_rar_archive(const char *filename, int filenamesEncryp
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualInt(1, archive_read_has_encrypted_entries(a));
-       assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualIntA(a, ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
 
        /* Read the header for "c.txt" */
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -120,7 +120,7 @@ static void test_encrypted_rar_archive(const char *filename, int filenamesEncryp
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualInt(1, archive_read_has_encrypted_entries(a));
-       assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualIntA(a, ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
 
        /* End of archive. */
        assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
index 540546a8dd8a35cebbe71066df4e240428e37187..7e41b3b3f29fc24710893c27e21c767f853f9a09 100644 (file)
@@ -50,7 +50,7 @@ DEFINE_TEST(test_read_format_rar_encryption_data)
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualIntA(a, 1, archive_read_has_encrypted_entries(a));
-       assertEqualInt(ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
        
        /* Verify encrypted file "bar.txt" */
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
@@ -60,7 +60,7 @@ DEFINE_TEST(test_read_format_rar_encryption_data)
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualIntA(a, 1, archive_read_has_encrypted_entries(a));
-       assertEqualInt(ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
        
        assertEqualInt(2, archive_file_count(a));
 
index e68e78831b37badb783556a102dfa1d3a249b0a4..9c2106af8fa9965aa6c6a88d36ad31459a8fd48d 100644 (file)
@@ -51,7 +51,7 @@ DEFINE_TEST(test_read_format_rar_encryption_partially)
        assertEqualInt(1, archive_entry_is_data_encrypted(ae));
        assertEqualInt(0, archive_entry_is_metadata_encrypted(ae));
        assertEqualIntA(a, 1, archive_read_has_encrypted_entries(a));
-       assertEqualInt(ARCHIVE_FATAL, archive_read_data(a, buff, sizeof(buff)));
+       assertEqualInt(ARCHIVE_FAILED, archive_read_data(a, buff, sizeof(buff)));
        
        /* Verify unencrypted file "bar.txt". */
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
index cac58688ce21c314fced3a4e0e0e30c936941106..c99201763d4e7274752c8ee51b7c38f3d2973e61 100644 (file)
@@ -37,7 +37,7 @@ DEFINE_TEST(test_read_format_rar_invalid1)
        assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a));
        assertEqualIntA(a, ARCHIVE_OK, archive_read_open_filename(a, refname, 10240));
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
-       assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data(a, buff, 99));
+       assertEqualIntA(a, ARCHIVE_FAILED, archive_read_data(a, buff, 99));
        assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
        assertEqualInt(ARCHIVE_OK, archive_read_free(a));
 }
index b39ed6b2ba679490a2c995888c67a8cc3ae0bc2c..1f5c63dae75b8295786b830f77ab54acdd6cc567 100644 (file)
@@ -41,7 +41,7 @@ DEFINE_TEST(test_read_format_rar_overflow)
     assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
     assertEqualInt(48, archive_entry_size(ae));
     /* The next call should reproduce Issue #2565 */
-    assertEqualIntA(a, ARCHIVE_FATAL, archive_read_data_block(a, &buff, &size, &offset));
+    assertEqualIntA(a, ARCHIVE_FAILED, archive_read_data_block(a, &buff, &size, &offset));
 
     assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a));
     assertEqualInt(ARCHIVE_OK, archive_read_free(a));