From: Tim Kientzle Date: Sun, 11 Apr 2010 18:29:28 +0000 (-0400) Subject: Update the --exclude test to cover the cases listed in X-Git-Tag: v3.0.0a~1118 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=614571f70abc448b99b0c0e6593565af5217ed50;p=thirdparty%2Flibarchive.git Update the --exclude test to cover the cases listed in the commit message for r2229. SVN-Revision: 2230 --- diff --git a/tar/test/test_option_exclude.c b/tar/test/test_option_exclude.c index 47a759f5b..1345f70aa 100644 --- a/tar/test/test_option_exclude.c +++ b/tar/test/test_option_exclude.c @@ -40,11 +40,8 @@ DEFINE_TEST(test_option_exclude) /* Test 1: Without --exclude */ assertMakeDir("test1", 0755); assertChdir("test1"); - r = systemf("%s -xf ../archive.tar >test.out 2>test.err", - testprog); - if (!assertEqualInt(0, r)) - return; - + assertEqualInt(0, + systemf("%s -xf ../archive.tar >test.out 2>test.err", testprog)); assertFileContents("file1", 5, "file1"); assertFileContents("file2", 5, "file2"); assertEmptyFile("test.out"); @@ -72,4 +69,74 @@ DEFINE_TEST(test_option_exclude) assertEmptyFile("test.out"); assertEmptyFile("test.err"); assertChdir(".."); + + /* Test 4: Selecting one valid and one invalid file */ + assertMakeDir("test4", 0755); + assertChdir("test4"); + r = systemf("%s -xf ../archive.tar file1 file3 >test.out 2>test.err", testprog); + assert(r != 0); + assertFileContents("file1", 5, "file1"); + assertFileNotExists("file2"); + assertFileNotExists("file3"); + assertEmptyFile("test.out"); + assertNonEmptyFile("test.err"); + assertChdir(".."); + + /* Test 5: Selecting one valid file twice */ + assertMakeDir("test5", 0755); + assertChdir("test5"); + assertEqualInt(0, + systemf("%s -xf ../archive.tar file1 file1 >test.out 2>test.err", testprog)); + assertFileContents("file1", 5, "file1"); + assertFileNotExists("file2"); + assertEmptyFile("test.out"); + assertEmptyFile("test.err"); + assertChdir(".."); + + /* Test 6: Include and exclude the same file */ + assertMakeDir("test6", 0755); + assertChdir("test6"); + assertEqualInt(0, + systemf("%s -xf ../archive.tar --exclude file1 file1 >test.out 2>test.err", testprog)); + assertFileNotExists("file1"); + assertFileNotExists("file2"); + assertEmptyFile("test.out"); + assertEmptyFile("test.err"); + assertChdir(".."); + + /* Test 7: Exclude a non-existent file */ + assertMakeDir("test7", 0755); + assertChdir("test7"); + assertEqualInt(0, + systemf("%s -xf ../archive.tar --exclude file3 file1 >test.out 2>test.err", testprog)); + assertFileContents("file1", 5, "file1"); + assertFileNotExists("file2"); + assertFileNotExists("file3"); + assertEmptyFile("test.out"); + assertEmptyFile("test.err"); + assertChdir(".."); + + /* Test 8: Include a non-existent file */ + assertMakeDir("test8", 0755); + assertChdir("test8"); + r = systemf("%s -xf ../archive.tar file3 >test.out 2>test.err", testprog); + assert(r != 0); + assertFileNotExists("file1"); + assertFileNotExists("file2"); + assertFileNotExists("file3"); + assertEmptyFile("test.out"); + assertNonEmptyFile("test.err"); + assertChdir(".."); + + /* Test 9: Include a non-existent file plus an exclusion */ + assertMakeDir("test9", 0755); + assertChdir("test9"); + r = systemf("%s -xf ../archive.tar --exclude file1 file3 >test.out 2>test.err", testprog); + assert(r != 0); + assertFileNotExists("file1"); + assertFileNotExists("file2"); + assertFileNotExists("file3"); + assertEmptyFile("test.out"); + assertNonEmptyFile("test.err"); + assertChdir(".."); }