test_read_format_txz.c revision 232153
1168404Spjd/*- 2168404Spjd * Copyright (c) 2009 Michihiro NAKAJIMA 3168404Spjd * Copyright (c) 2003-2007 Tim Kientzle 4168404Spjd * All rights reserved. 5168404Spjd * 6168404Spjd * Redistribution and use in source and binary forms, with or without 7168404Spjd * modification, are permitted provided that the following conditions 8168404Spjd * are met: 9168404Spjd * 1. Redistributions of source code must retain the above copyright 10168404Spjd * notice, this list of conditions and the following disclaimer. 11168404Spjd * 2. Redistributions in binary form must reproduce the above copyright 12168404Spjd * notice, this list of conditions and the following disclaimer in the 13168404Spjd * documentation and/or other materials provided with the distribution. 14168404Spjd * 15168404Spjd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 16168404Spjd * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17168404Spjd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18168404Spjd * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 19168404Spjd * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20168404Spjd * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21168404Spjd * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22168404Spjd * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23168404Spjd * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24168404Spjd * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25168404Spjd */ 26168404Spjd#include "test.h" 27168404Spjd__FBSDID("$FreeBSD: head/contrib/libarchive/libarchive/test/test_read_format_txz.c 232153 2012-02-25 10:58:02Z mm $"); 28168404Spjd 29168404Spjdstatic unsigned char archive[] = { 30168404Spjd253, 55,122, 88, 90, 0, 0, 4,230,214,180, 70, 2, 0, 33, 1, 31168404Spjd 22, 0, 0, 0,116, 47,229,163,224, 5,255, 0, 73, 93, 0, 23, 32168404Spjd 0, 51, 80, 24,164,204,238, 45, 77, 28,191, 13,144, 8, 10, 70, 33168404Spjd 5,173,215, 47,132,237,145,162, 96, 6,131,168,152, 8,135,161, 34168404Spjd189, 73,110,132, 27,195, 52,109,203, 22, 17,168,211, 18,181, 76, 35168404Spjd 93,120, 88,154,155,244,141,193,206,170,224, 80,137,134, 67, 1, 36168404Spjd 9,123,121,188,247, 28,139, 0, 0, 0, 0, 0,112,184, 17, 5, 37168404Spjd103, 16, 8, 73, 0, 1,101,128, 12, 0, 0, 0, 30, 69, 92, 96, 38168404Spjd177,196,103,251, 2, 0, 0, 0, 0, 4, 89, 90 39168404Spjd}; 40168404Spjd 41168404SpjdDEFINE_TEST(test_read_format_txz) 42168404Spjd{ 43168404Spjd struct archive_entry *ae; 44168404Spjd struct archive *a; 45168404Spjd int r; 46168404Spjd 47168404Spjd assert((a = archive_read_new()) != NULL); 48168404Spjd assertEqualIntA(a, ARCHIVE_OK, archive_read_support_filter_all(a)); 49168404Spjd r = archive_read_support_filter_xz(a); 50168404Spjd if (r == ARCHIVE_WARN) { 51168404Spjd skipping("xz reading not fully supported on this platform"); 52168404Spjd assertEqualInt(ARCHIVE_OK, archive_read_free(a)); 53168404Spjd return; 54168404Spjd } 55168404Spjd assertEqualIntA(a, ARCHIVE_OK, archive_read_support_format_all(a)); 56168404Spjd assertEqualIntA(a, ARCHIVE_OK, 57168404Spjd archive_read_open_memory(a, archive, sizeof(archive))); 58168404Spjd assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); 59168404Spjd assertEqualInt(1, archive_file_count(a)); 60168404Spjd assertEqualInt(archive_compression(a), ARCHIVE_COMPRESSION_XZ); 61168404Spjd assertEqualInt(archive_format(a), ARCHIVE_FORMAT_TAR_USTAR); 62168404Spjd assertEqualIntA(a, ARCHIVE_OK, archive_read_close(a)); 63168404Spjd assertEqualInt(ARCHIVE_OK, archive_read_free(a)); 64168404Spjd} 65168404Spjd