From fbad616fc7435317a2e2d1206cdb2c57c53caf8e Mon Sep 17 00:00:00 2001 From: Andres Mejia Date: Mon, 28 Jan 2013 17:27:40 -0500 Subject: [PATCH] Write common checks for files in a separate function. --- libarchive/test/test_read_format_rar.c | 612 +++---------------------- 1 file changed, 57 insertions(+), 555 deletions(-) diff --git a/libarchive/test/test_read_format_rar.c b/libarchive/test/test_read_format_rar.c index f70bb1077..3fa4475da 100644 --- a/libarchive/test/test_read_format_rar.c +++ b/libarchive/test/test_read_format_rar.c @@ -1430,45 +1430,10 @@ DEFINE_TEST(test_read_format_rar_multivolume_seek_multiple_files) assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } -DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) +static void +test_read_format_rar_multivolume_uncompressed_files_helper(struct archive *a) { - const char *reffiles[] = - { - "test_rar_multivolume_uncompressed_files.part01.rar", - "test_rar_multivolume_uncompressed_files.part02.rar", - "test_rar_multivolume_uncompressed_files.part03.rar", - "test_rar_multivolume_uncompressed_files.part04.rar", - "test_rar_multivolume_uncompressed_files.part05.rar", - "test_rar_multivolume_uncompressed_files.part06.rar", - "test_rar_multivolume_uncompressed_files.part07.rar", - "test_rar_multivolume_uncompressed_files.part08.rar", - "test_rar_multivolume_uncompressed_files.part09.rar", - "test_rar_multivolume_uncompressed_files.part10.rar", - NULL - }; char buff[64]; - ssize_t bytes_read; - struct archive *a; - struct archive_entry *ae; - - extract_reference_files(reffiles); - 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_filenames(a, reffiles, 10240)); - - /* - * First header. - */ - assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); - assertEqualStringA(a, "testdir/LibarchiveAddingTest2.html", - archive_entry_pathname(ae)); - assertA((int)archive_entry_mtime(ae)); - assertA((int)archive_entry_ctime(ae)); - assertA((int)archive_entry_atime(ae)); - assertEqualIntA(a, 20111, archive_entry_size(ae)); - assertEqualIntA(a, 33188, archive_entry_mode(ae)); /* Do checks for seeks/reads past beginning and end of file */ assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); @@ -1517,6 +1482,49 @@ DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) assertEqualIntA(a, 20111 + ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); assertEqualStringA(a, "", buff); +} + +DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) +{ + const char *reffiles[] = + { + "test_rar_multivolume_uncompressed_files.part01.rar", + "test_rar_multivolume_uncompressed_files.part02.rar", + "test_rar_multivolume_uncompressed_files.part03.rar", + "test_rar_multivolume_uncompressed_files.part04.rar", + "test_rar_multivolume_uncompressed_files.part05.rar", + "test_rar_multivolume_uncompressed_files.part06.rar", + "test_rar_multivolume_uncompressed_files.part07.rar", + "test_rar_multivolume_uncompressed_files.part08.rar", + "test_rar_multivolume_uncompressed_files.part09.rar", + "test_rar_multivolume_uncompressed_files.part10.rar", + NULL + }; + char buff[64]; + ssize_t bytes_read; + struct archive *a; + struct archive_entry *ae; + + extract_reference_files(reffiles); + 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_filenames(a, reffiles, 10240)); + + /* + * First header. + */ + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualStringA(a, "testdir/LibarchiveAddingTest2.html", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertA((int)archive_entry_ctime(ae)); + assertA((int)archive_entry_atime(ae)); + assertEqualIntA(a, 20111, archive_entry_size(ae)); + assertEqualIntA(a, 33188, archive_entry_mode(ae)); + + test_read_format_rar_multivolume_uncompressed_files_helper(a); /* Read from the beginning to the end of the file */ assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); @@ -1765,53 +1773,7 @@ DEFINE_TEST(test_read_format_rar_multivolume_uncompressed_files) assertEqualStringA(a, "\n", buff); - /* Do checks for seeks/reads past beginning and end of file */ - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - /* Do checks for seeks/reads past beginning and end of file */ - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - /* Do checks for seeks/reads past beginning and end of file */ - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_SET)); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -(sizeof(buff)-1), SEEK_SET)); - assertEqualIntA(a, 0, archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t\n

\n", buff); - memset(buff, 0, sizeof(buff)); - assertEqualIntA(a, -1, archive_seek_data(a, -((sizeof(buff)-1)*2), SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualIntA(a, (sizeof(buff)-1), - archive_read_data(a, buff, (sizeof(buff)-1))); - assertEqualIntA(a, ((sizeof(buff)-1)*2), archive_seek_data(a, 0, SEEK_CUR)); - assertEqualStringA(a, "\n\n\t\n\t\n\t