xref: /freebsd/contrib/libarchive/unzip/test/test_P_encryption.c (revision 185becb1e1bd2657c156f78aeb52edac05ba5fb5)
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 P arg - password protected */
DEFINE_TEST(test_P_encryption)10 DEFINE_TEST(test_P_encryption)
11 {
12 #ifdef HAVE_LIBZ
13 	const char *reffile = "test_encrypted.zip";
14 	int r;
15 
16 	extract_reference_file(reffile);
17 	r = systemf("%s -P password %s >test.out 2>test.err", testprog, reffile);
18 	if (r == 256) {
19 		assertTextFileContents("unzip: Decryption is unsupported due to lack of crypto library\n", "test.err");
20 	} else {
21 		assertEqualInt(0, r);
22 		assertNonEmptyFile("test.out");
23 		assertEmptyFile("test.err");
24 
25 		assertTextFileContents("plaintext\n", "encrypted/file.txt");
26 	}
27 #else
28 	skipping("zlib not available");
29 #endif
30 }
31