Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/libarchive/tar/test/test_list_item.c
39536 views
1
/*-SPDX-License-Identifier: BSD-2-Clause
2
* Copyright (c) 2024 Tarsnap Backup Inc.
3
* All rights reserved.
4
*/
5
#include "test.h"
6
7
#if defined(_WIN32) && !defined(__CYGWIN__)
8
#include <winbase.h>
9
#endif
10
11
/* These lists of files come from 'test_list_archive.tar.uu', which includes
12
* the script which generated it. */
13
14
static const char *tf_out =
15
"f\n"
16
"hl\n"
17
"sl\n"
18
"d/\n"
19
"d/f\n"
20
"fake-username\n"
21
"fake-groupname\n"
22
"f\n";
23
24
#if defined(_WIN32) && !defined(__CYGWIN__)
25
static const char *tvf_out =
26
"-rw-r--r-- 0 1000 1000 0 Jan 01 1980 f\n"
27
"hrw-r--r-- 0 1000 1000 0 Jan 01 1980 hl link to f\n"
28
"lrwxr-xr-x 0 1000 1000 0 Jan 01 1980 sl -> f\n"
29
"drwxrwxrwx 0 1000 1000 0 Jan 01 1980 d/\n"
30
"-r-------- 0 1000 1000 0 Jan 01 1980 d/f\n"
31
"-rw-r--r-- 0 long-fake-uname 1000 0 Jan 01 1980 fake-username\n"
32
"-rw-r--r-- 0 1000 long-fake-gname 0 Jan 01 1980 fake-groupname\n"
33
"-rw-r--r-- 0 1000 1000 0 Jan 01 1980 f\n";
34
#else
35
static const char *tvf_out =
36
"-rw-r--r-- 0 1000 1000 0 Jan 1 1980 f\n"
37
"hrw-r--r-- 0 1000 1000 0 Jan 1 1980 hl link to f\n"
38
"lrwxr-xr-x 0 1000 1000 0 Jan 1 1980 sl -> f\n"
39
"drwxrwxrwx 0 1000 1000 0 Jan 1 1980 d/\n"
40
"-r-------- 0 1000 1000 0 Jan 1 1980 d/f\n"
41
"-rw-r--r-- 0 long-fake-uname 1000 0 Jan 1 1980 fake-username\n"
42
"-rw-r--r-- 0 1000 long-fake-gname 0 Jan 1 1980 fake-groupname\n"
43
"-rw-r--r-- 0 1000 1000 0 Jan 1 1980 f\n";
44
#endif
45
46
DEFINE_TEST(test_list_item)
47
{
48
extract_reference_file("test_list_item.tar");
49
50
/* Run 'tf' and check output. */
51
assertEqualInt(0,
52
systemf("%s tf test_list_item.tar >tf.out 2>tf.err", testprog));
53
failure("'t' mode should write results to stdout");
54
assertTextFileContents(tf_out, "tf.out");
55
assertEmptyFile("tf.err");
56
57
/* Run 'tvf' and check output. */
58
assertEqualInt(0,
59
systemf("%s tvf test_list_item.tar >tvf.out 2>tvf.err", testprog));
60
failure("'t' mode with 'v' should write more results to stdout");
61
assertTextFileContents(tvf_out, "tvf.out");
62
assertEmptyFile("tvf.err");
63
}
64
65