/* List a tar archive, with support routines for reading a tar archive.
- Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2014 Free
+ Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2015 Free
Software Foundation, Inc.
This file is part of GNU tar.
&& !numeric_owner_option)
user = st->uname;
else
- {
- /* Try parsing it as an unsigned integer first, and as a
- uid_t if that fails. This method can list positive user
- ids that are too large to fit in a uid_t. */
- uintmax_t u = from_header (blk->header.uid,
- sizeof blk->header.uid, 0,
- 0, UINTMAX_MAX,
- false, false);
- user = (u != -1
- ? STRINGIFY_BIGINT (u, uform)
- : imaxtostr (UID_FROM_HEADER (blk->header.uid), uform));
- }
+ user = STRINGIFY_BIGINT (st->stat.st_uid, uform);
if (st->gname
&& st->gname[0]
&& !numeric_owner_option)
group = st->gname;
else
- {
- /* Try parsing it as an unsigned integer first, and as a
- gid_t if that fails. This method can list positive group
- ids that are too large to fit in a gid_t. */
- uintmax_t g = from_header (blk->header.gid,
- sizeof blk->header.gid, 0,
- 0, UINTMAX_MAX,
- false, false);
- group = (g != -1
- ? STRINGIFY_BIGINT (g, gform)
- : imaxtostr (GID_FROM_HEADER (blk->header.gid), gform));
- }
+ group = STRINGIFY_BIGINT (st->stat.st_gid, gform);
/* Format the file size or major/minor device numbers. */
--- /dev/null
+# Process this file with autom4te to create testsuite. -*- Autotest -*-
+# Test suite for GNU tar.
+# Copyright 2015 Free Software Foundation, Inc.
+#
+# GNU tar is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# GNU tar is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+AT_SETUP([--numeric-owner basic tests])
+AT_KEYWORDS([options numeric numeric-owner])
+
+m4_pushdef([TESTOP],[
+decho $1
+tar $1 -vvf a dir --numeric-owner |dnl
+ awk -vowner=$MYUID/$MYGID '@S|@2==owner {print "OK"; next} {print}'
+tar $1 -vvf a dir |dnl
+ awk -vowner=$MYUSR/$MYGRP '@S|@2==owner {print "OK"; next} {print}'
+])
+
+AT_TAR_CHECK([
+mkdir dir
+genfile --file dir/file
+
+MYUID=$(id -u) || AT_SKIP_TEST
+MYGID=$(id -g) || AT_SKIP_TEST
+MYUSR=$(id -un) || AT_SKIP_TEST
+MYGRP=$(id -gn) || AT_SKIP_TEST
+
+TESTOP([--create])
+TESTOP([--list])
+TESTOP([--diff])
+TESTOP([--extract])
+],
+[0],
+[--create
+OK
+OK
+OK
+OK
+--list
+OK
+OK
+OK
+OK
+--diff
+OK
+OK
+OK
+OK
+--extract
+OK
+OK
+OK
+OK
+],
+[--create
+--list
+--diff
+--extract
+],[],[],[posix,gnu,ustar,oldgnu])
+
+AT_CLEANUP
+
+m4_popdef([TESTOP])
+
m4_include([recurs02.at])
m4_include([shortrec.at])
m4_include([iotty.at])
+m4_include([numeric.at])
AT_BANNER([The --same-order option])
m4_include([same-order01.at])
m4_include([star/ustar-big-8g.at])
m4_include([star/pax-big-10g.at])
+