xref: /freebsd/contrib/libarchive/unzip/test/test_u.c (revision 185becb1e1bd2657c156f78aeb52edac05ba5fb5)
1 /*
2  * SPDX-License-Identifier: BSD-2-Clause
3  *
4  * Copyright (c) 2026 Tobias Stoeckmann
5  * All rights reserved.
6  */
7 #include "test.h"
8 
9 /* Test u arg - don't overwrite newer files */
DEFINE_TEST(test_u)10 DEFINE_TEST(test_u)
11 {
12 	const char *reffile1 = "test_u_new.zip";
13 	const char *reffile2 = "test_u_old.zip";
14 	int r;
15 
16 	extract_reference_file(reffile1);
17 	extract_reference_file(reffile2);
18 
19 	/* First run with -u should create file */
20 	r = systemf("%s -u %s >test.out 2>test.err", testprog, reffile1);
21 	assertEqualInt(0, r);
22 	assertNonEmptyFile("test.out");
23 	assertEmptyFile("test.err");
24 	assertTextFileContents("world\n", "test.txt");
25 
26 	/* Second run with -u should not overwrite newer file */
27 	r = systemf("%s -u %s >test.out 2>test.err", testprog, reffile2);
28 	assertEqualInt(0, r);
29 	assertNonEmptyFile("test.out");
30 	assertEmptyFile("test.err");
31 	assertTextFileContents("world\n", "test.txt");
32 }
33