From caa67adc4f43a1704a54842090cd89fe71bcafd0 Mon Sep 17 00:00:00 2001 From: Michihiro NAKAJIMA Date: Wed, 7 Mar 2012 16:55:47 +0900 Subject: [PATCH] Add a unicode filename sample for test_read_format_rar for issue 247. --- libarchive/test/test_read_format_rar.c | 25 +++++++++++++++++-- .../test/test_read_format_rar_unicode.rar.uu | 5 ++-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/libarchive/test/test_read_format_rar.c b/libarchive/test/test_read_format_rar.c index 8a73a78e5..a7c61f9c3 100644 --- a/libarchive/test/test_read_format_rar.c +++ b/libarchive/test/test_read_format_rar.c @@ -1,6 +1,7 @@ /*- * Copyright (c) 2003-2007 Tim Kientzle * Copyright (c) 2011 Andres Mejia + * Copyright (c) 2011-2012 Michihiro NAKAJIMA * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -278,9 +279,19 @@ test_unicode_UTF8(void) assertEqualInt(41453, archive_entry_mode(ae)); assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + /* Sixth header */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualUTF8String( + "abcdefghijklmnopqrs\xE3\x83\x86\xE3\x82\xB9\xE3\x83\x88.txt", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertEqualInt(16, archive_entry_size(ae)); + assertEqualInt(33204, archive_entry_mode(ae)); + assertEqualIntA(a, 16, archive_read_data(a, buff, sizeof(buff))); + /* Test EOF */ assertA(1 == archive_read_next_header(a, &ae)); - assertEqualInt(5, archive_file_count(a)); + assertEqualInt(6, archive_file_count(a)); assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } @@ -364,9 +375,19 @@ test_unicode_CP932(void) assertEqualInt(41453, archive_entry_mode(ae)); assertEqualIntA(a, 0, archive_read_data(a, buff, sizeof(buff))); + /* Sixth header */ + assertA(0 == archive_read_next_header(a, &ae)); + assertEqualUTF8String( + "abcdefghijklmnopqrs\x83\x65\x83\x58\x83\x67.txt", + archive_entry_pathname(ae)); + assertA((int)archive_entry_mtime(ae)); + assertEqualInt(16, archive_entry_size(ae)); + assertEqualInt(33204, archive_entry_mode(ae)); + assertEqualIntA(a, 16, archive_read_data(a, buff, sizeof(buff))); + /* Test EOF */ assertA(1 == archive_read_next_header(a, &ae)); - assertEqualInt(5, archive_file_count(a)); + assertEqualInt(6, archive_file_count(a)); assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); assertEqualInt(ARCHIVE_OK, archive_read_free(a)); } diff --git a/libarchive/test/test_read_format_rar_unicode.rar.uu b/libarchive/test/test_read_format_rar_unicode.rar.uu index cfe6e40d5..8469e995b 100644 --- a/libarchive/test/test_read_format_rar_unicode.rar.uu +++ b/libarchive/test/test_read_format_rar_unicode.rar.uu @@ -11,7 +11,8 @@ M5H*U@J*#=(-(@XN#7P"(:&A@,(@P7*JP95."H>."I..#JP"(:&A@,(@P7*K5,*$PI##K,.:\HN6ME^F5M^.!A..# -ME>."H>."I..#J^60C6QO;FP!` -"!P`` +ME>."H>."I..#J^60C6QO;F.#B"YT>'0`D/\0?^2Y_">#,#TN'-+$/7L`0`<` ` end -- 2.47.3