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