]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Add a test uudecode filter decodes a data of the Base64 encoding.
authorMichihiro NAKAJIMA <ggcueroad@gmail.com>
Fri, 30 Oct 2009 10:46:33 +0000 (06:46 -0400)
committerMichihiro NAKAJIMA <ggcueroad@gmail.com>
Fri, 30 Oct 2009 10:46:33 +0000 (06:46 -0400)
SVN-Revision: 1547

libarchive/test/test_read_uu.c

index 2d9cd9179b3aeb6946ed39e302de6f81108fc58d..35742ed3426abc42499826b95a137a34048c9a15 100644 (file)
@@ -54,7 +54,16 @@ static unsigned char archive[] = {
 0x0a,0x65,0x6e,0x64,0x0a
 };
 
-DEFINE_TEST(test_read_uu)
+static unsigned char archive64[] = {
+"begin-base64 644 test_read_uu.Z\n"
+"H52QLgAIHEiwoMGDCBMqXMiwIUIYEG/UqAECAMQYEmFUvJhxI8SPIDXGgDFjBg0YNDDOsAECxsga\n"
+"NmIAAFHDoc2bOHPqBFBnDp0wcizCoJOmzc6ERI0ePRhSo1CQFZdKnUq1qtWrWLNq3cq1q9evYMOK\n"
+"HUu2rNmzaNOqXcu2rdu3ZwE=\n"
+"====\n"
+};
+
+static void
+test_read_uu_sub(unsigned char *uudata, size_t uusize)
 {
        struct archive_entry *ae;
        struct archive *a;
@@ -63,7 +72,7 @@ DEFINE_TEST(test_read_uu)
            archive_read_support_compression_all(a));
        assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a));
        assertEqualIntA(a, ARCHIVE_OK,
-           read_open_memory(a, archive, sizeof(archive), 2));
+           read_open_memory(a, uudata, uusize, 2));
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
        failure("archive_compression_name(a)=\"%s\"",
            archive_compression_name(a));
@@ -78,4 +87,11 @@ DEFINE_TEST(test_read_uu)
 #endif
 }
 
+DEFINE_TEST(test_read_uu)
+{
+       /* Read the traditional uuencoded data. */
+       test_read_uu_sub(archive, sizeof(archive));
+       /* Read the Base64 encoding data. */
+       test_read_uu_sub(archive64, sizeof(archive64)-1);
+}