1e64fe029SMartin Matuska /* 2*bd66c1b4SMartin Matuska * SPDX-License-Identifier: BSD-2-Clause 3*bd66c1b4SMartin Matuska * 4e64fe029SMartin Matuska * Copyright (c) 2023 Adrian Vovk 5e64fe029SMartin Matuska * All rights reserved. 6e64fe029SMartin Matuska */ 7e64fe029SMartin Matuska #include "test.h" 8e64fe029SMartin Matuska 9058ab969SMartin Matuska /* Test x arg with single exclude path */ 10058ab969SMartin Matuska DEFINE_TEST(test_x_single) 11e64fe029SMartin Matuska { 12e64fe029SMartin Matuska const char *reffile = "test_basic.zip"; 13e64fe029SMartin Matuska int r; 14e64fe029SMartin Matuska 15e64fe029SMartin Matuska extract_reference_file(reffile); 16e64fe029SMartin Matuska r = systemf("%s %s -x test_basic/c >test.out 2>test.err", testprog, reffile); 17e64fe029SMartin Matuska assertEqualInt(0, r); 18e64fe029SMartin Matuska assertNonEmptyFile("test.out"); 19e64fe029SMartin Matuska assertEmptyFile("test.err"); 20e64fe029SMartin Matuska 21e64fe029SMartin Matuska assertTextFileContents("contents a\n", "test_basic/a"); 22e64fe029SMartin Matuska assertTextFileContents("contents b\n", "test_basic/b"); 23e64fe029SMartin Matuska assertFileNotExists("test_basic/c"); 24e64fe029SMartin Matuska assertTextFileContents("contents CAPS\n", "test_basic/CAPS"); 25e64fe029SMartin Matuska } 26058ab969SMartin Matuska 27058ab969SMartin Matuska /* Test x arg with multiple exclude paths */ 28058ab969SMartin Matuska DEFINE_TEST(test_x_multiple) 29058ab969SMartin Matuska { 30058ab969SMartin Matuska const char *reffile = "test_basic.zip"; 31058ab969SMartin Matuska int r; 32058ab969SMartin Matuska 33058ab969SMartin Matuska extract_reference_file(reffile); 34058ab969SMartin Matuska r = systemf("%s %s -x test_basic/c test_basic/b >test.out 2>test.err", testprog, reffile); 35058ab969SMartin Matuska assertEqualInt(0, r); 36058ab969SMartin Matuska assertNonEmptyFile("test.out"); 37058ab969SMartin Matuska assertEmptyFile("test.err"); 38058ab969SMartin Matuska 39058ab969SMartin Matuska assertTextFileContents("contents a\n", "test_basic/a"); 40058ab969SMartin Matuska assertFileNotExists("test_basic/b"); 41058ab969SMartin Matuska assertFileNotExists("test_basic/c"); 42058ab969SMartin Matuska assertTextFileContents("contents CAPS\n", "test_basic/CAPS"); 43058ab969SMartin Matuska } 44058ab969SMartin Matuska 45058ab969SMartin Matuska /* Test x arg with multiple exclude paths and a d arg afterwards */ 46058ab969SMartin Matuska DEFINE_TEST(test_x_multiple_with_d) 47058ab969SMartin Matuska { 48058ab969SMartin Matuska const char *reffile = "test_basic.zip"; 49058ab969SMartin Matuska int r; 50058ab969SMartin Matuska 51058ab969SMartin Matuska extract_reference_file(reffile); 52058ab969SMartin Matuska r = systemf("%s %s -x test_basic/c test_basic/b -d foobar >test.out 2>test.err", testprog, reffile); 53058ab969SMartin Matuska assertEqualInt(0, r); 54058ab969SMartin Matuska assertNonEmptyFile("test.out"); 55058ab969SMartin Matuska assertEmptyFile("test.err"); 56058ab969SMartin Matuska 57058ab969SMartin Matuska assertTextFileContents("contents a\n", "foobar/test_basic/a"); 58058ab969SMartin Matuska assertFileNotExists("foobar/test_basic/b"); 59058ab969SMartin Matuska assertFileNotExists("foobar/test_basic/c"); 60058ab969SMartin Matuska assertTextFileContents("contents CAPS\n", "foobar/test_basic/CAPS"); 61058ab969SMartin Matuska } 62