]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Updated test case.
authorClaybird <claybird.without.wing@gmail.com>
Thu, 7 Nov 2019 14:32:53 +0000 (23:32 +0900)
committerClaybird <claybird.without.wing@gmail.com>
Thu, 7 Nov 2019 14:32:53 +0000 (23:32 +0900)
This is to cover cases where dirname and filename have different codepages.

libarchive/test/test_read_format_lha_filename_utf16.c
libarchive/test/test_read_format_lha_filename_utf16.lzh.uu

index e1d62fc54a24291d45f9577333bc5fffa491f850..c544aac7a82a44813119117b3e8da21dd7862c25 100644 (file)
@@ -61,36 +61,59 @@ test_read_format_lha_filename_UTF16_UTF8(const char *refname)
        assertEqualIntA(a, ARCHIVE_OK,
            archive_read_open_filename(a, refname, 10240));
 
-       /* Verify regular file. */
-       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       /* Note that usual Japanese filenames are tested in other cases */
 #if defined(__APPLE__)
-       /* NFD normalization */
-       assertEqualString("\x55\xcc\x88\x4f\xcc\x88\x41\xcc\x88\x75\xcc\x88\x6f"
-           "\xcc\x88\x61\xcc\x88/\x61\xcc\x88\x6f\xcc\x88\x75\xcc\x88\x41\xcc\x88"
-           "\x4f\xcc\x88\x55\xcc\x88.txt",
-           archive_entry_pathname(ae));
+ /* NFD normalization */
+ /* U:O:A:u:o:a: */
+ #define UMLAUT_DIRNAME "\x55\xcc\x88\x4f\xcc\x88\x41\xcc\x88\x75\xcc\x88\x6f"\
+           "\xcc\x88\x61\xcc\x88/"
+ /* a:o:u:A:O:U:.txt */
+ #define UMLAUT_FNAME "\x61\xcc\x88\x6f\xcc\x88\x75\xcc\x88\x41\xcc\x88"\
+           "\x4f\xcc\x88\x55\xcc\x88.txt"
 #else
-       /* NFC normalization */
-       assertEqualString("\xc3\x9c\xc3\x96\xc3\x84\xc3\xbc\xc3\xb6\xc3\xa4/"
-           "\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c.txt",
-           archive_entry_pathname(ae));
+ /* NFC normalization */
+ /* U:O:A:u:o:a: */
+ #define UMLAUT_DIRNAME "\xc3\x9c\xc3\x96\xc3\x84\xc3\xbc\xc3\xb6\xc3\xa4/"
+ /* a:o:u:A:O:U:.txt */
+ #define UMLAUT_FNAME "\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c.txt"
 #endif
+
+/* "Test" in Japanese Katakana */
+#define KATAKANA_FNAME "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88.txt"
+#define KATAKANA_DIRNAME "\xe3\x83\x86\xe3\x82\xb9\xe3\x83\x88/"
+
+       /* Verify regular file. U:O:A:u:o:a:/a:o:u:A:O:U:.txt */
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       assertEqualString(UMLAUT_DIRNAME UMLAUT_FNAME, archive_entry_pathname(ae));
        assertEqualInt(12, archive_entry_size(ae));
 
-       /* Verify directory. */
+       /* Verify directory. U:O:A:u:o:a:/ */
        assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
-#if defined(__APPLE__)
-       /* NFD normalization */
-       assertEqualString("\x55\xcc\x88\x4f\xcc\x88\x41\xcc\x88\x75\xcc\x88\x6f"
-           "\xcc\x88\x61\xcc\x88/",
+       assertEqualString(UMLAUT_DIRNAME, archive_entry_pathname(ae));
+       assertEqualInt(0, archive_entry_size(ae));
+
+       /* Verify regular file. U:O:A:u:o:a:/("Test" in Japanese).txt */
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       assertEqualString(UMLAUT_DIRNAME KATAKANA_FNAME,
            archive_entry_pathname(ae));
-#else
-       /* NFC normalization */
-       assertEqualString("\xc3\x9c\xc3\x96\xc3\x84\xc3\xbc\xc3\xb6\xc3\xa4/",
+       assertEqualInt(25, archive_entry_size(ae));
+
+       /* Verify regular file. ("Test" in Japanese)/a:o:u:A:O:U:.txt */
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       assertEqualString(KATAKANA_DIRNAME UMLAUT_FNAME,
            archive_entry_pathname(ae));
-#endif
+       assertEqualInt(12, archive_entry_size(ae));
+
+       /* Verify directory. ("Test" in Japanese)/ */
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       assertEqualString(KATAKANA_DIRNAME, archive_entry_pathname(ae));
        assertEqualInt(0, archive_entry_size(ae));
 
+       /* Verify regular file. a:o:u:A:O:U:.txt */
+       assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
+       assertEqualString(UMLAUT_FNAME, archive_entry_pathname(ae));
+       assertEqualInt(12, archive_entry_size(ae));
+
        /* End of archive. */
        assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae));
 
index 6ca1313c7381c209f39b84e43b8002cf9b5c6a0e..ca5da7a64e59f9e8f3c09025c66b90d91bd6fe22 100644 (file)
@@ -4,6 +4,16 @@ M``)?7U]?7U__%P!$Y`#V`/P`Q`#6`-P`+@!T`'@`=``1`$7<`-8`Q`#\`/8`
 MY`#__QL`078S<F.15=4!]0V8@I%5U0'U#9B"D575`08```\:!P``PZ3#ML.\\r
 MPX3#EL.<90`M;&AD+0``````````PX"D72`"``!-!P!&I`,```,``0H``E]?\r
 M7U]?7_\%`$`0`!$`1=P`U@#$`/P`]@#D`/__&P!!FDHB>9B"U0$H^DQ_F(+5\r
-2`2CZ3'^8@M4!!@``GW<'````\r
+M`2CZ3'^8@M4!!@``GW<'``!J`"UL:#`M&0```!D```!V)L1=(`*CNTT'`$:D\r
+M`P``#0`!@V6#6(-G+G1X=`H``E]?7U]?7_\1`$7<`-8`Q`#\`/8`Y`#__QL`\r
+M00IF#4J@E-4!L"5C?'65U0&P)6-\=975`08``$%^!P``5&5S="!I;B!*87!A\r
+M;F5S92!+871A:V%N87L`+6QH,"T,````#````+#U6%T@`J=Q30<`1J0#```-\r
+M``%?7U]?7U\N='AT"@`"@V6#6(-G_Q<`1.0`]@#\`,0`U@#<`"X`=`!X`'0`\r
+M"P!%QC"Y,,@P__\;`$'D5O!-H)35`?4-F(*15=4!Y%;P3:"4U0$&``"A+0<`\r
+M`,.DP[;#O,.$PY;#G%0`+6QH9"T``````````-3`PET@`@``30<`1J0#```#\r
+M``$*``*#98-8@V?_!0!`$``;`$%%!\Y.H)35`3/_]%&@E-4!,__T4:"4U0$&\r
+M``!>;@<``&8`+6QH,"T,````#````+#U6%T@`J=Q30<`1J0#```-``%?7U]?\r
+M7U\N='AT%P!$Y`#V`/P`Q`#6`-P`+@!T`'@`=``;`$'D5O!-H)35`?4-F(*1\r
+@5=4!Y%;P3:"4U0$&``"M>`<``,.DP[;#O,.$PY;#G`#D\r
 `\r
 end\r