Path: blob/main/contrib/libarchive/tar/test/test_crlf_mtree.c
48261 views
/*-1* SPDX-License-Identifier: BSD-2-Clause2*3* Copyright (c) 2018 The FreeBSD Foundation4* All rights reserved.5*6* This software was developed by Arshan Khanifar <[email protected]>7* under sponsorship from the FreeBSD Foundation.8*/9#include "test.h"1011DEFINE_TEST(test_crlf_mtree)12{13char *p0;14size_t s;15int r;16p0 = NULL;17char *content = "#mtree\r\n"18"f type=file uname=\\\r\n"19"root gname=root mode=0755 content=bar/foo\r\n"20"g type=file uname=root gname=root mode=0755 content=bar/goo\r\n";21char *filename = "output.tar";22#if defined(_WIN32) && !defined(__CYGWIN__)23char *p;24#endif2526/* an absolute path to mtree file */27char *mtree_file = "/METALOG.mtree";28char *absolute_path = malloc(strlen(testworkdir) + strlen(mtree_file) + 1);29strcpy(absolute_path, testworkdir);30strcat(absolute_path, mtree_file );3132/* Create an archive using an mtree file. */33assertMakeFile(absolute_path, 0777, content);34assertMakeDir("bar", 0775);35assertMakeFile("bar/foo", 0777, "abc");36assertMakeFile("bar/goo", 0777, "abc");3738#if defined(_WIN32) && !defined(__CYGWIN__)39p = absolute_path;40while(*p != '\0') {41if (*p == '/')42*p = '\\';43p++;44}4546r = systemf("%s -cf %s @%s >step1.out 2>step1.err", testprog, filename, absolute_path);47failure("Error invoking %s -cf %s -C bar @%s", testprog, filename, absolute_path);48#else49r = systemf("%s -cf %s \"@%s\" >step1.out 2>step1.err", testprog, filename, absolute_path);50failure("Error invoking %s -cf %s -C bar \"@%s\"", testprog, filename, absolute_path);51#endif5253assertEqualInt(r, 0);54assertEmptyFile("step1.out");55assertEmptyFile("step1.err");5657/* Do validation of the constructed archive. */5859p0 = slurpfile(&s, "output.tar");60if (!assert(p0 != NULL))61goto done;62if (!assert(s >= 2048))63goto done;64assertEqualMem(p0 + 0, "f", 2);65assertEqualMem(p0 + 512, "abc", 4);66assertEqualMem(p0 + 1024, "g", 2);67assertEqualMem(p0 + 1536, "abc", 4);68done:69free(p0);70free(absolute_path);71}7273747576