From 614571f70abc448b99b0c0e6593565af5217ed50 Mon Sep 17 00:00:00 2001 From: Tim Kientzle Date: Sun, 11 Apr 2010 14:29:28 -0400 Subject: [PATCH] Update the --exclude test to cover the cases listed in the commit message for r2229. SVN-Revision: 2230 --- tar/test/test_option_exclude.c | 77 +++++++++++++++++++++++++++++++--- 1 file changed, 72 insertions(+), 5 deletions(-) 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(".."); } -- 2.47.3