1fd082e96SMartin Matuska /*- 2fd082e96SMartin Matuska * Copyright (c) 2012 Michihiro NAKAJIMA 3fd082e96SMartin Matuska * All rights reserved. 4fd082e96SMartin Matuska * 5fd082e96SMartin Matuska * Redistribution and use in source and binary forms, with or without 6fd082e96SMartin Matuska * modification, are permitted provided that the following conditions 7fd082e96SMartin Matuska * are met: 8fd082e96SMartin Matuska * 1. Redistributions of source code must retain the above copyright 9fd082e96SMartin Matuska * notice, this list of conditions and the following disclaimer. 10fd082e96SMartin Matuska * 2. Redistributions in binary form must reproduce the above copyright 11fd082e96SMartin Matuska * notice, this list of conditions and the following disclaimer in the 12fd082e96SMartin Matuska * documentation and/or other materials provided with the distribution. 13fd082e96SMartin Matuska * 14fd082e96SMartin Matuska * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR 15fd082e96SMartin Matuska * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16fd082e96SMartin Matuska * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17fd082e96SMartin Matuska * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, 18fd082e96SMartin Matuska * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19fd082e96SMartin Matuska * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20fd082e96SMartin Matuska * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21fd082e96SMartin Matuska * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22fd082e96SMartin Matuska * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23fd082e96SMartin Matuska * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24fd082e96SMartin Matuska */ 25fd082e96SMartin Matuska #include "test.h" 26fd082e96SMartin Matuska __FBSDID("$FreeBSD$"); 27fd082e96SMartin Matuska 28fd082e96SMartin Matuska DEFINE_TEST(test_option_nodump) 29fd082e96SMartin Matuska { 30fd082e96SMartin Matuska 31fd082e96SMartin Matuska if (!canNodump()) { 32fd082e96SMartin Matuska skipping("Can't test nodump on this filesystem"); 33fd082e96SMartin Matuska return; 34fd082e96SMartin Matuska } 35fd082e96SMartin Matuska 36fd082e96SMartin Matuska assertMakeFile("file1", 0644, "file1"); 37fd082e96SMartin Matuska assertMakeFile("file2", 0644, "file2"); 38fd082e96SMartin Matuska assertMakeFile("file3", 0644, "file3"); 39*64287048SMartin Matuska assertSetNodump("file2"); 40fd082e96SMartin Matuska 41fd082e96SMartin Matuska /* Test 1: Without --nodump */ 42fd082e96SMartin Matuska assertEqualInt(0, systemf("%s -cf test1.tar file1 file2 file3", 43fd082e96SMartin Matuska testprog)); 44fd082e96SMartin Matuska assertMakeDir("test1", 0755); 45fd082e96SMartin Matuska assertChdir("test1"); 46fd082e96SMartin Matuska assertEqualInt(0, 47fd082e96SMartin Matuska systemf("%s -xf ../test1.tar >test.out 2>test.err", testprog)); 48fd082e96SMartin Matuska assertFileContents("file1", 5, "file1"); 49fd082e96SMartin Matuska assertFileContents("file2", 5, "file2"); 50fd082e96SMartin Matuska assertFileContents("file3", 5, "file3"); 51fd082e96SMartin Matuska assertEmptyFile("test.out"); 52fd082e96SMartin Matuska assertEmptyFile("test.err"); 53fd082e96SMartin Matuska assertChdir(".."); 54fd082e96SMartin Matuska 55fd082e96SMartin Matuska /* Test 2: With --nodump */ 56fd082e96SMartin Matuska assertEqualInt(0, systemf("%s -cf test2.tar --nodump file1 file2 file3", 57fd082e96SMartin Matuska testprog)); 58fd082e96SMartin Matuska assertMakeDir("test2", 0755); 59fd082e96SMartin Matuska assertChdir("test2"); 60fd082e96SMartin Matuska assertEqualInt(0, 61fd082e96SMartin Matuska systemf("%s -xf ../test2.tar >test.out 2>test.err", testprog)); 62fd082e96SMartin Matuska assertFileContents("file1", 5, "file1"); 63fd082e96SMartin Matuska assertFileNotExists("file2"); 64fd082e96SMartin Matuska assertFileContents("file3", 5, "file3"); 65fd082e96SMartin Matuska assertEmptyFile("test.out"); 66fd082e96SMartin Matuska assertEmptyFile("test.err"); 67fd082e96SMartin Matuska assertChdir(".."); 68fd082e96SMartin Matuska } 69