xref: /freebsd/contrib/libarchive/unzip/test/test_I.c (revision 185becb1e1bd2657c156f78aeb52edac05ba5fb5)
1 /*
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2023 Aaron Lindros
5  * All rights reserved.
6  */
7 #include "test.h"
8 
9 #ifdef HAVE_LOCALE_H
10 #include <locale.h>
11 #endif
12 
13 /* Test I arg - file name encoding */
DEFINE_TEST(test_I)14 DEFINE_TEST(test_I)
15 {
16 #if !defined(_WIN32) || defined(__CYGWIN__)
17 	const char *reffile = "test_I.zip";
18 	const char *envstr = "env LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 "
19 	    "LC_CTYPE=en_US.UTF-8";
20 	int r;
21 
22 #if HAVE_SETLOCALE
23 	if (NULL == setlocale(LC_ALL, "en_US.UTF-8")) {
24 		skipping("en_US.UTF-8 locale not available on this system.");
25 		return;
26 	}
27 #else
28 	skipping("setlocale() not available on this system.");
29 #endif
30 
31 	extract_reference_file(reffile);
32 	r = systemf("%s %s -I UTF-8 %s >test.out 2>test.err", envstr, testprog,
33 	    reffile);
34 	assertEqualInt(0, r);
35 	assertNonEmptyFile("test.out");
36 	assertEmptyFile("test.err");
37 
38 	assertTextFileContents("Hello, World!\n", "Γειά σου Κόσμε.txt");
39 #else
40 	skipping("Windows not supported");
41 #endif
42 }
43