xref: /freebsd/contrib/libarchive/tar/test/test_format_newc.c (revision bd66c1b43e33540205dbc1187c2f2a15c58b57ba)
1fd082e96SMartin Matuska /*-
2*bd66c1b4SMartin Matuska  * SPDX-License-Identifier: BSD-2-Clause
3*bd66c1b4SMartin Matuska  *
4fd082e96SMartin Matuska  * Copyright (c) 2012 Michihiro NAKAJIMA
5fd082e96SMartin Matuska  * All rights reserved.
6fd082e96SMartin Matuska  */
7fd082e96SMartin Matuska #include "test.h"
8fd082e96SMartin Matuska 
DEFINE_TEST(test_format_newc)9fd082e96SMartin Matuska DEFINE_TEST(test_format_newc)
10fd082e96SMartin Matuska {
11fd082e96SMartin Matuska 
12fd082e96SMartin Matuska 	assertMakeFile("file1", 0644, "file1");
13fd082e96SMartin Matuska 	assertMakeFile("file2", 0644, "file2");
14fd082e96SMartin Matuska 	assertMakeHardlink("file3", "file1");
15fd082e96SMartin Matuska 
16fd082e96SMartin Matuska 	/* Test 1: Create an archive file with a newc format. */
17fd082e96SMartin Matuska 	assertEqualInt(0,
18fd082e96SMartin Matuska 	    systemf("%s -cf test1.cpio --format newc file1 file2 file3",
19fd082e96SMartin Matuska 	    testprog));
20fd082e96SMartin Matuska 	assertMakeDir("test1", 0755);
21fd082e96SMartin Matuska 	assertChdir("test1");
22fd082e96SMartin Matuska 	assertEqualInt(0,
23fd082e96SMartin Matuska 	    systemf("%s -xf ../test1.cpio >test.out 2>test.err", testprog));
24fd082e96SMartin Matuska 	assertFileContents("file1", 5, "file1");
25fd082e96SMartin Matuska 	assertFileContents("file2", 5, "file2");
26fd082e96SMartin Matuska 	assertFileContents("file1", 5, "file3");
27fd082e96SMartin Matuska 	assertEmptyFile("test.out");
28fd082e96SMartin Matuska 	assertEmptyFile("test.err");
29fd082e96SMartin Matuska 	assertChdir("..");
30fd082e96SMartin Matuska 
31fd082e96SMartin Matuska 	/* Test 2: Exclude one of hardlinked files. */
32fd082e96SMartin Matuska 	assertEqualInt(0,
33fd082e96SMartin Matuska 	    systemf("%s -cf test2.cpio --format newc file1 file2",
34fd082e96SMartin Matuska 	    testprog));
35fd082e96SMartin Matuska 	assertMakeDir("test2", 0755);
36fd082e96SMartin Matuska 	assertChdir("test2");
37fd082e96SMartin Matuska 	assertEqualInt(0,
38fd082e96SMartin Matuska 	    systemf("%s -xf ../test2.cpio >test.out 2>test.err", testprog));
39fd082e96SMartin Matuska 	assertFileContents("file1", 5, "file1");
40fd082e96SMartin Matuska 	assertFileContents("file2", 5, "file2");
41fd082e96SMartin Matuska 	assertFileNotExists("file3");
42fd082e96SMartin Matuska 	assertEmptyFile("test.out");
43fd082e96SMartin Matuska 	assertEmptyFile("test.err");
44fd082e96SMartin Matuska 	assertChdir("..");
45fd082e96SMartin Matuska }
46