xref: /freebsd/contrib/libarchive/unzip/test/test_d.c (revision df21a004be237a1dccd03c7b47254625eea62fa9)
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 d arg - extract to target dir - before zipfile argument */
10 DEFINE_TEST(test_d_before_zipfile)
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 -d foobar %s >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", "foobar/test_basic/a");
23 	assertTextFileContents("contents b\n", "foobar/test_basic/b");
24 	assertTextFileContents("contents c\n", "foobar/test_basic/c");
25 	assertTextFileContents("contents CAPS\n", "foobar/test_basic/CAPS");
26 #else
27 	skipping("zlib not available");
28 #endif
29 }
30 
31 /* Test d arg - extract to target dir - after zipfile argument */
32 DEFINE_TEST(test_d_after_zipfile)
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 -d foobar >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", "foobar/test_basic/a");
45 	assertTextFileContents("contents b\n", "foobar/test_basic/b");
46 	assertTextFileContents("contents c\n", "foobar/test_basic/c");
47 	assertTextFileContents("contents CAPS\n", "foobar/test_basic/CAPS");
48 #else
49 	skipping("zlib not available");
50 #endif
51 }
52