1 /* 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2023 Adrian Vovk 5 * All rights reserved. 6 */ 7 #include "test.h" 8 9 /* Test x arg with single exclude path */ 10 DEFINE_TEST(test_x_single) 11 { 12 #ifdef HAVE_LIBZ 13 const char *reffile = "test_basic.zip"; 14 int r; 15 16 extract_reference_file(reffile); 17 r = systemf("%s %s -x test_basic/c >test.out 2>test.err", testprog, reffile); 18 assertEqualInt(0, r); 19 assertNonEmptyFile("test.out"); 20 assertEmptyFile("test.err"); 21 22 assertTextFileContents("contents a\n", "test_basic/a"); 23 assertTextFileContents("contents b\n", "test_basic/b"); 24 assertFileNotExists("test_basic/c"); 25 assertTextFileContents("contents CAPS\n", "test_basic/CAPS"); 26 #else 27 skipping("zlib not available"); 28 #endif 29 } 30 31 /* Test x arg with multiple exclude paths */ 32 DEFINE_TEST(test_x_multiple) 33 { 34 #ifdef HAVE_LIBZ 35 const char *reffile = "test_basic.zip"; 36 int r; 37 38 extract_reference_file(reffile); 39 r = systemf("%s %s -x test_basic/c test_basic/b >test.out 2>test.err", testprog, reffile); 40 assertEqualInt(0, r); 41 assertNonEmptyFile("test.out"); 42 assertEmptyFile("test.err"); 43 44 assertTextFileContents("contents a\n", "test_basic/a"); 45 assertFileNotExists("test_basic/b"); 46 assertFileNotExists("test_basic/c"); 47 assertTextFileContents("contents CAPS\n", "test_basic/CAPS"); 48 #else 49 skipping("zlib not available"); 50 #endif 51 } 52 53 /* Test x arg with multiple exclude paths and a d arg afterwards */ 54 DEFINE_TEST(test_x_multiple_with_d) 55 { 56 #ifdef HAVE_LIBZ 57 const char *reffile = "test_basic.zip"; 58 int r; 59 60 extract_reference_file(reffile); 61 r = systemf("%s %s -x test_basic/c test_basic/b -d foobar >test.out 2>test.err", testprog, reffile); 62 assertEqualInt(0, r); 63 assertNonEmptyFile("test.out"); 64 assertEmptyFile("test.err"); 65 66 assertTextFileContents("contents a\n", "foobar/test_basic/a"); 67 assertFileNotExists("foobar/test_basic/b"); 68 assertFileNotExists("foobar/test_basic/c"); 69 assertTextFileContents("contents CAPS\n", "foobar/test_basic/CAPS"); 70 #else 71 skipping("zlib not available"); 72 #endif 73 } 74