xref: /freebsd/contrib/libarchive/tar/test/test_option_nodump.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_option_nodump)9fd082e96SMartin Matuska DEFINE_TEST(test_option_nodump)
10fd082e96SMartin Matuska {
11fd082e96SMartin Matuska 
12fd082e96SMartin Matuska 	if (!canNodump()) {
13fd082e96SMartin Matuska 		skipping("Can't test nodump on this filesystem");
14fd082e96SMartin Matuska 		return;
15fd082e96SMartin Matuska 	}
16fd082e96SMartin Matuska 
17fd082e96SMartin Matuska 	assertMakeFile("file1", 0644, "file1");
18fd082e96SMartin Matuska 	assertMakeFile("file2", 0644, "file2");
19fd082e96SMartin Matuska 	assertMakeFile("file3", 0644, "file3");
2064287048SMartin Matuska 	assertSetNodump("file2");
21fd082e96SMartin Matuska 
22fd082e96SMartin Matuska 	/* Test 1: Without --nodump */
23fd082e96SMartin Matuska 	assertEqualInt(0, systemf("%s -cf test1.tar file1 file2 file3",
24fd082e96SMartin Matuska 	    testprog));
25fd082e96SMartin Matuska 	assertMakeDir("test1", 0755);
26fd082e96SMartin Matuska 	assertChdir("test1");
27fd082e96SMartin Matuska 	assertEqualInt(0,
28fd082e96SMartin Matuska 	    systemf("%s -xf ../test1.tar >test.out 2>test.err", testprog));
29fd082e96SMartin Matuska 	assertFileContents("file1", 5, "file1");
30fd082e96SMartin Matuska 	assertFileContents("file2", 5, "file2");
31fd082e96SMartin Matuska 	assertFileContents("file3", 5, "file3");
32fd082e96SMartin Matuska 	assertEmptyFile("test.out");
33fd082e96SMartin Matuska 	assertEmptyFile("test.err");
34fd082e96SMartin Matuska 	assertChdir("..");
35fd082e96SMartin Matuska 
36fd082e96SMartin Matuska 	/* Test 2: With --nodump */
37fd082e96SMartin Matuska 	assertEqualInt(0, systemf("%s -cf test2.tar --nodump file1 file2 file3",
38fd082e96SMartin Matuska 	    testprog));
39fd082e96SMartin Matuska 	assertMakeDir("test2", 0755);
40fd082e96SMartin Matuska 	assertChdir("test2");
41fd082e96SMartin Matuska 	assertEqualInt(0,
42fd082e96SMartin Matuska 	    systemf("%s -xf ../test2.tar >test.out 2>test.err", testprog));
43fd082e96SMartin Matuska 	assertFileContents("file1", 5, "file1");
44fd082e96SMartin Matuska 	assertFileNotExists("file2");
45fd082e96SMartin Matuska 	assertFileContents("file3", 5, "file3");
46fd082e96SMartin Matuska 	assertEmptyFile("test.out");
47fd082e96SMartin Matuska 	assertEmptyFile("test.err");
48fd082e96SMartin Matuska 	assertChdir("..");
49fd082e96SMartin Matuska }
50