summaryrefslogtreecommitdiff
path: root/libarchive/libarchive-2.7.1/tar/test
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@redhat.com>2010-02-05 11:06:31 +0100
committerTomas Bzatek <tbzatek@redhat.com>2010-02-05 11:06:31 +0100
commitbaea7d877d3cf69679a39e8512a120658a478073 (patch)
tree37c9a98cb3d3a322f3f91c8ca656ccd6bd2eaebe /libarchive/libarchive-2.7.1/tar/test
parente42a4ff3031aa1c1aaf27aa34d9395fec185924b (diff)
downloadtuxcmd-modules-baea7d877d3cf69679a39e8512a120658a478073.tar.xz
Rebase libarchive to 2.8.0
Diffstat (limited to 'libarchive/libarchive-2.7.1/tar/test')
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/CMakeLists.txt52
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/list.h14
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/main.c1132
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test.h164
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_0.c67
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_basic.c185
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_copy.c420
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_getdate.c80
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_help.c81
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_option_T.c153
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_option_q.c125
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_option_s.c106
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_patterns.c183
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_patterns_2.tar.uu231
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_patterns_3.tar.uu231
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_patterns_4.tar.uu641
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_stdio.c124
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_strip_components.c110
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_symlink_dir.c193
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_version.c96
-rw-r--r--libarchive/libarchive-2.7.1/tar/test/test_windows.c322
21 files changed, 0 insertions, 4710 deletions
diff --git a/libarchive/libarchive-2.7.1/tar/test/CMakeLists.txt b/libarchive/libarchive-2.7.1/tar/test/CMakeLists.txt
deleted file mode 100644
index 530fbb3..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/CMakeLists.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-############################################
-#
-# How to build bsdtar_test
-#
-############################################
-IF(ENABLE_TAR AND ENABLE_TEST)
- SET(bsdtar_test_SOURCES
- ../getdate.c
- main.c
- test.h
- test_0.c
- test_basic.c
- test_copy.c
- test_getdate.c
- test_help.c
- test_option_T.c
- test_option_q.c
- test_option_s.c
- test_patterns.c
- test_stdio.c
- test_strip_components.c
- test_symlink_dir.c
- test_version.c
- test_windows.c
- )
- IF(WIN32 AND NOT CYGWIN)
- LIST(APPEND bsdtar_test_SOURCES ../bsdtar_windows.c)
- LIST(APPEND bsdtar_test_SOURCES ../bsdtar_windows.h)
- ENDIF(WIN32 AND NOT CYGWIN)
-
- #
- # Generate the list.h
- #
- GENERATE_LIST_H(${CMAKE_CURRENT_BINARY_DIR}/list.h
- ${CMAKE_CURRENT_LIST_FILE} ${bsdtar_test_SOURCES})
- SET_PROPERTY(DIRECTORY APPEND PROPERTY INCLUDE_DIRECTORIES
- ${CMAKE_CURRENT_BINARY_DIR})
- #
- # Register target
- #
- ADD_EXECUTABLE(bsdtar_test ${bsdtar_test_SOURCES})
- SET_PROPERTY(TARGET bsdtar_test PROPERTY COMPILE_DEFINITIONS LIST_H)
- SET(num 0)
- FOREACH(test ${bsdtar_test_SOURCES})
- IF(test MATCHES "^test_[^/]+[.]c$")
- STRING(REGEX REPLACE "^(test_[^/]+)[.]c$" "\\1" testname ${test})
- ADD_TEST("bsdtar_${testname}" bsdtar_test
- -q -v -p ${BSDTAR} -r ${CMAKE_CURRENT_SOURCE_DIR} ${num})
- MATH(EXPR num "${num} + 1")
- ENDIF(test MATCHES "^test_[^/]+[.]c$")
- ENDFOREACH(test)
-ENDIF (ENABLE_TAR AND ENABLE_TEST)
diff --git a/libarchive/libarchive-2.7.1/tar/test/list.h b/libarchive/libarchive-2.7.1/tar/test/list.h
deleted file mode 100644
index 180bc9b..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/list.h
+++ /dev/null
@@ -1,14 +0,0 @@
-DEFINE_TEST(test_0)
-DEFINE_TEST(test_basic)
-DEFINE_TEST(test_copy)
-DEFINE_TEST(test_getdate)
-DEFINE_TEST(test_help)
-DEFINE_TEST(test_option_T)
-DEFINE_TEST(test_option_q)
-DEFINE_TEST(test_option_s)
-DEFINE_TEST(test_patterns)
-DEFINE_TEST(test_stdio)
-DEFINE_TEST(test_strip_components)
-DEFINE_TEST(test_symlink_dir)
-DEFINE_TEST(test_version)
-DEFINE_TEST(test_windows)
diff --git a/libarchive/libarchive-2.7.1/tar/test/main.c b/libarchive/libarchive-2.7.1/tar/test/main.c
deleted file mode 100644
index b564638..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/main.c
+++ /dev/null
@@ -1,1132 +0,0 @@
-/*
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*
- * Various utility routines useful for test programs.
- * Each test program is linked against this file.
- */
-#include "test.h"
-
-#include <errno.h>
-#include <locale.h>
-#include <stdarg.h>
-#include <time.h>
-
-/*
- * This same file is used pretty much verbatim for all test harnesses.
- *
- * The next few lines are the only differences.
- */
-#define PROGRAM "bsdtar" /* Name of program being tested. */
-#define ENVBASE "BSDTAR" /* Prefix for environment variables. */
-#undef EXTRA_DUMP /* How to dump extra data */
-/* How to generate extra version info. */
-#define EXTRA_VERSION (systemf("%s --version", testprog) ? "" : "")
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/main.c,v 1.6 2008/11/05 06:40:53 kientzle Exp $");
-
-/*
- * "list.h" is simply created by "grep DEFINE_TEST"; it has
- * a line like
- * DEFINE_TEST(test_function)
- * for each test.
- * Include it here with a suitable DEFINE_TEST to declare all of the
- * test functions.
- */
-#undef DEFINE_TEST
-#define DEFINE_TEST(name) void name(void);
-#include "list.h"
-
-/* Interix doesn't define these in a standard header. */
-#if __INTERIX__
-extern char *optarg;
-extern int optind;
-#endif
-
-/* Enable core dump on failure. */
-static int dump_on_failure = 0;
-/* Default is to remove temp dirs for successful tests. */
-static int keep_temp_files = 0;
-/* Default is to print some basic information about each test. */
-static int quiet_flag = 0;
-/* Default is to summarize repeated failures. */
-static int verbose = 0;
-/* Cumulative count of component failures. */
-static int failures = 0;
-/* Cumulative count of skipped component tests. */
-static int skips = 0;
-/* Cumulative count of assertions. */
-static int assertions = 0;
-
-/* Directory where uuencoded reference files can be found. */
-static const char *refdir;
-
-/*
- * My own implementation of the standard assert() macro emits the
- * message in the same format as GCC (file:line: message).
- * It also includes some additional useful information.
- * This makes it a lot easier to skim through test failures in
- * Emacs. ;-)
- *
- * It also supports a few special features specifically to simplify
- * test harnesses:
- * failure(fmt, args) -- Stores a text string that gets
- * printed if the following assertion fails, good for
- * explaining subtle tests.
- */
-static char msg[4096];
-
-/*
- * For each test source file, we remember how many times each
- * failure was reported.
- */
-static const char *failed_filename = NULL;
-static struct line {
- int line;
- int count;
-} failed_lines[1000];
-
-/*
- * Count this failure; return the number of previous failures.
- */
-static int
-previous_failures(const char *filename, int line)
-{
- unsigned int i;
- int count;
-
- if (failed_filename == NULL || strcmp(failed_filename, filename) != 0)
- memset(failed_lines, 0, sizeof(failed_lines));
- failed_filename = filename;
-
- for (i = 0; i < sizeof(failed_lines)/sizeof(failed_lines[0]); i++) {
- if (failed_lines[i].line == line) {
- count = failed_lines[i].count;
- failed_lines[i].count++;
- return (count);
- }
- if (failed_lines[i].line == 0) {
- failed_lines[i].line = line;
- failed_lines[i].count = 1;
- return (0);
- }
- }
- return (0);
-}
-
-/*
- * Copy arguments into file-local variables.
- */
-static const char *test_filename;
-static int test_line;
-static void *test_extra;
-void test_setup(const char *filename, int line)
-{
- test_filename = filename;
- test_line = line;
-}
-
-/*
- * Inform user that we're skipping a test.
- */
-void
-test_skipping(const char *fmt, ...)
-{
- va_list ap;
-
- if (previous_failures(test_filename, test_line))
- return;
-
- va_start(ap, fmt);
- fprintf(stderr, " *** SKIPPING: ");
- vfprintf(stderr, fmt, ap);
- fprintf(stderr, "\n");
- va_end(ap);
- ++skips;
-}
-
-/* Common handling of failed tests. */
-static void
-report_failure(void *extra)
-{
- if (msg[0] != '\0') {
- fprintf(stderr, " Description: %s\n", msg);
- msg[0] = '\0';
- }
-
-#ifdef EXTRA_DUMP
- if (extra != NULL)
- fprintf(stderr, " detail: %s\n", EXTRA_DUMP(extra));
-#else
- (void)extra; /* UNUSED */
-#endif
-
- if (dump_on_failure) {
- fprintf(stderr,
- " *** forcing core dump so failure can be debugged ***\n");
- *(char *)(NULL) = 0;
- exit(1);
- }
-}
-
-/*
- * Summarize repeated failures in the just-completed test file.
- * The reports above suppress multiple failures from the same source
- * line; this reports on any tests that did fail multiple times.
- */
-static int
-summarize_comparator(const void *a0, const void *b0)
-{
- const struct line *a = a0, *b = b0;
- if (a->line == 0 && b->line == 0)
- return (0);
- if (a->line == 0)
- return (1);
- if (b->line == 0)
- return (-1);
- return (a->line - b->line);
-}
-
-static void
-summarize(void)
-{
- unsigned int i;
-
- qsort(failed_lines, sizeof(failed_lines)/sizeof(failed_lines[0]),
- sizeof(failed_lines[0]), summarize_comparator);
- for (i = 0; i < sizeof(failed_lines)/sizeof(failed_lines[0]); i++) {
- if (failed_lines[i].line == 0)
- break;
- if (failed_lines[i].count > 1)
- fprintf(stderr, "%s:%d: Failed %d times\n",
- failed_filename, failed_lines[i].line,
- failed_lines[i].count);
- }
- /* Clear the failure history for the next file. */
- memset(failed_lines, 0, sizeof(failed_lines));
-}
-
-/* Set up a message to display only after a test fails. */
-void
-failure(const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
- vsprintf(msg, fmt, ap);
- va_end(ap);
-}
-
-/* Generic assert() just displays the failed condition. */
-int
-test_assert(const char *file, int line, int value, const char *condition, void *extra)
-{
- ++assertions;
- if (value) {
- msg[0] = '\0';
- return (value);
- }
- failures ++;
- if (!verbose && previous_failures(file, line))
- return (value);
- fprintf(stderr, "%s:%d: Assertion failed\n", file, line);
- fprintf(stderr, " Condition: %s\n", condition);
- report_failure(extra);
- return (value);
-}
-
-/* assertEqualInt() displays the values of the two integers. */
-int
-test_assert_equal_int(const char *file, int line,
- int v1, const char *e1, int v2, const char *e2, void *extra)
-{
- ++assertions;
- if (v1 == v2) {
- msg[0] = '\0';
- return (1);
- }
- failures ++;
- if (!verbose && previous_failures(file, line))
- return (0);
- fprintf(stderr, "%s:%d: Assertion failed: Ints not equal\n",
- file, line);
- fprintf(stderr, " %s=%d\n", e1, v1);
- fprintf(stderr, " %s=%d\n", e2, v2);
- report_failure(extra);
- return (0);
-}
-
-static void strdump(const char *p)
-{
- if (p == NULL) {
- fprintf(stderr, "(null)");
- return;
- }
- fprintf(stderr, "\"");
- while (*p != '\0') {
- unsigned int c = 0xff & *p++;
- switch (c) {
- case '\a': fprintf(stderr, "\a"); break;
- case '\b': fprintf(stderr, "\b"); break;
- case '\n': fprintf(stderr, "\n"); break;
- case '\r': fprintf(stderr, "\r"); break;
- default:
- if (c >= 32 && c < 127)
- fprintf(stderr, "%c", c);
- else
- fprintf(stderr, "\\x%02X", c);
- }
- }
- fprintf(stderr, "\"");
-}
-
-/* assertEqualString() displays the values of the two strings. */
-int
-test_assert_equal_string(const char *file, int line,
- const char *v1, const char *e1,
- const char *v2, const char *e2,
- void *extra)
-{
- ++assertions;
- if (v1 == NULL || v2 == NULL) {
- if (v1 == v2) {
- msg[0] = '\0';
- return (1);
- }
- } else if (strcmp(v1, v2) == 0) {
- msg[0] = '\0';
- return (1);
- }
- failures ++;
- if (!verbose && previous_failures(file, line))
- return (0);
- fprintf(stderr, "%s:%d: Assertion failed: Strings not equal\n",
- file, line);
- fprintf(stderr, " %s = ", e1);
- strdump(v1);
- fprintf(stderr, " (length %d)\n", v1 == NULL ? 0 : (int)strlen(v1));
- fprintf(stderr, " %s = ", e2);
- strdump(v2);
- fprintf(stderr, " (length %d)\n", v2 == NULL ? 0 : (int)strlen(v2));
- report_failure(extra);
- return (0);
-}
-
-static void wcsdump(const wchar_t *w)
-{
- if (w == NULL) {
- fprintf(stderr, "(null)");
- return;
- }
- fprintf(stderr, "\"");
- while (*w != L'\0') {
- unsigned int c = *w++;
- if (c >= 32 && c < 127)
- fprintf(stderr, "%c", c);
- else if (c < 256)
- fprintf(stderr, "\\x%02X", c);
- else if (c < 0x10000)
- fprintf(stderr, "\\u%04X", c);
- else
- fprintf(stderr, "\\U%08X", c);
- }
- fprintf(stderr, "\"");
-}
-
-/* assertEqualWString() displays the values of the two strings. */
-int
-test_assert_equal_wstring(const char *file, int line,
- const wchar_t *v1, const char *e1,
- const wchar_t *v2, const char *e2,
- void *extra)
-{
- ++assertions;
- if (v1 == NULL) {
- if (v2 == NULL) {
- msg[0] = '\0';
- return (1);
- }
- } else if (v2 == NULL) {
- if (v1 == NULL) {
- msg[0] = '\0';
- return (1);
- }
- } else if (wcscmp(v1, v2) == 0) {
- msg[0] = '\0';
- return (1);
- }
- failures ++;
- if (!verbose && previous_failures(file, line))
- return (0);
- fprintf(stderr, "%s:%d: Assertion failed: Unicode strings not equal\n",
- file, line);
- fprintf(stderr, " %s = ", e1);
- wcsdump(v1);
- fprintf(stderr, "\n");
- fprintf(stderr, " %s = ", e2);
- wcsdump(v2);
- fprintf(stderr, "\n");
- report_failure(extra);
- return (0);
-}
-
-/*
- * Pretty standard hexdump routine. As a bonus, if ref != NULL, then
- * any bytes in p that differ from ref will be highlighted with '_'
- * before and after the hex value.
- */
-static void
-hexdump(const char *p, const char *ref, size_t l, size_t offset)
-{
- size_t i, j;
- char sep;
-
- for(i=0; i < l; i+=16) {
- fprintf(stderr, "%04x", (int)(i + offset));
- sep = ' ';
- for (j = 0; j < 16 && i + j < l; j++) {
- if (ref != NULL && p[i + j] != ref[i + j])
- sep = '_';
- fprintf(stderr, "%c%02x", sep, 0xff & (int)p[i+j]);
- if (ref != NULL && p[i + j] == ref[i + j])
- sep = ' ';
- }
- for (; j < 16; j++) {
- fprintf(stderr, "%c ", sep);
- sep = ' ';
- }
- fprintf(stderr, "%c", sep);
- for (j=0; j < 16 && i + j < l; j++) {
- int c = p[i + j];
- if (c >= ' ' && c <= 126)
- fprintf(stderr, "%c", c);
- else
- fprintf(stderr, ".");
- }
- fprintf(stderr, "\n");
- }
-}
-
-/* assertEqualMem() displays the values of the two memory blocks. */
-/* TODO: For long blocks, hexdump the first bytes that actually differ. */
-int
-test_assert_equal_mem(const char *file, int line,
- const char *v1, const char *e1,
- const char *v2, const char *e2,
- size_t l, const char *ld, void *extra)
-{
- ++assertions;
- if (v1 == NULL || v2 == NULL) {
- if (v1 == v2) {
- msg[0] = '\0';
- return (1);
- }
- } else if (memcmp(v1, v2, l) == 0) {
- msg[0] = '\0';
- return (1);
- }
- failures ++;
- if (!verbose && previous_failures(file, line))
- return (0);
- fprintf(stderr, "%s:%d: Assertion failed: memory not equal\n",
- file, line);
- fprintf(stderr, " size %s = %d\n", ld, (int)l);
- fprintf(stderr, " Dump of %s\n", e1);
- hexdump(v1, v2, l < 32 ? l : 32, 0);
- fprintf(stderr, " Dump of %s\n", e2);
- hexdump(v2, v1, l < 32 ? l : 32, 0);
- fprintf(stderr, "\n");
- report_failure(extra);
- return (0);
-}
-
-int
-test_assert_empty_file(const char *f1fmt, ...)
-{
- char buff[1024];
- char f1[1024];
- struct stat st;
- va_list ap;
- ssize_t s;
- int fd;
-
-
- va_start(ap, f1fmt);
- vsprintf(f1, f1fmt, ap);
- va_end(ap);
-
- if (stat(f1, &st) != 0) {
- fprintf(stderr, "%s:%d: Could not stat: %s\n",
- test_filename, test_line, f1);
- failures ++;
- report_failure(NULL);
- return (0);
- }
- if (st.st_size == 0)
- return (1);
-
- failures ++;
- if (!verbose && previous_failures(test_filename, test_line))
- return (0);
-
- fprintf(stderr, "%s:%d: File not empty: %s\n", test_filename, test_line, f1);
- fprintf(stderr, " File size: %d\n", (int)st.st_size);
- fprintf(stderr, " Contents:\n");
- fd = open(f1, O_RDONLY);
- if (fd < 0) {
- fprintf(stderr, " Unable to open %s\n", f1);
- } else {
- s = ((off_t)sizeof(buff) < st.st_size) ?
- (ssize_t)sizeof(buff) : (ssize_t)st.st_size;
- s = read(fd, buff, s);
- hexdump(buff, NULL, s, 0);
- close(fd);
- }
- report_failure(NULL);
- return (0);
-}
-
-int
-test_assert_non_empty_file(const char *f1fmt, ...)
-{
- char f1[1024];
- struct stat st;
- va_list ap;
-
-
- va_start(ap, f1fmt);
- vsprintf(f1, f1fmt, ap);
- va_end(ap);
-
- if (stat(f1, &st) != 0) {
- fprintf(stderr, "%s:%d: Could not stat: %s\n",
- test_filename, test_line, f1);
- report_failure(NULL);
- failures++;
- return (0);
- }
- if (st.st_size != 0)
- return (1);
-
- failures ++;
- if (!verbose && previous_failures(test_filename, test_line))
- return (0);
-
- fprintf(stderr, "%s:%d: File empty: %s\n",
- test_filename, test_line, f1);
- report_failure(NULL);
- return (0);
-}
-
-/* assertEqualFile() asserts that two files have the same contents. */
-/* TODO: hexdump the first bytes that actually differ. */
-int
-test_assert_equal_file(const char *f1, const char *f2pattern, ...)
-{
- char f2[1024];
- va_list ap;
- char buff1[1024];
- char buff2[1024];
- int fd1, fd2;
- int n1, n2;
-
- va_start(ap, f2pattern);
- vsprintf(f2, f2pattern, ap);
- va_end(ap);
-
- fd1 = open(f1, O_RDONLY);
- fd2 = open(f2, O_RDONLY);
- for (;;) {
- n1 = read(fd1, buff1, sizeof(buff1));
- n2 = read(fd2, buff2, sizeof(buff2));
- if (n1 != n2)
- break;
- if (n1 == 0 && n2 == 0) {
- close(fd1);
- close(fd2);
- return (1);
- }
- if (memcmp(buff1, buff2, n1) != 0)
- break;
- }
- close(fd1);
- close(fd2);
- failures ++;
- if (!verbose && previous_failures(test_filename, test_line))
- return (0);
- fprintf(stderr, "%s:%d: Files are not identical\n",
- test_filename, test_line);
- fprintf(stderr, " file1=\"%s\"\n", f1);
- fprintf(stderr, " file2=\"%s\"\n", f2);
- report_failure(test_extra);
- return (0);
-}
-
-int
-test_assert_file_exists(const char *fpattern, ...)
-{
- char f[1024];
- va_list ap;
-
- va_start(ap, fpattern);
- vsprintf(f, fpattern, ap);
- va_end(ap);
-
- if (!access(f, F_OK))
- return (1);
- if (!previous_failures(test_filename, test_line)) {
- fprintf(stderr, "%s:%d: File doesn't exist\n",
- test_filename, test_line);
- fprintf(stderr, " file=\"%s\"\n", f);
- report_failure(test_extra);
- }
- return (0);
-}
-
-int
-test_assert_file_not_exists(const char *fpattern, ...)
-{
- char f[1024];
- va_list ap;
-
- va_start(ap, fpattern);
- vsprintf(f, fpattern, ap);
- va_end(ap);
-
- if (access(f, F_OK))
- return (1);
- if (!previous_failures(test_filename, test_line)) {
- fprintf(stderr, "%s:%d: File exists and shouldn't\n",
- test_filename, test_line);
- fprintf(stderr, " file=\"%s\"\n", f);
- report_failure(test_extra);
- }
- return (0);
-}
-
-/* assertFileContents() asserts the contents of a file. */
-int
-test_assert_file_contents(const void *buff, int s, const char *fpattern, ...)
-{
- char f[1024];
- va_list ap;
- char *contents;
- int fd;
- int n;
-
- va_start(ap, fpattern);
- vsprintf(f, fpattern, ap);
- va_end(ap);
-
- fd = open(f, O_RDONLY);
- if (fd < 0) {
- failures ++;
- if (!previous_failures(test_filename, test_line)) {
- fprintf(stderr, "%s:%d: File doesn't exist: %s\n",
- test_filename, test_line, f);
- report_failure(test_extra);
- }
- return (0);
- }
- contents = malloc(s * 2);
- n = read(fd, contents, s * 2);
- close(fd);
- if (n == s && memcmp(buff, contents, s) == 0) {
- free(contents);
- return (1);
- }
- failures ++;
- if (!previous_failures(test_filename, test_line)) {
- fprintf(stderr, "%s:%d: File contents don't match\n",
- test_filename, test_line);
- fprintf(stderr, " file=\"%s\"\n", f);
- if (n > 0)
- hexdump(contents, buff, n, 0);
- else {
- fprintf(stderr, " File empty, contents should be:\n");
- hexdump(buff, NULL, s, 0);
- }
- report_failure(test_extra);
- }
- free(contents);
- return (0);
-}
-
-/*
- * Call standard system() call, but build up the command line using
- * sprintf() conventions.
- */
-int
-systemf(const char *fmt, ...)
-{
- char buff[8192];
- va_list ap;
- int r;
-
- va_start(ap, fmt);
- vsprintf(buff, fmt, ap);
- r = system(buff);
- va_end(ap);
- return (r);
-}
-
-/*
- * Slurp a file into memory for ease of comparison and testing.
- * Returns size of file in 'sizep' if non-NULL, null-terminates
- * data in memory for ease of use.
- */
-char *
-slurpfile(size_t * sizep, const char *fmt, ...)
-{
- char filename[8192];
- struct stat st;
- va_list ap;
- char *p;
- ssize_t bytes_read;
- int fd;
- int r;
-
- va_start(ap, fmt);
- vsprintf(filename, fmt, ap);
- va_end(ap);
-
- fd = open(filename, O_RDONLY);
- if (fd < 0) {
- /* Note: No error; non-existent file is okay here. */
- return (NULL);
- }
- r = fstat(fd, &st);
- if (r != 0) {
- fprintf(stderr, "Can't stat file %s\n", filename);
- close(fd);
- return (NULL);
- }
- p = malloc(st.st_size + 1);
- if (p == NULL) {
- fprintf(stderr, "Can't allocate %ld bytes of memory to read file %s\n", (long int)st.st_size, filename);
- close(fd);
- return (NULL);
- }
- bytes_read = read(fd, p, st.st_size);
- if (bytes_read < st.st_size) {
- fprintf(stderr, "Can't read file %s\n", filename);
- close(fd);
- free(p);
- return (NULL);
- }
- p[st.st_size] = '\0';
- if (sizep != NULL)
- *sizep = (size_t)st.st_size;
- close(fd);
- return (p);
-}
-
-/*
- * "list.h" is automatically generated; it just has a lot of lines like:
- * DEFINE_TEST(function_name)
- * It's used above to declare all of the test functions.
- * We reuse it here to define a list of all tests (functions and names).
- */
-#undef DEFINE_TEST
-#define DEFINE_TEST(n) { n, #n },
-struct { void (*func)(void); const char *name; } tests[] = {
- #include "list.h"
-};
-
-/*
- * Each test is run in a private work dir. Those work dirs
- * do have consistent and predictable names, in case a group
- * of tests need to collaborate. However, there is no provision
- * for requiring that tests run in a certain order.
- */
-static int test_run(int i, const char *tmpdir)
-{
- int failures_before = failures;
-
- if (!quiet_flag) {
- printf("%d: %s\n", i, tests[i].name);
- fflush(stdout);
- }
-
- /*
- * Always explicitly chdir() in case the last test moved us to
- * a strange place.
- */
- if (chdir(tmpdir)) {
- fprintf(stderr,
- "ERROR: Couldn't chdir to temp dir %s\n",
- tmpdir);
- exit(1);
- }
- /* Create a temp directory for this specific test. */
- if (mkdir(tests[i].name, 0755)) {
- fprintf(stderr,
- "ERROR: Couldn't create temp dir ``%s''\n",
- tests[i].name);
- exit(1);
- }
- /* Chdir() to that work directory. */
- if (chdir(tests[i].name)) {
- fprintf(stderr,
- "ERROR: Couldn't chdir to temp dir ``%s''\n",
- tests[i].name);
- exit(1);
- }
- /* Explicitly reset the locale before each test. */
- setlocale(LC_ALL, "C");
- /* Run the actual test. */
- (*tests[i].func)();
- /* Summarize the results of this test. */
- summarize();
- /* If there were no failures, we can remove the work dir. */
- if (failures == failures_before) {
- if (!keep_temp_files && chdir(tmpdir) == 0) {
-#if defined(_WIN32) && !defined(__CYGWIN__)
- systemf("rmdir /S /Q %s", tests[i].name);
-#else
- systemf("rm -rf %s", tests[i].name);
-#endif
- }
- }
- /* Return appropriate status. */
- return (failures == failures_before ? 0 : 1);
-}
-
-static void usage(const char *program)
-{
- static const int limit = sizeof(tests) / sizeof(tests[0]);
- int i;
-
- printf("Usage: %s [options] <test> <test> ...\n", program);
- printf("Default is to run all tests.\n");
- printf("Otherwise, specify the numbers of the tests you wish to run.\n");
- printf("Options:\n");
- printf(" -d Dump core after any failure, for debugging.\n");
- printf(" -k Keep all temp files.\n");
- printf(" Default: temp files for successful tests deleted.\n");
-#ifdef PROGRAM
- printf(" -p <path> Path to executable to be tested.\n");
- printf(" Default: path taken from " ENVBASE " environment variable.\n");
-#endif
- printf(" -q Quiet.\n");
- printf(" -r <dir> Path to dir containing reference files.\n");
- printf(" Default: Current directory.\n");
- printf(" -v Verbose.\n");
- printf("Available tests:\n");
- for (i = 0; i < limit; i++)
- printf(" %d: %s\n", i, tests[i].name);
- exit(1);
-}
-
-#define UUDECODE(c) (((c) - 0x20) & 0x3f)
-
-void
-extract_reference_file(const char *name)
-{
- char buff[1024];
- FILE *in, *out;
-
- sprintf(buff, "%s/%s.uu", refdir, name);
- in = fopen(buff, "r");
- failure("Couldn't open reference file %s", buff);
- assert(in != NULL);
- if (in == NULL)
- return;
- /* Read up to and including the 'begin' line. */
- for (;;) {
- if (fgets(buff, sizeof(buff), in) == NULL) {
- /* TODO: This is a failure. */
- return;
- }
- if (memcmp(buff, "begin ", 6) == 0)
- break;
- }
- /* Now, decode the rest and write it. */
- /* Not a lot of error checking here; the input better be right. */
- out = fopen(name, "w");
- while (fgets(buff, sizeof(buff), in) != NULL) {
- char *p = buff;
- int bytes;
-
- if (memcmp(buff, "end", 3) == 0)
- break;
-
- bytes = UUDECODE(*p++);
- while (bytes > 0) {
- int n = 0;
- /* Write out 1-3 bytes from that. */
- if (bytes > 0) {
- n = UUDECODE(*p++) << 18;
- n |= UUDECODE(*p++) << 12;
- fputc(n >> 16, out);
- --bytes;
- }
- if (bytes > 0) {
- n |= UUDECODE(*p++) << 6;
- fputc((n >> 8) & 0xFF, out);
- --bytes;
- }
- if (bytes > 0) {
- n |= UUDECODE(*p++);
- fputc(n & 0xFF, out);
- --bytes;
- }
- }
- }
- fclose(out);
- fclose(in);
-}
-
-
-int main(int argc, char **argv)
-{
- static const int limit = sizeof(tests) / sizeof(tests[0]);
- int i, tests_run = 0, tests_failed = 0, opt;
- time_t now;
- char *refdir_alloc = NULL;
-#if defined(_WIN32) && !defined(__CYGWIN__)
- char *testprg;
-#endif
- const char *tmp, *opt_arg, *progname, *p;
- char tmpdir[256];
- char tmpdir_timestamp[256];
-
- (void)argc; /* UNUSED */
-
-#if defined(_WIN32) && !defined(__CYGWIN__)
- /* Make sure open() function will be used with a binary mode. */
- /* on cygwin, we need something similar, but instead link against */
- /* a special startup object, binmode.o */
- _set_fmode(_O_BINARY);
-#endif
- /*
- * Name of this program, used to build root of our temp directory
- * tree.
- */
- progname = p = argv[0];
- while (*p != '\0') {
- /* Support \ or / dir separators for Windows compat. */
- if (*p == '/' || *p == '\\')
- progname = p + 1;
- ++p;
- }
-
-#ifdef PROGRAM
- /* Get the target program from environment, if available. */
- testprog = getenv(ENVBASE);
-#endif
-
- if (getenv("TMPDIR") != NULL)
- tmp = getenv("TMPDIR");
- else if (getenv("TMP") != NULL)
- tmp = getenv("TMP");
- else if (getenv("TEMP") != NULL)
- tmp = getenv("TEMP");
- else if (getenv("TEMPDIR") != NULL)
- tmp = getenv("TEMPDIR");
- else
- tmp = "/tmp";
-
- /* Allow -d to be controlled through the environment. */
- if (getenv(ENVBASE "_DEBUG") != NULL)
- dump_on_failure = 1;
-
- /* Get the directory holding test files from environment. */
- refdir = getenv(ENVBASE "_TEST_FILES");
-
- /*
- * Parse options, without using getopt(), which isn't available
- * on all platforms.
- */
- ++argv; /* Skip program name */
- while (*argv != NULL) {
- if (**argv != '-')
- break;
- p = *argv++;
- ++p; /* Skip '-' */
- while (*p != '\0') {
- opt = *p++;
- opt_arg = NULL;
- /* If 'opt' takes an argument, parse that. */
- if (opt == 'p' || opt == 'r') {
- if (*p != '\0')
- opt_arg = p;
- else if (*argv == NULL) {
- fprintf(stderr,
- "Option -%c requires argument.\n",
- opt);
- usage(progname);
- } else
- opt_arg = *argv++;
- p = ""; /* End of this option word. */
- }
-
- /* Now, handle the option. */
- switch (opt) {
- case 'd':
- dump_on_failure = 1;
- break;
- case 'k':
- keep_temp_files = 1;
- break;
- case 'p':
-#ifdef PROGRAM
- testprog = opt_arg;
-#else
- usage(progname);
-#endif
- break;
- case 'q':
- quiet_flag++;
- break;
- case 'r':
- refdir = opt_arg;
- break;
- case 'v':
- verbose = 1;
- break;
- case '?':
- default:
- usage(progname);
- }
- }
- }
-
- /*
- * Sanity-check that our options make sense.
- */
-#ifdef PROGRAM
- if (testprog == NULL)
- usage(progname);
-#endif
-#if defined(_WIN32) && !defined(__CYGWIN__)
- /*
- * command.com cannot accept the command used '/' with drive
- * name such as c:/xxx/command.exe when use '|' pipe handling.
- */
- testprg = strdup(testprog);
- for (i = 0; testprg[i] != '\0'; i++) {
- if (testprg[i] == '/')
- testprg[i] = '\\';
- }
- testprog = testprg;
-#endif
-
- /*
- * Create a temp directory for the following tests.
- * Include the time the tests started as part of the name,
- * to make it easier to track the results of multiple tests.
- */
- now = time(NULL);
- for (i = 0; i < 1000; i++) {
- strftime(tmpdir_timestamp, sizeof(tmpdir_timestamp),
- "%Y-%m-%dT%H.%M.%S",
- localtime(&now));
- sprintf(tmpdir, "%s/%s.%s-%03d", tmp, progname,
- tmpdir_timestamp, i);
- if (mkdir(tmpdir,0755) == 0)
- break;
- if (errno == EEXIST)
- continue;
- fprintf(stderr, "ERROR: Unable to create temp directory %s\n",
- tmpdir);
- exit(1);
- }
-
- /*
- * If the user didn't specify a directory for locating
- * reference files, use the current directory for that.
- */
- if (refdir == NULL) {
- char *q;
- systemf("/bin/pwd > %s/refdir", tmpdir);
- q = slurpfile(NULL, "%s/refdir", tmpdir);
- refdir = refdir_alloc = q;
- q += strlen(refdir);
- while (q[-1] == '\n') {
- --q;
- *q = '\0';
- }
- systemf("rm %s/refdir", tmpdir);
- }
-
- /*
- * Banner with basic information.
- */
- if (!quiet_flag) {
- printf("Running tests in: %s\n", tmpdir);
- printf("Reference files will be read from: %s\n", refdir);
-#ifdef PROGRAM
- printf("Running tests on: %s\n", testprog);
-#endif
- printf("Exercising: ");
- fflush(stdout);
- printf("%s\n", EXTRA_VERSION);
- }
-
- /*
- * Run some or all of the individual tests.
- */
- if (*argv == NULL) {
- /* Default: Run all tests. */
- for (i = 0; i < limit; i++) {
- if (test_run(i, tmpdir))
- tests_failed++;
- tests_run++;
- }
- } else {
- while (*(argv) != NULL) {
- i = atoi(*argv);
- if (**argv < '0' || **argv > '9' || i < 0 || i >= limit) {
- printf("*** INVALID Test %s\n", *argv);
- usage(progname);
- } else {
- if (test_run(i, tmpdir))
- tests_failed++;
- tests_run++;
- }
- argv++;
- }
- }
-
- /*
- * Report summary statistics.
- */
- if (!quiet_flag) {
- printf("\n");
- printf("%d of %d tests reported failures\n",
- tests_failed, tests_run);
- printf(" Total of %d assertions checked.\n", assertions);
- printf(" Total of %d assertions failed.\n", failures);
- printf(" Total of %d assertions skipped.\n", skips);
- }
-
- free(refdir_alloc);
-
- /* If the final tmpdir is empty, we can remove it. */
- /* This should be the usual case when all tests succeed. */
- chdir("..");
- rmdir(tmpdir);
-
- return (tests_failed);
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test.h b/libarchive/libarchive-2.7.1/tar/test/test.h
deleted file mode 100644
index c2b40c0..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test.h
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (c) 2003-2006 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * $FreeBSD: src/usr.bin/tar/test/test.h,v 1.4 2008/08/21 07:04:57 kientzle Exp $
- */
-
-/* Every test program should #include "test.h" as the first thing. */
-
-/*
- * The goal of this file (and the matching test.c) is to
- * simplify the very repetitive test-*.c test programs.
- */
-#if defined(HAVE_CONFIG_H)
-/* Most POSIX platforms use the 'configure' script to build config.h */
-#include "config.h"
-#elif defined(__FreeBSD__)
-/* Building as part of FreeBSD system requires a pre-built config.h. */
-#include "config_freebsd.h"
-#elif defined(_WIN32) && !defined(__CYGWIN__)
-/* Win32 can't run the 'configure' script. */
-#include "config_windows.h"
-#else
-/* Warn if the library hasn't been (automatically or manually) configured. */
-#error Oops: No config.h and no pre-built configuration in test.h.
-#endif
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
-#include <dirent.h>
-#else
-#define dirent direct
-#include "../bsdtar_windows.h"
-#include <direct.h>
-#endif
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#if !defined(_WIN32) || defined(__CYGWIN__)
-#include <unistd.h>
-#endif
-#include <wchar.h>
-
-#ifdef USE_DMALLOC
-#include <dmalloc.h>
-#endif
-
-#ifdef __FreeBSD__
-#include <sys/cdefs.h> /* For __FBSDID */
-#else
-/* Some non-FreeBSD platforms such as newlib-derived ones like
- * cygwin, have __FBSDID, so this definition must be guarded.
- */
-#ifndef __FBSDID
-#define __FBSDID(a) /* null */
-#endif
-#endif
-
-/*
- * Redefine DEFINE_TEST for use in defining the test functions.
- */
-#undef DEFINE_TEST
-#define DEFINE_TEST(name) void name(void); void name(void)
-
-/* An implementation of the standard assert() macro */
-#define assert(e) test_assert(__FILE__, __LINE__, (e), #e, NULL)
-
-/* Assert two integers are the same. Reports value of each one if not. */
-#define assertEqualInt(v1,v2) \
- test_assert_equal_int(__FILE__, __LINE__, (v1), #v1, (v2), #v2, NULL)
-
-/* Assert two strings are the same. Reports value of each one if not. */
-#define assertEqualString(v1,v2) \
- test_assert_equal_string(__FILE__, __LINE__, (v1), #v1, (v2), #v2, NULL)
-/* As above, but v1 and v2 are wchar_t * */
-#define assertEqualWString(v1,v2) \
- test_assert_equal_wstring(__FILE__, __LINE__, (v1), #v1, (v2), #v2, NULL)
-/* As above, but raw blocks of bytes. */
-#define assertEqualMem(v1, v2, l) \
- test_assert_equal_mem(__FILE__, __LINE__, (v1), #v1, (v2), #v2, (l), #l, NULL)
-/* Assert two files are the same; allow printf-style expansion of second name.
- * See below for comments about variable arguments here...
- */
-#define assertEqualFile \
- test_setup(__FILE__, __LINE__);test_assert_equal_file
-/* Assert that a file is empty; supports printf-style arguments. */
-#define assertEmptyFile \
- test_setup(__FILE__, __LINE__);test_assert_empty_file
-/* Assert that a file is not empty; supports printf-style arguments. */
-#define assertNonEmptyFile \
- test_setup(__FILE__, __LINE__);test_assert_non_empty_file
-/* Assert that a file exists; supports printf-style arguments. */
-#define assertFileExists \
- test_setup(__FILE__, __LINE__);test_assert_file_exists
-/* Assert that a file exists; supports printf-style arguments. */
-#define assertFileNotExists \
- test_setup(__FILE__, __LINE__);test_assert_file_not_exists
-/* Assert that file contents match a string; supports printf-style arguments. */
-#define assertFileContents \
- test_setup(__FILE__, __LINE__);test_assert_file_contents
-
-/*
- * This would be simple with C99 variadic macros, but I don't want to
- * require that. Instead, I insert a function call before each
- * skipping() call to pass the file and line information down. Crude,
- * but effective.
- */
-#define skipping \
- test_setup(__FILE__, __LINE__);test_skipping
-
-/* Function declarations. These are defined in test_utility.c. */
-void failure(const char *fmt, ...);
-void test_setup(const char *, int);
-void test_skipping(const char *fmt, ...);
-int test_assert(const char *, int, int, const char *, void *);
-int test_assert_empty_file(const char *, ...);
-int test_assert_non_empty_file(const char *, ...);
-int test_assert_equal_file(const char *, const char *, ...);
-int test_assert_equal_int(const char *, int, int, const char *, int, const char *, void *);
-int test_assert_equal_string(const char *, int, const char *v1, const char *, const char *v2, const char *, void *);
-int test_assert_equal_wstring(const char *, int, const wchar_t *v1, const char *, const wchar_t *v2, const char *, void *);
-int test_assert_equal_mem(const char *, int, const char *, const char *, const char *, const char *, size_t, const char *, void *);
-int test_assert_file_contents(const void *, int, const char *, ...);
-int test_assert_file_exists(const char *, ...);
-int test_assert_file_not_exists(const char *, ...);
-
-/* Like sprintf, then system() */
-int systemf(const char * fmt, ...);
-
-/* Suck file into string allocated via malloc(). Call free() when done. */
-/* Supports printf-style args: slurpfile(NULL, "%s/myfile", refdir); */
-char *slurpfile(size_t *, const char *fmt, ...);
-
-/* Extracts named reference file to the current directory. */
-void extract_reference_file(const char *);
-
-/*
- * Special interfaces for program test harness.
- */
-
-/* Pathname of exe to be tested. */
-const char *testprog;
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_0.c b/libarchive/libarchive-2.7.1/tar/test/test_0.c
deleted file mode 100644
index e7f0001..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_0.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_0.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-/*
- * This first test does basic sanity checks on the environment. For
- * most of these, we just exit on failure.
- */
-#if !defined(_WIN32) || defined(__CYGWIN__)
-#define DEV_NULL "/dev/null"
-#else
-#define DEV_NULL "NUL"
-#endif
-
-DEFINE_TEST(test_0)
-{
- struct stat st;
-
- failure("File %s does not exist?!", testprog);
- if (!assertEqualInt(0, stat(testprog, &st)))
- exit(1);
-
- failure("%s is not executable?!", testprog);
- if (!assert((st.st_mode & 0111) != 0))
- exit(1);
-
- /*
- * Try to succesfully run the program; this requires that
- * we know some option that will succeed.
- */
- if (0 == systemf("%s --version >" DEV_NULL, testprog)) {
- /* This worked. */
- } else if (0 == systemf("%s -W version >" DEV_NULL, testprog)) {
- /* This worked. */
- } else {
- failure("Unable to successfully run any of the following:\n"
- " * %s --version\n"
- " * %s -W version\n",
- testprog, testprog);
- assert(0);
- }
-
- /* TODO: Ensure that our reference files are available. */
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_basic.c b/libarchive/libarchive-2.7.1/tar/test/test_basic.c
deleted file mode 100644
index f57123d..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_basic.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_basic.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-
-static void
-basic_tar(const char *target, const char *pack_options,
- const char *unpack_options, const char *flist)
-{
- struct stat st, st2;
-#if !defined(_WIN32) || defined(__CYGWIN__)
- char buff[128];
-#endif
- int r;
-
- assertEqualInt(0, mkdir(target, 0775));
-
- /* Use the tar program to create an archive. */
-#if !defined(_WIN32) || defined(__CYGWIN__)
- r = systemf("%s cf - %s `cat %s` >%s/archive 2>%s/pack.err", testprog, pack_options, flist, target, target);
-#else
- r = systemf("%s cf - %s %s >%s/archive 2>%s/pack.err", testprog, pack_options, flist, target, target);
-#endif
- failure("Error invoking %s cf -", testprog, pack_options);
- assertEqualInt(r, 0);
-
- chdir(target);
-
- /* Verify that nothing went to stderr. */
- assertEmptyFile("pack.err");
-
- /*
- * Use tar to unpack the archive into another directory.
- */
- r = systemf("%s xf archive %s >unpack.out 2>unpack.err", testprog, unpack_options);
- failure("Error invoking %s xf archive %s", testprog, unpack_options);
- assertEqualInt(r, 0);
-
- /* Verify that nothing went to stderr. */
- assertEmptyFile("unpack.err");
-
- /*
- * Verify unpacked files.
- */
-
- /* Regular file with 2 links. */
- r = lstat("file", &st);
- failure("Failed to stat file %s/file, errno=%d", target, errno);
- assertEqualInt(r, 0);
- if (r == 0) {
- assert(S_ISREG(st.st_mode));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(0644, st.st_mode & 0777);
-#else
- assertEqualInt(0600, st.st_mode & 0700);
-#endif
- assertEqualInt(10, st.st_size);
- failure("file %s/file", target);
- assertEqualInt(2, st.st_nlink);
- }
-
- /* Another name for the same file. */
- r = lstat("linkfile", &st2);
- failure("Failed to stat file %s/linkfile, errno=%d", target, errno);
- assertEqualInt(r, 0);
- if (r == 0) {
- assert(S_ISREG(st2.st_mode));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(0644, st2.st_mode & 0777);
-#else
- assertEqualInt(0600, st2.st_mode & 0700);
-#endif
- assertEqualInt(10, st2.st_size);
- failure("file %s/linkfile", target);
- assertEqualInt(2, st2.st_nlink);
- /* Verify that the two are really hardlinked. */
- assertEqualInt(st.st_dev, st2.st_dev);
- failure("%s/linkfile and %s/file aren't really hardlinks", target, target);
- assertEqualInt(st.st_ino, st2.st_ino);
- }
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* Symlink */
- r = lstat("symlink", &st);
- failure("Failed to stat file %s/symlink, errno=%d", target, errno);
- assertEqualInt(r, 0);
- if (r == 0) {
- failure("symlink should be a symlink; actual mode is %o",
- st.st_mode);
- assert(S_ISLNK(st.st_mode));
- if (S_ISLNK(st.st_mode)) {
- r = readlink("symlink", buff, sizeof(buff));
- assertEqualInt(r, 4);
- buff[r] = '\0';
- assertEqualString(buff, "file");
- }
- }
-#endif
-
- /* dir */
- r = lstat("dir", &st);
- if (r == 0) {
- assertEqualInt(r, 0);
- assert(S_ISDIR(st.st_mode));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(0775, st.st_mode & 0777);
-#else
- assertEqualInt(0700, st.st_mode & 0700);
-#endif
- }
-
- chdir("..");
-}
-
-DEFINE_TEST(test_basic)
-{
- int fd;
- int filelist;
- int oldumask;
- const char *flist;
-
- oldumask = umask(0);
-
- /*
- * Create an assortment of files on disk.
- */
- filelist = open("filelist", O_CREAT | O_WRONLY, 0644);
-
- /* File with 10 bytes content. */
- fd = open("file", O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(10, write(fd, "123456789", 10));
- close(fd);
- write(filelist, "file\n", 5);
-
- /* hardlink to above file. */
- assertEqualInt(0, link("file", "linkfile"));
- write(filelist, "linkfile\n", 9);
-
- /* Symlink to above file. */
- assertEqualInt(0, symlink("file", "symlink"));
- write(filelist, "symlink\n", 8);
-
- /* Directory. */
- assertEqualInt(0, mkdir("dir", 0775));
- write(filelist, "dir\n", 4);
- /* All done. */
- close(filelist);
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
- flist = "filelist";
-#else
- flist = "file linkfile symlink dir";
-#endif
- /* Archive/dearchive with a variety of options. */
- basic_tar("copy", "", "", flist);
- /* tar doesn't handle cpio symlinks correctly */
- /* basic_tar("copy_odc", "--format=odc", ""); */
- basic_tar("copy_ustar", "--format=ustar", "", flist);
-
- umask(oldumask);
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_copy.c b/libarchive/libarchive-2.7.1/tar/test/test_copy.c
deleted file mode 100644
index d459458..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_copy.c
+++ /dev/null
@@ -1,420 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_copy.c,v 1.3 2008/08/15 06:12:02 kientzle Exp $");
-
-#if defined(__CYGWIN__)
-# include <limits.h>
-# include <sys/cygwin.h>
-#endif
-
-/* assumes that cwd is the top of the test tree. Furthermore,
- * assumes that this function is first called with the "longest"
- * cwd involved in the tests. That is, from
- * <testdir>/original
- * as opposed to
- * <testdir>/plain or <testdir>/ustar
- */
-static int
-compute_loop_max(void)
-{
-#if defined(_WIN32) && !defined(__CYGWIN__)
- static int LOOP_MAX = 0;
- char buf[MAX_PATH];
- size_t cwdlen;
-
- if (LOOP_MAX == 0) {
- assert(_getcwd(buf, MAX_PATH) != NULL);
- cwdlen = strlen(buf);
- /* on windows, can't create a directory in which there is not
- * enough room left in MAX_PATH to /also/ create an 8.3 file.
- * Thus, max path len for mkdir is MAX_PATH - 12 ("12345678.123")
- * It is possible also that windows counts the length of cwd against
- * the MAX_PATH maximum, so account for that. Next, account also for
- * "/". And lastly, account for the fact that the relative path
- * has 4 characters when the loop count i = 0.
- */
- LOOP_MAX = MAX_PATH - 12 - (int)cwdlen - 1 - 4;
- }
- return LOOP_MAX;
-#elif defined(__CYGWIN__) && !defined(HAVE_CYGWIN_CONV_PATH)
- static int LOOP_MAX = 0;
- if (LOOP_MAX == 0) {
- char wbuf[PATH_MAX];
- char pbuf[PATH_MAX];
- size_t wcwdlen;
- size_t pcwdlen;
- size_t cwdlen;
- assert(getcwd(pbuf, PATH_MAX) != NULL);
- pcwdlen = strlen(pbuf);
- cygwin_conv_to_full_win32_path(pbuf, wbuf);
- wcwdlen = strlen(wbuf);
- cwdlen = ((wcwdlen > pcwdlen) ? wcwdlen : pcwdlen);
- /* on windows, can't create a directory in which there is not
- * enough room left in PATH_MAX to /also/ create an 8.3 file.
- * Thus, max path len for mkdir is PATH_MAX - 12 ("12345678.123")
- * Then, because cygwin treats even relative paths as if they were
- * absolute, and cwd counts against the PATH_MAX maximum, we must
- * account for that (using worst case of posix or win32 equivalents).
- * Next, account also for "/../" (as used in symlink creation test).
- * And lastly, account for the fact that the relative path has 4
- * characters when the loop count i = 0. These calculations do not
- * apply to cygwin-1.7, because unlike older cygwin, it uses the "wide"
- * functions of the win32 system for all file and directory access.
- */
- LOOP_MAX = PATH_MAX - 12 - (int)cwdlen - 4 - 4;
- }
- return LOOP_MAX;
-#else
- /* cygwin-1.7 ends up here, along with "normal" unix */
- return 200; /* restore pre-r278 depth */
-#endif
-}
-
-static void
-create_tree(void)
-{
- char buff[260];
- char buff2[260];
- int i;
- int fd;
- int LOOP_MAX;
-
- assertEqualInt(0, mkdir("original", 0775));
- chdir("original");
- LOOP_MAX = compute_loop_max();
-
- assertEqualInt(0, mkdir("f", 0775));
- assertEqualInt(0, mkdir("l", 0775));
- assertEqualInt(0, mkdir("m", 0775));
- assertEqualInt(0, mkdir("s", 0775));
- assertEqualInt(0, mkdir("d", 0775));
-
- for (i = 0; i < LOOP_MAX; i++) {
- buff[0] = 'f';
- buff[1] = '/';
- /* Create a file named "f/abcdef..." */
- buff[i + 2] = 'a' + (i % 26);
- buff[i + 3] = '\0';
- fd = open(buff, O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(i + 3, write(fd, buff, strlen(buff)));
- close(fd);
-
- /* Create a link named "l/abcdef..." to the above. */
- strcpy(buff2, buff);
- buff2[0] = 'l';
- assertEqualInt(0, link(buff, buff2));
-
- /* Create a link named "m/abcdef..." to the above. */
- strcpy(buff2, buff);
- buff2[0] = 'm';
- assertEqualInt(0, link(buff, buff2));
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* Create a symlink named "s/abcdef..." to the above. */
- strcpy(buff2 + 3, buff);
- buff[0] = 's';
- buff2[0] = '.';
- buff2[1] = '.';
- buff2[2] = '/';
- assertEqualInt(0, symlink(buff2, buff));
-#else
- skipping("create a symlink to the above");
-#endif
- /* Create a dir named "d/abcdef...". */
- buff[0] = 'd';
- assertEqualInt(0, mkdir(buff, 0775));
- }
-
- chdir("..");
-}
-
-#define LIMIT_NONE 0
-#define LIMIT_USTAR 1
-
-static void
-verify_tree(int limit)
-{
- struct stat st, st2;
- char filename[260];
- char name1[260];
- char name2[260];
- char contents[260];
- int i, j, r, LOOP_MAX;
- int fd;
- int len;
- const char *p, *dp;
- DIR *d;
- struct dirent *de;
-
- LOOP_MAX = compute_loop_max();
-
- /* Generate the names we know should be there and verify them. */
- for (i = 1; i < LOOP_MAX; i++) {
- /* Generate a base name of the correct length. */
- for (j = 0; j < i; ++j)
- filename[j] = 'a' + (j % 26);
-#if 0
- for (n = i; n > 0; n /= 10)
- filename[--j] = '0' + (n % 10);
-#endif
- filename[i] = '\0';
-
- /* Verify a file named "f/abcdef..." */
- strcpy(name1, "f/");
- strcat(name1, filename);
- if (limit != LIMIT_USTAR || strlen(filename) <= 100) {
- fd = open(name1, O_RDONLY);
- failure("Couldn't open \"%s\": %s",
- name1, strerror(errno));
- if (assert(fd >= 0)) {
- len = read(fd, contents, i + 10);
- close(fd);
- assertEqualInt(len, i + 2);
- /* Verify contents of 'contents' */
- contents[len] = '\0';
- failure("Each test file contains its own name");
- assertEqualString(name1, contents);
- /* stat() for dev/ino for next check */
- assertEqualInt(0, lstat(name1, &st));
- }
- }
-
- /*
- * ustar allows 100 chars for links, and we have
- * "original/" as part of the name, so the link
- * names here can't exceed 91 chars.
- */
- strcpy(name2, "l/");
- strcat(name2, filename);
- if (limit != LIMIT_USTAR || strlen(name2) <= 100) {
- /* Verify hardlink "l/abcdef..." */
- assertEqualInt(0, (r = lstat(name2, &st2)));
- if (r == 0) {
- assertEqualInt(st2.st_dev, st.st_dev);
- assertEqualInt(st2.st_ino, st.st_ino);
- }
-
- /* Verify hardlink "m_abcdef..." */
- name2[0] = 'm';
- assertEqualInt(0, (r = lstat(name2, &st2)));
- if (r == 0) {
- assertEqualInt(st2.st_dev, st.st_dev);
- assertEqualInt(st2.st_ino, st.st_ino);
- }
- }
-
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /*
- * Symlink text doesn't include the 'original/' prefix,
- * so the limit here is 100 characters.
- */
- /* Verify symlink "s/abcdef..." */
- strcpy(name2, "../s/");
- strcat(name2, filename);
- if (limit != LIMIT_USTAR || strlen(name2) <= 100) {
- /* This is a symlink. */
- failure("Couldn't stat %s (length %d)",
- filename, strlen(filename));
- if (assertEqualInt(0, lstat(name2 + 3, &st2))) {
- assert(S_ISLNK(st2.st_mode));
- /* This is a symlink to the file above. */
- failure("Couldn't stat %s", name2 + 3);
- if (assertEqualInt(0, stat(name2 + 3, &st2))) {
- assertEqualInt(st2.st_dev, st.st_dev);
- assertEqualInt(st2.st_ino, st.st_ino);
- }
- }
- }
-#else
- skipping("verify symlink");
-#endif
- /* Verify dir "d/abcdef...". */
- strcpy(name1, "d/");
- strcat(name1, filename);
- if (limit != LIMIT_USTAR || strlen(filename) < 100) {
- /* This is a dir. */
- failure("Couldn't stat %s (length %d)",
- name1, strlen(filename));
- if (assertEqualInt(0, lstat(name1, &st2))) {
- if (assert(S_ISDIR(st2.st_mode))) {
- /* TODO: opendir/readdir this
- * directory and make sure
- * it's empty.
- */
- }
- }
- }
- }
-
- /* Now make sure nothing is there that shouldn't be. */
- for (dp = "dflms"; *dp != '\0'; ++dp) {
- char dir[2];
- dir[0] = *dp; dir[1] = '\0';
- d = opendir(dir);
- failure("Unable to open dir '%s'", dir);
- if (!assert(d != NULL))
- continue;
- while ((de = readdir(d)) != NULL) {
- p = de->d_name;
- switch(dp[0]) {
- case 'l': case 'm':
- if (limit == LIMIT_USTAR) {
- failure("strlen(p) = %d", strlen(p));
- assert(strlen(p) <= 100);
- }
- case 'd':
- if (limit == LIMIT_USTAR) {
- failure("strlen(p)=%d", strlen(p));
- assert(strlen(p) < 100);
- }
- case 'f': case 's':
- if (limit == LIMIT_USTAR) {
- failure("strlen(p)=%d", strlen(p));
- assert(strlen(p) < 101);
- }
- /* Our files have very particular filename patterns. */
- if (p[0] != '.' || (p[1] != '.' && p[1] != '\0')) {
- for (i = 0; p[i] != '\0' && i < LOOP_MAX; i++) {
- failure("i=%d, p[i]='%c' 'a'+(i%%26)='%c'", i, p[i], 'a' + (i % 26));
- assertEqualInt(p[i], 'a' + (i % 26));
- }
- assert(p[i] == '\0');
- }
- break;
- case '.':
- assert(p[1] == '\0' || (p[1] == '.' && p[2] == '\0'));
- break;
- default:
- failure("File %s shouldn't be here", p);
- assert(0);
- }
- }
- closedir(d);
- }
-}
-
-static void
-copy_basic(void)
-{
- int r;
-
- /* NOTE: for proper operation on cygwin-1.5 and windows, the
- * length of the name of the directory below, "plain", must be
- * less than or equal to the lengthe of the name of the original
- * directory, "original" This restriction derives from the
- * extremely limited pathname lengths on those platforms.
- */
- assertEqualInt(0, mkdir("plain", 0775));
- assertEqualInt(0, chdir("plain"));
-
- /*
- * Use the tar program to create an archive.
- */
- r = systemf("%s cf archive -C ../original f d l m s >pack.out 2>pack.err",
- testprog);
- failure("Error invoking \"%s cf\"", testprog);
- assertEqualInt(r, 0);
-
- /* Verify that nothing went to stdout or stderr. */
- assertEmptyFile("pack.err");
- assertEmptyFile("pack.out");
-
- /*
- * Use tar to unpack the archive into another directory.
- */
- r = systemf("%s xf archive >unpack.out 2>unpack.err", testprog);
- failure("Error invoking %s xf archive", testprog);
- assertEqualInt(r, 0);
-
- /* Verify that nothing went to stdout or stderr. */
- assertEmptyFile("unpack.err");
- assertEmptyFile("unpack.out");
-
- verify_tree(LIMIT_NONE);
- assertEqualInt(0, chdir(".."));
-}
-
-static void
-copy_ustar(void)
-{
- const char *target = "ustar";
- int r;
-
- /* NOTE: for proper operation on cygwin-1.5 and windows, the
- * length of the name of the directory below, "ustar", must be
- * less than or equal to the lengthe of the name of the original
- * directory, "original" This restriction derives from the
- * extremely limited pathname lengths on those platforms.
- */
- assertEqualInt(0, mkdir(target, 0775));
- assertEqualInt(0, chdir(target));
-
- /*
- * Use the tar program to create an archive.
- */
- r = systemf("%s cf archive --format=ustar -C ../original f d l m s >pack.out 2>pack.err",
- testprog);
- failure("Error invoking \"%s cf archive --format=ustar\"", testprog);
- assertEqualInt(r, 0);
-
- /* Verify that nothing went to stdout. */
- assertEmptyFile("pack.out");
- /* Stderr is non-empty, since there are a bunch of files
- * with filenames too long to archive. */
-
- /*
- * Use tar to unpack the archive into another directory.
- */
- r = systemf("%s xf archive >unpack.out 2>unpack.err", testprog);
- failure("Error invoking %s xf archive", testprog);
- assertEqualInt(r, 0);
-
- /* Verify that nothing went to stdout or stderr. */
- assertEmptyFile("unpack.err");
- assertEmptyFile("unpack.out");
-
- chdir("original");
- verify_tree(LIMIT_USTAR);
- chdir("../..");
-}
-
-DEFINE_TEST(test_copy)
-{
- int oldumask;
-
- oldumask = umask(0);
-
- create_tree(); /* Create sample files in "original" dir. */
-
- /* Test simple "tar -c | tar -x" pipeline copy. */
- copy_basic();
-
- /* Same, but constrain to ustar format. */
- copy_ustar();
-
- umask(oldumask);
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_getdate.c b/libarchive/libarchive-2.7.1/tar/test/test_getdate.c
deleted file mode 100644
index eac5710..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_getdate.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_getdate.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-#include <time.h>
-
-/*
- * Verify that the getdate() function works.
- */
-
-time_t get_date(time_t, const char *);
-
-DEFINE_TEST(test_getdate)
-{
- time_t now = time(NULL);
-
- assertEqualInt(get_date(now, "Jan 1, 1970 UTC"), 0);
- assertEqualInt(get_date(now, "7:12:18-0530 4 May 1983"), 420900138);
- assertEqualInt(get_date(now, "2004/01/29 513 mest"), 1075345980);
- assertEqualInt(get_date(now, "99/02/17 7pm utc"), 919278000);
- assertEqualInt(get_date(now, "02/17/99 7:11am est"), 919253460);
- /* It's important that we handle ctime() format. */
- assertEqualInt(get_date(now, "Sun Feb 22 17:38:26 PST 2009"),
- 1235353106);
- /* Basic relative offsets. */
- /* If we use the actual current time as the reference, then
- * these tests break around DST changes, so it's actually
- * important to use a specific reference time here. */
- assertEqualInt(get_date(0, "tomorrow"), 24 * 60 * 60);
- assertEqualInt(get_date(0, "yesterday"), - 24 * 60 * 60);
- assertEqualInt(get_date(0, "now + 1 hour"), 60 * 60);
- assertEqualInt(get_date(0, "now + 1 hour + 1 minute"), 60 * 60 + 60);
- /* Repeat the above for a different start time. */
- now = 1231113600; /* Jan 5, 2009 00:00 UTC */
- assertEqualInt(get_date(0, "Jan 5, 2009 00:00 UTC"), now);
- assertEqualInt(get_date(now, "tomorrow"), now + 24 * 60 * 60);
- assertEqualInt(get_date(now, "yesterday"), now - 24 * 60 * 60);
- assertEqualInt(get_date(now, "now + 1 hour"), now + 60 * 60);
- assertEqualInt(get_date(now, "now + 1 hour + 1 minute"),
- now + 60 * 60 + 60);
- assertEqualInt(get_date(now, "tomorrow 5:16am UTC"),
- now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60);
- assertEqualInt(get_date(now, "UTC 5:16am tomorrow"),
- now + 24 * 60 * 60 + 5 * 60 * 60 + 16 * 60);
-
- /* Jan 5, 2009 was a Monday. */
- assertEqualInt(get_date(now, "monday UTC"), now);
- assertEqualInt(get_date(now, "sunday UTC"), now + 6 * 24 * 60 * 60);
- assertEqualInt(get_date(now, "tuesday UTC"), now + 24 * 60 * 60);
- /* "next tuesday" is one week after "tuesday" */
- assertEqualInt(get_date(now, "UTC next tuesday"),
- now + 8 * 24 * 60 * 60);
- /* "last tuesday" is one week before "tuesday" */
- assertEqualInt(get_date(now, "last tuesday UTC"),
- now - 6 * 24 * 60 * 60);
- /* TODO: Lots more tests here. */
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_help.c b/libarchive/libarchive-2.7.1/tar/test/test_help.c
deleted file mode 100644
index 163e212..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_help.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_help.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-/*
- * Test that "--help", "-h", and "-W help" options all work and
- * generate reasonable output.
- */
-
-static int
-in_first_line(const char *p, const char *substring)
-{
- size_t l = strlen(substring);
-
- while (*p != '\0' && *p != '\n') {
- if (memcmp(p, substring, l) == 0)
- return (1);
- ++p;
- }
- return (0);
-}
-
-DEFINE_TEST(test_help)
-{
- int r;
- char *p;
- size_t plen;
-
- /* Exercise --help option. */
- r = systemf("%s --help >help.stdout 2>help.stderr", testprog);
- failure("--help should generate nothing to stderr.");
- assertEmptyFile("help.stderr");
- /* Help message should start with name of program. */
- p = slurpfile(&plen, "help.stdout");
- failure("Help output should be long enough.");
- assert(plen >= 6);
- failure("First line of help output should contain 'bsdtar': %s", p);
- assert(in_first_line(p, "bsdtar"));
- /*
- * TODO: Extend this check to further verify that --help output
- * looks approximately right.
- */
- free(p);
-
- /* -h option should generate the same output. */
- r = systemf("%s -h >h.stdout 2>h.stderr", testprog);
- failure("-h should generate nothing to stderr.");
- assertEmptyFile("h.stderr");
- failure("stdout should be same for -h and --help");
- assertEqualFile("h.stdout", "help.stdout");
-
- /* -W help should be another synonym. */
- r = systemf("%s -W help >Whelp.stdout 2>Whelp.stderr", testprog);
- failure("-W help should generate nothing to stderr.");
- assertEmptyFile("Whelp.stderr");
- failure("stdout should be same for -W help and --help");
- assertEqualFile("Whelp.stdout", "help.stdout");
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_option_T.c b/libarchive/libarchive-2.7.1/tar/test/test_option_T.c
deleted file mode 100644
index 36fe1ef..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_option_T.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*-
- * Copyright (c) 2003-2008 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_option_T.c,v 1.3 2008/08/15 06:12:02 kientzle Exp $");
-
-static int
-touch(const char *fn)
-{
- int fd = open(fn, O_RDWR | O_CREAT, 0644);
- failure("Couldn't create file '%s', fd=%d, errno=%d (%s)\n",
- fn, fd, errno, strerror(errno));
- if (!assert(fd > 0))
- return (0); /* Failure. */
- close(fd);
- return (1); /* Success */
-}
-
-DEFINE_TEST(test_option_T)
-{
- FILE *f;
- int r;
- struct stat st;
-
- /* Create a simple dir heirarchy; bail if anything fails. */
- if (!assertEqualInt(0, mkdir("d1", 0755))) return;
- if (!assertEqualInt(0, mkdir("d1/d2", 0755))) return;
- if (!touch("d1/f1")) return;
- if (!touch("d1/f2")) return;
- if (!touch("d1/d2/f3")) return;
- if (!touch("d1/d2/f4")) return;
- if (!touch("d1/d2/f5")) return;
-
- /* Populate a file list */
- f = fopen("filelist", "w+");
- if (!assert(f != NULL))
- return;
- fprintf(f, "d1/f1\n");
- fprintf(f, "d1/d2/f4\n");
- fclose(f);
-
- /* Populate a second file list */
- f = fopen("filelist2", "w+");
- if (!assert(f != NULL))
- return;
- fprintf(f, "d1/d2/f3\n");
- fprintf(f, "d1/d2/f5\n");
- fclose(f);
-
- /* Use -c -T to archive up the files. */
- r = systemf("%s -c -f test1.tar -T filelist > test1.out 2> test1.err",
- testprog);
- failure("Failure here probably means that tar can't archive zero-length files without reading them");
- assert(r == 0);
- assertEmptyFile("test1.out");
- assertEmptyFile("test1.err");
-
- /* Use -x -T to dearchive the files */
- if (!assertEqualInt(0, mkdir("test1", 0755))) return;
- systemf("%s -x -f test1.tar -T filelist -C test1"
- " > test1b.out 2> test1b.err", testprog);
- assertEmptyFile("test1b.out");
- assertEmptyFile("test1b.err");
-
- /* Verify the files were extracted. */
- assertFileExists("test1/d1/f1");
- assertFileNotExists("test1/d1/f2");
- assertFileNotExists("test1/d1/d2/f3");
- assertFileExists("test1/d1/d2/f4");
- assertFileNotExists("test1/d1/d2/f5");
-
- /* Use -r -T to add more files to the archive. */
- systemf("%s -r -f test1.tar -T filelist2 > test2.out 2> test2.err",
- testprog);
- assertEmptyFile("test2.out");
- assertEmptyFile("test2.err");
-
- /* Use -x without -T to dearchive the files (ensure -r worked) */
- if (!assertEqualInt(0, mkdir("test3", 0755))) return;
- systemf("%s -x -f test1.tar -C test3"
- " > test3.out 2> test3.err", testprog);
- assertEmptyFile("test3.out");
- assertEmptyFile("test3.err");
- /* Verify the files were extracted.*/
- assertFileExists("test3/d1/f1");
- assertFileNotExists("test3/d1/f2");
- assertFileExists("test3/d1/d2/f3");
- assertFileExists("test3/d1/d2/f4");
- assertFileExists("test3/d1/d2/f5");
-
- /* Use -x -T to dearchive the files (verify -x -T together) */
- if (!assertEqualInt(0, mkdir("test2", 0755))) return;
- systemf("%s -x -f test1.tar -T filelist -C test2"
- " > test2b.out 2> test2b.err", testprog);
- assertEmptyFile("test2b.out");
- assertEmptyFile("test2b.err");
- /* Verify the files were extracted.*/
- assertFileExists("test2/d1/f1");
- assertFileNotExists("test2/d1/f2");
- assertFileNotExists("test2/d1/d2/f3");
- assertFileExists("test2/d1/d2/f4");
- assertFileNotExists("test2/d1/d2/f5");
-
- assertEqualInt(0, mkdir("test4", 0755));
- assertEqualInt(0, mkdir("test4_out", 0755));
- assertEqualInt(0, mkdir("test4_out2", 0755));
- assertEqualInt(0, mkdir("test4/d1", 0755));
- assertEqualInt(1, touch("test4/d1/foo"));
-
- /* Does bsdtar support -s option ? */
- systemf("%s -cf - -s /foo/bar/ test4/d1/foo > NUL 2> check.err",
- testprog);
- assertEqualInt(0, stat("check.err", &st));
- if (st.st_size == 0) {
- systemf("%s -cf - -s /foo/bar/ test4/d1/foo | %s -xf - -C test4_out",
- testprog, testprog);
- assertEmptyFile("test4_out/test4/d1/bar");
- systemf("%s -cf - -s /d1/d2/ test4/d1/foo | %s -xf - -C test4_out",
- testprog, testprog);
- assertEmptyFile("test4_out/test4/d2/foo");
- systemf("%s -cf - -s ,test4/d1/foo,, test4/d1/foo | %s -tvf - > test4.lst",
- testprog, testprog);
- assertEmptyFile("test4.lst");
- systemf("%s -cf - test4/d1/foo | %s -xf - -s /foo/bar/ -C test4_out2",
- testprog, testprog);
- assertEmptyFile("test4_out2/test4/d1/bar");
- } else {
- skipping("bsdtar does not support -s option on this platform");
- }
- /* TODO: Include some use of -C directory-changing within the filelist. */
- /* I'm pretty sure -C within the filelist is broken on extract. */
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_option_q.c b/libarchive/libarchive-2.7.1/tar/test/test_option_q.c
deleted file mode 100644
index d7011c3..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_option_q.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_option_q.c,v 1.3 2008/08/22 01:35:08 kientzle Exp $");
-
-DEFINE_TEST(test_option_q)
-{
- int fd;
-
- /*
- * Create an archive with several different versions of the
- * same files. By default, the last version will overwrite
- * any earlier versions. The -q/--fast-read option will
- * stop early, so we can verify -q/--fast-read by seeing
- * which version of each file actually ended up being
- * extracted. This also exercises -r mode, since that's
- * what we use to build up the test archive.
- */
-
- fd = open("foo", O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(4, write(fd, "foo1", 4));
- close(fd);
-
- assertEqualInt(0, systemf("%s -cf archive.tar foo", testprog));
-
- fd = open("foo", O_TRUNC | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(4, write(fd, "foo2", 4));
- close(fd);
-
- assertEqualInt(0, systemf("%s -rf archive.tar foo", testprog));
-
- fd = open("bar", O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(4, write(fd, "bar1", 4));
- close(fd);
-
- assertEqualInt(0, systemf("%s -rf archive.tar bar", testprog));
-
- fd = open("foo", O_TRUNC | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(4, write(fd, "foo3", 4));
- close(fd);
-
- assertEqualInt(0, systemf("%s -rf archive.tar foo", testprog));
-
- fd = open("bar", O_TRUNC | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(4, write(fd, "bar2", 4));
- close(fd);
-
- assertEqualInt(0, systemf("%s -rf archive.tar bar", testprog));
-
- /*
- * Now, try extracting from the test archive with various
- * combinations of -q.
- */
-
- /* Test 1: -q foo should only extract the first foo. */
- assertEqualInt(0, mkdir("test1", 0755));
- assertEqualInt(0, chdir("test1"));
- assertEqualInt(0,
- systemf("%s -xf ../archive.tar -q foo >test.out 2>test.err",
- testprog));
- assertFileContents("foo1", 4, "foo");
- assertEmptyFile("test.out");
- assertEmptyFile("test.err");
- assertEqualInt(0, chdir(".."));
-
- /* Test 2: -q foo bar should extract up to the first bar. */
- assertEqualInt(0, mkdir("test2", 0755));
- assertEqualInt(0, chdir("test2"));
- assertEqualInt(0,
- systemf("%s -xf ../archive.tar -q foo bar >test.out 2>test.err", testprog));
- assertFileContents("foo2", 4, "foo");
- assertFileContents("bar1", 4, "bar");
- assertEmptyFile("test.out");
- assertEmptyFile("test.err");
- assertEqualInt(0, chdir(".."));
-
- /* Test 3: Same as test 2, but use --fast-read spelling. */
- assertEqualInt(0, mkdir("test3", 0755));
- assertEqualInt(0, chdir("test3"));
- assertEqualInt(0,
- systemf("%s -xf ../archive.tar --fast-read foo bar >test.out 2>test.err", testprog));
- assertFileContents("foo2", 4, "foo");
- assertFileContents("bar1", 4, "bar");
- assertEmptyFile("test.out");
- assertEmptyFile("test.err");
- assertEqualInt(0, chdir(".."));
-
- /* Test 4: Without -q, should extract everything. */
- assertEqualInt(0, mkdir("test4", 0755));
- assertEqualInt(0, chdir("test4"));
- assertEqualInt(0,
- systemf("%s -xf ../archive.tar foo bar >test.out 2>test.err", testprog));
- assertFileContents("foo3", 4, "foo");
- assertFileContents("bar2", 4, "bar");
- assertEmptyFile("test.out");
- assertEmptyFile("test.err");
- assertEqualInt(0, chdir(".."));
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_option_s.c b/libarchive/libarchive-2.7.1/tar/test/test_option_s.c
deleted file mode 100644
index 0dc0f1a..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_option_s.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/*-
- * Copyright (c) 2003-2008 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_option_T.c,v 1.3 2008/08/15 06:12:02 kientzle Exp $");
-
-static int
-mkfile(const char *fn, const char *contents)
-{
- int fd = open(fn, O_RDWR | O_CREAT, 0644);
- failure("Couldn't create file '%s', fd=%d, errno=%d (%s)\n",
- fn, fd, errno, strerror(errno));
- if (!assert(fd > 0))
- return (1); /* Failure. */
- if (contents != NULL)
- assertEqualInt(strlen(contents),
- write(fd, contents, strlen(contents)));
- assertEqualInt(0, close(fd));
- return (0); /* Success */
-}
-
-DEFINE_TEST(test_option_s)
-{
- struct stat st;
-
- /* Create a sample file heirarchy. */
- assertEqualInt(0, mkdir("in", 0755));
- assertEqualInt(0, mkdir("in/d1", 0755));
- assertEqualInt(0, mkfile("in/d1/foo", "foo"));
- assertEqualInt(0, mkfile("in/d1/bar", "bar"));
-
- /* Does bsdtar support -s option ? */
- systemf("%s -cf - -s /foo/bar/ in/d1/foo > NUL 2> check.err",
- testprog);
- assertEqualInt(0, stat("check.err", &st));
- if (st.st_size != 0) {
- skipping("bsdtar does not support -s option on this platform");
- return;
- }
-
- /*
- * Test 1: Filename substitution when creating archives.
- */
- assertEqualInt(0, mkdir("test1", 0755));
- systemf("%s -cf - -s /foo/bar/ in/d1/foo | %s -xf - -C test1",
- testprog, testprog);
- assertFileContents("foo", 3, "test1/in/d1/bar");
- systemf("%s -cf - -s /d1/d2/ in/d1/foo | %s -xf - -C test1",
- testprog, testprog);
- assertFileContents("foo", 3, "test1/in/d2/foo");
-
-
- /*
- * Test 2: Basic substitution when extracting archive.
- */
- assertEqualInt(0, mkdir("test2", 0755));
- systemf("%s -cf - in/d1/foo | %s -xf - -s /foo/bar/ -C test2",
- testprog, testprog);
- assertFileContents("foo", 3, "test2/in/d1/bar");
-
- /*
- * Test 3: Files with empty names shouldn't be archived.
- */
- systemf("%s -cf - -s ,in/d1/foo,, in/d1/foo | %s -tvf - > in.lst",
- testprog, testprog);
- assertEmptyFile("in.lst");
-
- /*
- * Test 4: Multiple substitutions when extracting archive.
- */
- assertEqualInt(0, mkdir("test4", 0755));
- systemf("%s -cf - in/d1/foo in/d1/bar | %s -xf - -s /foo/bar/ -s }bar}baz} -C test4",
- testprog, testprog);
- assertFileContents("foo", 3, "test4/in/d1/bar");
- assertFileContents("bar", 3, "test4/in/d1/baz");
-
- /*
- * Test 5: Name-switching substitutions when extracting archive.
- */
- assertEqualInt(0, mkdir("test5", 0755));
- systemf("%s -cf - in/d1/foo in/d1/bar | %s -xf - -s /foo/bar/ -s }bar}foo} -C test5",
- testprog, testprog);
- assertFileContents("foo", 3, "test5/in/d1/bar");
- assertFileContents("bar", 3, "test5/in/d1/foo");
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_patterns.c b/libarchive/libarchive-2.7.1/tar/test/test_patterns.c
deleted file mode 100644
index 24664fd..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_patterns.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/*-
- * Copyright (c) 2009 Michihiro NAKAJIMA
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_patterns.c,v 1.6 2008/08/21 22:28:00 kientzle Exp $");
-
-DEFINE_TEST(test_patterns)
-{
- int fd, r;
- const char *reffile2 = "test_patterns_2.tar";
- const char *reffile3 = "test_patterns_3.tar";
- const char *reffile4 = "test_patterns_4.tar";
- const char *p;
-
- /*
- * Test basic command-line pattern handling.
- */
-
- /*
- * Test 1: Files on the command line that don't get matched
- * didn't produce an error.
- *
- * John Baldwin reported this problem in PR bin/121598
- */
- fd = open("foo", O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- close(fd);
- r = systemf("%s cfv tar1.tgz foo > tar1a.out 2> tar1a.err", testprog);
- assertEqualInt(r, 0);
- r = systemf("%s xv --no-same-owner -f tar1.tgz foo bar > tar1b.out 2> tar1b.err", testprog);
- failure("tar should return non-zero because a file was given on the command line that's not in the archive");
- assert(r != 0);
-
- /*
- * Test 2: Check basic matching of full paths that start with /
- */
- extract_reference_file(reffile2);
-
- r = systemf("%s tf %s /tmp/foo/bar > tar2a.out 2> tar2a.err",
- testprog, reffile2);
- assertEqualInt(r, 0);
-#if !defined(_WIN32) || defined(__CYGWIN__)
- p = "/tmp/foo/bar/\n/tmp/foo/bar/baz\n";
-#else
- p = "/tmp/foo/bar/\r\n/tmp/foo/bar/baz\r\n";
-#endif
- assertFileContents(p, strlen(p), "tar2a.out");
- assertEmptyFile("tar2a.err");
-
- /*
- * Test 3 archive has some entries starting with '/' and some not.
- */
- extract_reference_file(reffile3);
-
- /* Test 3a: Pattern tmp/foo/bar should not match /tmp/foo/bar */
- r = systemf("%s x --no-same-owner -f %s tmp/foo/bar > tar3a.out 2> tar3a.err",
- testprog, reffile3);
- assert(r != 0);
- assertEmptyFile("tar3a.out");
-
- /* Test 3b: Pattern /tmp/foo/baz should not match tmp/foo/baz */
- assertNonEmptyFile("tar3a.err");
- /* Again, with the '/' */
- r = systemf("%s x --no-same-owner -f %s /tmp/foo/baz > tar3b.out 2> tar3b.err",
- testprog, reffile3);
- assert(r != 0);
- assertEmptyFile("tar3b.out");
- assertNonEmptyFile("tar3b.err");
-
- /* Test 3c: ./tmp/foo/bar should not match /tmp/foo/bar */
- r = systemf("%s x --no-same-owner -f %s ./tmp/foo/bar > tar3c.out 2> tar3c.err",
- testprog, reffile3);
- assert(r != 0);
- assertEmptyFile("tar3c.out");
- assertNonEmptyFile("tar3c.err");
-
- /* Test 3d: ./tmp/foo/baz should match tmp/foo/baz */
- r = systemf("%s x --no-same-owner -f %s ./tmp/foo/baz > tar3d.out 2> tar3d.err",
- testprog, reffile3);
- assertEqualInt(r, 0);
- assertEmptyFile("tar3d.out");
- assertEmptyFile("tar3d.err");
- assertEqualInt(0, access("tmp/foo/baz/bar", F_OK));
-
- /*
- * Test 4 archive has some entries starting with windows drive letters
- * such as 'c:\', '//./c:/' or '//?/c:/'.
- */
- extract_reference_file(reffile4);
-
- r = systemf("%s x --no-same-owner -f %s -C tmp > tar4.out 2> tar4.err",
- testprog, reffile4);
- assert(r != 0);
- assertEmptyFile("tar4.out");
- assertNonEmptyFile("tar4.err");
-
- for (r = 1; r <= 54; r++) {
- char file_a[] = "tmp/fileXX";
- char file_b1[] = "tmp/server/share/fileXX";
- char file_b2[] = "tmp/server\\share\\fileXX";
- char file_c[] = "tmp/../fileXX";
- char *filex;
- int xsize;
-
- switch (r) {
- case 15: case 18:
- /*
- * Including server and share names.
- * //?/UNC/server/share/file15
- * //?/unc/server/share/file18
- */
- filex = file_b1;
- xsize = sizeof(file_b1);
- break;
- case 35: case 38: case 52:
- /*
- * Including server and share names.
- * \\?\UNC\server\share\file35
- * \\?\unc\server\share\file38
- * \/?/uNc/server\share\file52
- */
- filex = file_b2;
- xsize = sizeof(file_b2);
- break;
- default:
- filex = file_a;
- xsize = sizeof(file_a);
- break;
- }
- filex[xsize-3] = '0' + r / 10;
- filex[xsize-2] = '0' + r % 10;
- switch (r) {
- case 5: case 6: case 17: case 20: case 25:
- case 26: case 37: case 40: case 43: case 54:
- /*
- * Not extracted patterns.
- * D:../file05
- * c:../../file06
- * //?/UNC/../file17
- * //?/unc/../file20
- * z:..\file25
- * c:..\..\file26
- * \\?\UNC\..\file37
- * \\?\unc\..\file40
- * c:../..\file43
- * \/?\UnC\../file54
- */
- assertEqualInt(-1, access(filex, F_OK));
- filex = file_c;
- xsize = sizeof(file_c);
- filex[xsize-3] = '0' + r / 10;
- filex[xsize-2] = '0' + r % 10;
- assertEqualInt(-1, access(filex, F_OK));
- break;
- default:
- /* Extracted patterns. */
- assertEqualInt(0, access(filex, F_OK));
- break;
- }
- }
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_patterns_2.tar.uu b/libarchive/libarchive-2.7.1/tar/test/test_patterns_2.tar.uu
deleted file mode 100644
index eba2dae..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_patterns_2.tar.uu
+++ /dev/null
@@ -1,231 +0,0 @@
-begin 644 test_patterns_2.tar
-M+W1M<"]F;V\O````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````#`P,#<U-2``,#`Q-S4P(``P,#`P,#`@`#`P,#`P,#`P,#`P
-M(#$Q,#4Q,C$R-C4V(#`Q,C0T,0`@-0``````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````!U<W1A<@`P,'1I;0``
-M````````````````````````````````````=VAE96P`````````````````
-M```````````````````P,#`P,#`@`#`P,#`P,"``````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````O=&UP+V9O;R]B87(O````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````,#`P-S4U(``P,#$W-3`@`#`P
-M,#`P,"``,#`P,#`P,#`P,#`@,3$P-3$R,3(V-3,@,#$S,C`R`"`U````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````'5S=&%R`#`P=&EM``````````````````````````````````````!W
-M:&5E;````````````````````````````````````#`P,#`P,"``,#`P,#`P
-M(```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````"]T;7`O9F]O+V)A
-M>@``````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````````P
-M,#`V-#0@`#`P,3<U,"``,#`P,#`P(``P,#`P,#`P,#`P,"`Q,3`U,3(Q,C8U
-M-B`P,3,Q,C8`(#``````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````=7-T87(`,#!T:6T`````````````````
-M`````````````````````'=H965L````````````````````````````````
-M````,#`P,#`P(``P,#`P,#`@````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````+W1M<"]F;V\O8F%R+V)A>@``````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````#`P,#8T-"``,#`Q-S4P(``P,#`P,#`@`#`P,#`P
-M,#`P,#`P(#$Q,#4Q,C$R-C4S(#`Q,S8V-P`@,```````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````!U<W1A<@`P
-M,'1I;0``````````````````````````````````````=VAE96P`````````
-M```````````````````````````P,#`P,#`@`#`P,#`P,"``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-9````````````````````````````````````
-`
-end
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_patterns_3.tar.uu b/libarchive/libarchive-2.7.1/tar/test/test_patterns_3.tar.uu
deleted file mode 100644
index de60b8d..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_patterns_3.tar.uu
+++ /dev/null
@@ -1,231 +0,0 @@
-begin 644 test_patterns_3.tar
-M+W1M<"]F;V\O8F%R+P``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````#`P,#<U-2``,#`Q-S4P(``P,#`P,#`@`#`P,#`P,#`P,#`P
-M(#$Q,#4S,C`W-34R(#`Q,S(P-@`@-0``````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````!U<W1A<@`P,'1I;0``
-M````````````````````````````````````=VAE96P`````````````````
-M```````````````````P,#`P,#`@`#`P,#`P,"``````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````O=&UP+V9O;R]B87(O8F%Z+P``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````,#`P-S4U(``P,#$W-3`@`#`P
-M,#`P,"``,#`P,#`P,#`P,#`@,3$P-3,R,#<U-3(@,#$S-S8R`"`U````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````'5S=&%R`#`P=&EM``````````````````````````````````````!W
-M:&5E;````````````````````````````````````#`P,#`P,"``,#`P,#`P
-M(```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````'1M<"]F;V\O8F%Z
-M+P``````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````````P
-M,#`W-34@`#`P,3<U,"``,#`P,#`P(``P,#`P,#`P,#`P,"`Q,3`U,S(P-S4V
-M,"`P,3,Q,S8`(#4`````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````=7-T87(`,#!T:6T`````````````````
-M`````````````````````'=H965L````````````````````````````````
-M````,#`P,#`P(``P,#`P,#`@````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````=&UP+V9O;R]B87HO8F%R+P``````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````#`P,#<U-2``,#`Q-S4P(``P,#`P,#`@`#`P,#`P
-M,#`P,#`P(#$Q,#4S,C`W-38P(#`Q,S<P,@`@-0``````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````!U<W1A<@`P
-M,'1I;0``````````````````````````````````````=VAE96P`````````
-M```````````````````````````P,#`P,#`@`#`P,#`P,"``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-9````````````````````````````````````
-`
-end
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_patterns_4.tar.uu b/libarchive/libarchive-2.7.1/tar/test/test_patterns_4.tar.uu
deleted file mode 100644
index 240af20..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_patterns_4.tar.uu
+++ /dev/null
@@ -1,641 +0,0 @@
-begin 644 test_patterns_4.tar
-M+V9I;&4P,0``````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P
-M(#$Q,34P-C<T-C0R(#`Q,#,S-@`@,```````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````!U<W1A<@`P,```````
-M````````````````````````````````````````````````````````````
-M```````````````````P,#`P,#`@`#`P,#`P,"``````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````O+BXO9FEL93`R````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````,#`P-C0T(``P,#$W-3$@`#`P
-M,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$P-34R`"`P````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````'5S=&%R`#`P````````````````````````````````````````````
-M`````````````````````````````````````````#`P,#`P,"``,#`P,#`P
-M(```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````"\N+B\N+B]F:6QE
-M,#,`````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````````P
-M,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T
-M,B`P,3`W-C8`(#``````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````=7-T87(`,#``````````````````````
-M````````````````````````````````````````````````````````````
-M````,#`P,#`P(``P,#`P,#`@````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````8SHO9FEL93`T````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P
-M,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,#4W-@`@,```````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````!U<W1A<@`P
-M,```````````````````````````````````````````````````````````
-M```````````````````````````P,#`P,#`@`#`P,#`P,"``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````!$.BXN+V9I;&4P-0``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````,#`P-C0T(``P,#$W
-M-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$P-C<T`"`P
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````'5S=&%R`#`P````````````````````````````````````
-M`````````````````````````````````````````````````#`P,#`P,"``
-M,#`P,#`P(```````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````&,Z+BXO
-M+BXO9FEL93`V````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U
-M,#8W-#8T,B`P,3$Q-#<`(#``````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````=7-T87(`,#``````````````
-M````````````````````````````````````````````````````````````
-M````````````,#`P,#`P(``P,#`P,#`@````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````0SHO+BXO9FEL93`W````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@
-M`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,#<U-``@,```````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````````!U
-M<W1A<@`P,```````````````````````````````````````````````````
-M```````````````````````````````````P,#`P,#`@`#`P,#`P,"``````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````!A.B\N+B\N+B]F:6QE,#@`
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````,#`P-C0T
-M(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q
-M,C(V`"`P````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````'5S=&%R`#`P````````````````````````````
-M`````````````````````````````````````````````````````````#`P
-M,#`P,"``,#`P,#`P(```````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`"\O+B]C.B]F:6QE,#D`````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P
-M,"`Q,3$U,#8W-#8T,B`P,3$P-S8`(#``````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````=7-T87(`,#``````
-M````````````````````````````````````````````````````````````
-M````````````````````,#`P,#`P(``P,#`P,#`@````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````+R\N+T,Z+RXN+V9I;&4Q,```````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````#`P,#8T-"``,#`Q-S4Q(``P
-M,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,3(T,0`@,```````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````!U<W1A<@`P,```````````````````````````````````````````
-M```````````````````````````````````````````P,#`P,#`@`#`P,#`P
-M,"``````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````O+S\O8SHO9FEL
-M93$Q````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V
-M-#(@,#$Q,3$P`"`P````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````'5S=&%R`#`P````````````````````
-M````````````````````````````````````````````````````````````
-M`````#`P,#`P,"``,#`P,#`P(```````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````"\O/R]#.B\N+B]F:6QE,3(`````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P
-M,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3$R-C0`(#``````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````=7-T87(`
-M,#``````````````````````````````````````````````````````````
-M````````````````````````````,#`P,#`P(``P,#`P,#`@````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````+R\O+V,Z+V9I;&4Q,P``````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````#`P,#8T-"``,#`Q
-M-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,3`W,@`@
-M,```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````!U<W1A<@`P,```````````````````````````````````
-M```````````````````````````````````````````````````P,#`P,#`@
-M`#`P,#`P,"``````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````O+R\O
-M0SHO+R\O+V9I;&4Q-```````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q
-M-3`V-S0V-#(@,#$Q,S(W`"`P````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````'5S=&%R`#`P````````````
-M````````````````````````````````````````````````````````````
-M`````````````#`P,#`P,"``,#`P,#`P(```````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````"\O/R]53D,O<V5R=F5R+W-H87)E+V9I;&4Q-0``````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q
-M(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3,V,S4`(#``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M=7-T87(`,#``````````````````````````````````````````````````
-M````````````````````````````````````,#`P,#`P(``P,#`P,#`@````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````+R\_+U5.0R]F:6QE,38`
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````#`P,#8T
-M-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q
-M,3(R-@`@,```````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````!U<W1A<@`P,```````````````````````````
-M```````````````````````````````````````````````````````````P
-M,#`P,#`@`#`P,#`P,"``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```O+S\O54Y#+RXN+V9I;&4Q-P``````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P
-M,#`@,3$Q-3`V-S0V-#(@,#$Q-#0R`"`P````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````'5S=&%R`#`P````
-M````````````````````````````````````````````````````````````
-M`````````````````````#`P,#`P,"``,#`P,#`P(```````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````"\O/R]U;F,O<V5R=F5R+W-H87)E+V9I;&4Q
-M.```````````````````````````````````````````````````````````
-M```````````````````````````````````````P,#`V-#0@`#`P,3<U,2``
-M,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,30P,#``(#``````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````=7-T87(`,#``````````````````````````````````````````
-M````````````````````````````````````````````,#`P,#`P(``P,#`P
-M,#`@````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````+R\_+W5N8R]F
-M:6QE,3D`````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T
-M-C0R(#`Q,3,W,0`@,```````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````!U<W1A<@`P,```````````````````
-M````````````````````````````````````````````````````````````
-M```````P,#`P,#`@`#`P,#`P,"``````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````O+S\O=6YC+RXN+V9I;&4R,```````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P
-M,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q-3<T`"`P````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````'5S=&%R
-M`#`P````````````````````````````````````````````````````````
-M`````````````````````````````#`P,#`P,"``,#`P,#`P(```````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````%QF:6QE,C$`````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````P,#`V-#0@`#`P
-M,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3`T,34`
-M(#``````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````=7-T87(`,#``````````````````````````````````
-M````````````````````````````````````````````````````,#`P,#`P
-M(``P,#`P,#`@````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````7"XN
-M7&9I;&4R,@``````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q
-M,34P-C<T-C0R(#`Q,#<P-@`@,```````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````!U<W1A<@`P,```````````
-M````````````````````````````````````````````````````````````
-M```````````````P,#`P,#`@`#`P,#`P,"``````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````!<+BY<+BY<9FEL93(S````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U
-M,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q,3<W`"`P````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`'5S=&%R`#`P````````````````````````````````````````````````
-M`````````````````````````````````````#`P,#`P,"``,#`P,#`P(```
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````$,Z7&9I;&4R-```````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````P,#`V
-M-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P
-M,3`V,34`(#``````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````=7-T87(`,#``````````````````````````
-M````````````````````````````````````````````````````````````
-M,#`P,#`P(``P,#`P,#`@````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````>CHN+EQF:6QE,C4`````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P
-M,#`P(#$Q,34P-C<T-C0R(#`Q,3`T,0`@,```````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````!U<W1A<@`P,```
-M````````````````````````````````````````````````````````````
-M```````````````````````P,#`P,#`@`#`P,#`P,"``````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````!C.BXN7"XN7&9I;&4R-@``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````,#`P-C0T(``P,#$W-3$@
-M`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q,S`S`"`P````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````'5S=&%R`#`P````````````````````````````````````````
-M`````````````````````````````````````````````#`P,#`P,"``,#`P
-M,#`P(```````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````%HZ7"XN7&9I
-M;&4R-P``````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W
-M-#8T,B`P,3$Q,S<`(#``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````=7-T87(`,#``````````````````
-M````````````````````````````````````````````````````````````
-M````````,#`P,#`P(``P,#`P,#`@````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````0SI<+BY<+BY<9FEL93(X````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P
-M,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,30P,0`@,```````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````!U<W1A
-M<@`P,```````````````````````````````````````````````````````
-M```````````````````````````````P,#`P,#`@`#`P,#`P,"``````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````!<7"Y<8SI<9FEL93(Y````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````,#`P-C0T(``P
-M,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q,S8T
-M`"`P````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````'5S=&%R`#`P````````````````````````````````
-M`````````````````````````````````````````````````````#`P,#`P
-M,"``,#`P,#`P(```````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````````%Q<
-M+EQ#.EPN+EQF:6QE,S``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q
-M,3$U,#8W-#8T,B`P,3$V,#0`(#``````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````=7-T87(`,#``````````
-M````````````````````````````````````````````````````````````
-M````````````````,#`P,#`P(``P,#`P,#`@````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````7%P_7&,Z7&9I;&4S,0``````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W
-M-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,3,W-@`@,```````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``!U<W1A<@`P,```````````````````````````````````````````````
-M```````````````````````````````````````P,#`P,#`@`#`P,#`P,"``
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````!<7#]<1#I<+BY<9FEL
-M93,R````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````,#`P
-M-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@
-M,#$Q-C,P`"`P````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````'5S=&%R`#`P````````````````````````
-M````````````````````````````````````````````````````````````
-M`#`P,#`P,"``,#`P,#`P(```````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````%Q<7%QC.EQF:6QE,S,`````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P
-M,#`P,"`Q,3$U,#8W-#8T,B`P,3$T,S4`(#``````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````=7-T87(`,#``
-M````````````````````````````````````````````````````````````
-M````````````````````````,#`P,#`P(``P,#`P,#`@````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````7%Q<7$,Z7%Q<7%QF:6QE,S0`````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````#`P,#8T-"``,#`Q-S4Q
-M(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,C$U-@`@,```
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````!U<W1A<@`P,```````````````````````````````````````
-M```````````````````````````````````````````````P,#`P,#`@`#`P
-M,#`P,"``````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````!<7#]<54Y#
-M7'-E<G9E<EQS:&%R95QF:6QE,S4`````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V
-M-S0V-#(@,#$T,C4U`"`P````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````'5S=&%R`#`P````````````````
-M````````````````````````````````````````````````````````````
-M`````````#`P,#`P,"``,#`P,#`P(```````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````%Q</UQ53D-<9FEL93,V````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P
-M,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3$U,30`(#``````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````=7-T
-M87(`,#``````````````````````````````````````````````````````
-M````````````````````````````````,#`P,#`P(``P,#`P,#`@````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````7%P_7%5.0UPN+EQF:6QE,S<`
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````#`P,#8T-"``
-M,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,C`P
-M-0`@,```````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````!U<W1A<@`P,```````````````````````````````
-M```````````````````````````````````````````````````````P,#`P
-M,#`@`#`P,#`P,"``````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````````!<
-M7#]<=6YC7'-E<G9E<EQS:&%R95QF:6QE,S@`````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@
-M,3$Q-3`V-S0V-#(@,#$T-#(P`"`P````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````'5S=&%R`#`P````````
-M````````````````````````````````````````````````````````````
-M`````````````````#`P,#`P,"``,#`P,#`P(```````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````%Q</UQU;F-<9FEL93,Y````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````P,#`V-#0@`#`P,3<U,2``,#`Q
-M-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3$V-3<`(#``````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````=7-T87(`,#``````````````````````````````````````````````
-M````````````````````````````````````````,#`P,#`P(``P,#`P,#`@
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````7%P_7'5N8UPN+EQF
-M:6QE-#``````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````````#`P
-M,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R
-M(#`Q,C$S-P`@,```````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````!U<W1A<@`P,```````````````````````
-M````````````````````````````````````````````````````````````
-M```P,#`P,#`@`#`P,#`P,"``````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````!<+BXO9FEL930Q````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P
-M,#`P,#`@,3$Q-3`V-S0V-#(@,#$P-C,R`"`P````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````'5S=&%R`#`P
-M````````````````````````````````````````````````````````````
-M`````````````````````````#`P,#`P,"``,#`P,#`P(```````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````%PN+B\N+EQF:6QE-#(`````````````
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````P,#`V-#0@`#`P,3<U
-M,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3$Q,C,`(#``
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````=7-T87(`,#``````````````````````````````````````
-M````````````````````````````````````````````````,#`P,#`P(``P
-M,#`P,#`@````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````8SHN+B\N
-M+EQF:6QE-#,`````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P(#$Q,34P
-M-C<T-C0R(#`Q,3(R-0`@,```````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````!U<W1A<@`P,```````````````
-M````````````````````````````````````````````````````````````
-M```````````P,#`P,#`@`#`P,#`P,"``````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````!#.B\N+EQF:6QE-#0`````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````,#`P-C0T(``P,#$W-3$@`#`P,3<U,2``
-M,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q,#,R`"`P````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````````'5S
-M=&%R`#`P````````````````````````````````````````````````````
-M`````````````````````````````````#`P,#`P,"``,#`P,#`P(```````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````$0Z7"XN+RXN7&9I;&4T-0``
-M````````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````P,#`V-#0@
-M`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T,B`P,3$S
-M,C0`(#``````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````=7-T87(`,#``````````````````````````````
-M````````````````````````````````````````````````````````,#`P
-M,#`P(``P,#`P,#`@````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M7"\N+V,Z7&9I;&4T-@``````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P,#`P,#`P
-M(#$Q,34P-C<T-C0R(#`Q,3(S,0`@,```````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````!U<W1A<@`P,```````
-M````````````````````````````````````````````````````````````
-M```````````````````P,#`P,#`@`#`P,#`P,"``````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````!<7"XO0SI<+BY<9FEL930W````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````,#`P-C0T(``P,#$W-3$@`#`P
-M,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q-3,W`"`P````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````'5S=&%R`#`P````````````````````````````````````````````
-M`````````````````````````````````````````#`P,#`P,"``,#`P,#`P
-M(```````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````%PO/UQC.B]F:6QE
-M-#@`````````````````````````````````````````````````````````
-M```````````````````````````````````````````````````````````P
-M,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U,#8W-#8T
-M,B`P,3$R-30`(#``````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````=7-T87(`,#``````````````````````
-M````````````````````````````````````````````````````````````
-M````,#`P,#`P(``P,#`P,#`@````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````7%P_+T0Z+RXN7&9I;&4T.0``````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@`#`P,#`P
-M,#`P,#`P(#$Q,34P-C<T-C0R(#`Q,34P-@`@,```````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````!U<W1A<@`P
-M,```````````````````````````````````````````````````````````
-M```````````````````````````P,#`P,#`@`#`P,#`P,"``````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````!<+R]<1#I<9FEL934P````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````,#`P-C0T(``P,#$W
-M-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q,C0S`"`P
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````'5S=&%R`#`P````````````````````````````````````
-M`````````````````````````````````````````````````#`P,#`P,"``
-M,#`P,#`P(```````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````````````````````````````%Q<+R]C
-M.EPO+UQ<9FEL934Q````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P,"`Q,3$U
-M,#8W-#8T,B`P,3$W,S$`(#``````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````=7-T87(`,#``````````````
-M````````````````````````````````````````````````````````````
-M````````````,#`P,#`P(``P,#`P,#`@````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````7"\_+W5.8R]S97)V97)<<VAA<F5<9FEL934R````````
-M````````````````````````````````````````````````````````````
-M`````````````````````````````#`P,#8T-"``,#`Q-S4Q(``P,#$W-3$@
-M`#`P,#`P,#`P,#`P(#$Q,34P-C<T-C0R(#`Q-#$T-0`@,```````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````````````````````````!U
-M<W1A<@`P,```````````````````````````````````````````````````
-M```````````````````````````````````P,#`P,#`@`#`P,#`P,"``````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M``````````````````````````````````````!<7#\O54YC7&9I;&4U,P``
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````,#`P-C0T
-M(``P,#$W-3$@`#`P,3<U,2``,#`P,#`P,#`P,#`@,3$Q-3`V-S0V-#(@,#$Q
-M-#<V`"`P````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`````````````````````'5S=&%R`#`P````````````````````````````
-M`````````````````````````````````````````````````````````#`P
-M,#`P,"``,#`P,#`P(```````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M`%PO/UQ5;D-<+BXO9FEL934T````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M```````````````P,#`V-#0@`#`P,3<U,2``,#`Q-S4Q(``P,#`P,#`P,#`P
-M,"`Q,3$U,#8W-#8T,B`P,3$W,3(`(#``````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````=7-T87(`,#``````
-M````````````````````````````````````````````````````````````
-M````````````````````,#`P,#`P(``P,#`P,#`@````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-M````````````````````````````````````````````````````````````
-'````````````
-`
-end
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_stdio.c b/libarchive/libarchive-2.7.1/tar/test/test_stdio.c
deleted file mode 100644
index d770cf1..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_stdio.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_stdio.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-DEFINE_TEST(test_stdio)
-{
- int fd;
- int filelist;
- int oldumask;
- int r;
-
- oldumask = umask(0);
-
- /*
- * Create a couple of files on disk.
- */
- filelist = open("filelist", O_CREAT | O_WRONLY, 0644);
- /* File */
- fd = open("f", O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- write(fd, "f\n", 2);
- close(fd);
- write(filelist, "f\n", 2);
- /* Link to above file. */
- assertEqualInt(0, link("f", "l"));
- write(filelist, "l\n", 2);
- close(filelist);
-
- /*
- * Archive/dearchive with a variety of options, verifying
- * stdio paths.
- */
-
- /* 'cf' should generate no output unless there's an error. */
- r = systemf("%s cf archive f l >cf.out 2>cf.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("cf.out");
- assertEmptyFile("cf.err");
-
- /* 'cvf' should generate file list on stderr, empty stdout. */
- r = systemf("%s cvf archive f l >cvf.out 2>cvf.err", testprog);
- assertEqualInt(r, 0);
- failure("'cv' writes filenames to stderr, nothing to stdout (SUSv2)\n"
- "Note that GNU tar writes the file list to stdout by default.");
- assertEmptyFile("cvf.out");
- /* TODO: Verify cvf.err has file list in SUSv2-prescribed format. */
-
- /* 'cvf -' should generate file list on stderr, archive on stdout. */
- r = systemf("%s cvf - f l >cvf-.out 2>cvf-.err", testprog);
- assertEqualInt(r, 0);
- failure("cvf - should write archive to stdout");
- /* TODO: Verify cvf-.out has archive. */
- failure("cvf - should write file list to stderr (SUSv2)");
- /* TODO: Verify cvf-.err has verbose file list. */
-
- /* 'tf' should generate file list on stdout, empty stderr. */
- r = systemf("%s tf archive >tf.out 2>tf.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("tf.err");
- failure("'t' mode should write results to stdout");
- /* TODO: Verify tf.out has file list. */
-
- /* 'tvf' should generate file list on stdout, empty stderr. */
- r = systemf("%s tvf archive >tvf.out 2>tvf.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("tvf.err");
- failure("'tv' mode should write results to stdout");
- /* TODO: Verify tvf.out has file list. */
-
- /* 'tvf -' uses stdin, file list on stdout, empty stderr. */
- r = systemf("%s tvf - < archive >tvf-.out 2>tvf-.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("tvf-.err");
- /* TODO: Verify tvf-.out has file list. */
-
- /* Basic 'xf' should generate no output on stdout or stderr. */
- r = systemf("%s xf archive >xf.out 2>xf.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("xf.err");
- assertEmptyFile("xf.out");
-
- /* 'xvf' should generate list on stderr, empty stdout. */
- r = systemf("%s xvf archive >xvf.out 2>xvf.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("xvf.out");
- /* TODO: Verify xvf.err */
-
- /* 'xvOf' should generate list on stderr, file contents on stdout. */
- r = systemf("%s xvOf archive >xvOf.out 2>xvOf.err", testprog);
- assertEqualInt(r, 0);
- /* TODO: Verify xvOf.out */
- /* TODO: Verify xvf.err */
-
- /* 'xvf -' should generate list on stderr, empty stdout. */
- r = systemf("%s xvf - < archive >xvf-.out 2>xvf-.err", testprog);
- assertEqualInt(r, 0);
- assertEmptyFile("xvf-.out");
- /* TODO: Verify xvf-.err */
-
- umask(oldumask);
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_strip_components.c b/libarchive/libarchive-2.7.1/tar/test/test_strip_components.c
deleted file mode 100644
index 8b386dd..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_strip_components.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_strip_components.c,v 1.2 2008/11/10 05:24:13 kientzle Exp $");
-
-static int
-touch(const char *fn)
-{
- int fd = open(fn, O_RDWR | O_CREAT, 0644);
- failure("Couldn't create file '%s', fd=%d, errno=%d (%s)\n",
- fn, fd, errno, strerror(errno));
- if (!assert(fd > 0))
- return (0); /* Failure. */
- close(fd);
- return (1); /* Success */
-}
-
-DEFINE_TEST(test_strip_components)
-{
- struct stat st;
-
- assertEqualInt(0, mkdir("d0", 0755));
- assertEqualInt(0, chdir("d0"));
- assertEqualInt(0, mkdir("d1", 0755));
- assertEqualInt(0, mkdir("d1/d2", 0755));
- assertEqualInt(0, mkdir("d1/d2/d3", 0755));
- assertEqualInt(1, touch("d1/d2/f1"));
- assertEqualInt(0, link("d1/d2/f1", "l1"));
- assertEqualInt(0, link("d1/d2/f1", "d1/l2"));
- assertEqualInt(0, symlink("d1/d2/f1", "s1"));
- assertEqualInt(0, symlink("d2/f1", "d1/s2"));
- assertEqualInt(0, chdir(".."));
-
- assertEqualInt(0, systemf("%s -cf test.tar d0", testprog));
-
- assertEqualInt(0, mkdir("target", 0755));
- assertEqualInt(0, systemf("%s -x -C target --strip-components 2 "
- "-f test.tar", testprog));
-
- failure("d0/ is too short and should not get restored");
- assertEqualInt(-1, lstat("target/d0", &st));
- failure("d0/d1/ is too short and should not get restored");
- assertEqualInt(-1, lstat("target/d1", &st));
- failure("d0/d1/s2 is a symlink to something that won't be extracted");
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(-1, stat("target/s2", &st));
-#else
- skipping("symlink with stat()");
-#endif
- assertEqualInt(0, lstat("target/s2", &st));
- failure("d0/d1/d2 should be extracted");
- assertEqualInt(0, lstat("target/d2", &st));
-
- /*
- * This next is a complicated case. d0/l1, d0/d1/l2, and
- * d0/d1/d2/f1 are all hardlinks to the same file; d0/l1 can't
- * be extracted with --strip-components=2 and the other two
- * can. Remember that tar normally stores the first file with
- * a body and the other as hardlink entries to the first
- * appearance. So the final result depends on the order in
- * which these three names get archived. If d0/l1 is first,
- * none of the three can be restored. If either of the longer
- * names are first, then the two longer ones can both be
- * restored.
- *
- * The tree-walking code used by bsdtar always visits files
- * before subdirectories, so bsdtar's behavior is fortunately
- * deterministic: d0/l1 will always get stored first and the
- * other two will be stored as hardlinks to d0/l1. Since
- * d0/l1 can't be extracted, none of these three will be
- * extracted.
- *
- * It may be worth extending this test to force a particular
- * archiving order so as to exercise both of the cases described
- * above.
- *
- * Of course, this is all totally different for cpio and newc
- * formats because the hardlink management is different.
- * TODO: Rename this to test_strip_components_tar and create
- * parallel tests for cpio and newc formats.
- */
- failure("d0/l1 is too short and should not get restored");
- assertEqualInt(-1, lstat("target/l1", &st));
- failure("d0/d1/l2 is a hardlink to file whose name was too short");
- assertEqualInt(-1, lstat("target/l2", &st));
- failure("d0/d1/d2/f1 is a hardlink to file whose name was too short");
- assertEqualInt(-1, lstat("target/d2/f1", &st));
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_symlink_dir.c b/libarchive/libarchive-2.7.1/tar/test/test_symlink_dir.c
deleted file mode 100644
index 7c5ef13..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_symlink_dir.c
+++ /dev/null
@@ -1,193 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_symlink_dir.c,v 1.1 2008/09/14 02:16:04 kientzle Exp $");
-
-/*
- * tar -x -P should follow existing symlinks for dirs, but not other
- * content. Plain tar -x should remove symlinks when they're in the
- * way of a dir extraction.
- */
-
-static int
-mkfile(const char *name, int mode, const char *contents, ssize_t size)
-{
- int fd = open(name, O_CREAT | O_WRONLY, mode);
- if (fd < 0)
- return (-1);
- if (size != write(fd, contents, size)) {
- close(fd);
- return (-1);
- }
- close(fd);
- return (0);
-}
-
-DEFINE_TEST(test_symlink_dir)
-{
- struct stat st;
-#if !defined(_WIN32) || defined(__CYGWIN__)
- struct stat st2;
-#endif
- int oldumask;
-
- oldumask = umask(0);
-
- assertEqualInt(0, mkdir("source", 0755));
- assertEqualInt(0, mkfile("source/file", 0755, "a", 1));
- assertEqualInt(0, mkfile("source/file2", 0755, "ab", 2));
- assertEqualInt(0, mkdir("source/dir", 0755));
- assertEqualInt(0, mkdir("source/dir/d", 0755));
- assertEqualInt(0, mkfile("source/dir/f", 0755, "abc", 3));
- assertEqualInt(0, mkdir("source/dir2", 0755));
- assertEqualInt(0, mkdir("source/dir2/d2", 0755));
- assertEqualInt(0, mkfile("source/dir2/f2", 0755, "abcd", 4));
- assertEqualInt(0, mkdir("source/dir3", 0755));
- assertEqualInt(0, mkdir("source/dir3/d3", 0755));
- assertEqualInt(0, mkfile("source/dir3/f3", 0755, "abcde", 5));
-
- assertEqualInt(0,
- systemf("%s -cf test.tar -C source dir dir2 dir3 file file2",
- testprog));
-
- /*
- * Extract with -x and without -P.
- */
- assertEqualInt(0, mkdir("dest1", 0755));
- /* "dir" is a symlink to an existing "real_dir" */
- assertEqualInt(0, mkdir("dest1/real_dir", 0755));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(0, symlink("real_dir", "dest1/dir"));
- /* "dir2" is a symlink to a non-existing "real_dir2" */
- assertEqualInt(0, symlink("real_dir2", "dest1/dir2"));
-#else
- skipping("symlink does not work on this platform");
-#endif
- /* "dir3" is a symlink to an existing "non_dir3" */
- assertEqualInt(0, mkfile("dest1/non_dir3", 0755, "abcdef", 6));
- assertEqualInt(0, symlink("non_dir3", "dest1/dir3"));
- /* "file" is a symlink to existing "real_file" */
- assertEqualInt(0, mkfile("dest1/real_file", 0755, "abcdefg", 7));
- assertEqualInt(0, symlink("real_file", "dest1/file"));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* "file2" is a symlink to non-existing "real_file2" */
- assertEqualInt(0, symlink("real_file2", "dest1/file2"));
-#else
- skipping("symlink does not work on this platform");
-#endif
- assertEqualInt(0, systemf("%s -xf test.tar -C dest1", testprog));
-
- /* dest1/dir symlink should be removed */
- assertEqualInt(0, lstat("dest1/dir", &st));
- failure("symlink to dir was followed when it shouldn't be");
- assert(S_ISDIR(st.st_mode));
- /* dest1/dir2 symlink should be removed */
- assertEqualInt(0, lstat("dest1/dir2", &st));
- failure("Broken symlink wasn't replaced with dir");
- assert(S_ISDIR(st.st_mode));
- /* dest1/dir3 symlink should be removed */
- assertEqualInt(0, lstat("dest1/dir3", &st));
- failure("Symlink to non-dir wasn't replaced with dir");
- assert(S_ISDIR(st.st_mode));
- /* dest1/file symlink should be removed */
- assertEqualInt(0, lstat("dest1/file", &st));
- failure("Symlink to existing file should be removed");
- assert(S_ISREG(st.st_mode));
- /* dest1/file2 symlink should be removed */
- assertEqualInt(0, lstat("dest1/file2", &st));
- failure("Symlink to non-existing file should be removed");
- assert(S_ISREG(st.st_mode));
-
- /*
- * Extract with both -x and -P
- */
- assertEqualInt(0, mkdir("dest2", 0755));
- /* "dir" is a symlink to existing "real_dir" */
- assertEqualInt(0, mkdir("dest2/real_dir", 0755));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- assertEqualInt(0, symlink("real_dir", "dest2/dir"));
- /* "dir2" is a symlink to a non-existing "real_dir2" */
- assertEqualInt(0, symlink("real_dir2", "dest2/dir2"));
-#else
- skipping("symlink does not work on this platform");
-#endif
- /* "dir3" is a symlink to an existing "non_dir3" */
- assertEqualInt(0, mkfile("dest2/non_dir3", 0755, "abcdefgh", 8));
- assertEqualInt(0, symlink("non_dir3", "dest2/dir3"));
- /* "file" is a symlink to existing "real_file" */
- assertEqualInt(0, mkfile("dest2/real_file", 0755, "abcdefghi", 9));
- assertEqualInt(0, symlink("real_file", "dest2/file"));
-#if !defined(_WIN32) || defined(__CYGWIN__)
- /* "file2" is a symlink to non-existing "real_file2" */
- assertEqualInt(0, symlink("real_file2", "dest2/file2"));
-#else
- skipping("symlink does not work on this platform");
-#endif
- assertEqualInt(0, systemf("%s -xPf test.tar -C dest2", testprog));
-
- /* dest2/dir symlink should be followed */
- assertEqualInt(0, lstat("dest2/dir", &st));
- failure("tar -xP removed symlink instead of following it");
-#if !defined(_WIN32) || defined(__CYGWIN__)
- if (assert(S_ISLNK(st.st_mode))) {
- /* Only verify what the symlink points to if it
- * really is a symlink. */
- failure("The symlink should point to a directory");
- assertEqualInt(0, stat("dest2/dir", &st));
- assert(S_ISDIR(st.st_mode));
- failure("The pre-existing directory should still be there");
- assertEqualInt(0, lstat("dest2/real_dir", &st2));
- assert(S_ISDIR(st2.st_mode));
- assertEqualInt(st.st_dev, st2.st_dev);
- failure("symlink should still point to the existing directory");
- assertEqualInt(st.st_ino, st2.st_ino);
- }
-#else
- skipping("symlink does not work on this platform");
-#endif
- /* Contents of 'dir' should be restored */
- assertEqualInt(0, lstat("dest2/dir/d", &st));
- assert(S_ISDIR(st.st_mode));
- assertEqualInt(0, lstat("dest2/dir/f", &st));
- assert(S_ISREG(st.st_mode));
- assertEqualInt(3, st.st_size);
- /* dest2/dir2 symlink should be removed */
- assertEqualInt(0, lstat("dest2/dir2", &st));
- failure("Broken symlink wasn't replaced with dir");
- assert(S_ISDIR(st.st_mode));
- /* dest2/dir3 symlink should be removed */
- assertEqualInt(0, lstat("dest2/dir3", &st));
- failure("Symlink to non-dir wasn't replaced with dir");
- assert(S_ISDIR(st.st_mode));
- /* dest2/file symlink should be removed;
- * even -P shouldn't follow symlinks for files */
- assertEqualInt(0, lstat("dest2/file", &st));
- failure("Symlink to existing file should be removed");
- assert(S_ISREG(st.st_mode));
- /* dest2/file2 symlink should be removed */
- assertEqualInt(0, lstat("dest2/file2", &st));
- failure("Symlink to non-existing file should be removed");
- assert(S_ISREG(st.st_mode));
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_version.c b/libarchive/libarchive-2.7.1/tar/test/test_version.c
deleted file mode 100644
index 68eb685..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_version.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*-
- * Copyright (c) 2003-2007 Tim Kientzle
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-__FBSDID("$FreeBSD: src/usr.bin/tar/test/test_version.c,v 1.2 2008/05/26 17:10:10 kientzle Exp $");
-
-/*
- * Test that --version option works and generates reasonable output.
- */
-
-DEFINE_TEST(test_version)
-{
- int r;
- char *p, *q;
- size_t s;
-
-
- r = systemf("%s --version >version.stdout 2>version.stderr", testprog);
- if (r != 0)
- r = systemf("%s -W version >version.stdout 2>version.stderr",
- testprog);
- failure("Unable to run either %s --version or %s -W version",
- testprog, testprog);
- if (!assert(r == 0))
- return;
-
- /* --version should generate nothing to stdout. */
- assertEmptyFile("version.stderr");
- /* Verify format of version message. */
- q = p = slurpfile(&s, "version.stdout");
- /* Version message should start with name of program, then space. */
- assert(s > 6);
- failure("Version must start with 'bsdtar': ``%s''", p);
- assertEqualMem(q, "bsdtar ", 7);
- q += 7; s -= 7;
- /* Version number is a series of digits and periods. */
- while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) {
- ++q;
- --s;
- }
- /* Version number terminated by space. */
- failure("No space after bsdtar version: ``%s''", p);
- assert(s > 1);
- /* Skip a single trailing a,b,c, or d. */
- if (*q == 'a' || *q == 'b' || *q == 'c' || *q == 'd')
- ++q;
- failure("No space after bsdtar version: ``%s''", p);
- assert(*q == ' ');
- ++q; --s;
- /* Separator. */
- failure("No `-' between bsdtar and libarchive versions: ``%s''", p);
- assertEqualMem(q, "- ", 2);
- q += 2; s -= 2;
- /* libarchive name and version number */
- failure("Not long enough for libarchive version: ``%s''", p);
- assert(s > 11);
- failure("Libarchive version must start with `libarchive': ``%s''", p);
- assertEqualMem(q, "libarchive ", 11);
- q += 11; s -= 11;
- /* Version number is a series of digits and periods. */
- while (s > 0 && (*q == '.' || (*q >= '0' && *q <= '9'))) {
- ++q;
- --s;
- }
- /* Skip a single trailing a,b,c, or d. */
- if (*q == 'a' || *q == 'b' || *q == 'c' || *q == 'd')
- ++q;
- /* All terminated by end-of-line. */
- assert(s >= 1);
- /* Skip an optional CR character (e.g., Windows) */
- failure("Version output must end with \\n or \\r\\n");
- if (*q == '\r') { ++q; --s; }
- assertEqualMem(q, "\n", 1);
- free(p);
-}
diff --git a/libarchive/libarchive-2.7.1/tar/test/test_windows.c b/libarchive/libarchive-2.7.1/tar/test/test_windows.c
deleted file mode 100644
index 5295e5e..0000000
--- a/libarchive/libarchive-2.7.1/tar/test/test_windows.c
+++ /dev/null
@@ -1,322 +0,0 @@
-/*-
- * Copyright (c) 2009 Michihiro NAKAJIMA
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include "test.h"
-
-#if defined(_WIN32) && !defined(__CYGWIN__)
-static void
-mkfile(const char *name)
-{
- int fd;
-
- fd = open(name, O_CREAT | O_WRONLY, 0644);
- assert(fd >= 0);
- assertEqualInt(5, write(fd, "01234", 5));
- close(fd);
-}
-
-static void
-mkfullpath(char **path1, char **path2, const char *tpath, int type)
-{
- char *fp1, *fp2, *p1, *p2;
- size_t l;
-
- /*
- * Get full path name of "tpath"
- */
- l = GetFullPathNameA(tpath, 0, NULL, NULL);
- assert(0 != l);
- fp1 = malloc(l);
- assert(NULL != fp1);
- fp2 = malloc(l*2);
- assert(NULL != fp2);
- l = GetFullPathNameA(tpath, l, fp1, NULL);
- if ((type & 0x01) == 0) {
- for (p1 = fp1; *p1 != '\0'; p1++)
- if (*p1 == '\\')
- *p1 = '/';
- }
-
- switch(type) {
- case 0: /* start with "/" */
- case 1: /* start with "\" */
- /* strip "c:" */
- memmove(fp1, fp1 + 2, l - 2);
- fp1[l -2] = '\0';
- p1 = fp1 + 1;
- break;
- case 2: /* start with "c:/" */
- case 3: /* start with "c:\" */
- p1 = fp1 + 3;
- break;
- case 4: /* start with "//./c:/" */
- case 5: /* start with "\\.\c:\" */
- case 6: /* start with "//?/c:/" */
- case 7: /* start with "\\?\c:\" */
- p1 = malloc(l + 4 + 1);
- assert(NULL != p1);
- if (type & 0x1)
- memcpy(p1, "\\\\.\\", 4);
- else
- memcpy(p1, "//./", 4);
- if (type == 6 || type == 7)
- p1[2] = '?';
- memcpy(p1 + 4, fp1, l);
- p1[l + 4] = '\0';
- free(fp1);
- fp1 = p1;
- p1 = fp1 + 7;
- break;
- }
-
- /*
- * Strip leading drive names and converting "\" to "\\"
- */
- p2 = fp2;
- while (*p1 != '\0') {
- if (*p1 == '\\')
- *p2++ = *p1;
- *p2++ = *p1++;
- }
- *p2++ = '\r';
- *p2++ = '\n';
- *p2 = '\0';
-
- *path1 = fp1;
- *path2 = fp2;
-}
-
-static const char list1[] =
- "aaa/\r\naaa/file1\r\naaa/xxa/\r\naaa/xxb/\r\naaa/zzc/\r\n"
- "aaa/zzc/file1\r\naaa/xxb/file1\r\naaa/xxa/file1\r\naab/\r\n"
- "aac/\r\nabb/\r\nabc/\r\nabd/\r\n";
-static const char list2[] =
- "bbb/\r\nbbb/file1\r\nbbb/xxa/\r\nbbb/xxb/\r\nbbb/zzc/\r\n"
- "bbb/zzc/file1\r\nbbb/xxb/file1\r\nbbb/xxa/file1\r\nbbc/\r\n"
- "bbd/\r\nbcc/\r\nbcd/\r\nbce/\r\n";
-static const char list3[] =
- "aac/\r\nabc/\r\nbbc/\r\nbcc/\r\nccc/\r\n";
-static const char list4[] =
- "fff/abca\r\nfff/acca\r\n";
-static const char list5[] =
- "aaa\\\\file1\r\naaa\\\\xxa/\r\naaa\\\\xxa/file1\r\naaa\\\\xxb/\r\n"
- "aaa\\\\xxb/file1\r\naaa\\\\zzc/\r\naaa\\\\zzc/file1\r\n";
-static const char list6[] =
- "fff\\\\abca\r\nfff\\\\acca\r\naaa\\\\xxa/\r\naaa\\\\xxa/file1\r\n"
- "aaa\\\\xxb/\r\naaa\\\\xxb/file1\r\n";
-#endif /* _WIN32 && !__CYGWIN__ */
-
-DEFINE_TEST(test_windows)
-{
-#if defined(_WIN32) && !defined(__CYGWIN__)
- char *fp1, *fp2;
-
- /*
- * Preparre tests.
- * Create directories and files.
- */
- assertEqualInt(0, mkdir("tmp", 0775));
- assertEqualInt(0, chdir("tmp"));
-
- assertEqualInt(0, mkdir("aaa", 0775));
- assertEqualInt(0, mkdir("aaa/xxa", 0775));
- assertEqualInt(0, mkdir("aaa/xxb", 0775));
- assertEqualInt(0, mkdir("aaa/zzc", 0775));
- mkfile("aaa/file1");
- mkfile("aaa/xxa/file1");
- mkfile("aaa/xxb/file1");
- mkfile("aaa/zzc/file1");
- assertEqualInt(0, mkdir("aab", 0775));
- assertEqualInt(0, mkdir("aac", 0775));
- assertEqualInt(0, mkdir("abb", 0775));
- assertEqualInt(0, mkdir("abc", 0775));
- assertEqualInt(0, mkdir("abd", 0775));
- assertEqualInt(0, mkdir("bbb", 0775));
- assertEqualInt(0, mkdir("bbb/xxa", 0775));
- assertEqualInt(0, mkdir("bbb/xxb", 0775));
- assertEqualInt(0, mkdir("bbb/zzc", 0775));
- mkfile("bbb/file1");
- mkfile("bbb/xxa/file1");
- mkfile("bbb/xxb/file1");
- mkfile("bbb/zzc/file1");
- assertEqualInt(0, mkdir("bbc", 0775));
- assertEqualInt(0, mkdir("bbd", 0775));
- assertEqualInt(0, mkdir("bcc", 0775));
- assertEqualInt(0, mkdir("bcd", 0775));
- assertEqualInt(0, mkdir("bce", 0775));
- assertEqualInt(0, mkdir("ccc", 0775));
- assertEqualInt(0, mkdir("fff", 0775));
- mkfile("fff/aaaa");
- mkfile("fff/abba");
- mkfile("fff/abca");
- mkfile("fff/acba");
- mkfile("fff/acca");
-
- /*
- * Test1: Command line pattern matching.
- */
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar a*", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list1, sizeof(list1)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar b*", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list2, sizeof(list2)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar ??c", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list3, sizeof(list3)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar *c", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list3, sizeof(list3)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar fff/a?ca", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list4, sizeof(list4)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar aaa\\*", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list5, sizeof(list5)-1, "../list");
-
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar fff\\a?ca aaa\\xx*", testprog));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- assertFileContents(list6, sizeof(list6)-1, "../list");
-
- /*
- * Test2: Archive the file start with drive letters.
- */
- /* Test2a: start with "/" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 0);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2b: start with "\" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 1);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2c: start with "c:/" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 2);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2d: start with "c:\" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 3);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2e: start with "//./c:/" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 4);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2f: start with "\\.\c:\" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 5);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2g: start with "//?/c:/" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 6);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-
- /* Test2h: start with "\\?\c:\" */
- mkfullpath(&fp1, &fp2, "aaa/file1", 7);
- assertEqualInt(0,
- systemf("%s -cf ../archive.tar %s > ../out 2> ../err",
- testprog, fp1));
- assertEqualInt(0,
- systemf("%s -tf ../archive.tar > ../list", testprog));
- /* Check drive letters have been striped. */
- assertFileContents(fp2, strlen(fp2), "../list");
- free(fp1);
- free(fp2);
-#else
- skipping("Windows specific test");
-#endif /* _WIN32 && !__CYGWIN__ */
-}