test_read_format_iso_Z.c revision 299529
162587Sitojun/*- 278064Sume * Copyright (c) 2003-2007 Tim Kientzle 362587Sitojun * All rights reserved. 4139826Simp * 553541Sshin * Redistribution and use in source and binary forms, with or without 653541Sshin * modification, are permitted provided that the following conditions 753541Sshin * are met: 853541Sshin * 1. Redistributions of source code must retain the above copyright 953541Sshin * notice, this list of conditions and the following disclaimer. 1053541Sshin * 2. Redistributions in binary form must reproduce the above copyright 1153541Sshin * notice, this list of conditions and the following disclaimer in the 1253541Sshin * documentation and/or other materials provided with the distribution. 1353541Sshin * 1453541Sshin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 1553541Sshin * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1653541Sshin * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1753541Sshin * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 1853541Sshin * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 1953541Sshin * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2053541Sshin * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2153541Sshin * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2253541Sshin * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2353541Sshin * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2453541Sshin */ 2553541Sshin#include "test.h" 2653541Sshin__FBSDID("$FreeBSD: head/contrib/libarchive/libarchive/test/test_read_format_iso_Z.c 299529 2016-05-12 10:16:16Z mm $"); 2753541Sshin 2853541Sshinstatic void 2953541Sshintest1(void) 3053541Sshin{ 3153541Sshin struct archive_entry *ae; 3253541Sshin struct archive *a; 33139826Simp const char *name = "test_read_format_iso.iso.Z"; 3453541Sshin 3553541Sshin extract_reference_file(name); 3653541Sshin 3753541Sshin assert((a = archive_read_new()) != NULL); 3853541Sshin assertEqualIntA(a, ARCHIVE_OK, 3953541Sshin archive_read_support_filter_all(a)); 4053541Sshin assertEqualIntA(a, ARCHIVE_OK, 4153541Sshin archive_read_support_format_all(a)); 4253541Sshin assertEqualIntA(a, ARCHIVE_OK, 4353541Sshin archive_read_open_filename(a, name, 512)); 4453541Sshin assertEqualIntA(a, ARCHIVE_OK, 4553541Sshin archive_read_next_header(a, &ae)); 4653541Sshin assertEqualInt(1, archive_file_count(a)); 4753541Sshin assertEqualInt(archive_filter_code(a, 0), 4853541Sshin ARCHIVE_FILTER_COMPRESS); 4953541Sshin assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660); 5053541Sshin assertEqualInt(archive_entry_is_encrypted(ae), 0); 5153541Sshin assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); 5253541Sshin assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); 5353541Sshin assertEqualInt(ARCHIVE_OK, archive_read_free(a)); 5453541Sshin} 5553541Sshin 5653541Sshinstatic void 5753541Sshintest2(void) 5853541Sshin{ 5953541Sshin struct archive_entry *ae; 6053541Sshin struct archive *a; 6153541Sshin const char *name = "test_read_format_iso_2.iso.Z"; 6253541Sshin 6353541Sshin extract_reference_file(name); 6462587Sitojun 6562587Sitojun assert((a = archive_read_new()) != NULL); 6655009Sshin assertEqualIntA(a, ARCHIVE_OK, 6753541Sshin archive_read_support_filter_all(a)); 6853541Sshin assertEqualIntA(a, ARCHIVE_OK, 6995759Stanimura archive_read_support_format_all(a)); 7095759Stanimura assertEqualIntA(a, ARCHIVE_OK, 7195759Stanimura archive_read_open_filename(a, name, 512)); 7278064Sume assertEqualIntA(a, ARCHIVE_OK, 7353541Sshin archive_read_next_header(a, &ae)); 7453541Sshin assertEqualString(".", archive_entry_pathname(ae)); 7595759Stanimura assertEqualIntA(a, ARCHIVE_OK, 7653541Sshin archive_read_next_header(a, &ae)); 7753541Sshin assertEqualString("A", archive_entry_pathname(ae)); 7895759Stanimura assertEqualIntA(a, ARCHIVE_OK, 7995759Stanimura archive_read_next_header(a, &ae)); 8095759Stanimura assertEqualString("A/B", archive_entry_pathname(ae)); 8153541Sshin assertEqualIntA(a, ARCHIVE_OK, 8253541Sshin archive_read_next_header(a, &ae)); 8353541Sshin assertEqualString("C", archive_entry_pathname(ae)); 8453541Sshin assertEqualIntA(a, ARCHIVE_OK, 8553541Sshin archive_read_next_header(a, &ae)); 8695759Stanimura assertEqualString("C/D", archive_entry_pathname(ae)); 8753541Sshin assertEqualIntA(a, ARCHIVE_EOF, 8853541Sshin archive_read_next_header(a, &ae)); 8995759Stanimura assertEqualInt(5, archive_file_count(a)); 9053541Sshin assertEqualInt(archive_filter_code(a, 0), 9162587Sitojun ARCHIVE_FILTER_COMPRESS); 9295759Stanimura assertEqualInt(archive_format(a), ARCHIVE_FORMAT_ISO9660); 93122922Sandre assertEqualInt(archive_entry_is_encrypted(ae), 0); 9495759Stanimura assertEqualIntA(a, archive_read_has_encrypted_entries(a), ARCHIVE_READ_FORMAT_ENCRYPTION_UNSUPPORTED); 9595759Stanimura assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); 9695759Stanimura assertEqualInt(ARCHIVE_OK, archive_read_free(a)); 9753541Sshin} 98148385Sume 9953541SshinDEFINE_TEST(test_read_format_iso_Z) 10053541Sshin{ 10153541Sshin test1(); 10253541Sshin test2(); 10353541Sshin} 10453541Sshin