16c95142eSMartin Matuska /*-
2*bd66c1b4SMartin Matuska * SPDX-License-Identifier: BSD-2-Clause
3*bd66c1b4SMartin Matuska *
46c95142eSMartin Matuska * Copyright (c) 2010 Tim Kientzle
56c95142eSMartin Matuska * All rights reserved.
66c95142eSMartin Matuska */
76c95142eSMartin Matuska #include "test.h"
86c95142eSMartin Matuska
DEFINE_TEST(test_option_keep_newer_files)96c95142eSMartin Matuska DEFINE_TEST(test_option_keep_newer_files)
106c95142eSMartin Matuska {
116c95142eSMartin Matuska const char *reffile = "test_option_keep_newer_files.tar.Z";
126c95142eSMartin Matuska
136c95142eSMartin Matuska /* Reference file has one entry "file" with a very old timestamp. */
146c95142eSMartin Matuska extract_reference_file(reffile);
156c95142eSMartin Matuska
166c95142eSMartin Matuska /* Test 1: Without --keep-newer-files */
176c95142eSMartin Matuska assertMakeDir("test1", 0755);
186c95142eSMartin Matuska assertChdir("test1");
196c95142eSMartin Matuska assertMakeFile("file", 0644, "new");
206c95142eSMartin Matuska assertEqualInt(0,
216c95142eSMartin Matuska systemf("%s -xf ../%s >test.out 2>test.err", testprog, reffile));
226c95142eSMartin Matuska assertFileContents("old\n", 4, "file");
236c95142eSMartin Matuska assertEmptyFile("test.out");
246c95142eSMartin Matuska assertEmptyFile("test.err");
256c95142eSMartin Matuska assertChdir("..");
266c95142eSMartin Matuska
276c95142eSMartin Matuska /* Test 2: With --keep-newer-files */
286c95142eSMartin Matuska assertMakeDir("test2", 0755);
296c95142eSMartin Matuska assertChdir("test2");
306c95142eSMartin Matuska assertMakeFile("file", 0644, "new");
316c95142eSMartin Matuska assertEqualInt(0,
326c95142eSMartin Matuska systemf("%s -xf ../%s --keep-newer-files >test.out 2>test.err", testprog, reffile));
336c95142eSMartin Matuska assertFileContents("new", 3, "file");
346c95142eSMartin Matuska assertEmptyFile("test.out");
356c95142eSMartin Matuska assertEmptyFile("test.err");
366c95142eSMartin Matuska assertChdir("..");
376c95142eSMartin Matuska }
38