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 f arg - don't create new files or overwrite newer files */
DEFINE_TEST(test_f)10 DEFINE_TEST(test_f)
11 {
12 const char *reffile1 = "test_f_new.zip";
13 const char *reffile2 = "test_f_old.zip";
14 int r;
15
16 extract_reference_file(reffile1);
17 extract_reference_file(reffile2);
18
19 /* First run with -f should not extract: test.txt does not exist */
20 r = systemf("%s -f %s >test.out 2>test.err", testprog, reffile1);
21 assertEqualInt(0, r);
22 assertNonEmptyFile("test.out");
23 assertEmptyFile("test.err");
24 assertFileNotExists("test.txt");
25
26 /* Extract archive */
27 r = systemf("%s %s >test.out 2>test.err", testprog, reffile1);
28 assertEqualInt(0, r);
29 assertNonEmptyFile("test.out");
30 assertEmptyFile("test.err");
31 assertTextFileContents("world\n", "test.txt");
32
33 /* Second run with -f should not overwrite newer file */
34 r = systemf("%s -f %s >test.out 2>test.err", testprog, reffile2);
35 assertEqualInt(0, r);
36 assertNonEmptyFile("test.out");
37 assertEmptyFile("test.err");
38 assertTextFileContents("world\n", "test.txt");
39 }
40