1caf54c4fSMartin Matuska /*-
2*bd66c1b4SMartin Matuska * SPDX-License-Identifier: BSD-2-Clause
3*bd66c1b4SMartin Matuska *
4caf54c4fSMartin Matuska * Copyright (c) 2003-2007 Tim Kientzle
5caf54c4fSMartin Matuska * All rights reserved.
6caf54c4fSMartin Matuska */
7caf54c4fSMartin Matuska #include "test.h"
8caf54c4fSMartin Matuska
DEFINE_TEST(test_option_m)9caf54c4fSMartin Matuska DEFINE_TEST(test_option_m)
10caf54c4fSMartin Matuska {
11caf54c4fSMartin Matuska int r;
12caf54c4fSMartin Matuska
13caf54c4fSMartin Matuska /*
14caf54c4fSMartin Matuska * The reference archive has one file with an mtime in 1970, 1
15caf54c4fSMartin Matuska * second after the start of the epoch.
16caf54c4fSMartin Matuska */
17caf54c4fSMartin Matuska
18caf54c4fSMartin Matuska /* Restored without -m, the result should have a current mtime. */
19caf54c4fSMartin Matuska assertMakeDir("without-m", 0755);
20caf54c4fSMartin Matuska assertChdir("without-m");
21caf54c4fSMartin Matuska extract_reference_file("test_option_m.cpio");
22caf54c4fSMartin Matuska r = systemf("%s --no-preserve-owner -i < test_option_m.cpio >out 2>err", testprog);
23caf54c4fSMartin Matuska assertEqualInt(r, 0);
24caf54c4fSMartin Matuska assertEmptyFile("out");
25caf54c4fSMartin Matuska assertTextFileContents("1 block\n", "err");
26caf54c4fSMartin Matuska /* Should have been created within the last few seconds. */
27caf54c4fSMartin Matuska assertFileMtimeRecent("file");
28caf54c4fSMartin Matuska
29caf54c4fSMartin Matuska /* With -m, it should have an mtime in 1970. */
30caf54c4fSMartin Matuska assertChdir("..");
31caf54c4fSMartin Matuska assertMakeDir("with-m", 0755);
32caf54c4fSMartin Matuska assertChdir("with-m");
33caf54c4fSMartin Matuska extract_reference_file("test_option_m.cpio");
34caf54c4fSMartin Matuska r = systemf("%s --no-preserve-owner -im < test_option_m.cpio >out 2>err", testprog);
35caf54c4fSMartin Matuska assertEqualInt(r, 0);
36caf54c4fSMartin Matuska assertEmptyFile("out");
37caf54c4fSMartin Matuska assertTextFileContents("1 block\n", "err");
38caf54c4fSMartin Matuska /*
39caf54c4fSMartin Matuska * mtime in reference archive is '1' == 1 second after
40caf54c4fSMartin Matuska * midnight Jan 1, 1970 UTC.
41caf54c4fSMartin Matuska */
42caf54c4fSMartin Matuska assertFileMtime("file", 1, 0);
43caf54c4fSMartin Matuska }
44