]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Update the --exclude test to cover the cases listed in
authorTim Kientzle <kientzle@gmail.com>
Sun, 11 Apr 2010 18:29:28 +0000 (14:29 -0400)
committerTim Kientzle <kientzle@gmail.com>
Sun, 11 Apr 2010 18:29:28 +0000 (14:29 -0400)
the commit message for r2229.

SVN-Revision: 2230

tar/test/test_option_exclude.c

index 47a759f5bd3c6fe8a3f2a49e9326e27789a15a39..1345f70aa1606d3e921c57777e96f23ee402917b 100644 (file)
@@ -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("..");
 }