xref: /freebsd/contrib/libarchive/tar/test/test_option_keep_newer_files.c (revision bd66c1b43e33540205dbc1187c2f2a15c58b57ba)
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