#! /bin/sh
# Generated from testsuite.at by GNU Autoconf 2.71.
#
# Copyright (C) 2009-2017, 2020-2021 Free Software Foundation, Inc.
#
# This test suite is free software; the Free Software Foundation gives
# unlimited permission to copy, distribute and modify it.
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
# Be more Bourne compatible
DUALCASE=1; export DUALCASE # for MKS sh
as_nop=:
if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else $as_nop
case `(set -o) 2>/dev/null` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
# Reset variables that may have inherited troublesome values from
# the environment.
# IFS needs to be set, to space, tab, and newline, in precisely that order.
# (If _AS_PATH_WALK were called with IFS unset, it would have the
# side effect of setting IFS to empty, thus disabling word splitting.)
# Quoting is to prevent editors from complaining about space-tab.
as_nl='
'
export as_nl
IFS=" "" $as_nl"
PS1='$ '
PS2='> '
PS4='+ '
# Ensure predictable behavior from utilities with locale-dependent output.
LC_ALL=C
export LC_ALL
LANGUAGE=C
export LANGUAGE
# We cannot yet rely on "unset" to work, but we need these variables
# to be unset--not just set to an empty or harmless value--now, to
# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
# also avoids known problems related to "unset" and subshell syntax
# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
do eval test \${$as_var+y} \
&& ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
done
# Ensure that fds 0, 1, and 2 are open.
if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
# The user is always right.
if ${PATH_SEPARATOR+false} :; then
PATH_SEPARATOR=:
(PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
(PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
PATH_SEPARATOR=';'
}
fi
# Find who we are. Look in the path if we contain no directory separator.
as_myself=
case $0 in #((
*[\\/]* ) as_myself=$0 ;;
*) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -r "$as_dir$0" && as_myself=$as_dir$0 && break
done
IFS=$as_save_IFS
;;
esac
# We did not find ourselves, most probably we were run as `sh COMMAND'
# in which case we are not to be found in the path.
if test "x$as_myself" = x; then
as_myself=$0
fi
if test ! -f "$as_myself"; then
printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
if test "x$CONFIG_SHELL" = x; then
as_bourne_compatible="as_nop=:
if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
then :
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
# is contrary to our usage. Disable this feature.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else \$as_nop
case \`(set -o) 2>/dev/null\` in #(
*posix*) :
set -o posix ;; #(
*) :
;;
esac
fi
"
as_required="as_fn_return () { (exit \$1); }
as_fn_success () { as_fn_return 0; }
as_fn_failure () { as_fn_return 1; }
as_fn_ret_success () { return 0; }
as_fn_ret_failure () { return 1; }
exitcode=0
as_fn_success || { exitcode=1; echo as_fn_success failed.; }
as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
if ( set x; as_fn_ret_success y && test x = \"\$1\" )
then :
else \$as_nop
exitcode=1; echo positional parameters were not saved.
fi
test x\$exitcode = x0 || exit 1
blah=\$(echo \$(echo blah))
test x\"\$blah\" = xblah || exit 1
test -x / || exit 1"
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
test \$(( 1 + 1 )) = 2 || exit 1"
if (eval "$as_required") 2>/dev/null
then :
as_have_required=yes
else $as_nop
as_have_required=no
fi
if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
then :
else $as_nop
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
as_found=:
case $as_dir in #(
/*)
for as_base in sh bash ksh sh5; do
# Try only shells that exist, to save several forks.
as_shell=$as_dir$as_base
if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$as_shell as_have_required=yes
if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
then :
break 2
fi
fi
done;;
esac
as_found=false
done
IFS=$as_save_IFS
if $as_found
then :
else $as_nop
if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
then :
CONFIG_SHELL=$SHELL as_have_required=yes
fi
fi
if test "x$CONFIG_SHELL" != x
then :
export CONFIG_SHELL
# We cannot yet assume a decent shell, so we have to provide a
# neutralization value for shells without unset; and this also
# works around shells that cannot unset nonexistent variables.
# Preserve -v and -x to the replacement shell.
BASH_ENV=/dev/null
ENV=/dev/null
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
case $- in # ((((
*v*x* | *x*v* ) as_opts=-vx ;;
*v* ) as_opts=-v ;;
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed `exec'.
printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
printf "%s\n" "$0: This script requires a shell more modern than all"
printf "%s\n" "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
else
printf "%s\n" "$0: Please tell bug-autoconf@gnu.org about your system,
$0: including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
fi
exit 1
fi
fi
fi
SHELL=${CONFIG_SHELL-/bin/sh}
export SHELL
# Unset more variables known to interfere with behavior of common tools.
CLICOLOR_FORCE= GREP_OPTIONS=
unset CLICOLOR_FORCE GREP_OPTIONS
## --------------------- ##
## M4sh Shell Functions. ##
## --------------------- ##
# as_fn_unset VAR
# ---------------
# Portably unset VAR.
as_fn_unset ()
{
{ eval $1=; unset $1;}
}
as_unset=as_fn_unset
# as_fn_set_status STATUS
# -----------------------
# Set $? to STATUS, without forking.
as_fn_set_status ()
{
return $1
} # as_fn_set_status
# as_fn_exit STATUS
# -----------------
# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
as_fn_exit ()
{
set +e
as_fn_set_status $1
exit $1
} # as_fn_exit
# as_fn_nop
# ---------
# Do nothing but, unlike ":", preserve the value of $?.
as_fn_nop ()
{
return $?
}
as_nop=as_fn_nop
# as_fn_mkdir_p
# -------------
# Create "$as_dir" as a directory, including parents if necessary.
as_fn_mkdir_p ()
{
case $as_dir in #(
-*) as_dir=./$as_dir;;
esac
test -d "$as_dir" || eval $as_mkdir_p || {
as_dirs=
while :; do
case $as_dir in #(
*\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
}
/^X\(\/\/\)[^/].*/{
s//\1/
q
}
/^X\(\/\/\)$/{
s//\1/
q
}
/^X\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
test -d "$as_dir" && break
done
test -z "$as_dirs" || eval "mkdir $as_dirs"
} || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
} # as_fn_mkdir_p
# as_fn_executable_p FILE
# -----------------------
# Test if FILE is an executable regular file.
as_fn_executable_p ()
{
test -f "$1" && test -x "$1"
} # as_fn_executable_p
# as_fn_append VAR VALUE
# ----------------------
# Append the text in VALUE to the end of the definition contained in VAR. Take
# advantage of any shell optimizations that allow amortized linear growth over
# repeated appends, instead of the typical quadratic growth present in naive
# implementations.
if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
then :
eval 'as_fn_append ()
{
eval $1+=\$2
}'
else $as_nop
as_fn_append ()
{
eval $1=\$$1\$2
}
fi # as_fn_append
# as_fn_arith ARG...
# ------------------
# Perform arithmetic evaluation on the ARGs, and store the result in the
# global $as_val. Take advantage of shells that can avoid forks. The arguments
# must be portable across $(()) and expr.
if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
then :
eval 'as_fn_arith ()
{
as_val=$(( $* ))
}'
else $as_nop
as_fn_arith ()
{
as_val=`expr "$@" || test $? -eq 1`
}
fi # as_fn_arith
# as_fn_error STATUS ERROR [LINENO LOG_FD]
# ----------------------------------------
# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
# script with STATUS, using 1 if that was 0.
as_fn_error ()
{
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
printf "%s\n" "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
if expr a : '\(a\)' >/dev/null 2>&1 &&
test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
fi
as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
printf "%s\n" X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
}
/^X\/\(\/\/\)$/{
s//\1/
q
}
/^X\/\(\/\).*/{
s//\1/
q
}
s/.*/./; q'`
if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
as_dirname=dirname
else
as_dirname=false
fi
# Avoid depending upon Character Ranges.
as_cr_letters='abcdefghijklmnopqrstuvwxyz'
as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
as_cr_Letters=$as_cr_letters$as_cr_LETTERS
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
as_lineno_1=$LINENO as_lineno_1a=$LINENO
as_lineno_2=$LINENO as_lineno_2a=$LINENO
eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
# Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
sed -n '
p
/[$]LINENO/=
' <$as_myself |
sed '
s/[$]LINENO.*/&-/
t lineno
b
:lineno
N
:loop
s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
t loop
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
{ printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
# in an infinite loop. This has already happened in practice.
_as_can_reexec=no; export _as_can_reexec
# Don't try to exec as it changes $[0], causing all sort of problems
# (the dirname of $[0] is not the place where we might find the
# original and so on. Autoconf is especially sensitive to this).
. "./$as_me.lineno"
# Exit status is that of the last command.
exit
}
# Determine whether it's possible to make 'echo' print without a newline.
# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
# for compatibility with existing Makefiles.
ECHO_C= ECHO_N= ECHO_T=
case `echo -n x` in #(((((
-n*)
case `echo 'xy\c'` in
*c*) ECHO_T=' ';; # ECHO_T is single tab character.
xy) ECHO_C='\c';;
*) echo `echo ksh88 bug on AIX 6.1` > /dev/null
ECHO_T=' ';;
esac;;
*)
ECHO_N='-n';;
esac
# For backward compatibility with old third-party macros, we provide
# the shell variables $as_echo and $as_echo_n. New code should use
# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
as_echo='printf %s\n'
as_echo_n='printf %s'
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
else
rm -f conf$$.dir
mkdir conf$$.dir 2>/dev/null
fi
if (echo >conf$$.file) 2>/dev/null; then
if ln -s conf$$.file conf$$ 2>/dev/null; then
as_ln_s='ln -s'
# ... but there are two gotchas:
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
# In both cases, we have to default to `cp -pR'.
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
as_ln_s='cp -pR'
elif ln conf$$.file conf$$ 2>/dev/null; then
as_ln_s=ln
else
as_ln_s='cp -pR'
fi
else
as_ln_s='cp -pR'
fi
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
rmdir conf$$.dir 2>/dev/null
if mkdir -p . 2>/dev/null; then
as_mkdir_p='mkdir -p "$as_dir"'
else
test -d ./-p && rmdir ./-p
as_mkdir_p=false
fi
as_test_x='test -x'
as_executable_p=as_fn_executable_p
# Sed expression to map a string onto a valid CPP name.
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
# Sed expression to map a string onto a valid variable name.
as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
SHELL=${CONFIG_SHELL-/bin/sh}
# How were we run?
at_cli_args="$@"
# Not all shells have the 'times' builtin; the subshell is needed to make
# sure we discard the 'times: not found' message from the shell.
at_times_p=false
(times) >/dev/null 2>&1 && at_times_p=:
# CLI Arguments to pass to the debugging scripts.
at_debug_args=
# -e sets to true
at_errexit_p=false
# Shall we be verbose? ':' means no, empty means yes.
at_verbose=:
at_quiet=
# Running several jobs in parallel, 0 means as many as test groups.
at_jobs=1
at_traceon=:
at_trace_echo=:
at_check_filter_trace=:
# Shall we keep the debug scripts? Must be `:' when the suite is
# run by a debug script, so that the script doesn't remove itself.
at_debug_p=false
# Display help message?
at_help_p=false
# Display the version message?
at_version_p=false
# List test groups?
at_list_p=false
# --clean
at_clean=false
# Test groups to run
at_groups=
# Whether to rerun failed tests.
at_recheck=
# Whether a write failure occurred
at_write_fail=0
# The directory we run the suite in. Default to . if no -C option.
at_dir=`pwd`
# An absolute reference to this testsuite script.
case $as_myself in
[\\/]* | ?:[\\/]* ) at_myself=$as_myself ;;
* ) at_myself=$at_dir/$as_myself ;;
esac
# Whether -C is in effect.
at_change_dir=false
# Whether to enable colored test results.
at_color=no
# As many question marks as there are digits in the last test group number.
# Used to normalize the test group numbers so that `ls' lists them in
# numerical order.
at_format='???'
# Description of all the test groups.
at_help_all="1;version.at:19;tar version;;
2;pipe.at:29;decompressing from stdin;pipe;
3;options.at:24;mixing options;options options00;
4;options02.at:26;interspersed options;options options02;
5;options03.at:21;TAR_OPTIONS with string arguments;options options03;
6;opcomp01.at:21;occurrence compatibility;opcomp opcomp01;
7;opcomp02.at:21;occurrence compatibility;opcomp opcomp02;
8;opcomp03.at:21;--verify compatibility;opcomp opcomp03;
9;opcomp04.at:21;compress option compatibility;opcomp opcomp04;
10;opcomp05.at:21;--pax-option compatibility;opcomp opcomp05;
11;opcomp06.at:21;--pax-option compatibility;opcomp opcomp06;
12;defaults.at:16;checkpoint defaults;checkpoint checkpoint/defaults;
13;interval.at:16;checkpoint interval;checkpoint checkpoint/interval;
14;dot.at:16;dot action;checkpoint checkpoint/dot;
15;dot-compat.at:16;dot action (compatibility syntax);checkpoint checkpoint/dot-compat;
16;dot-int.at:16;dot action and interval;checkpoint checkpoint/dot-int;
17;testsuite.at:242;compress: gzip;compression compress-gzip gzip;
18;testsuite.at:243;compress: bzip2;compression compress-bzip2 bzip2;
19;testsuite.at:244;compress: xz;compression compress-xz xz;
20;testsuite.at:246;compress: lzip;compression compress-lzip lzip;
21;testsuite.at:247;compress: lzop;compression compress-lzop lzop;
22;testsuite.at:248;compress: zstd;compression compress-zstd zstd;
23;positional01.at:21;Exclude;options positional positional01 exclude;
24;positional02.at:21;Directory;options positional positional02 directory chdir;
25;positional03.at:21;Several options;options positional positional03 chdir;
26;add-file.at:21;The --add-file option;add-file;
27;T-mult.at:21;multiple file lists;files-from t-mult;
28;T-nest.at:21;nested file lists;files-from t-nest;
29;T-rec.at:21;recursive file lists;files-from t-rec;
30;T-recurse.at:27;files-from & recurse: toggle;recurse t-recurse files-from;
31;T-recurse.at:66;toggle --recursion (not) from -T;recurse t-recurse t-recurse2 files-from;
32;T-cd.at:21;-C in file lists;files-from t-cd chdir;
33;T-empty.at:26;empty entries;files-from empty-line;
34;T-null.at:21;0-separated file without -0;files-from null t-null;
35;T-null2.at:17;--null enables verbatim reading;files-from null t-null2 t-verbatim;
36;T-zfile.at:26;empty file;files-from empty-file;
37;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl;
38;T-dir00.at:28;recursive extraction from --files-from;files-from extract t-dir t-dir00;
39;T-dir01.at:28;trailing slash in --files-from;files-from extract t-dir t-dir01;
40;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile;
41;verbose.at:26;tar cvf -;stdout verbose;
42;gzip.at:23;gzip;gzip;
43;recurse.at:21;recurse;recurse;
44;recurs02.at:30;recurse: toggle;recurse options recurse02;
45;shortrec.at:25;short records;shortrec;
46;numeric.at:18;--numeric-owner basic tests;options numeric numeric-owner;
47;same-order01.at:26;working -C with --same-order;same-order same-order01 chdir;
48;same-order02.at:25;multiple -C options;same-order same-order02 chdir;
49;append.at:21;append;append append00;
50;append01.at:29;appending files with long names;append append01;
51;append02.at:54;append vs. create;append append02 append-gnu;
52;append03.at:21;append with name transformation;append append03;
53;append04.at:29;append with verify;append append04 verify append-verify;
54;append05.at:32;append after changed blocking;append append05 blocking;
55;xform-h.at:30;transforming hard links on create;transform xform xform-h;
56;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume;
57;xform02.at:21;transforming escaped delimiters on create;transform xform delimiter;
58;xform03.at:21;transforming hard link targets;transform xform link;
59;exclude.at:23;exclude;exclude;
60;exclude01.at:19;exclude wildcards;exclude exclude01;
61;exclude02.at:19;exclude: anchoring;exclude exclude02;
62;exclude03.at:19;exclude: wildcards match slash;exclude exclude03;
63;exclude04.at:19;exclude: case insensitive;exclude exclude04;
64;exclude05.at:21;exclude: lots of excludes;exclude exclude05;
65;exclude06.at:26;exclude: long files in pax archives;exclude exclude06 chdir;
66;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07;
67;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08;
68;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09;
69;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10;
70;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11;
71;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12;
72;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13;
73;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14;
74;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15;
75;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16;
76;exclude17.at:21;--exclude-vcs-ignores memory allocation;exclude exclude17;
77;exclude18.at:30;--exclude-vcs extract list compare;exclude-vcs extract list compare exclude18;
78;delete01.at:23;deleting a member after a big one;delete delete01;
79;delete02.at:23;deleting a member from stdin archive;delete delete02;
80;delete03.at:21;deleting members with long names;delete delete03;
81;delete04.at:23;deleting a large last member;delete delete04;
82;delete05.at:27;deleting non-existing member;delete delete05;
83;delete06.at:25;EOF detection;delete delete06;
84;extrac01.at:23;extract over an existing directory;extract extract01;
85;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink;
86;extrac03.at:23;extraction loops;extract extract03;
87;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch;
88;extrac05.at:30;extracting selected members from pax;extract extract05;
89;extrac06.at:34;mode of extracted directories;extract extract06 directory mode;
90;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink chdir;
91;extrac08.at:33;restoring mode on existing directory;extract extrac08;
92;extrac09.at:34;extracting even when . and .. are unreadable;extract extrac09 chdir;
93;extrac10.at:29;-C and delayed setting of metadata;extract extrac10 chdir;
94;extrac11.at:25;scarce file descriptors;extract extrac11 chdir;
95;extrac12.at:25;extract dot permissions;extract extrac12 chdir;
96;extrac13.at:26;extract over symlinks;extract extrac13 chdir;
97;extrac14.at:25;extract -C symlink;extract extrac14 chdir;
98;extrac15.at:25;extract parent mkdir failure;extract extrac15 chdir;
99;extrac16.at:26;extract empty directory with -C;extract extrac16 chdir;
100;extrac17.at:21;name matching/transformation ordering;extract extrac17 chdir;
101;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files;
102;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files;
103;extrac20.at:21;keep-directory-symlink;extrac20 extract old-files keep-old-files;
104;extrac21.at:31;delay-directory-restore;extract extract21 read-only symlink delay-directory-restore;
105;extrac22.at:19;delay-directory-restore on reversed ordering;extract extrac22 delay delay-reversed;
106;extrac23.at:18;--no-overwrite-dir;extract extrac23 no-overwrite-dir;
107;extrac24.at:18;--to-stdout;extract extrac24 to-stdout;
108;extrac25.at:18;extract over parent dir that is dangling symlink;extract extrac25;
109;backup01.at:33;extracting existing dir with --backup;extract backup backup01;
110;difflink.at:17;link mismatch;diff difflink;
111;label01.at:21;single-volume label;label label01;
112;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv;
113;label03.at:27;test-label option;label label03 test-label;
114;label04.at:27;label with non-create option;label label04;
115;label05.at:24;label with non-create option;label label05;
116;incremental.at:23;incremental;incremental listed incr00;
117;incr01.at:27;restore broken symlinks from incremental;incremental incr01;
118;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02;
119;listed01.at:26;--listed for individual files;listed incremental listed01;
120;listed02.at:28;working --listed;listed incremental listed02;
121;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03;
122;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04;
123;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05 chdir;
124;incr03.at:28;renamed files in incrementals;incremental incr03 rename;
125;incr04.at:29;proper icontents initialization;incremental incr04 icontents;
126;incr05.at:21;incremental dumps with -C;incremental incr05 chdir;
127;incr06.at:21;incremental dumps of nested directories;incremental incr06 chdir;
128;incr07.at:18;incremental restores with -C;incremental extract incr07 chdir;
129;incr08.at:38;filename normalization;incremental create incr08 chdir;
130;incr09.at:26;incremental with alternating -C;incremental create incr09 chdir;
131;incr10.at:18;concatenated incremental archives (deletes);incremental concat cat incr10 chdir;
132;incr11.at:25;concatenated incremental archives (renames);incremental concat cat incr11 chdir;
133;filerem01.at:36;file removed as we read it;create incremental listed filechange filerem filerem01;
134;filerem02.at:26;toplevel file removed;create incremental listed filechange filerem filerem02;
135;dirrem01.at:38;directory removed before reading;create incremental listed dirchange dirrem dirrem01;
136;dirrem02.at:31;explicitly named directory removed before reading;create incremental listed dirchange dirrem dirrem02;
137;rename01.at:24;renamed dirs in incrementals;incremental rename rename01;
138;rename02.at:24;move between hierarchies;incremental rename rename02;
139;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename;
140;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename;
141;rename05.at:24;renamed subdirectories;incremental rename05 rename;
142;rename06.at:19;chained renames;incremental rename06 rename;
143;chtype.at:27;changed file types in incrementals;incremental listed chtype;
144;ignfail.at:23;ignfail;ignfail;
145;link01.at:33;link count gt 2;hardlinks link01;
146;link02.at:32;preserve hard links with --remove-files;hardlinks link02;
147;link03.at:24;working -l with --remove-files;hardlinks link03;
148;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04;
149;longv7.at:24;long names in V7 archives;longname longv7;
150;long01.at:28;long file names divisible by block size;longname long512;
151;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01;
152;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02;
153;lustar03.at:21;ustar: splitting long names;longname ustar lustar03;
154;old.at:23;old archives;old;
155;time01.at:20;time: tricky time stamps;time time01;
156;time02.at:20;time: clamping mtime;time time02;
157;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01 chdir;
158;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02;
159;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03;
160;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental listed multiv04;
161;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync;
162;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06;
163;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit;
164;multiv08.at:25;multivolume header creation;multivolume multiv multiv08;
165;multiv09.at:26;bad next volume;multivolume multiv multiv09;
166;multiv10.at:37;file start at the beginning of a posix volume;multivolume multiv multiv10;
167;owner.at:21;--owner and --group;owner;
168;map.at:21;--owner-map and --group-map;owner map;
169;sparse01.at:21;sparse files;sparse sparse01;
170;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02;
171;sparse03.at:21;storing sparse files > 8G;sparse sparse03 largefile;
172;sparse04.at:21;storing long sparse file names;sparse sparse04;
173;sparse05.at:21;listing sparse files bigger than 2^33 B;sparse sparse05 largefile;
174;sparse06.at:21;storing sparse file using seek method;sparse sparse06 chdir;
175;sparse07.at:21;sparse files with unicode names;sparse sparse07 unicode;
176;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv;
177;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00;
178;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01;
179;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10;
180;sptrcreat.at:33;sparse file truncated while archiving;truncate filechange sparse sptr sptrcreat;
181;sptrdiff00.at:26;file truncated in sparse region while comparing;truncate filechange sparse sptr sptrdiff diff;
182;sptrdiff01.at:26;file truncated in data region while comparing;truncate filechange sparse sptr sptrdiff diff;
183;update.at:28;update unchanged directories;update update00;
184;update01.at:29;update directories;update update01;
185;update02.at:26;update changed files;update update02;
186;update03.at:20;update with chdir;update update03 chdir;
187;update04.at:20;update with wildcards;update update04 wildcards;
188;verify.at:25;verify;verify;
189;volume.at:23;volume;volume volcheck;
190;volsize.at:29;volume header size;volume volsize;
191;comprec.at:21;compressed format recognition;comprec;
192;shortfile.at:26;short input files;shortfile shortfile0;
193;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd;
194;truncate.at:29;truncate;truncate filechange;
195;grow.at:24;grow;grow filechange;
196;sigpipe.at:21;sigpipe handling;sigpipe;
197;comperr.at:18;compressor program failure;compress comperr;
198;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip;
199;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip;
200;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03;
201;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a chdir;
202;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b chdir;
203;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c chdir;
204;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a chdir;
205;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b chdir;
206;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c chdir;
207;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a chdir;
208;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b chdir;
209;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c chdir;
210;remfiles07a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles07 remfiles07a chdir;
211;remfiles07b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b chdir;
212;remfiles07c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles07 remfiles07c chdir;
213;remfiles08a.at:28;remove-files deleting two subdirs in -c/non-incr. mode;create remove-files remfiles08 remfiles08a chdir;
214;remfiles08b.at:31;remove-files deleting two subdirs in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b chdir;
215;remfiles08c.at:28;remove-files deleting two subdirs in -r mode;create append remove-files remfiles08 remfiles08c chdir;
216;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a;
217;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b;
218;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c;
219;remfiles10.at:20;remove-files;create remove-files remfiles10;
220;xattr01.at:25;xattrs: basic functionality;xattrs xattr01;
221;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02 chdir;
222;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03 chdir;
223;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04 chdir;
224;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05 chdir;
225;xattr06.at:27;xattrs: exclude xattrs on create ;xattrs xattr06;
226;xattr07.at:26;xattrs: xattrs and --skip-old-files;xattrs xattr07;
227;xattr08.at:26;xattrs: xattrs and read-only files;xattrs xattr08;
228;acls01.at:25;acls: basic functionality;xattrs acls acls01;
229;acls02.at:25;acls: work with -C;xattrs acls acls02 chdir;
230;acls03.at:30;acls: default ACLs;xattrs acls acls03 chdir;
231;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01;
232;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01;
233;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01;
234;onetop01.at:21;tar --one-top-level;extract onetop onetop01;
235;onetop02.at:21;tar --one-top-level --show-transformed;extract onetop onetop02;
236;onetop03.at:21;tar --one-top-level --transform;extract onetop onetop03;
237;onetop04.at:21;tar --one-top-level --transform;extract onetop onetop04;
238;onetop05.at:21;tar --one-top-level restoring permissions;extract onetop onetop05 chdir;
239;gtarfail.at:21;gtarfail;star gtarfail;
240;gtarfail2.at:21;gtarfail2;star gtarfail2;
241;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail;
242;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g largefile;
243;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g largefile;
244;pax-big-10g.at:21;pax-big-10g;star pax-big-10g largefile;
"
# List of the all the test groups.
at_groups_all=`printf "%s\n" "$at_help_all" | sed 's/;.*//'`
# at_fn_validate_ranges NAME...
# -----------------------------
# Validate and normalize the test group number contained in each variable
# NAME. Leading zeroes are treated as decimal.
at_fn_validate_ranges ()
{
for at_grp
do
eval at_value=\$$at_grp
if test $at_value -lt 1 || test $at_value -gt 244; then
printf "%s\n" "invalid test group: $at_value" >&2
exit 1
fi
case $at_value in
0*) # We want to treat leading 0 as decimal, like expr and test, but
# AS_VAR_ARITH treats it as octal if it uses $(( )).
# With XSI shells, ${at_value#${at_value%%[1-9]*}} avoids the
# expr fork, but it is not worth the effort to determine if the
# shell supports XSI when the user can just avoid leading 0.
eval $at_grp='`expr $at_value + 0`' ;;
esac
done
}
# List of the tested programs.
at_tested='"tar"'
at_prev=
for at_option
do
# If the previous option needs an argument, assign it.
if test -n "$at_prev"; then
at_option=$at_prev=$at_option
at_prev=
fi
case $at_option in
*=?*) at_optarg=`expr "X$at_option" : '[^=]*=\(.*\)'` ;;
*) at_optarg= ;;
esac
case $at_option in
--help | -h )
at_help_p=:
;;
--list | -l )
at_list_p=:
;;
--version | -V )
at_version_p=:
;;
--clean | -c )
at_clean=:
;;
--color )
at_color=always
;;
--color=* )
case $at_optarg in
no | never | none) at_color=never ;;
auto | tty | if-tty) at_color=auto ;;
always | yes | force) at_color=always ;;
*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
esac
;;
--debug | -d )
at_debug_p=:
;;
--errexit | -e )
at_debug_p=:
at_errexit_p=:
;;
--verbose | -v )
at_verbose=; at_quiet=:
;;
--trace | -x )
at_traceon='set -x'
at_trace_echo=echo
at_check_filter_trace=at_fn_filter_trace
;;
[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9])
at_fn_validate_ranges at_option
as_fn_append at_groups "$at_option$as_nl"
;;
# Ranges
[0-9]- | [0-9][0-9]- | [0-9][0-9][0-9]- | [0-9][0-9][0-9][0-9]-)
at_range_start=`echo $at_option |tr -d X-`
at_fn_validate_ranges at_range_start
at_range=`printf "%s\n" "$at_groups_all" | \
sed -ne '/^'$at_range_start'$/,$p'`
as_fn_append at_groups "$at_range$as_nl"
;;
-[0-9] | -[0-9][0-9] | -[0-9][0-9][0-9] | -[0-9][0-9][0-9][0-9])
at_range_end=`echo $at_option |tr -d X-`
at_fn_validate_ranges at_range_end
at_range=`printf "%s\n" "$at_groups_all" | \
sed -ne '1,/^'$at_range_end'$/p'`
as_fn_append at_groups "$at_range$as_nl"
;;
[0-9]-[0-9] | [0-9]-[0-9][0-9] | [0-9]-[0-9][0-9][0-9] | \
[0-9]-[0-9][0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9] | \
[0-9][0-9]-[0-9][0-9][0-9] | [0-9][0-9]-[0-9][0-9][0-9][0-9] | \
[0-9][0-9][0-9]-[0-9][0-9][0-9] | \
[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] | \
[0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] )
at_range_start=`expr $at_option : '\(.*\)-'`
at_range_end=`expr $at_option : '.*-\(.*\)'`
if test $at_range_start -gt $at_range_end; then
at_tmp=$at_range_end
at_range_end=$at_range_start
at_range_start=$at_tmp
fi
at_fn_validate_ranges at_range_start at_range_end
at_range=`printf "%s\n" "$at_groups_all" | \
sed -ne '/^'$at_range_start'$/,/^'$at_range_end'$/p'`
as_fn_append at_groups "$at_range$as_nl"
;;
# Directory selection.
--directory | -C )
at_prev=--directory
;;
--directory=* )
at_change_dir=:
at_dir=$at_optarg
if test x- = "x$at_dir" ; then
at_dir=./-
fi
;;
# Parallel execution.
--jobs | -j )
at_jobs=0
;;
--jobs=* | -j[0-9]* )
if test -n "$at_optarg"; then
at_jobs=$at_optarg
else
at_jobs=`expr X$at_option : 'X-j\(.*\)'`
fi
case $at_jobs in *[!0-9]*)
at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
esac
;;
# Keywords.
--keywords | -k )
at_prev=--keywords
;;
--keywords=* )
at_groups_selected=$at_help_all
at_save_IFS=$IFS
IFS=,
set X $at_optarg
shift
IFS=$at_save_IFS
for at_keyword
do
at_invert=
case $at_keyword in
'!'*)
at_invert="-v"
at_keyword=`expr "X$at_keyword" : 'X!\(.*\)'`
;;
esac
# It is on purpose that we match the test group titles too.
at_groups_selected=`printf "%s\n" "$at_groups_selected" |
grep -i $at_invert "^[1-9][^;]*;.*[; ]$at_keyword[ ;]"`
done
# Smash the keywords.
at_groups_selected=`printf "%s\n" "$at_groups_selected" | sed 's/;.*//'`
as_fn_append at_groups "$at_groups_selected$as_nl"
;;
--recheck)
at_recheck=:
;;
*=*)
at_envvar=`expr "x$at_option" : 'x\([^=]*\)='`
# Reject names that are not valid shell variable names.
case $at_envvar in
'' | [0-9]* | *[!_$as_cr_alnum]* )
as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
esac
at_value=`printf "%s\n" "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
# Export now, but save eval for later and for debug scripts.
export $at_envvar
as_fn_append at_debug_args " $at_envvar='$at_value'"
;;
*) printf "%s\n" "$as_me: invalid option: $at_option" >&2
printf "%s\n" "Try \`$0 --help' for more information." >&2
exit 1
;;
esac
done
# Verify our last option didn't require an argument
if test -n "$at_prev"
then :
as_fn_error $? "\`$at_prev' requires an argument"
fi
# The file containing the suite.
at_suite_log=$at_dir/$as_me.log
# Selected test groups.
if test -z "$at_groups$at_recheck"; then
at_groups=$at_groups_all
else
if test -n "$at_recheck" && test -r "$at_suite_log"; then
at_oldfails=`sed -n '
/^Failed tests:$/,/^Skipped tests:$/{
s/^[ ]*\([1-9][0-9]*\):.*/\1/p
}
/^Unexpected passes:$/,/^## Detailed failed tests/{
s/^[ ]*\([1-9][0-9]*\):.*/\1/p
}
/^## Detailed failed tests/q
' "$at_suite_log"`
as_fn_append at_groups "$at_oldfails$as_nl"
fi
# Sort the tests, removing duplicates.
at_groups=`printf "%s\n" "$at_groups" | sort -nu | sed '/^$/d'`
fi
if test x"$at_color" = xalways \
|| { test x"$at_color" = xauto && test -t 1; }; then
at_red=`printf '\033[0;31m'`
at_grn=`printf '\033[0;32m'`
at_lgn=`printf '\033[1;32m'`
at_blu=`printf '\033[1;34m'`
at_std=`printf '\033[m'`
else
at_red= at_grn= at_lgn= at_blu= at_std=
fi
# Help message.
if $at_help_p; then
cat <<_ATEOF || at_write_fail=1
Usage: $0 [OPTION]... [VARIABLE=VALUE]... [TESTS]
Run all the tests, or the selected TESTS, given by numeric ranges, and
save a detailed log file. Upon failure, create debugging scripts.
Do not change environment variables directly. Instead, set them via
command line arguments. Set \`AUTOTEST_PATH' to select the executables
to exercise. Each relative directory is expanded as build and source
directories relative to the top level of this distribution.
E.g., from within the build directory /tmp/foo-1.0, invoking this:
$ $0 AUTOTEST_PATH=bin
is equivalent to the following, assuming the source directory is /src/foo-1.0:
PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH $0
_ATEOF
cat <<_ATEOF || at_write_fail=1
Operation modes:
-h, --help print the help message, then exit
-V, --version print version number, then exit
-c, --clean remove all the files this test suite might create and exit
-l, --list describes all the tests, or the selected TESTS
_ATEOF
cat <<_ATEOF || at_write_fail=1
Execution tuning:
-C, --directory=DIR
change to directory DIR before starting
--color[=never|auto|always]
enable colored test results on terminal, or always
-j, --jobs[=N]
Allow N jobs at once; infinite jobs with no arg (default 1)
-k, --keywords=KEYWORDS
select the tests matching all the comma-separated KEYWORDS
multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
--recheck select all tests that failed or passed unexpectedly last time
-e, --errexit abort as soon as a test fails; implies --debug
-v, --verbose force more detailed output
default for debugging scripts
-d, --debug inhibit clean up and top-level logging
default for debugging scripts
-x, --trace enable tests shell tracing
_ATEOF
cat <<_ATEOF || at_write_fail=1
Report bugs to <bug-tar@gnu.org>.
General help using GNU software: <https://www.gnu.org/gethelp/>.
_ATEOF
exit $at_write_fail
fi
# List of tests.
if $at_list_p; then
cat <<_ATEOF || at_write_fail=1
GNU tar 1.35 test suite test groups:
NUM: FILE-NAME:LINE TEST-GROUP-NAME
KEYWORDS
_ATEOF
# Pass an empty line as separator between selected groups and help.
printf "%s\n" "$at_groups$as_nl$as_nl$at_help_all" |
awk 'NF == 1 && FS != ";" {
selected[$ 1] = 1
next
}
/^$/ { FS = ";" }
NF > 0 {
if (selected[$ 1]) {
printf " %3d: %-18s %s\n", $ 1, $ 2, $ 3
if ($ 4) {
lmax = 79
indent = " "
line = indent
len = length (line)
n = split ($ 4, a, " ")
for (i = 1; i <= n; i++) {
l = length (a[i]) + 1
if (i > 1 && len + l > lmax) {
print line
line = indent " " a[i]
len = length (line)
} else {
line = line " " a[i]
len += l
}
}
if (n)
print line
}
}
}' || at_write_fail=1
exit $at_write_fail
fi
if $at_version_p; then
printf "%s\n" "$as_me (GNU tar 1.35)" &&
cat <<\_ATEOF || at_write_fail=1
Copyright (C) 2021 Free Software Foundation, Inc.
This test suite is free software; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
_ATEOF
exit $at_write_fail
fi
# Should we print banners? Yes if more than one test is run.
case $at_groups in #(
*$as_nl* )
at_print_banners=: ;; #(
* ) at_print_banners=false ;;
esac
# Text for banner N, set to a single space once printed.
# Banner 1. testsuite.at:207
# Category starts at test group 3.
at_banner_text_1="Options"
# Banner 2. testsuite.at:212
# Category starts at test group 6.
at_banner_text_2="Option compatibility"
# Banner 3. testsuite.at:220
# Category starts at test group 12.
at_banner_text_3="Checkpoints"
# Banner 4. testsuite.at:240
# Category starts at test group 17.
at_banner_text_4="Compression"
# Banner 5. testsuite.at:250
# Category starts at test group 23.
at_banner_text_5="Positional options"
# Banner 6. testsuite.at:256
# Category starts at test group 27.
at_banner_text_6="The -T option"
# Banner 7. testsuite.at:270
# Category starts at test group 40.
at_banner_text_7="Various options"
# Banner 8. testsuite.at:279
# Category starts at test group 47.
at_banner_text_8="The --same-order option"
# Banner 9. testsuite.at:283
# Category starts at test group 49.
at_banner_text_9="Append"
# Banner 10. testsuite.at:291
# Category starts at test group 55.
at_banner_text_10="Transforms"
# Banner 11. testsuite.at:297
# Category starts at test group 59.
at_banner_text_11="Exclude"
# Banner 12. testsuite.at:318
# Category starts at test group 78.
at_banner_text_12="Deletions"
# Banner 13. testsuite.at:326
# Category starts at test group 84.
at_banner_text_13="Extracting"
# Banner 14. testsuite.at:355
# Category starts at test group 110.
at_banner_text_14="Comparing"
# Banner 15. testsuite.at:358
# Category starts at test group 111.
at_banner_text_15="Volume label operations"
# Banner 16. testsuite.at:365
# Category starts at test group 116.
at_banner_text_16="Incremental archives"
# Banner 17. testsuite.at:384
# Category starts at test group 133.
at_banner_text_17="Files removed while archiving"
# Banner 18. testsuite.at:388
# Category starts at test group 135.
at_banner_text_18="Directories removed while archiving"
# Banner 19. testsuite.at:392
# Category starts at test group 137.
at_banner_text_19="Renames"
# Banner 20. testsuite.at:401
# Category starts at test group 144.
at_banner_text_20="Ignore failing reads"
# Banner 21. testsuite.at:404
# Category starts at test group 145.
at_banner_text_21="Link handling"
# Banner 22. testsuite.at:410
# Category starts at test group 149.
at_banner_text_22="Specific archive formats"
# Banner 23. testsuite.at:421
# Category starts at test group 157.
at_banner_text_23="Multivolume archives"
# Banner 24. testsuite.at:433
# Category starts at test group 167.
at_banner_text_24="Owner and Groups"
# Banner 25. testsuite.at:437
# Category starts at test group 169.
at_banner_text_25="Sparse files"
# Banner 26. testsuite.at:453
# Category starts at test group 183.
at_banner_text_26="Updates"
# Banner 27. testsuite.at:460
# Category starts at test group 188.
at_banner_text_27="Verifying the archive"
# Banner 28. testsuite.at:463
# Category starts at test group 189.
at_banner_text_28="Volume operations"
# Banner 29. testsuite.at:467
# Category starts at test group 191.
at_banner_text_29=""
# Banner 30. testsuite.at:477
# Category starts at test group 198.
at_banner_text_30="Removing files after archiving"
# Banner 31. testsuite.at:501
# Category starts at test group 220.
at_banner_text_31="Extended attributes"
# Banner 32. testsuite.at:520
# Category starts at test group 234.
at_banner_text_32="One top level"
# Banner 33. testsuite.at:527
# Category starts at test group 239.
at_banner_text_33="Star tests"
# Take any -C into account.
if $at_change_dir ; then
test x != "x$at_dir" && cd "$at_dir" \
|| as_fn_error $? "unable to change directory"
at_dir=`pwd`
fi
# Load the config files for any default variable assignments.
for at_file in atconfig atlocal
do
test -r $at_file || continue
. ./$at_file || as_fn_error $? "invalid content: $at_file"
done
# Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
: "${at_top_build_prefix=$at_top_builddir}"
# Perform any assignments requested during argument parsing.
eval "$at_debug_args"
# atconfig delivers names relative to the directory the test suite is
# in, but the groups themselves are run in testsuite-dir/group-dir.
if test -n "$at_top_srcdir"; then
builddir=../..
for at_dir_var in srcdir top_srcdir top_build_prefix
do
eval at_val=\$at_$at_dir_var
case $at_val in
[\\/$]* | ?:[\\/]* ) at_prefix= ;;
*) at_prefix=../../ ;;
esac
eval "$at_dir_var=\$at_prefix\$at_val"
done
fi
## -------------------- ##
## Directory structure. ##
## -------------------- ##
# This is the set of directories and files used by this script
# (non-literals are capitalized):
#
# TESTSUITE - the testsuite
# TESTSUITE.log - summarizes the complete testsuite run
# TESTSUITE.dir/ - created during a run, remains after -d or failed test
# + at-groups/ - during a run: status of all groups in run
# | + NNN/ - during a run: meta-data about test group NNN
# | | + check-line - location (source file and line) of current AT_CHECK
# | | + status - exit status of current AT_CHECK
# | | + stdout - stdout of current AT_CHECK
# | | + stder1 - stderr, including trace
# | | + stderr - stderr, with trace filtered out
# | | + test-source - portion of testsuite that defines group
# | | + times - timestamps for computing duration
# | | + pass - created if group passed
# | | + xpass - created if group xpassed
# | | + fail - created if group failed
# | | + xfail - created if group xfailed
# | | + skip - created if group skipped
# + at-stop - during a run: end the run if this file exists
# + at-source-lines - during a run: cache of TESTSUITE line numbers for extraction
# + 0..NNN/ - created for each group NNN, remains after -d or failed test
# | + TESTSUITE.log - summarizes the group results
# | + ... - files created during the group
# The directory the whole suite works in.
# Should be absolute to let the user `cd' at will.
at_suite_dir=$at_dir/$as_me.dir
# The file containing the suite ($at_dir might have changed since earlier).
at_suite_log=$at_dir/$as_me.log
# The directory containing helper files per test group.
at_helper_dir=$at_suite_dir/at-groups
# Stop file: if it exists, do not start new jobs.
at_stop_file=$at_suite_dir/at-stop
# The fifo used for the job dispatcher.
at_job_fifo=$at_suite_dir/at-job-fifo
if $at_clean; then
test -d "$at_suite_dir" &&
find "$at_suite_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
rm -f -r "$at_suite_dir" "$at_suite_log"
exit $?
fi
# Don't take risks: use only absolute directories in PATH.
#
# For stand-alone test suites (ie. atconfig was not found),
# AUTOTEST_PATH is relative to `.'.
#
# For embedded test suites, AUTOTEST_PATH is relative to the top level
# of the package. Then expand it into build/src parts, since users
# may create executables in both places.
AUTOTEST_PATH=`printf "%s\n" "$AUTOTEST_PATH" | sed "s|:|$PATH_SEPARATOR|g"`
at_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $AUTOTEST_PATH $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -n "$at_path" && as_fn_append at_path $PATH_SEPARATOR
case $as_dir in
[\\/]* | ?:[\\/]* )
as_fn_append at_path "$as_dir"
;;
* )
if test -z "$at_top_build_prefix"; then
# Stand-alone test suite.
as_fn_append at_path "$as_dir"
else
# Embedded test suite.
as_fn_append at_path "$at_top_build_prefix$as_dir$PATH_SEPARATOR"
as_fn_append at_path "$at_top_srcdir/$as_dir"
fi
;;
esac
done
IFS=$as_save_IFS
# Now build and simplify PATH.
#
# There might be directories that don't exist, but don't redirect
# builtins' (eg., cd) stderr directly: Ultrix's sh hates that.
at_new_path=
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $at_path
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -d "$as_dir" || continue
case $as_dir in
[\\/]* | ?:[\\/]* ) ;;
* ) as_dir=`(cd "$as_dir" && pwd) 2>/dev/null` ;;
esac
case $PATH_SEPARATOR$at_new_path$PATH_SEPARATOR in
*$PATH_SEPARATOR$as_dir$PATH_SEPARATOR*) ;;
$PATH_SEPARATOR$PATH_SEPARATOR) at_new_path=$as_dir ;;
*) as_fn_append at_new_path "$PATH_SEPARATOR$as_dir" ;;
esac
done
IFS=$as_save_IFS
PATH=$at_new_path
export PATH
# Setting up the FDs.
# 5 is the log file. Not to be overwritten if `-d'.
if $at_debug_p; then
at_suite_log=/dev/null
else
: >"$at_suite_log"
fi
exec 5>>"$at_suite_log"
# Banners and logs.
printf "%s\n" "## ------------------------ ##
## GNU tar 1.35 test suite. ##
## ------------------------ ##"
{
printf "%s\n" "## ------------------------ ##
## GNU tar 1.35 test suite. ##
## ------------------------ ##"
echo
printf "%s\n" "$as_me: command line was:"
printf "%s\n" " \$ $0 $at_cli_args"
echo
# If ChangeLog exists, list a few lines in case it might help determining
# the exact version.
if test -n "$at_top_srcdir" && test -f "$at_top_srcdir/ChangeLog"; then
printf "%s\n" "## ---------- ##
## ChangeLog. ##
## ---------- ##"
echo
sed 's/^/| /;10q' "$at_top_srcdir/ChangeLog"
echo
fi
{
cat <<_ASUNAME
## --------- ##
## Platform. ##
## --------- ##
hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
_ASUNAME
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
printf "%s\n" "PATH: $as_dir"
done
IFS=$as_save_IFS
}
echo
# Contents of the config files.
for at_file in atconfig atlocal
do
test -r $at_file || continue
printf "%s\n" "$as_me: $at_file:"
sed 's/^/| /' $at_file
echo
done
} >&5
## ------------------------- ##
## Autotest shell functions. ##
## ------------------------- ##
# at_fn_banner NUMBER
# -------------------
# Output banner NUMBER, provided the testsuite is running multiple groups and
# this particular banner has not yet been printed.
at_fn_banner ()
{
$at_print_banners || return 0
eval at_banner_text=\$at_banner_text_$1
test "x$at_banner_text" = "x " && return 0
eval "at_banner_text_$1=\" \""
if test -z "$at_banner_text"; then
$at_first || echo
else
printf "%s\n" "$as_nl$at_banner_text$as_nl"
fi
} # at_fn_banner
# at_fn_check_prepare_notrace REASON LINE
# ---------------------------------------
# Perform AT_CHECK preparations for the command at LINE for an untraceable
# command; REASON is the reason for disabling tracing.
at_fn_check_prepare_notrace ()
{
$at_trace_echo "Not enabling shell tracing (command contains $1)"
printf "%s\n" "$2" >"$at_check_line_file"
at_check_trace=: at_check_filter=:
: >"$at_stdout"; : >"$at_stderr"
}
# at_fn_check_prepare_trace LINE
# ------------------------------
# Perform AT_CHECK preparations for the command at LINE for a traceable
# command.
at_fn_check_prepare_trace ()
{
printf "%s\n" "$1" >"$at_check_line_file"
at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
: >"$at_stdout"; : >"$at_stderr"
}
# at_fn_check_prepare_dynamic COMMAND LINE
# ----------------------------------------
# Decide if COMMAND at LINE is traceable at runtime, and call the appropriate
# preparation function.
at_fn_check_prepare_dynamic ()
{
case $1 in
*$as_nl*)
at_fn_check_prepare_notrace 'an embedded newline' "$2" ;;
*)
at_fn_check_prepare_trace "$2" ;;
esac
}
# at_fn_filter_trace
# ------------------
# Remove the lines in the file "$at_stderr" generated by "set -x" and print
# them to stderr.
at_fn_filter_trace ()
{
mv "$at_stderr" "$at_stder1"
grep '^ *+' "$at_stder1" >&2
grep -v '^ *+' "$at_stder1" >"$at_stderr"
}
# at_fn_log_failure FILE-LIST
# ---------------------------
# Copy the files in the list on stdout with a "> " prefix, and exit the shell
# with a failure exit code.
at_fn_log_failure ()
{
for file
do printf "%s\n" "$file:"; sed 's/^/> /' "$file"; done
echo 1 > "$at_status_file"
exit 1
}
# at_fn_check_skip EXIT-CODE LINE
# -------------------------------
# Check whether EXIT-CODE is a special exit code (77 or 99), and if so exit
# the test group subshell with that same exit code. Use LINE in any report
# about test failure.
at_fn_check_skip ()
{
case $1 in
99) echo 99 > "$at_status_file"; at_failed=:
printf "%s\n" "$2: hard failure"; exit 99;;
77) echo 77 > "$at_status_file"; exit 77;;
esac
}
# at_fn_check_status EXPECTED EXIT-CODE LINE
# ------------------------------------------
# Check whether EXIT-CODE is the EXPECTED exit code, and if so do nothing.
# Otherwise, if it is 77 or 99, exit the test group subshell with that same
# exit code; if it is anything else print an error message referring to LINE,
# and fail the test.
at_fn_check_status ()
{
case $2 in
$1 ) ;;
77) echo 77 > "$at_status_file"; exit 77;;
99) echo 99 > "$at_status_file"; at_failed=:
printf "%s\n" "$3: hard failure"; exit 99;;
*) printf "%s\n" "$3: exit code was $2, expected $1"
at_failed=:;;
esac
}
# at_fn_diff_devnull FILE
# -----------------------
# Emit a diff between /dev/null and FILE. Uses "test -s" to avoid useless diff
# invocations.
at_fn_diff_devnull ()
{
test -s "$1" || return 0
$at_diff "$at_devnull" "$1"
}
# at_fn_test NUMBER
# -----------------
# Parse out test NUMBER from the tail of this file.
at_fn_test ()
{
eval at_sed=\$at_sed$1
sed "$at_sed" "$at_myself" > "$at_test_source"
}
# at_fn_create_debugging_script
# -----------------------------
# Create the debugging script $at_group_dir/run which will reproduce the
# current test group.
at_fn_create_debugging_script ()
{
{
echo "#! /bin/sh" &&
echo 'test ${ZSH_VERSION+y} && alias -g '\''${1+"$@"}'\''='\''"$@"'\''' &&
printf "%s\n" "cd '$at_dir'" &&
printf "%s\n" "exec \${CONFIG_SHELL-$SHELL} \"$at_myself\" -v -d $at_debug_args $at_group \${1+\"\$@\"}" &&
echo 'exit 1'
} >"$at_group_dir/run" &&
chmod +x "$at_group_dir/run"
}
## -------------------------------- ##
## End of autotest shell functions. ##
## -------------------------------- ##
{
printf "%s\n" "## ---------------- ##
## Tested programs. ##
## ---------------- ##"
echo
} >&5
# Report what programs are being tested.
for at_program in : `eval echo $at_tested`
do
case $at_program in #(
:) :
continue ;; #(
[\\/]* | ?:[\\/]*) :
at_program_=$at_program ;; #(
*) :
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
case $as_dir in #(((
'') as_dir=./ ;;
*/) ;;
*) as_dir=$as_dir/ ;;
esac
test -f "$as_dir$at_program" && break
done
IFS=$as_save_IFS
at_program_=$as_dir$at_program ;;
esac
if test -f "$at_program_"; then
{
printf "%s\n" "$at_srcdir/testsuite.at:199: $at_program_ --version"
"$at_program_" --version </dev/null
echo
} >&5 2>&1
else
as_fn_error $? "cannot find $at_program" "$LINENO" 5
fi
done
{
printf "%s\n" "## ------------------ ##
## Running the tests. ##
## ------------------ ##"
} >&5
at_start_date=`date`
at_start_time=`date +%s 2>/dev/null`
printf "%s\n" "$as_me: starting at: $at_start_date" >&5
# Create the master directory if it doesn't already exist.
as_dir="$at_suite_dir"; as_fn_mkdir_p ||
as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
# Can we diff with `/dev/null'? DU 5.0 refuses.
if diff /dev/null /dev/null >/dev/null 2>&1; then
at_devnull=/dev/null
else
at_devnull=$at_suite_dir/devnull
>"$at_devnull"
fi
# Use `diff -u' when possible.
if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
then
at_diff='diff -u'
else
at_diff=diff
fi
# Get the last needed group.
for at_group in : $at_groups; do :; done
# Extract the start and end lines of each test group at the tail
# of this file
awk '
BEGIN { FS="" }
/^#AT_START_/ {
start = NR
}
/^#AT_STOP_/ {
test = substr ($ 0, 10)
print "at_sed" test "=\"1," start "d;" (NR-1) "q\""
if (test == "'"$at_group"'") exit
}' "$at_myself" > "$at_suite_dir/at-source-lines" &&
. "$at_suite_dir/at-source-lines" ||
as_fn_error $? "cannot create test line number cache" "$LINENO" 5
rm -f "$at_suite_dir/at-source-lines"
# Set number of jobs for `-j'; avoid more jobs than test groups.
set X $at_groups; shift; at_max_jobs=$#
if test $at_max_jobs -eq 0; then
at_jobs=1
fi
if test $at_jobs -ne 1 &&
{ test $at_jobs -eq 0 || test $at_jobs -gt $at_max_jobs; }; then
at_jobs=$at_max_jobs
fi
# If parallel mode, don't output banners, don't split summary lines.
if test $at_jobs -ne 1; then
at_print_banners=false
at_quiet=:
fi
# Set up helper dirs.
rm -rf "$at_helper_dir" &&
mkdir "$at_helper_dir" &&
cd "$at_helper_dir" &&
{ test -z "$at_groups" || mkdir $at_groups; } ||
as_fn_error $? "testsuite directory setup failed" "$LINENO" 5
# Functions for running a test group. We leave the actual
# test group execution outside of a shell function in order
# to avoid hitting zsh 4.x exit status bugs.
# at_fn_group_prepare
# -------------------
# Prepare for running a test group.
at_fn_group_prepare ()
{
# The directory for additional per-group helper files.
at_job_dir=$at_helper_dir/$at_group
# The file containing the location of the last AT_CHECK.
at_check_line_file=$at_job_dir/check-line
# The file containing the exit status of the last command.
at_status_file=$at_job_dir/status
# The files containing the output of the tested commands.
at_stdout=$at_job_dir/stdout
at_stder1=$at_job_dir/stder1
at_stderr=$at_job_dir/stderr
# The file containing the code for a test group.
at_test_source=$at_job_dir/test-source
# The file containing dates.
at_times_file=$at_job_dir/times
# Be sure to come back to the top test directory.
cd "$at_suite_dir"
# Clearly separate the test groups when verbose.
$at_first || $at_verbose echo
at_group_normalized=$at_group
eval 'while :; do
case $at_group_normalized in #(
'"$at_format"'*) break;;
esac
at_group_normalized=0$at_group_normalized
done'
# Create a fresh directory for the next test group, and enter.
# If one already exists, the user may have invoked ./run from
# within that directory; we remove the contents, but not the
# directory itself, so that we aren't pulling the rug out from
# under the shell's notion of the current directory.
at_group_dir=$at_suite_dir/$at_group_normalized
at_group_log=$at_group_dir/$as_me.log
if test -d "$at_group_dir"
then
find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx {} \;
rm -fr "$at_group_dir"/* "$at_group_dir"/.[!.] "$at_group_dir"/.??*
fi ||
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
printf "%s\n" "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
# Be tolerant if the above `rm' was not able to remove the directory.
as_dir="$at_group_dir"; as_fn_mkdir_p
echo 0 > "$at_status_file"
# In verbose mode, append to the log file *and* show on
# the standard output; in quiet mode only write to the log.
if test -z "$at_verbose"; then
at_tee_pipe='tee -a "$at_group_log"'
else
at_tee_pipe='cat >> "$at_group_log"'
fi
}
# at_fn_group_banner ORDINAL LINE DESC PAD [BANNER]
# -------------------------------------------------
# Declare the test group ORDINAL, located at LINE with group description DESC,
# and residing under BANNER. Use PAD to align the status column.
at_fn_group_banner ()
{
at_setup_line="$2"
test -n "$5" && at_fn_banner $5
at_desc="$3"
case $1 in
[0-9]) at_desc_line=" $1: ";;
[0-9][0-9]) at_desc_line=" $1: " ;;
*) at_desc_line="$1: " ;;
esac
as_fn_append at_desc_line "$3$4"
$at_quiet printf %s "$at_desc_line"
echo "# -*- compilation -*-" >> "$at_group_log"
}
# at_fn_group_postprocess
# -----------------------
# Perform cleanup after running a test group.
at_fn_group_postprocess ()
{
# Be sure to come back to the suite directory, in particular
# since below we might `rm' the group directory we are in currently.
cd "$at_suite_dir"
if test ! -f "$at_check_line_file"; then
sed "s/^ */$as_me: WARNING: /" <<_ATEOF
A failure happened in a test group before any test could be
run. This means that test suite is improperly designed. Please
report this failure to <bug-tar@gnu.org>.
_ATEOF
printf "%s\n" "$at_setup_line" >"$at_check_line_file"
at_status=99
fi
$at_verbose printf %s "$at_group. $at_setup_line: "
printf %s "$at_group. $at_setup_line: " >> "$at_group_log"
case $at_xfail:$at_status in
yes:0)
at_msg="UNEXPECTED PASS"
at_res=xpass
at_errexit=$at_errexit_p
at_color=$at_red
;;
no:0)
at_msg="ok"
at_res=pass
at_errexit=false
at_color=$at_grn
;;
*:77)
at_msg='skipped ('`cat "$at_check_line_file"`')'
at_res=skip
at_errexit=false
at_color=$at_blu
;;
no:* | *:99)
at_msg='FAILED ('`cat "$at_check_line_file"`')'
at_res=fail
at_errexit=$at_errexit_p
at_color=$at_red
;;
yes:*)
at_msg='expected failure ('`cat "$at_check_line_file"`')'
at_res=xfail
at_errexit=false
at_color=$at_lgn
;;
esac
echo "$at_res" > "$at_job_dir/$at_res"
# In parallel mode, output the summary line only afterwards.
if test $at_jobs -ne 1 && test -n "$at_verbose"; then
printf "%s\n" "$at_desc_line $at_color$at_msg$at_std"
else
# Make sure there is a separator even with long titles.
printf "%s\n" " $at_color$at_msg$at_std"
fi
at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
case $at_status in
0|77)
# $at_times_file is only available if the group succeeded.
# We're not including the group log, so the success message
# is written in the global log separately. But we also
# write to the group log in case they're using -d.
if test -f "$at_times_file"; then
at_log_msg="$at_log_msg ("`sed 1d "$at_times_file"`')'
rm -f "$at_times_file"
fi
printf "%s\n" "$at_log_msg" >> "$at_group_log"
printf "%s\n" "$at_log_msg" >&5
# Cleanup the group directory, unless the user wants the files
# or the success was unexpected.
if $at_debug_p || test $at_res = xpass; then
at_fn_create_debugging_script
if test $at_res = xpass && $at_errexit; then
echo stop > "$at_stop_file"
fi
else
if test -d "$at_group_dir"; then
find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
rm -fr "$at_group_dir"
fi
rm -f "$at_test_source"
fi
;;
*)
# Upon failure, include the log into the testsuite's global
# log. The failure message is written in the group log. It
# is later included in the global log.
printf "%s\n" "$at_log_msg" >> "$at_group_log"
# Upon failure, keep the group directory for autopsy, and create
# the debugging script. With -e, do not start any further tests.
at_fn_create_debugging_script
if $at_errexit; then
echo stop > "$at_stop_file"
fi
;;
esac
}
## ------------ ##
## Driver loop. ##
## ------------ ##
if (set -m && set +m && set +b) >/dev/null 2>&1; then
set +b
at_job_control_on='set -m' at_job_control_off='set +m' at_job_group=-
else
at_job_control_on=: at_job_control_off=: at_job_group=
fi
for at_signal in 1 2 15; do
trap 'set +x; set +e
$at_job_control_off
at_signal='"$at_signal"'
echo stop > "$at_stop_file"
trap "" $at_signal
at_pgids=
for at_pgid in `jobs -p 2>/dev/null`; do
at_pgids="$at_pgids $at_job_group$at_pgid"
done
test -z "$at_pgids" || kill -$at_signal $at_pgids 2>/dev/null
wait
if test "$at_jobs" -eq 1 || test -z "$at_verbose"; then
echo >&2
fi
at_signame=`kill -l $at_signal 2>&1 || echo $at_signal`
set x $at_signame
test 0 -gt 2 && at_signame=$at_signal
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: caught signal $at_signame, bailing out" >&5
printf "%s\n" "$as_me: WARNING: caught signal $at_signame, bailing out" >&2;}
as_fn_arith 128 + $at_signal && exit_status=$as_val
as_fn_exit $exit_status' $at_signal
done
rm -f "$at_stop_file"
at_first=:
if test $at_jobs -ne 1 &&
rm -f "$at_job_fifo" &&
test -n "$at_job_group" &&
( mkfifo "$at_job_fifo" && trap 'exit 1' PIPE STOP TSTP ) 2>/dev/null
then
# FIFO job dispatcher.
trap 'at_pids=
for at_pid in `jobs -p`; do
at_pids="$at_pids $at_job_group$at_pid"
done
if test -n "$at_pids"; then
at_sig=TSTP
test ${TMOUT+y} && at_sig=STOP
kill -$at_sig $at_pids 2>/dev/null
fi
kill -STOP $$
test -z "$at_pids" || kill -CONT $at_pids 2>/dev/null' TSTP
echo
# Turn jobs into a list of numbers, starting from 1.
at_joblist=`printf "%s\n" "$at_groups" | sed -n 1,${at_jobs}p`
set X $at_joblist
shift
for at_group in $at_groups; do
$at_job_control_on 2>/dev/null
(
# Start one test group.
$at_job_control_off
if $at_first; then
exec 7>"$at_job_fifo"
else
exec 6<&-
fi
trap 'set +x; set +e
trap "" PIPE
echo stop > "$at_stop_file"
echo >&7
as_fn_exit 141' PIPE
at_fn_group_prepare
if cd "$at_group_dir" &&
at_fn_test $at_group &&
. "$at_test_source"
then :; else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
printf "%s\n" "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
at_failed=:
fi
at_fn_group_postprocess
echo >&7
) &
$at_job_control_off
if $at_first; then
at_first=false
exec 6<"$at_job_fifo" 7>"$at_job_fifo"
fi
shift # Consume one token.
if test $# -gt 0; then :; else
read at_token <&6 || break
set x $*
fi
test -f "$at_stop_file" && break
done
exec 7>&-
# Read back the remaining ($at_jobs - 1) tokens.
set X $at_joblist
shift
if test $# -gt 0; then
shift
for at_job
do
read at_token
done <&6
fi
exec 6<&-
wait
else
# Run serially, avoid forks and other potential surprises.
for at_group in $at_groups; do
at_fn_group_prepare
if cd "$at_group_dir" &&
at_fn_test $at_group &&
. "$at_test_source"; then :; else
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unable to parse test group: $at_group" >&5
printf "%s\n" "$as_me: WARNING: unable to parse test group: $at_group" >&2;}
at_failed=:
fi
at_fn_group_postprocess
test -f "$at_stop_file" && break
at_first=false
done
fi
# Wrap up the test suite with summary statistics.
cd "$at_helper_dir"
# Use ?..???? when the list must remain sorted, the faster * otherwise.
at_pass_list=`for f in */pass; do echo $f; done | sed '/\*/d; s,/pass,,'`
at_skip_list=`for f in */skip; do echo $f; done | sed '/\*/d; s,/skip,,'`
at_xfail_list=`for f in */xfail; do echo $f; done | sed '/\*/d; s,/xfail,,'`
at_xpass_list=`for f in ?/xpass ??/xpass ???/xpass ????/xpass; do
echo $f; done | sed '/?/d; s,/xpass,,'`
at_fail_list=`for f in ?/fail ??/fail ???/fail ????/fail; do
echo $f; done | sed '/?/d; s,/fail,,'`
set X $at_pass_list $at_xpass_list $at_xfail_list $at_fail_list $at_skip_list
shift; at_group_count=$#
set X $at_xpass_list; shift; at_xpass_count=$#; at_xpass_list=$*
set X $at_xfail_list; shift; at_xfail_count=$#
set X $at_fail_list; shift; at_fail_count=$#; at_fail_list=$*
set X $at_skip_list; shift; at_skip_count=$#
as_fn_arith $at_group_count - $at_skip_count && at_run_count=$as_val
as_fn_arith $at_xpass_count + $at_fail_count && at_unexpected_count=$as_val
as_fn_arith $at_xfail_count + $at_fail_count && at_total_fail_count=$as_val
# Back to the top directory.
cd "$at_dir"
rm -rf "$at_helper_dir"
# Compute the duration of the suite.
at_stop_date=`date`
at_stop_time=`date +%s 2>/dev/null`
printf "%s\n" "$as_me: ending at: $at_stop_date" >&5
case $at_start_time,$at_stop_time in
[0-9]*,[0-9]*)
as_fn_arith $at_stop_time - $at_start_time && at_duration_s=$as_val
as_fn_arith $at_duration_s / 60 && at_duration_m=$as_val
as_fn_arith $at_duration_m / 60 && at_duration_h=$as_val
as_fn_arith $at_duration_s % 60 && at_duration_s=$as_val
as_fn_arith $at_duration_m % 60 && at_duration_m=$as_val
at_duration="${at_duration_h}h ${at_duration_m}m ${at_duration_s}s"
printf "%s\n" "$as_me: test suite duration: $at_duration" >&5
;;
esac
echo
printf "%s\n" "## ------------- ##
## Test results. ##
## ------------- ##"
echo
{
echo
printf "%s\n" "## ------------- ##
## Test results. ##
## ------------- ##"
echo
} >&5
if test $at_run_count = 1; then
at_result="1 test"
at_were=was
else
at_result="$at_run_count tests"
at_were=were
fi
if $at_errexit_p && test $at_unexpected_count != 0; then
if test $at_xpass_count = 1; then
at_result="$at_result $at_were run, one passed"
else
at_result="$at_result $at_were run, one failed"
fi
at_result="$at_result unexpectedly and inhibited subsequent tests."
at_color=$at_red
else
# Don't you just love exponential explosion of the number of cases?
at_color=$at_red
case $at_xpass_count:$at_fail_count:$at_xfail_count in
# So far, so good.
0:0:0) at_result="$at_result $at_were successful." at_color=$at_grn ;;
0:0:*) at_result="$at_result behaved as expected." at_color=$at_lgn ;;
# Some unexpected failures
0:*:0) at_result="$at_result $at_were run,
$at_fail_count failed unexpectedly." ;;
# Some failures, both expected and unexpected
0:*:1) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
0:*:*) at_result="$at_result $at_were run,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
# No unexpected failures, but some xpasses
*:0:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly." ;;
# No expected failures, but failures and xpasses
*:1:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failure)." ;;
*:*:0) at_result="$at_result $at_were run,
$at_unexpected_count did not behave as expected ($at_fail_count unexpected failures)." ;;
# All of them.
*:*:1) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failure)." ;;
*:*:*) at_result="$at_result $at_were run,
$at_xpass_count passed unexpectedly,
$at_total_fail_count failed ($at_xfail_count expected failures)." ;;
esac
if test $at_skip_count = 0 && test $at_run_count -gt 1; then
at_result="All $at_result"
fi
fi
# Now put skips in the mix.
case $at_skip_count in
0) ;;
1) at_result="$at_result
1 test was skipped." ;;
*) at_result="$at_result
$at_skip_count tests were skipped." ;;
esac
if test $at_unexpected_count = 0; then
echo "$at_color$at_result$at_std"
echo "$at_result" >&5
else
echo "${at_color}ERROR: $at_result$at_std" >&2
echo "ERROR: $at_result" >&5
{
echo
printf "%s\n" "## ------------------------ ##
## Summary of the failures. ##
## ------------------------ ##"
# Summary of failed and skipped tests.
if test $at_fail_count != 0; then
echo "Failed tests:"
$SHELL "$at_myself" $at_fail_list --list
echo
fi
if test $at_skip_count != 0; then
echo "Skipped tests:"
$SHELL "$at_myself" $at_skip_list --list
echo
fi
if test $at_xpass_count != 0; then
echo "Unexpected passes:"
$SHELL "$at_myself" $at_xpass_list --list
echo
fi
if test $at_fail_count != 0; then
printf "%s\n" "## ---------------------- ##
## Detailed failed tests. ##
## ---------------------- ##"
echo
for at_group in $at_fail_list
do
at_group_normalized=$at_group
eval 'while :; do
case $at_group_normalized in #(
'"$at_format"'*) break;;
esac
at_group_normalized=0$at_group_normalized
done'
cat "$at_suite_dir/$at_group_normalized/$as_me.log"
echo
done
echo
fi
if test -n "$at_top_srcdir"; then
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## ${at_top_build_prefix}config.log ##
_ASBOX
sed 's/^/| /' ${at_top_build_prefix}config.log
echo
fi
} >&5
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## $as_me.log was created. ##
_ASBOX
echo
if $at_debug_p; then
at_msg='per-test log files'
else
at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
fi
at_msg1a=${at_xpass_list:+', '}
at_msg1=$at_fail_list${at_fail_list:+" failed$at_msg1a"}
at_msg2=$at_xpass_list${at_xpass_list:+" passed unexpectedly"}
printf "%s\n" "Please send $at_msg and all information you think might help:
To: <bug-tar@gnu.org>
Subject: [GNU tar 1.35] $as_me: $at_msg1$at_msg2
You may investigate any problem if you feel able to do so, in which
case the test suite provides a good starting point. Its output may
be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
"
exit 1
fi
exit 0
## ------------- ##
## Actual tests. ##
## ------------- ##
#AT_START_1
at_fn_group_banner 1 'version.at:19' \
"tar version" " "
at_xfail=no
(
printf "%s\n" "1. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/version.at:21: tar --version | sed 1q"
at_fn_check_prepare_notrace 'a shell pipeline' "version.at:21"
( $at_check_trace; tar --version | sed 1q
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar (GNU tar) 1.35
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/version.at:21"
if $at_failed
then :
cat >$XFAILFILE <<'_EOT'
==============================================================
WARNING: Not using the proper version, *all* checks dubious...
==============================================================
_EOT
else $as_nop
rm -f $XFAILFILE
fi
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_1
#AT_START_2
at_fn_group_banner 2 'pipe.at:29' \
"decompressing from stdin" " "
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "2. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/pipe.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo \"separator\"
cmp orig/file1 directory/file1
echo \"separator\"
cmp orig/file2 directory/file2)"
at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file1
directory/file2
separator
separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/pipe.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo \"separator\"
cmp orig/file1 directory/file1
echo \"separator\"
cmp orig/file2 directory/file2)"
at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file1
directory/file2
separator
separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/pipe.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo \"separator\"
cmp orig/file1 directory/file1
echo \"separator\"
cmp orig/file2 directory/file2)"
at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file1
directory/file2
separator
separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/pipe.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo \"separator\"
cmp orig/file1 directory/file1
echo \"separator\"
cmp orig/file2 directory/file2)"
at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file1
directory/file2
separator
separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/pipe.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo \"separator\"
cmp orig/file1 directory/file1
echo \"separator\"
cmp orig/file2 directory/file2)"
at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 13 --file directory/file2
tar cf archive directory
mv directory orig
cat archive | tar xfv - --warning=no-timestamp | sort
echo "separator"
cmp orig/file1 directory/file1
echo "separator"
cmp orig/file2 directory/file2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file1
directory/file2
separator
separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_2
#AT_START_3
at_fn_group_banner 3 'options.at:24' \
"mixing options" " " 1
at_xfail=no
(
printf "%s\n" "3. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/options.at:27:
echo > file1
TAR_OPTIONS=--numeric-owner tar chof archive file1
tar tf archive
"
at_fn_check_prepare_notrace 'an embedded newline' "options.at:27"
( $at_check_trace;
echo > file1
TAR_OPTIONS=--numeric-owner tar chof archive file1
tar tf archive
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/options.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_3
#AT_START_4
at_fn_group_banner 4 'options02.at:26' \
"interspersed options" " " 1
at_xfail=no
(
printf "%s\n" "4. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/options02.at:29:
echo > file1
tar c file1 -f archive
tar tf archive
"
at_fn_check_prepare_notrace 'an embedded newline' "options02.at:29"
( $at_check_trace;
echo > file1
tar c file1 -f archive
tar tf archive
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/options02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_4
#AT_START_5
at_fn_group_banner 5 'options03.at:21' \
"TAR_OPTIONS with string arguments" " " 1
at_xfail=no
(
printf "%s\n" "5. $at_setup_line: testing $at_desc ..."
$at_traceon
# Check whether string values are passed correctly through the
# TAR_OPTIONS environment variable. In tar 1.29 the stored values
# were inadvertenlty freedm which caused TAR_OPTION to malfunction.
# Reported by: Jan Larres <jan@majutsushi.net>
# References: <20160906072153.c75tga556ti5sgk2@majutsushi.net>,
# http://lists.gnu.org/archive/html/bug-tar/2016-09/msg00005.html
{ set +x
printf "%s\n" "$at_srcdir/options03.at:31:
echo dir/bar > exclude.list
mkdir dir
genfile --file=dir/foo
genfile --file=dir/bar
TAR_OPTIONS=--exclude-from=exclude.list tar cf arc.tar dir
tar tf arc.tar
"
at_fn_check_prepare_notrace 'an embedded newline' "options03.at:31"
( $at_check_trace;
echo dir/bar > exclude.list
mkdir dir
genfile --file=dir/foo
genfile --file=dir/bar
TAR_OPTIONS=--exclude-from=exclude.list tar cf arc.tar dir
tar tf arc.tar
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/options03.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_5
#AT_START_6
at_fn_group_banner 6 'opcomp01.at:21' \
"occurrence compatibility" " " 2
at_xfail=no
(
printf "%s\n" "6. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp01.at:24:
tar --occurrence=1 -cf test.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "opcomp01.at:24"
( $at_check_trace;
tar --occurrence=1 -cf test.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: '--occurrence' cannot be used with '-c'
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_6
#AT_START_7
at_fn_group_banner 7 'opcomp02.at:21' \
"occurrence compatibility" " " 2
at_xfail=no
(
printf "%s\n" "7. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp02.at:24:
tar --occurrence=1 -tf test.tar
"
at_fn_check_prepare_notrace 'an embedded newline' "opcomp02.at:24"
( $at_check_trace;
tar --occurrence=1 -tf test.tar
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: --occurrence is meaningless without a file list
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_7
#AT_START_8
at_fn_group_banner 8 'opcomp03.at:21' \
"--verify compatibility" " " 2
at_xfail=no
(
printf "%s\n" "8. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp03.at:24:
tar -tWf test.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "opcomp03.at:24"
( $at_check_trace;
tar -tWf test.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: '--verify' cannot be used with '-t'
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_8
#AT_START_9
at_fn_group_banner 9 'opcomp04.at:21' \
"compress option compatibility" " " 2
at_xfail=no
(
printf "%s\n" "9. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp04.at:24:
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --file file
tar czf test.tar file
genfile --file newfile
tar rzf test.tar newfile
"
at_fn_check_prepare_notrace 'an embedded newline' "opcomp04.at:24"
( $at_check_trace;
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --file file
tar czf test.tar file
genfile --file newfile
tar rzf test.tar newfile
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Cannot update compressed archives
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_9
#AT_START_10
at_fn_group_banner 10 'opcomp05.at:21' \
"--pax-option compatibility" " " 2
at_xfail=no
(
printf "%s\n" "10. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp05.at:24:
tar -Hgnu -cf test.tar --pax-option user:=root .
"
at_fn_check_prepare_notrace 'an embedded newline' "opcomp05.at:24"
( $at_check_trace;
tar -Hgnu -cf test.tar --pax-option user:=root .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: --pax-option can be used only on POSIX archives
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_10
#AT_START_11
at_fn_group_banner 11 'opcomp06.at:21' \
"--pax-option compatibility" " " 2
at_xfail=no
(
printf "%s\n" "11. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/opcomp06.at:24:
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
genfile --file file
tar -cf test.tar --acls -Hgnu file
"
at_fn_check_prepare_notrace 'a $(...) command substitution' "opcomp06.at:24"
( $at_check_trace;
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
genfile --file file
tar -cf test.tar --acls -Hgnu file
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: --acls can be used only on POSIX archives
Try 'tar --help' or 'tar --usage' for more information.
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/opcomp06.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_11
#AT_START_12
at_fn_group_banner 12 'defaults.at:16' \
"checkpoint defaults" " " 3
at_xfail=no
(
printf "%s\n" "12. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/defaults.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file \$i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint -c -f ../a.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "defaults.at:18"
( $at_check_trace;
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint -c -f ../a.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Write checkpoint 10
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/defaults.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_12
#AT_START_13
at_fn_group_banner 13 'interval.at:16' \
"checkpoint interval" " " 3
at_xfail=no
(
printf "%s\n" "13. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/interval.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file \$i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint=2 -c -f ../a.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "interval.at:18"
( $at_check_trace;
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint=2 -c -f ../a.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Write checkpoint 2
tar: Write checkpoint 4
tar: Write checkpoint 6
tar: Write checkpoint 8
tar: Write checkpoint 10
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/interval.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_13
#AT_START_14
at_fn_group_banner 14 'dot.at:16' \
"dot action" " " 3
at_xfail=no
(
printf "%s\n" "14. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/dot.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file \$i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint-action=dot -c -f ../a.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "dot.at:18"
( $at_check_trace;
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint-action=dot -c -f ../a.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "." | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dot.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_14
#AT_START_15
at_fn_group_banner 15 'dot-compat.at:16' \
"dot action (compatibility syntax)" " " 3
at_xfail=no
(
printf "%s\n" "15. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/dot-compat.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file \$i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint=.2 -c -f ../a.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "dot-compat.at:18"
( $at_check_trace;
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint=.2 -c -f ../a.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "....." | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dot-compat.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_15
#AT_START_16
at_fn_group_banner 16 'dot-int.at:16' \
"dot action and interval" " " 3
at_xfail=no
(
printf "%s\n" "16. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/dot-int.at:18:
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file \$i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.tar .
"
at_fn_check_prepare_notrace 'an embedded newline' "dot-int.at:18"
( $at_check_trace;
mkdir t
cd t
for i in 0 1 2 3 4 5 6 7 8 9
do
genfile --length 10240 --file $i
done
TAR_OPTIONS=-Hgnu
export TAR_OPTIONS
tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.tar .
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "....." | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/dot-int.at:18"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_16
#AT_START_17
at_fn_group_banner 17 'testsuite.at:242' \
"compress: gzip" " " 4
at_xfail=no
(
printf "%s\n" "17. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:242:
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --gzip
tar --gzip -cf k.tar.gz empty
tar tf k.tar.gz
echo testing .gz
tar -acf k2.tar.gz empty
cat k2.tar.gz | gzip -d > k.gz.tar
tar tf k.gz.tar
echo testing .tgz
tar -acf k2.tar.tgz empty
cat k2.tar.tgz | gzip -d > k.tgz.tar
tar tf k.tgz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.gz
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:242"
( $at_check_trace;
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --gzip
tar --gzip -cf k.tar.gz empty
tar tf k.tar.gz
echo testing .gz
tar -acf k2.tar.gz empty
cat k2.tar.gz | gzip -d > k.gz.tar
tar tf k.gz.tar
echo testing .tgz
tar -acf k2.tar.tgz empty
cat k2.tar.tgz | gzip -d > k.tgz.tar
tar tf k.tgz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.gz
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .gz
empty
testing .tgz
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:242"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_17
#AT_START_18
at_fn_group_banner 18 'testsuite.at:243' \
"compress: bzip2" " " 4
at_xfail=no
(
printf "%s\n" "18. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:243:
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --bzip2
tar --bzip2 -cf k.tar.bz2 empty
tar tf k.tar.bz2
echo testing .bz2
tar -acf k2.tar.bz2 empty
cat k2.tar.bz2 | bzip2 -d > k.bz2.tar
tar tf k.bz2.tar
echo testing .tbz2
tar -acf k2.tar.tbz2 empty
cat k2.tar.tbz2 | bzip2 -d > k.tbz2.tar
tar tf k.tbz2.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.bz2
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:243"
( $at_check_trace;
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --bzip2
tar --bzip2 -cf k.tar.bz2 empty
tar tf k.tar.bz2
echo testing .bz2
tar -acf k2.tar.bz2 empty
cat k2.tar.bz2 | bzip2 -d > k.bz2.tar
tar tf k.bz2.tar
echo testing .tbz2
tar -acf k2.tar.tbz2 empty
cat k2.tar.tbz2 | bzip2 -d > k.tbz2.tar
tar tf k.tbz2.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.bz2
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .bz2
empty
testing .tbz2
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:243"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_18
#AT_START_19
at_fn_group_banner 19 'testsuite.at:244' \
"compress: xz" " " 4
at_xfail=no
(
printf "%s\n" "19. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:244:
cat /dev/null | xz - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --xz
tar --xz -cf k.tar.xz empty
tar tf k.tar.xz
echo testing .xz
tar -acf k2.tar.xz empty
cat k2.tar.xz | xz -d > k.xz.tar
tar tf k.xz.tar
echo testing .txz
tar -acf k2.tar.txz empty
cat k2.tar.txz | xz -d > k.txz.tar
tar tf k.txz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.xz
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:244"
( $at_check_trace;
cat /dev/null | xz - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --xz
tar --xz -cf k.tar.xz empty
tar tf k.tar.xz
echo testing .xz
tar -acf k2.tar.xz empty
cat k2.tar.xz | xz -d > k.xz.tar
tar tf k.xz.tar
echo testing .txz
tar -acf k2.tar.txz empty
cat k2.tar.txz | xz -d > k.txz.tar
tar tf k.txz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.xz
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .xz
empty
testing .txz
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:244"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_19
#AT_START_20
at_fn_group_banner 20 'testsuite.at:246' \
"compress: lzip" " " 4
at_xfail=no
(
printf "%s\n" "20. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:246:
cat /dev/null | lzip - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --lzip
tar --lzip -cf k.tar.lz empty
tar tf k.tar.lz
echo testing .lz
tar -acf k2.tar.lz empty
cat k2.tar.lz | lzip -d > k.lz.tar
tar tf k.lz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lz
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:246"
( $at_check_trace;
cat /dev/null | lzip - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --lzip
tar --lzip -cf k.tar.lz empty
tar tf k.tar.lz
echo testing .lz
tar -acf k2.tar.lz empty
cat k2.tar.lz | lzip -d > k.lz.tar
tar tf k.lz.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lz
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .lz
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:246"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_20
#AT_START_21
at_fn_group_banner 21 'testsuite.at:247' \
"compress: lzop" " " 4
at_xfail=no
(
printf "%s\n" "21. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:247:
cat /dev/null | lzop - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --lzop
tar --lzop -cf k.tar.lzo empty
tar tf k.tar.lzo
echo testing .lzo
tar -acf k2.tar.lzo empty
cat k2.tar.lzo | lzop -d > k.lzo.tar
tar tf k.lzo.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lzo
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:247"
( $at_check_trace;
cat /dev/null | lzop - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --lzop
tar --lzop -cf k.tar.lzo empty
tar tf k.tar.lzo
echo testing .lzo
tar -acf k2.tar.lzo empty
cat k2.tar.lzo | lzop -d > k.lzo.tar
tar tf k.lzo.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.lzo
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .lzo
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:247"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_21
#AT_START_22
at_fn_group_banner 22 'testsuite.at:248' \
"compress: zstd" " " 4
at_xfail=no
(
printf "%s\n" "22. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/testsuite.at:248:
cat /dev/null | zstd - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --zstd
tar --zstd -cf k.tar.zst empty
tar tf k.tar.zst
echo testing .zst
tar -acf k2.tar.zst empty
cat k2.tar.zst | zstd -d > k.zst.tar
tar tf k.zst.tar
echo testing .tzst
tar -acf k2.tar.tzst empty
cat k2.tar.tzst | zstd -d > k.tzst.tar
tar tf k.tzst.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.zst
test -f empty
"
at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:248"
( $at_check_trace;
cat /dev/null | zstd - > /dev/null 2>&1 || exit 77
unset TAR_OPTIONS
touch empty
set -e
: create with --zstd
tar --zstd -cf k.tar.zst empty
tar tf k.tar.zst
echo testing .zst
tar -acf k2.tar.zst empty
cat k2.tar.zst | zstd -d > k.zst.tar
tar tf k.zst.tar
echo testing .tzst
tar -acf k2.tar.tzst empty
cat k2.tar.tzst | zstd -d > k.tzst.tar
tar tf k.tzst.tar
# Extraction: ensure compressed format is correctly recognized
rm -f empty
tar xf k.tar.zst
test -f empty
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "empty
testing .zst
empty
testing .tzst
empty
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:248"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_22
#AT_START_23
at_fn_group_banner 23 'positional01.at:21' \
"Exclude" " " 5
at_xfail=no
(
printf "%s\n" "23. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/positional01.at:24:
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar --exclude '*.b' dir
echo \$?
tar -tf a.tar | sort
tar -cf a.tar dir --exclude '*.b'
echo \$?
tar -tf a.tar | sort
"
at_fn_check_prepare_notrace 'a `...` command substitution' "positional01.at:24"
( $at_check_trace;
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar --exclude '*.b' dir
echo $?
tar -tf a.tar | sort
tar -cf a.tar dir --exclude '*.b'
echo $?
tar -tf a.tar | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: The following options were used after non-option arguments. These options are positional and affect only arguments that follow them. Please, rearrange them properly.
tar: --exclude '*.b' has no effect
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "0
dir/
dir/A.a
dir/B.a
2
dir/
dir/A.a
dir/A.b
dir/B.a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/positional01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_23
#AT_START_24
at_fn_group_banner 24 'positional02.at:21' \
"Directory" " " 5
at_xfail=no
(
printf "%s\n" "24. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/positional02.at:24:
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar -C dir .
echo \$?
tar -tf a.tar | sort
tar -cf a.tar . -C dir
"
at_fn_check_prepare_notrace 'a `...` command substitution' "positional02.at:24"
( $at_check_trace;
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -cf a.tar -C dir .
echo $?
tar -tf a.tar | sort
tar -cf a.tar . -C dir
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a.tar: archive cannot contain itself; not dumped
tar: The following options were used after non-option arguments. These options are positional and affect only arguments that follow them. Please, rearrange them properly.
tar: -C 'dir' has no effect
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "0
./
./A.a
./A.b
./B.a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/positional02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_24
#AT_START_25
at_fn_group_banner 25 'positional03.at:21' \
"Several options" " " 5
at_xfail=no
(
printf "%s\n" "25. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/positional03.at:24:
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
cd t
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -vcf ../a.tar --exclude '*.b' . -C dir --exclude '*.c' | sort
"
at_fn_check_prepare_notrace 'a `...` command substitution' "positional03.at:24"
( $at_check_trace;
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
cd t
mkdir dir
> dir/A.a
> dir/B.a
> dir/A.b
tar -vcf ../a.tar --exclude '*.b' . -C dir --exclude '*.c' | sort
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: The following options were used after non-option arguments. These options are positional and affect only arguments that follow them. Please, rearrange them properly.
tar: -C 'dir' has no effect
tar: --exclude '*.c' has no effect
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./dir/
./dir/A.a
./dir/B.a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/positional03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_25
#AT_START_26
at_fn_group_banner 26 'add-file.at:21' \
"The --add-file option" " " 5
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "26. $at_setup_line: testing $at_desc ..."
$at_traceon
# Version 1.29 would give "tar: Cowardly refusing to create an empty archive"
# if only --add-file arguments were used, and would give "tar: unhandled
# positional option 0" when handling the --add-file if at least one file was
# also given normally.
#
# Reported by: James Clarke <jrtc27@jrtc27.com>
# References: <20161112000246.77013-1-jrtc27@jrtc27.com>,
# http://lists.gnu.org/archive/html/bug-tar/2016-11/msg00013.html
{ set +x
printf "%s\n" "$at_srcdir/add-file.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)"
at_fn_check_prepare_notrace 'an embedded newline' "add-file.at:33"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1:
foo
-File
2:
foo
-File
bar
3:
foo
-File
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/add-file.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/add-file.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)"
at_fn_check_prepare_notrace 'an embedded newline' "add-file.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1:
foo
-File
2:
foo
-File
bar
3:
foo
-File
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/add-file.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/add-file.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)"
at_fn_check_prepare_notrace 'an embedded newline' "add-file.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1:
foo
-File
2:
foo
-File
bar
3:
foo
-File
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/add-file.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/add-file.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)"
at_fn_check_prepare_notrace 'an embedded newline' "add-file.at:33"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1:
foo
-File
2:
foo
-File
bar
3:
foo
-File
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/add-file.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/add-file.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)"
at_fn_check_prepare_notrace 'an embedded newline' "add-file.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file -File
genfile --file foo
genfile --file bar
echo 1:
tar -cvf arc.tar --add-file foo --add-file -File
echo 2:
tar -cvf arc.tar foo --add-file -File bar
cat >input <<'_ATEOF'
foo
--add-file=-File
bar
_ATEOF
echo 3:
tar -cvf arc.tar -T input
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1:
foo
-File
2:
foo
-File
bar
3:
foo
-File
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/add-file.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_26
#AT_START_27
at_fn_group_banner 27 'T-mult.at:21' \
"multiple file lists" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "27. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-mult.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
file2
_ATEOF
cat >F2 <<'_ATEOF'
file3
file4
_ATEOF
tar cf archive -T F1 -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-mult.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
file2
_ATEOF
cat >F2 <<'_ATEOF'
file3
file4
_ATEOF
tar cf archive -T F1 -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-mult.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_27
#AT_START_28
at_fn_group_banner 28 'T-nest.at:21' \
"nested file lists" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "28. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-nest.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
-T F2
file2
_ATEOF
cat >F2 <<'_ATEOF'
file3
file4
_ATEOF
tar cf archive -T F1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-nest.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
>file1
>file2
>file3
>file4
cat >F1 <<'_ATEOF'
file1
-T F2
file2
_ATEOF
cat >F2 <<'_ATEOF'
file3
file4
_ATEOF
tar cf archive -T F1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file3
file4
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-nest.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_28
#AT_START_29
at_fn_group_banner 29 'T-rec.at:21' \
"recursive file lists" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "29. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-rec.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
>file1
>file2
cat >F1 <<'_ATEOF'
file1
-T F2
_ATEOF
cat >F2 <<'_ATEOF'
file2
-T F1
_ATEOF
tar cf archive -T F1
echo \$?
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-rec.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
>file1
>file2
cat >F1 <<'_ATEOF'
file1
-T F2
_ATEOF
cat >F2 <<'_ATEOF'
file2
-T F1
_ATEOF
tar cf archive -T F1
echo $?
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: F1: file list requested from F2 already read from command line
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "2
file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-rec.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_29
#AT_START_30
at_fn_group_banner 30 'T-recurse.at:27' \
"files-from & recurse: toggle" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "30. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf \"\$a\" --files-from F1
tar tf \"\$a\"
a=archive2
tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
tar tf \"\$a\"
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf "$a" --files-from F1
tar tf "$a"
a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf \"\$a\" --files-from F1
tar tf \"\$a\"
a=archive2
tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
tar tf \"\$a\"
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf "$a" --files-from F1
tar tf "$a"
a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf \"\$a\" --files-from F1
tar tf \"\$a\"
a=archive2
tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
tar tf \"\$a\"
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf "$a" --files-from F1
tar tf "$a"
a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf \"\$a\" --files-from F1
tar tf \"\$a\"
a=archive2
tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
tar tf \"\$a\"
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf "$a" --files-from F1
tar tf "$a"
a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf \"\$a\" --files-from F1
tar tf \"\$a\"
a=archive2
tar cf \"\$a\" --no-recursion -T F2A --recursion -T F2B
tar tf \"\$a\"
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
--recursion
directory2/
_ATEOF
cat >F2A <<'_ATEOF'
directory1/
_ATEOF
cat >F2B <<'_ATEOF'
directory2/
_ATEOF
a=archive
tar cf "$a" --files-from F1
tar tf "$a"
a=archive2
tar cf "$a" --no-recursion -T F2A --recursion -T F2B
tar tf "$a"
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_30
#AT_START_31
at_fn_group_banner 31 'T-recurse.at:66' \
"toggle --recursion (not) from -T" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "31. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:69:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:69:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:69:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:69:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-recurse.at:69:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-recurse.at:69"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
cat >F1 <<'_ATEOF'
--no-recursion
directory1/
_ATEOF
cat >F2 <<'_ATEOF'
directory2/
_ATEOF
tar cf archive -T F1 --recursion -T F2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-recurse.at:69"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_31
#AT_START_32
at_fn_group_banner 32 'T-cd.at:21' \
"-C in file lists" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "32. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-cd.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
>file1
mkdir dir
>dir/file2
>dir/file3
cat >F1 <<'_ATEOF'
file1
-C dir
.
_ATEOF
tar cf archive -T F1
tar tf archive | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-cd.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
>file1
mkdir dir
>dir/file2
>dir/file3
cat >F1 <<'_ATEOF'
file1
-C dir
.
_ATEOF
tar cf archive -T F1
tar tf archive | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./file2
./file3
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-cd.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_32
#AT_START_33
at_fn_group_banner 33 'T-empty.at:26' \
"empty entries" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "33. $at_setup_line: testing $at_desc ..."
$at_traceon
cat >file-list <<'_ATEOF'
jeden
dwa
trzy
_ATEOF
{ set +x
printf "%s\n" "$at_srcdir/T-empty.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file jeden
genfile --file dwa
genfile --file trzy
tar cfvT archive ../file-list
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:36"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file jeden
genfile --file dwa
genfile --file trzy
tar cfvT archive ../file-list
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "jeden
dwa
trzy
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_33
#AT_START_34
at_fn_group_banner 34 'T-null.at:21' \
"0-separated file without -0" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "34. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-null.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
echo jeden > temp
echo dwa >> temp
echo trzy >> temp
cat temp | tr '\\n' '\\0' > file-list
genfile -f jeden
genfile -f dwa
genfile -f trzy
tar cfTv archive file-list
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
echo jeden > temp
echo dwa >> temp
echo trzy >> temp
cat temp | tr '\n' '\0' > file-list
genfile -f jeden
genfile -f dwa
genfile -f trzy
tar cfTv archive file-list
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: file-list: file name read contains nul character
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "jeden
dwa
trzy
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_34
#AT_START_35
at_fn_group_banner 35 'T-null2.at:17' \
"--null enables verbatim reading" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "35. $at_setup_line: testing $at_desc ..."
$at_traceon
# According to the docs, --null should read each line from the file
# list verbatim. This feature was broken by commit 26538c9b (tar version
# 1.27).
{ set +x
printf "%s\n" "$at_srcdir/T-null2.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
cat >file-list <<'_ATEOF'
a
-b
--c d
:\\\\.jpg
_ATEOF
genfile -f a
genfile -f -b
genfile -f '--c d'
genfile -f ':\\\\.jpg'
cat file-list | tr '\\n' '\\0' | tar -c -f archive -v --null -T -
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-null2.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
cat >file-list <<'_ATEOF'
a
-b
--c d
:\\.jpg
_ATEOF
genfile -f a
genfile -f -b
genfile -f '--c d'
genfile -f ':\\.jpg'
cat file-list | tr '\n' '\0' | tar -c -f archive -v --null -T -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a
-b
--c d
:\\\\\\\\.jpg
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-null2.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_35
#AT_START_36
at_fn_group_banner 36 'T-zfile.at:26' \
"empty file" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "36. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-zfile.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --length=0 --file empty
genfile --file a
genfile --file b
cat >valid <<'_ATEOF'
a
b
_ATEOF
tar cf archive -T empty -T valid
tar tf archive
echo \"==\"
tar cf archive -T valid -T empty
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-zfile.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --length=0 --file empty
genfile --file a
genfile --file b
cat >valid <<'_ATEOF'
a
b
_ATEOF
tar cf archive -T empty -T valid
tar tf archive
echo "=="
tar cf archive -T valid -T empty
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a
b
==
a
b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-zfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_36
#AT_START_37
at_fn_group_banner 37 'T-nonl.at:27' \
"entries with missing newlines" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "37. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-nonl.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --length=0 --file empty
printf c > 1.nonl
printf 'd\\ne' > 2.nonl
touch a b c d e
cat >filelist <<'_ATEOF'
a
b
_ATEOF
tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
tar tf archive
echo ==
tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "T-nonl.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --length=0 --file empty
printf c > 1.nonl
printf 'd\ne' > 2.nonl
touch a b c d e
cat >filelist <<'_ATEOF'
a
b
_ATEOF
tar cf archive -T empty -T 1.nonl -T 2.nonl -T filelist
tar tf archive
echo ==
tar cf archive -T 2.nonl -T empty -T filelist -T 1.nonl
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "c
d
e
a
b
==
d
e
a
b
c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-nonl.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_37
#AT_START_38
at_fn_group_banner 38 'T-dir00.at:28' \
"recursive extraction from --files-from" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "38. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-dir00.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir00.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir00.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir00.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir00.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir00.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_38
#AT_START_39
at_fn_group_banner 39 'T-dir01.at:28' \
"trailing slash in --files-from" " " 6
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "39. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/T-dir01.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir01.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/T-dir01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "T-dir01.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
genfile -f dir/file1
genfile -f dir/file2
tar cf archive dir
rm -rf dir
echo dir/ > list
tar xfTv archive list | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file1
dir/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/T-dir01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_39
#AT_START_40
at_fn_group_banner 40 'indexfile.at:26' \
"tar --index-file=FILE --file=-" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "40. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/indexfile.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo \"Creating the archive\"
tar -c -v -f - --index-file=idx directory > archive
echo \"Testing the archive\"
tar -tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive
echo "Testing the archive"
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
directory/
directory/a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/indexfile.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo \"Creating the archive\"
tar -c -v -f - --index-file=idx directory > archive
echo \"Testing the archive\"
tar -tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive
echo "Testing the archive"
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
directory/
directory/a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/indexfile.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo \"Creating the archive\"
tar -c -v -f - --index-file=idx directory > archive
echo \"Testing the archive\"
tar -tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive
echo "Testing the archive"
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
directory/
directory/a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/indexfile.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo \"Creating the archive\"
tar -c -v -f - --index-file=idx directory > archive
echo \"Testing the archive\"
tar -tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive
echo "Testing the archive"
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
directory/
directory/a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/indexfile.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo \"Creating the archive\"
tar -c -v -f - --index-file=idx directory > archive
echo \"Testing the archive\"
tar -tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
genfile --file=directory/a --length=1035
echo "Creating the archive"
tar -c -v -f - --index-file=idx directory > archive
echo "Testing the archive"
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
directory/
directory/a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_40
#AT_START_41
at_fn_group_banner 41 'verbose.at:26' \
"tar cvf -" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "41. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/verbose.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "file
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verbose.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "file
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verbose.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "file
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verbose.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "file
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verbose.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file --length 10240
echo Creating the archive
tar cvf - file > archive
echo Testing the archive
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "file
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating the archive
Testing the archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_41
#AT_START_42
at_fn_group_banner 42 'gzip.at:23' \
"gzip" " " 7
at_xfail=no
(
printf "%s\n" "42. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/gzip.at:28:
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
tar xfvz /dev/null 2>err
RC=\$?
sed -n '/^tar:/p' err >&2
exit \$RC
"
at_fn_check_prepare_notrace 'an embedded newline' "gzip.at:28"
( $at_check_trace;
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
tar xfvz /dev/null 2>err
RC=$?
sed -n '/^tar:/p' err >&2
exit $RC
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Child returned status 1
tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/gzip.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_42
#AT_START_43
at_fn_group_banner 43 'recurse.at:21' \
"recurse" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "43. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/recurse.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurse.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurse.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurse.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurse.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar --create --file archive --no-recursion directory || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_43
#AT_START_44
at_fn_group_banner 44 'recurs02.at:30' \
"recurse: toggle" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "44. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/recurs02.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurs02.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurs02.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurs02.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/recurs02.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \\
--no-recursion directory1 \\
--recursion directory2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "recurs02.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory1 directory2
touch directory1/file directory2/file
tar --create --file archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
tar tf archive
tar cf archive directory1 directory2
tar tf archive \
--no-recursion directory1 \
--recursion directory2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory1/
directory2/
directory2/file
directory1/
directory2/
directory2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/recurs02.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_44
#AT_START_45
at_fn_group_banner 45 'shortrec.at:25' \
"short records" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "45. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/shortrec.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortrec.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortrec.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortrec.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortrec.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
(cd directory && touch a b c d e f g h i j k l m n o p q r)
tar -c -b 1 -f - directory | tar -t -f - > /dev/null
tar -c -b 1 -f archive directory
tar -t -f archive > /dev/null
tar -t -f - < archive > /dev/null
rm -r directory
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_45
#AT_START_46
at_fn_group_banner 46 'numeric.at:18' \
"--numeric-owner basic tests" " " 7
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "46. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/numeric.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
MYUID=\$(id -u) || exit 77
MYGID=\$(id -g) || exit 77
MYUSR=\$(id -un) || exit 77
MYGRP=\$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :\$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "--create
--list
--diff
--extract
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "--create
OK
OK
OK
OK
--list
OK
OK
OK
OK
--diff
OK
OK
OK
OK
--extract
OK
OK
OK
OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/numeric.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
MYUID=\$(id -u) || exit 77
MYGID=\$(id -g) || exit 77
MYUSR=\$(id -un) || exit 77
MYGRP=\$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :\$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "--create
--list
--diff
--extract
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "--create
OK
OK
OK
OK
--list
OK
OK
OK
OK
--diff
OK
OK
OK
OK
--extract
OK
OK
OK
OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/numeric.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
MYUID=\$(id -u) || exit 77
MYGID=\$(id -g) || exit 77
MYUSR=\$(id -un) || exit 77
MYGRP=\$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :\$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "--create
--list
--diff
--extract
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "--create
OK
OK
OK
OK
--list
OK
OK
OK
OK
--diff
OK
OK
OK
OK
--extract
OK
OK
OK
OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/numeric.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
MYUID=\$(id -u) || exit 77
MYGID=\$(id -g) || exit 77
MYUSR=\$(id -un) || exit 77
MYGRP=\$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :\$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --create -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --list -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --diff -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}'
tar --extract -vvf a dir | awk '$2==\"'\"\$MYUSR/\$MYGRP\"'\" {print \"OK\"; next} {print}'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "numeric.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
MYUID=$(id -u) || exit 77
MYGID=$(id -g) || exit 77
MYUSR=$(id -un) || exit 77
MYGRP=$(id -gn) || exit 77
mkdir dir
# Ensure correct group id on BSDs.
chown :$MYGID dir >/dev/null 2>/dev/null
genfile --file dir/file
decho --create
tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --create -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --list
tar --list -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --list -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --diff
tar --diff -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --diff -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
decho --extract
tar --extract -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}'
tar --extract -vvf a dir | awk '$2=="'"$MYUSR/$MYGRP"'" {print "OK"; next} {print}'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "--create
--list
--diff
--extract
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "--create
OK
OK
OK
OK
--list
OK
OK
OK
OK
--diff
OK
OK
OK
OK
--extract
OK
OK
OK
OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/numeric.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_46
#AT_START_47
at_fn_group_banner 47 'same-order01.at:26' \
"working -C with --same-order" " " 8
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "47. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/same-order01.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order01.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order01.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order01.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir directory
tar -xf archive --same-order -C directory --warning=no-timestamp || exit 1
ls directory|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_47
#AT_START_48
at_fn_group_banner 48 'same-order02.at:25' \
"multiple -C options" " " 8
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "48. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/same-order02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=\`pwd\`
tar -xf archive --same-order --warning=no-timestamp \\
-C \$HERE/en file1 \\
-C \$HERE/to file2 || exit 1
ls en
echo separator
ls to
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
-C $HERE/en file1 \
-C $HERE/to file2 || exit 1
ls en
echo separator
ls to
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
separator
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=\`pwd\`
tar -xf archive --same-order --warning=no-timestamp \\
-C \$HERE/en file1 \\
-C \$HERE/to file2 || exit 1
ls en
echo separator
ls to
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
-C $HERE/en file1 \
-C $HERE/to file2 || exit 1
ls en
echo separator
ls to
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
separator
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=\`pwd\`
tar -xf archive --same-order --warning=no-timestamp \\
-C \$HERE/en file1 \\
-C \$HERE/to file2 || exit 1
ls en
echo separator
ls to
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
-C $HERE/en file1 \
-C $HERE/to file2 || exit 1
ls en
echo separator
ls to
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
separator
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=\`pwd\`
tar -xf archive --same-order --warning=no-timestamp \\
-C \$HERE/en file1 \\
-C \$HERE/to file2 || exit 1
ls en
echo separator
ls to
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
-C $HERE/en file1 \
-C $HERE/to file2 || exit 1
ls en
echo separator
ls to
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
separator
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/same-order02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=\`pwd\`
tar -xf archive --same-order --warning=no-timestamp \\
-C \$HERE/en file1 \\
-C \$HERE/to file2 || exit 1
ls en
echo separator
ls to
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f file1
genfile -l 1024 -f file2
tar cf archive file1 file2
mkdir en
mkdir to
HERE=`pwd`
tar -xf archive --same-order --warning=no-timestamp \
-C $HERE/en file1 \
-C $HERE/to file2 || exit 1
ls en
echo separator
ls to
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
separator
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_48
#AT_START_49
at_fn_group_banner 49 'append.at:21' \
"append" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "49. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/append.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "append.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
touch file1
touch file2
tar cf archive file1
tar rf archive file2
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_49
#AT_START_50
at_fn_group_banner 50 'append01.at:29' \
"appending files with long names" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "50. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/append01.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append01.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append01.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append01.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX
touch This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1 This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
tar rf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file1
This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_appending_long_file_names_that_run_into_a_limit_of_the_ustar_tarX/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_50
#AT_START_51
at_fn_group_banner 51 'append02.at:54' \
"append vs. create" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "51. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/append02.at:57:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME=\"--mtime=@0\"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test \$TEST_TAR_FORMAT = posix; then
TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
fi
echo Creating archive.1
tar \$MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar \$MTIME -cf archive.2 -T /dev/null
tar \$MTIME -rf archive.2 file1
tar \$MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi
echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive.1
Creating archive.2
Comparing archives
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append02.at:57:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME=\"--mtime=@0\"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test \$TEST_TAR_FORMAT = posix; then
TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
fi
echo Creating archive.1
tar \$MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar \$MTIME -cf archive.2 -T /dev/null
tar \$MTIME -rf archive.2 file1
tar \$MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi
echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive.1
Creating archive.2
Comparing archives
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append02.at:57:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME=\"--mtime=@0\"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test \$TEST_TAR_FORMAT = posix; then
TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
fi
echo Creating archive.1
tar \$MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar \$MTIME -cf archive.2 -T /dev/null
tar \$MTIME -rf archive.2 file1
tar \$MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi
echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive.1
Creating archive.2
Comparing archives
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append02.at:57:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME=\"--mtime=@0\"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test \$TEST_TAR_FORMAT = posix; then
TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
fi
echo Creating archive.1
tar \$MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar \$MTIME -cf archive.2 -T /dev/null
tar \$MTIME -rf archive.2 file1
tar \$MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi
echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive.1
Creating archive.2
Comparing archives
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append02.at:57:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME=\"--mtime=@0\"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test \$TEST_TAR_FORMAT = posix; then
TAR_OPTIONS=\"\$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime\"
fi
echo Creating archive.1
tar \$MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar \$MTIME -cf archive.2 -T /dev/null
tar \$MTIME -rf archive.2 file1
tar \$MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file1
genfile --file file2
# Make sure file timestamps in the archive will not differ
MTIME="--mtime=@0"
# For PAX archives, we need to make sure extended header names are
# reproducible and that their contents won't change with time
if test $TEST_TAR_FORMAT = posix; then
TAR_OPTIONS="$TAR_OPTIONS --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=mtime,delete=atime,delete=ctime"
fi
echo Creating archive.1
tar $MTIME -cf archive.1 file1 file2
echo Creating archive.2
tar $MTIME -cf archive.2 -T /dev/null
tar $MTIME -rf archive.2 file1
tar $MTIME -rf archive.2 file2
echo Comparing archives
cmp archive.1 archive.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive.1
Creating archive.2
Comparing archives
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_51
#AT_START_52
at_fn_group_banner 52 'append03.at:21' \
"append with name transformation" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "52. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Make sure filenames are transformed during append.
{ set +x
printf "%s\n" "$at_srcdir/append03.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Appending
plik.1
Testing
plik.1
plik.2
plik.1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Appending
plik.1
Testing
plik.1
plik.2
plik.1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append03.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Appending
plik.1
Testing
plik.1
plik.2
plik.1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Appending
plik.1
Testing
plik.1
plik.2
plik.1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append03.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file.1
genfile --file file.2
tar -c -f archive --transform 's/file/plik/' file.*
echo Appending
tar -r -f archive --transform 's/file/plik/' -v --show-transformed-names file.1
echo Testing
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Appending
plik.1
Testing
plik.1
plik.2
plik.1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_52
#AT_START_53
at_fn_group_banner 53 'append04.at:29' \
"append with verify" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "53. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/append04.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
==
file1
file2
file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append04.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
==
file1
file2
file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append04.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
==
file1
file2
file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append04.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
==
file1
file2
file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append04.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "append04.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
# Create two empty files:
touch file1 file2
# Create an archive:
tar cpfW archive.tar file1 file2
# Verify created archive by listing its content:
tar -tf archive.tar
echo ==
# Create another empty file:
touch file3
# Append it to the already created archive:
tar rpfW archive.tar file3
# Verify content of the new archive:
tar -tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
==
file1
file2
file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_53
#AT_START_54
at_fn_group_banner 54 'append05.at:32' \
"append after changed blocking" " " 9
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "54. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/append05.at:35:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo \$f > \$f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo $f > $f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "creating archive
adding d e f
adding g h i
resulting archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating archive
a
b
c
adding d e f
d
e
f
==
a
b
c
d
e
f
adding g h i
g
h
i
resulting archive
a
b
c
d
e
f
g
h
i
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append05.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo \$f > \$f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo $f > $f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "creating archive
adding d e f
adding g h i
resulting archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating archive
a
b
c
adding d e f
d
e
f
==
a
b
c
d
e
f
adding g h i
g
h
i
resulting archive
a
b
c
d
e
f
g
h
i
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append05.at:35:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo \$f > \$f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo $f > $f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "creating archive
adding d e f
adding g h i
resulting archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating archive
a
b
c
adding d e f
d
e
f
==
a
b
c
d
e
f
adding g h i
g
h
i
resulting archive
a
b
c
d
e
f
g
h
i
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append05.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo \$f > \$f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo $f > $f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "creating archive
adding d e f
adding g h i
resulting archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating archive
a
b
c
adding d e f
d
e
f
==
a
b
c
d
e
f
adding g h i
g
h
i
resulting archive
a
b
c
d
e
f
g
h
i
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/append05.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo \$f > \$f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "append05.at:35"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
for f in a b c d e f g h i
do
echo $f > $f
done
decho 'creating archive'
tar -cf archive -b1 a b c
tar tf archive
decho 'adding d e f'
tar -vrf archive -b3 d e f
echo ==
tar tf archive
decho 'adding g h i'
tar -vrf archive -b5 g h i
decho 'resulting archive'
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "creating archive
adding d e f
adding g h i
resulting archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating archive
a
b
c
adding d e f
d
e
f
==
a
b
c
d
e
f
adding g h i
g
h
i
resulting archive
a
b
c
d
e
f
g
h
i
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/append05.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_54
#AT_START_55
at_fn_group_banner 55 'xform-h.at:30' \
"transforming hard links on create" " " 10
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "55. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xform-h.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo \"hello\" > basedir/test
ln basedir/test basedir/test_link
echo \"Default transform scope\"
tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Not transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link
echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Default transform scope
test
Transforming hard links
test
Not transforming hard links
basedir/test
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform-h.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo \"hello\" > basedir/test
ln basedir/test basedir/test_link
echo \"Default transform scope\"
tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Not transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link
echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Default transform scope
test
Transforming hard links
test
Not transforming hard links
basedir/test
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform-h.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo \"hello\" > basedir/test
ln basedir/test basedir/test_link
echo \"Default transform scope\"
tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Not transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link
echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Default transform scope
test
Transforming hard links
test
Not transforming hard links
basedir/test
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform-h.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo \"hello\" > basedir/test
ln basedir/test basedir/test_link
echo \"Default transform scope\"
tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Not transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link
echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Default transform scope
test
Transforming hard links
test
Not transforming hard links
basedir/test
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform-h.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo \"hello\" > basedir/test
ln basedir/test basedir/test_link
echo \"Default transform scope\"
tar cf archive --transform=\"s,^basedir/,,\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,h\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo \"Not transforming hard links\"
tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir basedir
echo "hello" > basedir/test
ln basedir/test basedir/test_link
echo "Default transform scope"
tar cf archive --transform="s,^basedir/,," basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Transforming hard links"
tar cf archive --transform="s,^basedir/,,h" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
echo "Not transforming hard links"
tar cf archive --transform="s,^basedir/,,H" basedir/test basedir/test_link
tar tvf archive | sed -n 's/.*test_link link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Default transform scope
test
Transforming hard links
test
Not transforming hard links
basedir/test
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_55
#AT_START_56
at_fn_group_banner 56 'xform01.at:26' \
"transformations and GNU volume labels" " " 10
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "56. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xform01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar -cf archive.tar -V /label/ file
tar tf archive.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform01.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar -cf archive.tar -V /label/ file
tar tf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "/label/
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_56
#AT_START_57
at_fn_group_banner 57 'xform02.at:21' \
"transforming escaped delimiters on create" " " 10
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "57. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xform02.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \\
--transform='s/file/other\\/name/' \\
--show-transformed-name
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \
--transform='s/file/other\/name/' \
--show-transformed-name
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "other/name
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \\
--transform='s/file/other\\/name/' \\
--show-transformed-name
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \
--transform='s/file/other\/name/' \
--show-transformed-name
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "other/name
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform02.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \\
--transform='s/file/other\\/name/' \\
--show-transformed-name
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \
--transform='s/file/other\/name/' \
--show-transformed-name
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "other/name
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \\
--transform='s/file/other\\/name/' \\
--show-transformed-name
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \
--transform='s/file/other\/name/' \
--show-transformed-name
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "other/name
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \\
--transform='s/file/other\\/name/' \\
--show-transformed-name
)"
at_fn_check_prepare_notrace 'an embedded newline' "xform02.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file
tar cvf /dev/null file \
--transform='s/file/other\/name/' \
--show-transformed-name
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "other/name
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_57
#AT_START_58
at_fn_group_banner 58 'xform03.at:21' \
"transforming hard link targets" " " 10
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "58. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=\$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xform03.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "t/dir/c/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24"
( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=\$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xform03.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "t/dir/c/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24"
( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=\$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xform03.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "t/dir/c/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24"
( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=\$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xform03.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "t/dir/c/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24"
( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=\$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xform03.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir d
mkdir d/a
genfile --file d/a/b
dir=$(pwd|sed s,^//*,,)/d
tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err
mkdir t
tar -C t -xf a.tar
find t -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "t/dir/c/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24"
( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_58
#AT_START_59
at_fn_group_banner 59 'exclude.at:23' \
"exclude" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "59. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
echo blues > dir/blues
echo jazz > dir/jazz
mkdir dir/folk
echo tagfile > dir/folk/tagfile
echo sanjuan > dir/folk/sanjuan
mkdir dir/rock
echo \"Signature: 8a477f597d28d172789f06886806bc55\" > dir/rock/CACHEDIR.TAG
echo \"test\" > dir/rock/file
for option in exclude-caches exclude-caches-under exclude-caches-all
do
echo OPTION \$option
tar -cf archive.tar --\$option -v dir 2>err | sort
cat err
echo ARCHIVE
tar tf archive.tar | sort
done
for option in exclude-tag exclude-tag-under exclude-tag-all
do
echo OPTION \$option
tar -cf archive.tar --\${option}=tagfile -v dir 2>err | sort
cat err
echo ARCHIVE
tar tf archive.tar | sort
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
echo blues > dir/blues
echo jazz > dir/jazz
mkdir dir/folk
echo tagfile > dir/folk/tagfile
echo sanjuan > dir/folk/sanjuan
mkdir dir/rock
echo "Signature: 8a477f597d28d172789f06886806bc55" > dir/rock/CACHEDIR.TAG
echo "test" > dir/rock/file
for option in exclude-caches exclude-caches-under exclude-caches-all
do
echo OPTION $option
tar -cf archive.tar --$option -v dir 2>err | sort
cat err
echo ARCHIVE
tar tf archive.tar | sort
done
for option in exclude-tag exclude-tag-under exclude-tag-all
do
echo OPTION $option
tar -cf archive.tar --${option}=tagfile -v dir 2>err | sort
cat err
echo ARCHIVE
tar tf archive.tar | sort
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "OPTION exclude-caches
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
ARCHIVE
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
OPTION exclude-caches-under
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
dir/rock/
tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; contents not dumped
ARCHIVE
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
dir/rock/
OPTION exclude-caches-all
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
tar: dir/rock/: contains a cache directory tag CACHEDIR.TAG; directory not dumped
ARCHIVE
dir/
dir/blues
dir/folk/
dir/folk/sanjuan
dir/folk/tagfile
dir/jazz
OPTION exclude-tag
dir/
dir/blues
dir/folk/
dir/folk/tagfile
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
ARCHIVE
dir/
dir/blues
dir/folk/
dir/folk/tagfile
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
OPTION exclude-tag-under
dir/
dir/blues
dir/folk/
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
tar: dir/folk/: contains a cache directory tag tagfile; contents not dumped
ARCHIVE
dir/
dir/blues
dir/folk/
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
OPTION exclude-tag-all
dir/
dir/blues
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
tar: dir/folk/: contains a cache directory tag tagfile; directory not dumped
ARCHIVE
dir/
dir/blues
dir/jazz
dir/rock/
dir/rock/CACHEDIR.TAG
dir/rock/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_59
#AT_START_60
at_fn_group_banner 60 'exclude01.at:19' \
"exclude wildcards" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "60. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude01.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude=testdir/dir1/\\* \\
--no-wildcards \\
--exclude=testdir/dir2/\\* \\
--wildcards \\
--exclude=testdir/dir3/\\* \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir/dir1
tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards \"testdir/dir1/*\" -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude=testdir/dir1/\* \
--no-wildcards \
--exclude=testdir/dir2/\* \
--wildcards \
--exclude=testdir/dir3/\* \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir2/
testdir/dir2/file2
testdir/dir3/
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude01.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude=testdir/dir1/\\* \\
--no-wildcards \\
--exclude=testdir/dir2/\\* \\
--wildcards \\
--exclude=testdir/dir3/\\* \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir/dir1
tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards \"testdir/dir1/*\" -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude=testdir/dir1/\* \
--no-wildcards \
--exclude=testdir/dir2/\* \
--wildcards \
--exclude=testdir/dir3/\* \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir2/
testdir/dir2/file2
testdir/dir3/
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude01.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude=testdir/dir1/\\* \\
--no-wildcards \\
--exclude=testdir/dir2/\\* \\
--wildcards \\
--exclude=testdir/dir3/\\* \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir/dir1
tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards \"testdir/dir1/*\" -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude=testdir/dir1/\* \
--no-wildcards \
--exclude=testdir/dir2/\* \
--wildcards \
--exclude=testdir/dir3/\* \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir2/
testdir/dir2/file2
testdir/dir3/
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude01.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude=testdir/dir1/\\* \\
--no-wildcards \\
--exclude=testdir/dir2/\\* \\
--wildcards \\
--exclude=testdir/dir3/\\* \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir/dir1
tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards \"testdir/dir1/*\" -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude=testdir/dir1/\* \
--no-wildcards \
--exclude=testdir/dir2/\* \
--wildcards \
--exclude=testdir/dir3/\* \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir2/
testdir/dir2/file2
testdir/dir3/
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude01.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude=testdir/dir1/\\* \\
--no-wildcards \\
--exclude=testdir/dir2/\\* \\
--wildcards \\
--exclude=testdir/dir3/\\* \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir/dir1
tar t --no-wildcards \"testdir/dir1/*\" -f archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards \"testdir/dir1/*\" -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude01.at:22"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude=testdir/dir1/\* \
--no-wildcards \
--exclude=testdir/dir2/\* \
--wildcards \
--exclude=testdir/dir3/\* \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir/dir1
tar t --no-wildcards "testdir/dir1/*" -f archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards "testdir/dir1/*" -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir2/
testdir/dir2/file2
testdir/dir3/
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
NEXT
testdir/dir1/*
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude01.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_60
#AT_START_61
at_fn_group_banner 61 'exclude02.at:19' \
"exclude: anchoring" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "61. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude02.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive --no-anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 2\"
tar cf archive --anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 3\"
tar cf archive testdir file1.txt
tar t \"file1.txt\" -f archive | sort
echo \"SUB 4\"
tar t --no-anchored \"file1.txt\" -f archive | sort
echo \"SUB 5\"
tar t --anchored \"file1.txt\" -f archive | sort
rm -rf testdir file1.txt
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive --no-anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 2"
tar cf archive --anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort
echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort
echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort
rm -rf testdir file1.txt
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file2
SUB 1
testdir/
testdir/file2
SUB 2
testdir/
testdir/file1.txt
testdir/file2
SUB 3
file1.txt
SUB 4
file1.txt
testdir/file1.txt
SUB 5
file1.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude02.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive --no-anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 2\"
tar cf archive --anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 3\"
tar cf archive testdir file1.txt
tar t \"file1.txt\" -f archive | sort
echo \"SUB 4\"
tar t --no-anchored \"file1.txt\" -f archive | sort
echo \"SUB 5\"
tar t --anchored \"file1.txt\" -f archive | sort
rm -rf testdir file1.txt
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive --no-anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 2"
tar cf archive --anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort
echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort
echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort
rm -rf testdir file1.txt
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file2
SUB 1
testdir/
testdir/file2
SUB 2
testdir/
testdir/file1.txt
testdir/file2
SUB 3
file1.txt
SUB 4
file1.txt
testdir/file1.txt
SUB 5
file1.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude02.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive --no-anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 2\"
tar cf archive --anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 3\"
tar cf archive testdir file1.txt
tar t \"file1.txt\" -f archive | sort
echo \"SUB 4\"
tar t --no-anchored \"file1.txt\" -f archive | sort
echo \"SUB 5\"
tar t --anchored \"file1.txt\" -f archive | sort
rm -rf testdir file1.txt
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive --no-anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 2"
tar cf archive --anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort
echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort
echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort
rm -rf testdir file1.txt
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file2
SUB 1
testdir/
testdir/file2
SUB 2
testdir/
testdir/file1.txt
testdir/file2
SUB 3
file1.txt
SUB 4
file1.txt
testdir/file1.txt
SUB 5
file1.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude02.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive --no-anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 2\"
tar cf archive --anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 3\"
tar cf archive testdir file1.txt
tar t \"file1.txt\" -f archive | sort
echo \"SUB 4\"
tar t --no-anchored \"file1.txt\" -f archive | sort
echo \"SUB 5\"
tar t --anchored \"file1.txt\" -f archive | sort
rm -rf testdir file1.txt
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive --no-anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 2"
tar cf archive --anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort
echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort
echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort
rm -rf testdir file1.txt
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file2
SUB 1
testdir/
testdir/file2
SUB 2
testdir/
testdir/file1.txt
testdir/file2
SUB 3
file1.txt
SUB 4
file1.txt
testdir/file1.txt
SUB 5
file1.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude02.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive --no-anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 2\"
tar cf archive --anchored \\
--exclude=\"file1.txt\" \\
testdir
tar tf archive | sort
echo \"SUB 3\"
tar cf archive testdir file1.txt
tar t \"file1.txt\" -f archive | sort
echo \"SUB 4\"
tar t --no-anchored \"file1.txt\" -f archive | sort
echo \"SUB 5\"
tar t --anchored \"file1.txt\" -f archive | sort
rm -rf testdir file1.txt
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude02.at:22"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir
touch file1.txt
touch testdir/file1.txt
touch testdir/file2
tar cf archive --exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive --no-anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 2"
tar cf archive --anchored \
--exclude="file1.txt" \
testdir
tar tf archive | sort
echo "SUB 3"
tar cf archive testdir file1.txt
tar t "file1.txt" -f archive | sort
echo "SUB 4"
tar t --no-anchored "file1.txt" -f archive | sort
echo "SUB 5"
tar t --anchored "file1.txt" -f archive | sort
rm -rf testdir file1.txt
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file2
SUB 1
testdir/
testdir/file2
SUB 2
testdir/
testdir/file1.txt
testdir/file2
SUB 3
file1.txt
SUB 4
file1.txt
testdir/file1.txt
SUB 5
file1.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude02.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_61
#AT_START_62
at_fn_group_banner 62 'exclude03.at:19' \
"exclude: wildcards match slash" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "62. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude03.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\\*f\\*1
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude='testdir*f*1' \\
--no-wildcards-match-slash \\
--exclude='testdir*f*2' \\
--wildcards-match-slash \\
--exclude='testdir*f*3' \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude='testdir*f*1' \
--no-wildcards-match-slash \
--exclude='testdir*f*2' \
--wildcards-match-slash \
--exclude='testdir*f*3' \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir1/*
testdir/dir2/
testdir/dir2/*
testdir/dir2/file2
testdir/dir3/
testdir/dir3/*
NEXT
testdir/*f*1
testdir/dir1/file1
NEXT
testdir/*f*1
NEXT
testdir/*f*1
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude03.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\\*f\\*1
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude='testdir*f*1' \\
--no-wildcards-match-slash \\
--exclude='testdir*f*2' \\
--wildcards-match-slash \\
--exclude='testdir*f*3' \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude='testdir*f*1' \
--no-wildcards-match-slash \
--exclude='testdir*f*2' \
--wildcards-match-slash \
--exclude='testdir*f*3' \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir1/*
testdir/dir2/
testdir/dir2/*
testdir/dir2/file2
testdir/dir3/
testdir/dir3/*
NEXT
testdir/*f*1
testdir/dir1/file1
NEXT
testdir/*f*1
NEXT
testdir/*f*1
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude03.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\\*f\\*1
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude='testdir*f*1' \\
--no-wildcards-match-slash \\
--exclude='testdir*f*2' \\
--wildcards-match-slash \\
--exclude='testdir*f*3' \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude='testdir*f*1' \
--no-wildcards-match-slash \
--exclude='testdir*f*2' \
--wildcards-match-slash \
--exclude='testdir*f*3' \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir1/*
testdir/dir2/
testdir/dir2/*
testdir/dir2/file2
testdir/dir3/
testdir/dir3/*
NEXT
testdir/*f*1
testdir/dir1/file1
NEXT
testdir/*f*1
NEXT
testdir/*f*1
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude03.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\\*f\\*1
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude='testdir*f*1' \\
--no-wildcards-match-slash \\
--exclude='testdir*f*2' \\
--wildcards-match-slash \\
--exclude='testdir*f*3' \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude='testdir*f*1' \
--no-wildcards-match-slash \
--exclude='testdir*f*2' \
--wildcards-match-slash \
--exclude='testdir*f*3' \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir1/*
testdir/dir2/
testdir/dir2/*
testdir/dir2/file2
testdir/dir3/
testdir/dir3/*
NEXT
testdir/*f*1
testdir/dir1/file1
NEXT
testdir/*f*1
NEXT
testdir/*f*1
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude03.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\\*f\\*1
touch testdir/dir1/file1
touch testdir/dir1/\\*
touch testdir/dir2/file2
touch testdir/dir2/\\*
touch testdir/dir3/file3
touch testdir/dir3/\\*
tar cf archive --exclude='testdir*f*1' \\
--no-wildcards-match-slash \\
--exclude='testdir*f*2' \\
--wildcards-match-slash \\
--exclude='testdir*f*3' \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo \"NEXT\"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude03.at:22"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir1 testdir/dir2 testdir/dir3
touch testdir/\*f\*1
touch testdir/dir1/file1
touch testdir/dir1/\*
touch testdir/dir2/file2
touch testdir/dir2/\*
touch testdir/dir3/file3
touch testdir/dir3/\*
tar cf archive --exclude='testdir*f*1' \
--no-wildcards-match-slash \
--exclude='testdir*f*2' \
--wildcards-match-slash \
--exclude='testdir*f*3' \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive testdir
tar t --wildcards 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --no-wildcards-match-slash 'testdir/*f*1' -f archive | sort
echo "NEXT"
tar t --wildcards --wildcards-match-slash 'testdir/*f*1' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir1/
testdir/dir1/*
testdir/dir2/
testdir/dir2/*
testdir/dir2/file2
testdir/dir3/
testdir/dir3/*
NEXT
testdir/*f*1
testdir/dir1/file1
NEXT
testdir/*f*1
NEXT
testdir/*f*1
testdir/dir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude03.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_62
#AT_START_63
at_fn_group_banner 63 'exclude04.at:19' \
"exclude: case insensitive" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "63. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude04.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \\
--exclude=file1 \\
--ignore-case \\
--exclude=file3 \\
--no-ignore-case \\
--exclude=FILE2 \\
--exclude=file4 \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo \"SUB 2\"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo \"SUB 3\"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \
--exclude=file1 \
--ignore-case \
--exclude=file3 \
--no-ignore-case \
--exclude=FILE2 \
--exclude=file4 \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir/
testdir/dir/File1
testdir/dir/File2
testdir/dir/File4
testdir/file2
SUB 1
testdir/dir/File2
SUB 2
testdir/dir/File2
testdir/file2
SUB 3
testdir/dir/File2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude04.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \\
--exclude=file1 \\
--ignore-case \\
--exclude=file3 \\
--no-ignore-case \\
--exclude=FILE2 \\
--exclude=file4 \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo \"SUB 2\"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo \"SUB 3\"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \
--exclude=file1 \
--ignore-case \
--exclude=file3 \
--no-ignore-case \
--exclude=FILE2 \
--exclude=file4 \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir/
testdir/dir/File1
testdir/dir/File2
testdir/dir/File4
testdir/file2
SUB 1
testdir/dir/File2
SUB 2
testdir/dir/File2
testdir/file2
SUB 3
testdir/dir/File2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude04.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \\
--exclude=file1 \\
--ignore-case \\
--exclude=file3 \\
--no-ignore-case \\
--exclude=FILE2 \\
--exclude=file4 \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo \"SUB 2\"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo \"SUB 3\"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \
--exclude=file1 \
--ignore-case \
--exclude=file3 \
--no-ignore-case \
--exclude=FILE2 \
--exclude=file4 \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir/
testdir/dir/File1
testdir/dir/File2
testdir/dir/File4
testdir/file2
SUB 1
testdir/dir/File2
SUB 2
testdir/dir/File2
testdir/file2
SUB 3
testdir/dir/File2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude04.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \\
--exclude=file1 \\
--ignore-case \\
--exclude=file3 \\
--no-ignore-case \\
--exclude=FILE2 \\
--exclude=file4 \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo \"SUB 2\"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo \"SUB 3\"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \
--exclude=file1 \
--ignore-case \
--exclude=file3 \
--no-ignore-case \
--exclude=FILE2 \
--exclude=file4 \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir/
testdir/dir/File1
testdir/dir/File2
testdir/dir/File4
testdir/file2
SUB 1
testdir/dir/File2
SUB 2
testdir/dir/File2
testdir/file2
SUB 3
testdir/dir/File2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude04.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \\
--exclude=file1 \\
--ignore-case \\
--exclude=file3 \\
--no-ignore-case \\
--exclude=FILE2 \\
--exclude=file4 \\
testdir
tar tf archive | sort
echo \"SUB 1\"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo \"SUB 2\"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo \"SUB 3\"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude04.at:22"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir
mkdir -p testdir/dir
touch testdir/file1
touch testdir/file2
touch testdir/file3
touch testdir/file4
touch testdir/dir/File1
touch testdir/dir/File2
touch testdir/dir/File3
touch testdir/dir/File4
tar cf archive --exclude=FILE2 \
--exclude=file1 \
--ignore-case \
--exclude=file3 \
--no-ignore-case \
--exclude=FILE2 \
--exclude=file4 \
testdir
tar tf archive | sort
echo "SUB 1"
tar cf archive testdir
tar t --wildcards --wildcards-match-slash '*File2' -f archive | sort
echo "SUB 2"
tar t --wildcards --wildcards-match-slash --ignore-case '*File2' -f archive | sort
echo "SUB 3"
tar t --wildcards --wildcards-match-slash --no-ignore-case '*File2' -f archive | sort
rm -rf testdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/dir/
testdir/dir/File1
testdir/dir/File2
testdir/dir/File4
testdir/file2
SUB 1
testdir/dir/File2
SUB 2
testdir/dir/File2
testdir/file2
SUB 3
testdir/dir/File2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude04.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_63
#AT_START_64
at_fn_group_banner 64 'exclude05.at:21' \
"exclude: lots of excludes" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "64. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude05.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
while read name
do
genfile --file \$name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive --exclude-from=exclfile \\
testdir
tar tf archive | sort
rm -rf testdir exclfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
while read name
do
genfile --file $name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive --exclude-from=exclfile \
testdir
tar tf archive | sort
rm -rf testdir exclfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file10
testdir/file11
testdir/file9
NEXT
testdir/
testdir/file10
testdir/file11
testdir/file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude05.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
while read name
do
genfile --file \$name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive --exclude-from=exclfile \\
testdir
tar tf archive | sort
rm -rf testdir exclfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
while read name
do
genfile --file $name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive --exclude-from=exclfile \
testdir
tar tf archive | sort
rm -rf testdir exclfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file10
testdir/file11
testdir/file9
NEXT
testdir/
testdir/file10
testdir/file11
testdir/file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude05.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
while read name
do
genfile --file \$name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive --exclude-from=exclfile \\
testdir
tar tf archive | sort
rm -rf testdir exclfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
while read name
do
genfile --file $name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive --exclude-from=exclfile \
testdir
tar tf archive | sort
rm -rf testdir exclfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file10
testdir/file11
testdir/file9
NEXT
testdir/
testdir/file10
testdir/file11
testdir/file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude05.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
while read name
do
genfile --file \$name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive --exclude-from=exclfile \\
testdir
tar tf archive | sort
rm -rf testdir exclfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
while read name
do
genfile --file $name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive --exclude-from=exclfile \
testdir
tar tf archive | sort
rm -rf testdir exclfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file10
testdir/file11
testdir/file9
NEXT
testdir/
testdir/file10
testdir/file11
testdir/file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude05.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print \"testdir/file\" i; }}' < /dev/null | \\
while read name
do
genfile --file \$name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print \"testdir/file\" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \\
testdir
tar tf archive | sort
echo \"NEXT\"
tar cf archive --exclude-from=exclfile \\
testdir
tar tf archive | sort
rm -rf testdir exclfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
rm -rf testdir exclfile
mkdir -p testdir
awk 'BEGIN {for (i=9; i < 100; ++i ) { print "testdir/file" i; }}' < /dev/null | \
while read name
do
genfile --file $name
done
awk 'BEGIN {for (i=1000000; i >= 12; --i ) { print "testdir/file" i }}' < /dev/null > exclfile
tar cf archive --anchored --exclude-from=exclfile \
testdir
tar tf archive | sort
echo "NEXT"
tar cf archive --exclude-from=exclfile \
testdir
tar tf archive | sort
rm -rf testdir exclfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "testdir/
testdir/file10
testdir/file11
testdir/file9
NEXT
testdir/
testdir/file10
testdir/file11
testdir/file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_64
#AT_START_65
at_fn_group_banner 65 'exclude06.at:26' \
"exclude: long files in pax archives" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "65. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude06.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null || exit 77
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
mkdir out
tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
find out -type f
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude06.at:31"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
install-sh -d one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen >/dev/null || exit 77
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.txt
genfile --length 20 -f one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
tar cf archive.tar one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen
mkdir out
tar -C out -xf archive.tar --exclude='*.txt' --warning=no-timestamp
find out -type f
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "out/one/two/three/four/five/six/seven/eight/nine/ten/eleven/twelve/thirteen/fourteen/fifteen/sixteen/seventeen/1.c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude06.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_65
#AT_START_66
at_fn_group_banner 66 'exclude07.at:19' \
"exclude: --exclude-backups option" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "66. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude07.at:22:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file \"dir/.#file\"
genfile --file \"dir/#file#\"
tar -v -c -f archive --exclude-backups dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"
tar -v -c -f archive --exclude-backups dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude07.at:22:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file \"dir/.#file\"
genfile --file \"dir/#file#\"
tar -v -c -f archive --exclude-backups dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"
tar -v -c -f archive --exclude-backups dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude07.at:22:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file \"dir/.#file\"
genfile --file \"dir/#file#\"
tar -v -c -f archive --exclude-backups dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"
tar -v -c -f archive --exclude-backups dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude07.at:22:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file \"dir/.#file\"
genfile --file \"dir/#file#\"
tar -v -c -f archive --exclude-backups dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"
tar -v -c -f archive --exclude-backups dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude07.at:22:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file \"dir/.#file\"
genfile --file \"dir/#file#\"
tar -v -c -f archive --exclude-backups dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude07.at:22"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
genfile --file dir/file
genfile --file dir/file~
genfile --file "dir/.#file"
genfile --file "dir/#file#"
tar -v -c -f archive --exclude-backups dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude07.at:22"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_66
#AT_START_67
at_fn_group_banner 67 'exclude08.at:36' \
"--exclude-tag option" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "67. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude08.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude08.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude08.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude08.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude08.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude08.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude08.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_67
#AT_START_68
at_fn_group_banner 68 'exclude09.at:37' \
"--exclude-tag option and --listed-incremental" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "68. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude09.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude09.at:40"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag=excludeme --listed=snar -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest: Directory is new
tar: etest/subdir: Directory is new
tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/subdir/excludeme
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude09.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_68
#AT_START_69
at_fn_group_banner 69 'exclude10.at:38' \
"--exclude-tag option in incremental pass" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "69. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude10.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho \"# Level 0\"
tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho \"# Level 1\"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude10.at:41"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag=excludeme --listed=snar-1 -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Level 0
tar: etest: Directory is new
tar: etest/subdir: Directory is new
# Level 1
tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Level 0
etest/
etest/subdir/
etest/subdir/subdir-file
etest/top-level-file
# Level 1
etest/
etest/subdir/
etest/subdir/excludeme
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude10.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_69
#AT_START_70
at_fn_group_banner 70 'exclude11.at:36' \
"--exclude-tag-under option" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "70. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude11.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude11.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude11.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude11.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude11.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude11.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude11.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_70
#AT_START_71
at_fn_group_banner 71 'exclude12.at:37' \
"--exclude-tag-under and --listed-incremental" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "71. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude12.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude12.at:40"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-under=excludeme --listed=snar -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest: Directory is new
tar: etest/subdir: Directory is new
tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/subdir/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude12.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_71
#AT_START_72
at_fn_group_banner 72 'exclude13.at:39' \
"--exclude-tag-under option in incremental pass" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "72. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude13.at:42:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho \"# Level 0\"
tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho \"# Level 1\"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude13.at:42"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag-under=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-under=excludeme --listed=snar-1 -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Level 0
tar: etest: Directory is new
tar: etest/subdir: Directory is new
# Level 1
tar: etest/subdir: contains a cache directory tag excludeme; contents not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Level 0
etest/
etest/subdir/
etest/subdir/subdir-file
etest/top-level-file
# Level 1
etest/
etest/subdir/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude13.at:42"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_72
#AT_START_73
at_fn_group_banner 73 'exclude14.at:36' \
"--exclude-tag-all option" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "73. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude14.at:39:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude14.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude14.at:39:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude14.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude14.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude14.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest/subdir/: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude14.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_73
#AT_START_74
at_fn_group_banner 74 'exclude15.at:36' \
"--exclude-tag-all and --listed-incremental" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "74. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude15.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude15.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
tar -c -f etest.tar --exclude-tag-all=excludeme --listed=snar -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: etest: Directory is new
tar: etest/subdir: Directory is new
tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "etest/
etest/top-level-file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude15.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_74
#AT_START_75
at_fn_group_banner 75 'exclude16.at:38' \
"--exclude-tag-all option in incremental pass" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "75. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude16.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho \"# Level 0\"
tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho \"# Level 1\"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude16.at:41"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkexcltest etest
rm etest/subdir/excludeme
decho "# Level 0"
tar -c -f etest-0.tar --exclude-tag-all=excludeme --listed=snar-0 -v etest | sort
touch etest/subdir/excludeme
touch etest/subdir/otherfile
decho "# Level 1"
cp snar-0 snar-1
tar -c -f etest-1.tar --exclude-tag-all=excludeme --listed=snar-1 -v etest | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Level 0
tar: etest: Directory is new
tar: etest/subdir: Directory is new
# Level 1
tar: etest/subdir: contains a cache directory tag excludeme; directory not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Level 0
etest/
etest/subdir/
etest/subdir/subdir-file
etest/top-level-file
# Level 1
etest/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude16.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_75
#AT_START_76
at_fn_group_banner 76 'exclude17.at:21' \
"--exclude-vcs-ignores memory allocation" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "76. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude17.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude17.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./.cvsignore
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude17.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude17.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude17.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./.cvsignore
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude17.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude17.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude17.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./.cvsignore
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude17.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude17.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude17.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./.cvsignore
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude17.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude17.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "exclude17.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo '*.o' >.cvsignore
tar -cf - --exclude-vcs-ignores . | tar -tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./
./.cvsignore
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude17.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_76
#AT_START_77
at_fn_group_banner 77 'exclude18.at:30' \
"--exclude-vcs extract list compare" " " 11
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "77. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/exclude18.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude18.at:33"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Extract:
gitrepo/
gitrepo/.git_B
gitrepo/_C
List:
gitrepo/
gitrepo/.git_B
gitrepo/_C
Diff:
gitrepo/
gitrepo/.git_B
gitrepo/_C
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude18.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude18.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude18.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Extract:
gitrepo/
gitrepo/.git_B
gitrepo/_C
List:
gitrepo/
gitrepo/.git_B
gitrepo/_C
Diff:
gitrepo/
gitrepo/.git_B
gitrepo/_C
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude18.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude18.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude18.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Extract:
gitrepo/
gitrepo/.git_B
gitrepo/_C
List:
gitrepo/
gitrepo/.git_B
gitrepo/_C
Diff:
gitrepo/
gitrepo/.git_B
gitrepo/_C
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude18.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude18.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude18.at:33"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Extract:
gitrepo/
gitrepo/.git_B
gitrepo/_C
List:
gitrepo/
gitrepo/.git_B
gitrepo/_C
Diff:
gitrepo/
gitrepo/.git_B
gitrepo/_C
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude18.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/exclude18.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "exclude18.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir gitrepo
cd gitrepo
# Make an empty VCS directory:
mkdir .svn
# Make a VCS directory with a file:
mkdir .git
touch .git/_A
# Make a VCS file:
touch .gitignore
# Make non-VCS files:
touch .git_B
touch _C
# Create an archive, include VCS:
cd ..
tar -cf gitrepo.tar gitrepo
rm -r gitrepo
echo Extract:
tar -xvf gitrepo.tar --exclude-vcs | sort
echo
echo List:
tar -tf gitrepo.tar --exclude-vcs | sort
echo
echo Diff:
tar -dvf gitrepo.tar --exclude-vcs gitrepo | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Extract:
gitrepo/
gitrepo/.git_B
gitrepo/_C
List:
gitrepo/
gitrepo/.git_B
gitrepo/_C
Diff:
gitrepo/
gitrepo/.git_B
gitrepo/_C
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/exclude18.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_77
#AT_START_78
at_fn_group_banner 78 'delete01.at:23' \
"deleting a member after a big one" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "78. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete01.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)"
at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete01.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)"
at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete01.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)"
at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete01.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)"
at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete01.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)"
at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 50000 --file file1
genfile -l 1024 --file file2
tar cf archive file1 file2
tar -f - --delete file2 <archive >archout
tar tf archout
tar f archive --delete file2
cmp archive archout)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_78
#AT_START_79
at_fn_group_banner 79 'delete02.at:23' \
"deleting a member from stdin archive" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "79. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete02.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)"
at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1
2
3
separator
1
3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete02.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)"
at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1
2
3
separator
1
3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete02.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)"
at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1
2
3
separator
1
3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete02.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)"
at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1
2
3
separator
1
3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete02.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)"
at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 3073 -p zeros --file 1
cp 1 2
cp 2 3
tar cf archive 1 2 3
tar tf archive
cat archive | tar f - --delete 2 > archive2
echo separator
tar tf archive2
tar f - --delete 2 < archive > archive3
cmp archive2 archive3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "1
2
3
separator
1
3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_79
#AT_START_80
at_fn_group_banner 80 'delete03.at:21' \
"deleting members with long names" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "80. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f \$prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch \$prefix\$i
done
tar -cf archive ./\$prefix* &&
tar --delete -f archive ./\${prefix}5 &&
tar -tf archive
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
tar --delete -f archive ./${prefix}5 &&
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f \$prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch \$prefix\$i
done
tar -cf archive ./\$prefix* &&
tar --delete -f archive ./\${prefix}5 &&
tar -tf archive
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
tar --delete -f archive ./${prefix}5 &&
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f \$prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch \$prefix\$i
done
tar -cf archive ./\$prefix* &&
tar --delete -f archive ./\${prefix}5 &&
tar -tf archive
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
prefix=This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX
rm -f $prefix*
for i in 1 2 3 4 5 6 7 8 9
do touch $prefix$i
done
tar -cf archive ./$prefix* &&
tar --delete -f archive ./${prefix}5 &&
tar -tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX1
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX2
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX3
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX4
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX6
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX7
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX8
./This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_problems_with_file_names_that_run_into_a_limit_of_the_posix_tar_formatXX9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_80
#AT_START_81
at_fn_group_banner 81 'delete04.at:23' \
"deleting a large last member" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "81. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete04.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
file5
file6
file7
file8
file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete04.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
file5
file6
file7
file8
file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete04.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
file5
file6
file7
file8
file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete04.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
file5
file6
file7
file8
file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete04.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 3 -f file1
genfile -l 5 -f file2
genfile -l 3 -f file3
genfile -l 6 -f file4
genfile -l 24 -f file5
genfile -l 13 -f file6
genfile -l 1385 -f file7
genfile -l 30 -f file8
genfile -l 10 -f file9
genfile -l 256000 -f file10
tar cf archive file1 file2 file3 file4 file5 file6 file7 file8 file9 file10
tar f archive --delete file10
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file2
file3
file4
file5
file6
file7
file8
file9
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_81
#AT_START_82
at_fn_group_banner 82 'delete05.at:27' \
"deleting non-existing member" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "82. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete05.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: tre: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "en
to
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete05.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: tre: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "en
to
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete05.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: tre: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "en
to
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete05.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: tre: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "en
to
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete05.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 1024 -f en
genfile -l 1024 -f to
tar cf archive en to
# Make sure we don't use bogus blocking factor.
# GNU tar up to and including 1.14.91 produced an empty archive this way:
tar --file archive --blocking-factor=20 --delete tre
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: tre: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "en
to
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_82
#AT_START_83
at_fn_group_banner 83 'delete06.at:25' \
"EOF detection" " " 12
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "83. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/delete06.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir b
touch a b/1 c
tar -cf archive.tar a b/1 c
case \$TEST_TAR_FORMAT in
gnu) size=1500;;
pax) size=3072;;
esac
dd if=archive.tar of=trunc.tar bs=\$size count=1 2>/dev/null
tar --delete 'b/' -f trunc.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete06.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir b
touch a b/1 c
tar -cf archive.tar a b/1 c
case $TEST_TAR_FORMAT in
gnu) size=1500;;
pax) size=3072;;
esac
dd if=archive.tar of=trunc.tar bs=$size count=1 2>/dev/null
tar --delete 'b/' -f trunc.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete06.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/delete06.at:28:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
mkdir b
touch a b/1 c
tar -cf archive.tar a b/1 c
case \$TEST_TAR_FORMAT in
gnu) size=1500;;
pax) size=3072;;
esac
dd if=archive.tar of=trunc.tar bs=\$size count=1 2>/dev/null
tar --delete 'b/' -f trunc.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "delete06.at:28"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
mkdir b
touch a b/1 c
tar -cf archive.tar a b/1 c
case $TEST_TAR_FORMAT in
gnu) size=1500;;
pax) size=3072;;
esac
dd if=archive.tar of=trunc.tar bs=$size count=1 2>/dev/null
tar --delete 'b/' -f trunc.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/delete06.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_83
#AT_START_84
at_fn_group_banner 84 'extrac01.at:23' \
"extract over an existing directory" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "84. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac01.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac01.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac01.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac01.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac01.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
touch directory/file
tar cf archive directory || exit 1
tar xf archive --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_84
#AT_START_85
at_fn_group_banner 85 'extrac02.at:23' \
"extracting symlinks over an existing file" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "85. $at_setup_line: testing $at_desc ..."
$at_traceon
# FIXME: Skip if symlinks are not supported on the system
{ set +x
printf "%s\n" "$at_srcdir/extrac02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
touch file
ln -s file link 2> /dev/null || ln file link
tar cf archive link
rm link
touch link
tar xf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_85
#AT_START_86
at_fn_group_banner 86 'extrac03.at:23' \
"extraction loops" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "86. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac03.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/../directory/
separator
directory/../directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/../directory/
separator
directory/../directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac03.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/../directory/
separator
directory/../directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/../directory/
separator
directory/../directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
tar -cPvf archive directory/../directory
echo separator
tar -xPvf archive --warning=no-timestamp)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/../directory/
separator
directory/../directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_86
#AT_START_87
at_fn_group_banner 87 'extrac04.at:23' \
"extract + fnmatch" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "87. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac04.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \\
--exclude='./*1' \\
--exclude='d*/*1' \\
--exclude='d*/s*/*2' | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file2
directory/subdirectory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac04.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \\
--exclude='./*1' \\
--exclude='d*/*1' \\
--exclude='d*/s*/*2' | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file2
directory/subdirectory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac04.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \\
--exclude='./*1' \\
--exclude='d*/*1' \\
--exclude='d*/s*/*2' | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file2
directory/subdirectory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac04.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \\
--exclude='./*1' \\
--exclude='d*/*1' \\
--exclude='d*/s*/*2' | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file2
directory/subdirectory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac04.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \\
--exclude='./*1' \\
--exclude='d*/*1' \\
--exclude='d*/s*/*2' | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
touch file1
mkdir directory
mkdir directory/subdirectory
touch directory/file1
touch directory/file2
touch directory/subdirectory/file1
touch directory/subdirectory/file2
tar -cf archive ./file1 directory
tar -tf archive \
--exclude='./*1' \
--exclude='d*/*1' \
--exclude='d*/s*/*2' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/file2
directory/subdirectory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_87
#AT_START_88
at_fn_group_banner 88 'extrac05.at:30' \
"extracting selected members from pax" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "88. $at_setup_line: testing $at_desc ..."
$at_traceon
cat >list <<'_ATEOF'
jeden
cztery
_ATEOF
{ set +x
printf "%s\n" "$at_srcdir/extrac05.at:38:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
genfile --length 118 --file jeden
genfile --length 223 --file dwa
genfile --length 517 --file trzy
genfile --length 110 --file cztery
tar cf archive jeden dwa trzy cztery || exit 1
mkdir dir
cd dir
tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
cd ..
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:38"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile 0 ABCD 1M EFGH 2000K IJKL || exit 77
genfile --length 118 --file jeden
genfile --length 223 --file dwa
genfile --length 517 --file trzy
genfile --length 110 --file cztery
tar cf archive jeden dwa trzy cztery || exit 1
mkdir dir
cd dir
tar xvfT ../archive ../../list --warning=no-timestamp || exit 1
cd ..
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "jeden
cztery
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:38"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_88
#AT_START_89
at_fn_group_banner 89 'extrac06.at:34' \
"mode of extracted directories" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "89. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac06.at:37:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
755
755
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac06.at:37:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
755
755
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac06.at:37:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
755
755
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac06.at:37:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
755
755
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac06.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS=\"\$TAR_OPTIONS --no-same-permissions\"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
# Force umask
umask 022
# Make sure user's umask is honored, even if we are superuser
TAR_OPTIONS="$TAR_OPTIONS --no-same-permissions"
# Create a directory
mkdir directory
chmod 777 directory
genfile --stat=mode:777 directory
# Archive it
tar cf arc directory
# Change its permissions ...
chmod 755 directory
genfile --stat=mode:777 directory
# ... and attempt to restore it twice
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
tar xf arc directory --warning=no-timestamp
genfile --stat=mode:777 directory
# After both restores, the directory mode should be 755
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
755
755
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_89
#AT_START_90
at_fn_group_banner 90 'extrac07.at:27' \
"extracting symlinks to a read-only dir" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "90. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac07.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
echo Prepare the directory
mkdir dir
genfile -f foo
cd dir
ln -s ../foo .
cd ..
chmod a-w dir
echo Create the archive
tar cf archive dir || exit 1
chmod +w dir
echo Extract
mkdir out
tar -C out -xvf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac07.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
echo Prepare the directory
mkdir dir
genfile -f foo
cd dir
ln -s ../foo .
cd ..
chmod a-w dir
echo Create the archive
tar cf archive dir || exit 1
chmod +w dir
echo Extract
mkdir out
tar -C out -xvf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Prepare the directory
Create the archive
Extract
dir/
dir/foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac07.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_90
#AT_START_91
at_fn_group_banner 91 'extrac08.at:33' \
"restoring mode on existing directory" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "91. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac08.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac08.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac08.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac08.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac08.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac08.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
umask 000
mkdir dir
chmod 755 dir
echo bla > dir/file
tar cf test.tar dir
chmod 700 dir
tar xfv test.tar --warning=no-timestamp
genfile --stat=mode.777 dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
755
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac08.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_91
#AT_START_92
at_fn_group_banner 92 'extrac09.at:34' \
"extracting even when . and .. are unreadable" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "92. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac09.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/extract
genfile --file dir/sub/f
cd dir/sub
tar -cf archive.tar f
chmod a-r . ..
tar -xvf archive.tar -C extract f
status=\$?
chmod a+r . ..
cmp f extract/f || status=\$?
exit \$status
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac09.at:37"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/extract
genfile --file dir/sub/f
cd dir/sub
tar -cf archive.tar f
chmod a-r . ..
tar -xvf archive.tar -C extract f
status=$?
chmod a+r . ..
cmp f extract/f || status=$?
exit $status
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "f
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac09.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_92
#AT_START_93
at_fn_group_banner 93 'extrac10.at:29' \
"-C and delayed setting of metadata" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "93. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac10.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir d x x/y
echo foo >d/d1
echo bar >e
tar -cf archive.tar d e &&
tar -xf archive.tar -C x d -C y e &&
diff -r d x/d &&
diff e x/y/e
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac10.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir d x x/y
echo foo >d/d1
echo bar >e
tar -cf archive.tar d e &&
tar -xf archive.tar -C x d -C y e &&
diff -r d x/d &&
diff e x/y/e
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac10.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_93
#AT_START_94
at_fn_group_banner 94 'extrac11.at:25' \
"scarce file descriptors" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "94. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac11.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec </dev/null
dirs='a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
a/b/c/d/e/f/g
a/b/c/d/e/f/g/h
a/b/c/d/e/f/g/h/i
a/b/c/d/e/f/g/h/i/j
a/b/c/d/e/f/g/h/i/j/k
'
files=
mkdir \$dirs dest1 dest2 dest3 || exit
for dir in \$dirs; do
for file in X Y Z; do
echo \$file >\$dir/\$file || exit
files=\"\$files \$file\"
done
done
# Check that \"ulimit\" itself works. Close file descriptors before
# invoking ulimit, to work around a bug (or a \"feature\") in some shells,
# where they squirrel away dups of file descriptors into FD 10 and up
# before closing the originals.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 100 &&
tar -cf archive1.tar a &&
tar -xf archive1.tar -C dest1 a
) &&
diff -r a dest1/a
) >/dev/null 2>&1 ||
exit 77
# Another test that \"ulimit\" itself works:
# tar should fail when completely starved of file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 4 &&
tar -cf archive2.tar a &&
tar -xf archive2.tar -C dest2 a
) &&
diff -r a dest2/a
) >/dev/null 2>&1 &&
exit 77
# Test if it is possible to limit the number of file descriptors to 10.
( ulimit -n 10 ) >/dev/null 2>&1 || exit 77
# Tar should work when there are few, but enough, file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 10 &&
tar -cf archive3.tar a &&
tar -xf archive3.tar -C dest3 a
) &&
diff -r a dest3/a >/dev/null 2>&1
) || { diff -r a dest3/a; exit 1; }
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac11.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec </dev/null
dirs='a
a/b
a/b/c
a/b/c/d
a/b/c/d/e
a/b/c/d/e/f
a/b/c/d/e/f/g
a/b/c/d/e/f/g/h
a/b/c/d/e/f/g/h/i
a/b/c/d/e/f/g/h/i/j
a/b/c/d/e/f/g/h/i/j/k
'
files=
mkdir $dirs dest1 dest2 dest3 || exit
for dir in $dirs; do
for file in X Y Z; do
echo $file >$dir/$file || exit
files="$files $file"
done
done
# Check that "ulimit" itself works. Close file descriptors before
# invoking ulimit, to work around a bug (or a "feature") in some shells,
# where they squirrel away dups of file descriptors into FD 10 and up
# before closing the originals.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 100 &&
tar -cf archive1.tar a &&
tar -xf archive1.tar -C dest1 a
) &&
diff -r a dest1/a
) >/dev/null 2>&1 ||
exit 77
# Another test that "ulimit" itself works:
# tar should fail when completely starved of file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 4 &&
tar -cf archive2.tar a &&
tar -xf archive2.tar -C dest2 a
) &&
diff -r a dest2/a
) >/dev/null 2>&1 &&
exit 77
# Test if it is possible to limit the number of file descriptors to 10.
( ulimit -n 10 ) >/dev/null 2>&1 || exit 77
# Tar should work when there are few, but enough, file descriptors.
( (exec 3<&- 4<&- 5<&- 6<&- 7<&- 8<&- 9<&- &&
ulimit -n 10 &&
tar -cf archive3.tar a &&
tar -xf archive3.tar -C dest3 a
) &&
diff -r a dest3/a >/dev/null 2>&1
) || { diff -r a dest3/a; exit 1; }
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac11.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_94
#AT_START_95
at_fn_group_banner 95 'extrac12.at:25' \
"extract dot permissions" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "95. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac12.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir src dst
echo file1 >src/file1
echo file2 >src/file2
chmod a-w src
tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
tar -xf archive.tar -C dst &&
cmp src/file1 dst/file1 &&
cmp src/file2 dst/file2
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac12.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir src dst
echo file1 >src/file1
echo file2 >src/file2
chmod a-w src
tar --no-recursion -cf archive.tar -C src . ./file1 file2 &&
tar -xf archive.tar -C dst &&
cmp src/file1 dst/file1 &&
cmp src/file2 dst/file2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac12.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_95
#AT_START_96
at_fn_group_banner 96 'extrac13.at:26' \
"extract over symlinks" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "96. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac13.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir src dst1 dst2 dst3
echo file1 >src/file1
ln -s target1 dst1/file1
echo target1 >dst1/target1
echo target1 >target1
tar -cf archive.tar -C src . &&
tar -xf archive.tar -C dst1 --warning=no-timestamp &&
diff src/file1 dst1/file1 &&
diff target1 dst1/target1
ln -s target1 dst2/file1
echo target1 >dst2/target1
tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
diff src/file1 dst2/file1 &&
diff target1 dst2/target1
ln -s target1 dst3/file1
echo target1 >dst3/target1
tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
diff src/file1 dst3/file1 &&
diff src/file1 dst3/target1
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac13.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir src dst1 dst2 dst3
echo file1 >src/file1
ln -s target1 dst1/file1
echo target1 >dst1/target1
echo target1 >target1
tar -cf archive.tar -C src . &&
tar -xf archive.tar -C dst1 --warning=no-timestamp &&
diff src/file1 dst1/file1 &&
diff target1 dst1/target1
ln -s target1 dst2/file1
echo target1 >dst2/target1
tar --overwrite -xf archive.tar -C dst2 --warning=no-timestamp &&
diff src/file1 dst2/file1 &&
diff target1 dst2/target1
ln -s target1 dst3/file1
echo target1 >dst3/target1
tar --overwrite -xhf archive.tar -C dst3 --warning=no-timestamp &&
diff src/file1 dst3/file1 &&
diff src/file1 dst3/target1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac13.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_96
#AT_START_97
at_fn_group_banner 97 'extrac14.at:25' \
"extract -C symlink" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "97. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac14.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dest
ln -s dest symlink
echo foo >foo
tar -cf archive.tar foo &&
tar -xf archive.tar -C symlink --warning=no-timestamp &&
cmp foo dest/foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac14.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dest
ln -s dest symlink
echo foo >foo
tar -cf archive.tar foo &&
tar -xf archive.tar -C symlink --warning=no-timestamp &&
cmp foo dest/foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac14.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_97
#AT_START_98
at_fn_group_banner 98 'extrac15.at:25' \
"extract parent mkdir failure" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "98. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac15.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
mkdir src src/a src/a/b dest dest/a
touch src/a/b/c
chmod a-w dest/a
tar -cf archive.tar -C src a/b/c &&
if tar -xf archive.tar -C dest a/b/c
then (exit 1)
else (exit 0)
fi
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac15.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
mkdir src src/a src/a/b dest dest/a
touch src/a/b/c
chmod a-w dest/a
tar -cf archive.tar -C src a/b/c &&
if tar -xf archive.tar -C dest a/b/c
then (exit 1)
else (exit 0)
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: a/b: Cannot mkdir: Permission denied
tar: a/b/c: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac15.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_98
#AT_START_99
at_fn_group_banner 99 'extrac16.at:26' \
"extract empty directory with -C" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "99. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac16.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir src src/a src/a/b dest
touch src/a/c
tar -cf archive.tar -C src a &&
tar -xf archive.tar -C dest
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac16.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir src src/a src/a/b dest
touch src/a/c
tar -cf archive.tar -C src a &&
tar -xf archive.tar -C dest
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac16.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_99
#AT_START_100
at_fn_group_banner 100 'extrac17.at:21' \
"name matching/transformation ordering" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "100. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Tar 1.24 changed the ordering of name matching and
# name transformation so that the former saw already transformed
# file names (see commit 9c194c99 and exclude06.at). This reverted
# ordering made it impossible to match file names in certain cases.
# In particular, the testcase below would not extract anything.
#
# Reported-by: "Gabor Z. Papp" <gzp@papp.hu>
# References: <x6r5fd9jye@gzp>, <20101026175126.29028@Pirx.gnu.org.ua>
# http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00047.html
{ set +x
printf "%s\n" "$at_srcdir/extrac17.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
dir/subdir1/
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
dir/subdir1/
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/subdir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac17.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
dir/subdir1/
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
dir/subdir1/
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/subdir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac17.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
dir/subdir1/
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
dir/subdir1/
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/subdir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac17.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
dir/subdir1/
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
dir/subdir1/
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/subdir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac17.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \\
dir/subdir1/
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac17.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir dir/subdir1 dir/subdir2 out
genfile --file dir/subdir1/file1
genfile --file dir/subdir2/file2
tar cf dir.tar dir
tar -x -v -f dir.tar -C out --strip-components=2 --warning=no-timestamp \
dir/subdir1/
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/subdir1/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac17.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_100
#AT_START_101
at_fn_group_banner 101 'extrac18.at:34' \
"keep-old-files" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "101. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac18.at:37:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=2
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac18.at:37:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=2
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac18.at:37:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=2
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac18.at:37:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=2
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac18.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac18.at:37"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x -k -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./a: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=2
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac18.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_101
#AT_START_102
at_fn_group_banner 102 'extrac19.at:21' \
"skip-old-files" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "102. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac19.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=0
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac19.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=0
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac19.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=0
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac19.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=0
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac19.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=\$?
cat a
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac19.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
cd dir
echo 'Old file a' > a
echo 'Old file b' > b
tar cf ../archive .
rm b
echo 'File a' > a
tar -x --skip-old-files -f ../archive
echo status=$?
cat a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "status=0
File a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac19.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_102
#AT_START_103
at_fn_group_banner 103 'extrac20.at:21' \
"keep-directory-symlink" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "103. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac20.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
for i in a b c
do
dir=in\$i
mkdir -p \$dir/root/dir \$dir/root/dirsymlink
touch \$dir/root/dirsymlink/file\$i
test \$i != a && touch \$dir/root/dirsymlink/file.conflict
tar cf archive\$i.tar -C \$dir root
done
prep()
{
echo \"== \$1 ==\"
echo \"== \$1 ==\" >&2
backup_dir=\$1
dir=out
mkdir -p \$dir/root/dir
ln -s dir \$dir/root/dirsymlink
test \$round = normal && cd \$dir >/dev/null
}
clean()
{
test \$round = normal && cd .. >/dev/null
find \$dir | sort
mv \$dir \$backup_dir
}
# Expand to '-f ../\$1' or '-f \$1 -C \$dir' depending on \$round variable
file_spec()
{
if test \$round = normal
then
echo \"-f ../\$1\"
else
echo \"-f \$1 -C \$dir\"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_\$round
tar -x \`file_spec archivea.tar\` || exit 1
tar -x \`file_spec archiveb.tar\` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` || exit 1
clean
prep collision_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archivec.tar\` --keep-old-files && exit 1
clean
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac20.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
for i in a b c
do
dir=in$i
mkdir -p $dir/root/dir $dir/root/dirsymlink
touch $dir/root/dirsymlink/file$i
test $i != a && touch $dir/root/dirsymlink/file.conflict
tar cf archive$i.tar -C $dir root
done
prep()
{
echo "== $1 =="
echo "== $1 ==" >&2
backup_dir=$1
dir=out
mkdir -p $dir/root/dir
ln -s dir $dir/root/dirsymlink
test $round = normal && cd $dir >/dev/null
}
clean()
{
test $round = normal && cd .. >/dev/null
find $dir | sort
mv $dir $backup_dir
}
# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
if test $round = normal
then
echo "-f ../$1"
else
echo "-f $1 -C $dir"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_$round
tar -x `file_spec archivea.tar` || exit 1
tar -x `file_spec archiveb.tar` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
clean
prep collision_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
clean
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "== without_option_normal ==
== with_option_normal ==
== collision_normal ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
== without_option_dir ==
== with_option_dir ==
== collision_dir ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "== without_option_normal ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
== without_option_dir ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac20.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac20.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
for i in a b c
do
dir=in\$i
mkdir -p \$dir/root/dir \$dir/root/dirsymlink
touch \$dir/root/dirsymlink/file\$i
test \$i != a && touch \$dir/root/dirsymlink/file.conflict
tar cf archive\$i.tar -C \$dir root
done
prep()
{
echo \"== \$1 ==\"
echo \"== \$1 ==\" >&2
backup_dir=\$1
dir=out
mkdir -p \$dir/root/dir
ln -s dir \$dir/root/dirsymlink
test \$round = normal && cd \$dir >/dev/null
}
clean()
{
test \$round = normal && cd .. >/dev/null
find \$dir | sort
mv \$dir \$backup_dir
}
# Expand to '-f ../\$1' or '-f \$1 -C \$dir' depending on \$round variable
file_spec()
{
if test \$round = normal
then
echo \"-f ../\$1\"
else
echo \"-f \$1 -C \$dir\"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_\$round
tar -x \`file_spec archivea.tar\` || exit 1
tar -x \`file_spec archiveb.tar\` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` || exit 1
clean
prep collision_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archivec.tar\` --keep-old-files && exit 1
clean
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac20.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
for i in a b c
do
dir=in$i
mkdir -p $dir/root/dir $dir/root/dirsymlink
touch $dir/root/dirsymlink/file$i
test $i != a && touch $dir/root/dirsymlink/file.conflict
tar cf archive$i.tar -C $dir root
done
prep()
{
echo "== $1 =="
echo "== $1 ==" >&2
backup_dir=$1
dir=out
mkdir -p $dir/root/dir
ln -s dir $dir/root/dirsymlink
test $round = normal && cd $dir >/dev/null
}
clean()
{
test $round = normal && cd .. >/dev/null
find $dir | sort
mv $dir $backup_dir
}
# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
if test $round = normal
then
echo "-f ../$1"
else
echo "-f $1 -C $dir"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_$round
tar -x `file_spec archivea.tar` || exit 1
tar -x `file_spec archiveb.tar` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
clean
prep collision_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
clean
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "== without_option_normal ==
== with_option_normal ==
== collision_normal ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
== without_option_dir ==
== with_option_dir ==
== collision_dir ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "== without_option_normal ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
== without_option_dir ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac20.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac20.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
for i in a b c
do
dir=in\$i
mkdir -p \$dir/root/dir \$dir/root/dirsymlink
touch \$dir/root/dirsymlink/file\$i
test \$i != a && touch \$dir/root/dirsymlink/file.conflict
tar cf archive\$i.tar -C \$dir root
done
prep()
{
echo \"== \$1 ==\"
echo \"== \$1 ==\" >&2
backup_dir=\$1
dir=out
mkdir -p \$dir/root/dir
ln -s dir \$dir/root/dirsymlink
test \$round = normal && cd \$dir >/dev/null
}
clean()
{
test \$round = normal && cd .. >/dev/null
find \$dir | sort
mv \$dir \$backup_dir
}
# Expand to '-f ../\$1' or '-f \$1 -C \$dir' depending on \$round variable
file_spec()
{
if test \$round = normal
then
echo \"-f ../\$1\"
else
echo \"-f \$1 -C \$dir\"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_\$round
tar -x \`file_spec archivea.tar\` || exit 1
tar -x \`file_spec archiveb.tar\` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` || exit 1
clean
prep collision_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archivec.tar\` --keep-old-files && exit 1
clean
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac20.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
for i in a b c
do
dir=in$i
mkdir -p $dir/root/dir $dir/root/dirsymlink
touch $dir/root/dirsymlink/file$i
test $i != a && touch $dir/root/dirsymlink/file.conflict
tar cf archive$i.tar -C $dir root
done
prep()
{
echo "== $1 =="
echo "== $1 ==" >&2
backup_dir=$1
dir=out
mkdir -p $dir/root/dir
ln -s dir $dir/root/dirsymlink
test $round = normal && cd $dir >/dev/null
}
clean()
{
test $round = normal && cd .. >/dev/null
find $dir | sort
mv $dir $backup_dir
}
# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
if test $round = normal
then
echo "-f ../$1"
else
echo "-f $1 -C $dir"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_$round
tar -x `file_spec archivea.tar` || exit 1
tar -x `file_spec archiveb.tar` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
clean
prep collision_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
clean
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "== without_option_normal ==
== with_option_normal ==
== collision_normal ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
== without_option_dir ==
== with_option_dir ==
== collision_dir ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "== without_option_normal ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
== without_option_dir ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac20.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac20.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
for i in a b c
do
dir=in\$i
mkdir -p \$dir/root/dir \$dir/root/dirsymlink
touch \$dir/root/dirsymlink/file\$i
test \$i != a && touch \$dir/root/dirsymlink/file.conflict
tar cf archive\$i.tar -C \$dir root
done
prep()
{
echo \"== \$1 ==\"
echo \"== \$1 ==\" >&2
backup_dir=\$1
dir=out
mkdir -p \$dir/root/dir
ln -s dir \$dir/root/dirsymlink
test \$round = normal && cd \$dir >/dev/null
}
clean()
{
test \$round = normal && cd .. >/dev/null
find \$dir | sort
mv \$dir \$backup_dir
}
# Expand to '-f ../\$1' or '-f \$1 -C \$dir' depending on \$round variable
file_spec()
{
if test \$round = normal
then
echo \"-f ../\$1\"
else
echo \"-f \$1 -C \$dir\"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_\$round
tar -x \`file_spec archivea.tar\` || exit 1
tar -x \`file_spec archiveb.tar\` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` || exit 1
clean
prep collision_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archivec.tar\` --keep-old-files && exit 1
clean
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac20.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
for i in a b c
do
dir=in$i
mkdir -p $dir/root/dir $dir/root/dirsymlink
touch $dir/root/dirsymlink/file$i
test $i != a && touch $dir/root/dirsymlink/file.conflict
tar cf archive$i.tar -C $dir root
done
prep()
{
echo "== $1 =="
echo "== $1 ==" >&2
backup_dir=$1
dir=out
mkdir -p $dir/root/dir
ln -s dir $dir/root/dirsymlink
test $round = normal && cd $dir >/dev/null
}
clean()
{
test $round = normal && cd .. >/dev/null
find $dir | sort
mv $dir $backup_dir
}
# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
if test $round = normal
then
echo "-f ../$1"
else
echo "-f $1 -C $dir"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_$round
tar -x `file_spec archivea.tar` || exit 1
tar -x `file_spec archiveb.tar` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
clean
prep collision_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
clean
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "== without_option_normal ==
== with_option_normal ==
== collision_normal ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
== without_option_dir ==
== with_option_dir ==
== collision_dir ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "== without_option_normal ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
== without_option_dir ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac20.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac20.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
for i in a b c
do
dir=in\$i
mkdir -p \$dir/root/dir \$dir/root/dirsymlink
touch \$dir/root/dirsymlink/file\$i
test \$i != a && touch \$dir/root/dirsymlink/file.conflict
tar cf archive\$i.tar -C \$dir root
done
prep()
{
echo \"== \$1 ==\"
echo \"== \$1 ==\" >&2
backup_dir=\$1
dir=out
mkdir -p \$dir/root/dir
ln -s dir \$dir/root/dirsymlink
test \$round = normal && cd \$dir >/dev/null
}
clean()
{
test \$round = normal && cd .. >/dev/null
find \$dir | sort
mv \$dir \$backup_dir
}
# Expand to '-f ../\$1' or '-f \$1 -C \$dir' depending on \$round variable
file_spec()
{
if test \$round = normal
then
echo \"-f ../\$1\"
else
echo \"-f \$1 -C \$dir\"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_\$round
tar -x \`file_spec archivea.tar\` || exit 1
tar -x \`file_spec archiveb.tar\` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` || exit 1
clean
prep collision_\$round
tar -x --keep-directory-symlink \`file_spec archivea.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archiveb.tar\` --keep-old-files || exit 1
tar -x --keep-directory-symlink \`file_spec archivec.tar\` --keep-old-files && exit 1
clean
done
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac20.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
for i in a b c
do
dir=in$i
mkdir -p $dir/root/dir $dir/root/dirsymlink
touch $dir/root/dirsymlink/file$i
test $i != a && touch $dir/root/dirsymlink/file.conflict
tar cf archive$i.tar -C $dir root
done
prep()
{
echo "== $1 =="
echo "== $1 ==" >&2
backup_dir=$1
dir=out
mkdir -p $dir/root/dir
ln -s dir $dir/root/dirsymlink
test $round = normal && cd $dir >/dev/null
}
clean()
{
test $round = normal && cd .. >/dev/null
find $dir | sort
mv $dir $backup_dir
}
# Expand to '-f ../$1' or '-f $1 -C $dir' depending on $round variable
file_spec()
{
if test $round = normal
then
echo "-f ../$1"
else
echo "-f $1 -C $dir"
fi
}
for round in normal dir
do
# Check that 'dirsymlink' replaces 'dir'
prep without_option_$round
tar -x `file_spec archivea.tar` || exit 1
tar -x `file_spec archiveb.tar` || exit 1
clean
# Keep directory symlink must keep root/dirsymlink
prep with_option_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` || exit 1
clean
prep collision_$round
tar -x --keep-directory-symlink `file_spec archivea.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archiveb.tar` --keep-old-files || exit 1
tar -x --keep-directory-symlink `file_spec archivec.tar` --keep-old-files && exit 1
clean
done
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "== without_option_normal ==
== with_option_normal ==
== collision_normal ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
== without_option_dir ==
== with_option_dir ==
== collision_dir ==
tar: root/dirsymlink/file.conflict: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "== without_option_normal ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_normal ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
== without_option_dir ==
out
out/root
out/root/dir
out/root/dirsymlink
out/root/dirsymlink/file.conflict
out/root/dirsymlink/filea
out/root/dirsymlink/fileb
== with_option_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dirsymlink
== collision_dir ==
out
out/root
out/root/dir
out/root/dir/file.conflict
out/root/dir/filea
out/root/dir/fileb
out/root/dir/filec
out/root/dirsymlink
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac20.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_103
#AT_START_104
at_fn_group_banner 104 'extrac21.at:31' \
"delay-directory-restore" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "104. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac21.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
mkdir a a/b a/c
genfile --file a/b/D
genfile --file a/c/A
cd a/b
ln -sf ../c/A
cd ../..
chmod a-w a/b
tar --no-recurs -c -f A.tar a a/b a/b/D a/c a/b/A a/c/A
mkdir out
tar -C out -v -x -f A.tar --delay-directory-restore
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac21.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
mkdir a a/b a/c
genfile --file a/b/D
genfile --file a/c/A
cd a/b
ln -sf ../c/A
cd ../..
chmod a-w a/b
tar --no-recurs -c -f A.tar a a/b a/b/D a/c a/b/A a/c/A
mkdir out
tar -C out -v -x -f A.tar --delay-directory-restore
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b/
a/b/D
a/c/
a/b/A
a/c/A
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac21.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_104
#AT_START_105
at_fn_group_banner 105 'extrac22.at:19' \
"delay-directory-restore on reversed ordering" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "105. $at_setup_line: testing $at_desc ..."
$at_traceon
# The --delay-directory-resore option worked incorrectly on archives with
# reversed member ordering (which was documented, anyway). This is illustrated
# in
# http://lists.gnu.org/archive/html/bug-tar/2019-03/msg00022.html
# which was taken as a base for this testcase.
# The bug affected tar versions <= 1.32.
{ set +x
printf "%s\n" "$at_srcdir/extrac22.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac22.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac22.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac22.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac22.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac22.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac22.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac22.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac22.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac22.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac22.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac22.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac22.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "extrac22.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir t
(cd t
genfile --length 100 --file data1
mkdir dir1
cp data1 dir1
mkdir dir2
cd dir2
ln -s ../dir1/data1 data2
cd ..
chmod -w dir2)
cat >filelist <<'_ATEOF'
./dir2/data2
./dir2
./dir1/data1
./dir1
./data1
_ATEOF
tar -C t -c -f a.tar --no-recursion -T filelist
mkdir restore
tar -x -p --delay-directory-restore -C restore -f a.tar
# Previous versions of tar would fail here with the following diagnostics:
# tar: ./dir2/data2: Cannot unlink: Permission denied
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac22.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_105
#AT_START_106
at_fn_group_banner 106 'extrac23.at:18' \
"--no-overwrite-dir" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "106. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Implementation of the --no-overwrite-dir option was flawed in
# tar versions up to 1.32.90. This option is intended to preserve metadata
# of existing directories. In fact it worked only for non-empty directories.
# Moreover, if the actual directory was owned by the user tar runs as and the
# S_IWUSR bit was not set in its actual permissions, tar failed to create files
# in it.
#
# Reported by: Michael Kaufmann <mail@michael-kaufmann.ch>
# References: <20200207112934.Horde.anXzYhAj2CHiwUrw5CuT0G-@webmail.michael-kaufmann.ch>,
# https://lists.gnu.org/archive/html/bug-tar/2020-02/msg00003.html
{ set +x
printf "%s\n" "$at_srcdir/extrac23.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac23.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
400
dir
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac23.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac23.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac23.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
400
dir
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac23.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac23.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac23.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
400
dir
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac23.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac23.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac23.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
400
dir
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac23.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac23.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac23.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
# Test if the directory permissions are restored properly.
mkdir dir
chmod 755 dir
tar cf a.tar dir
chmod 777 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
# Test if temporary permissions are set correctly to allow the owner
# to write to the directory.
genfile --file dir/file
tar cf a.tar dir
rm dir/file
chmod 400 dir
tar -xf a.tar --no-overwrite-dir
genfile --stat=mode.777 dir
chmod 700 dir
find dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "777
400
dir
dir/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/extrac23.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_106
#AT_START_107
at_fn_group_banner 107 'extrac24.at:18' \
"--to-stdout" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "107. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: When extracting over pipe, only regular files should be
# extracted. In tar 1.33 this was broken, so that members of other types
# (in particular, directories) were extracted as usual. This test ensures
# that this is no longer the case.
#
# References: https://bugs.archlinux.org/task/69373,
# https://savannah.gnu.org/bugs/?60002
{ set +x
printf "%s\n" "$at_srcdir/extrac24.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac24.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "TEXT
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/extrac24.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac24.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac24.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "TEXT
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/extrac24.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac24.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac24.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "TEXT
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/extrac24.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac24.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac24.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "TEXT
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/extrac24.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac24.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac24.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir/
echo TEXT > dir/file
tar cf a.tar dir
rm -r dir
tar --extract --to-stdout --file a.tar
test -d dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "TEXT
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/extrac24.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_107
#AT_START_108
at_fn_group_banner 108 'extrac25.at:18' \
"extract over parent dir that is dangling symlink" "" 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "108. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/extrac25.at:21:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac25.at:21"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: subdir: Cannot mkdir: File exists
tar: subdir/a.txt: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "subdir/a.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/extrac25.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac25.at:21:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac25.at:21"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: subdir: Cannot mkdir: File exists
tar: subdir/a.txt: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "subdir/a.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/extrac25.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac25.at:21:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac25.at:21"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: subdir: Cannot mkdir: File exists
tar: subdir/a.txt: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "subdir/a.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/extrac25.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac25.at:21:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac25.at:21"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: subdir: Cannot mkdir: File exists
tar: subdir/a.txt: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "subdir/a.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/extrac25.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/extrac25.at:21:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "extrac25.at:21"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir subdir
touch subdir/a.txt
tar -cf test.tar subdir/a.txt
rm -rf subdir
ln -s does_not_exist subdir
tar -xvf test.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: subdir: Cannot mkdir: File exists
tar: subdir/a.txt: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "subdir/a.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/extrac25.at:21"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_108
#AT_START_109
at_fn_group_banner 109 'backup01.at:33' \
"extracting existing dir with --backup" " " 13
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "109. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/backup01.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir1/
dir1/file1
Renaming 'dir1/file1' to 'dir1/file1~'
dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/backup01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir1/
dir1/file1
Renaming 'dir1/file1' to 'dir1/file1~'
dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/backup01.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir1/
dir1/file1
Renaming 'dir1/file1' to 'dir1/file1~'
dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/backup01.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir1/
dir1/file1
Renaming 'dir1/file1' to 'dir1/file1~'
dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/backup01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
unset VERSION_CONTROL
mkdir dir1 dir2
echo bla > dir1/file1
tar cf test.tar dir1 dir2
tar xfv test.tar --backup --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir1/
dir1/file1
Renaming 'dir1/file1' to 'dir1/file1~'
dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_109
#AT_START_110
at_fn_group_banner 110 'difflink.at:17' \
"link mismatch" " " 14
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "110. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/difflink.at:19:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir a
genfile -f a/x
ln -s x a/y
ln a/x a/z
tar cf a.tar a/x a/y a/z
rm a/z
ln -s x a/z
tar df a.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "difflink.at:19"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir a
genfile -f a/x
ln -s x a/y
ln a/x a/z
tar cf a.tar a/x a/y a/z
rm a/z
ln -s x a/z
tar df a.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/z: Not linked to a/x
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/difflink.at:19"
$at_failed && at_fn_log_failure
$at_traceon; }
# Testing one format is enough
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_110
#AT_START_111
at_fn_group_banner 111 'label01.at:21' \
"single-volume label" " " 15
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "111. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/label01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test
foo
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test
foo
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "label01.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file foo
genfile --file bar
tar -cf archive --label=Test foo bar
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test
foo
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_111
#AT_START_112
at_fn_group_banner 112 'label02.at:21' \
"multi-volume label" " " 15
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "112. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/label02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test Volume 1
foo
bar
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test Volume 1
foo
bar
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "label02.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 0 --file foo
genfile --length 12288 --file bar
genfile --length 12288 --file baz
tar --label=Test -cM -L10 -f 1.tar -f 2.tar -f 3.tar -f 4.tar foo bar baz
tar -Mt -f 1.tar -f 2.tar -f 3.tar -f 4.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Test Volume 1
foo
bar
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_112
#AT_START_113
at_fn_group_banner 113 'label03.at:27' \
"test-label option" " " 15
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "113. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/label03.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho \"# Display label\"
tar --test-label --file=iamanarchive; echo \$?
decho \"# Display label: unlabeled\"
tar --test-label --file=unlabeled.tar; echo \$?
decho \"# Test label: success\"
tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label: failure\"
tar --test-label --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: unlabeled\"
tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
decho \"# Test label, verbose: success\"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label, verbose: failure\"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: multiple arguments\"
tar --test-label --file=iamanarchive a iamalabel b; echo \$?
decho \"# Test label: wildcards\"
tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Display label
# Display label: unlabeled
# Test label: success
# Test label: failure
# Test label: unlabeled
# Test label, verbose: success
# Test label, verbose: failure
tar: Archive label mismatch
# Test label: multiple arguments
# Test label: wildcards
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Display label
iamalabel
0
# Display label: unlabeled
0
# Test label: success
0
# Test label: failure
1
# Test label: unlabeled
1
# Test label, verbose: success
iamalabel
0
# Test label, verbose: failure
iamalabel
1
# Test label: multiple arguments
0
# Test label: wildcards
0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label03.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho \"# Display label\"
tar --test-label --file=iamanarchive; echo \$?
decho \"# Display label: unlabeled\"
tar --test-label --file=unlabeled.tar; echo \$?
decho \"# Test label: success\"
tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label: failure\"
tar --test-label --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: unlabeled\"
tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
decho \"# Test label, verbose: success\"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label, verbose: failure\"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: multiple arguments\"
tar --test-label --file=iamanarchive a iamalabel b; echo \$?
decho \"# Test label: wildcards\"
tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Display label
# Display label: unlabeled
# Test label: success
# Test label: failure
# Test label: unlabeled
# Test label, verbose: success
# Test label, verbose: failure
tar: Archive label mismatch
# Test label: multiple arguments
# Test label: wildcards
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Display label
iamalabel
0
# Display label: unlabeled
0
# Test label: success
0
# Test label: failure
1
# Test label: unlabeled
1
# Test label, verbose: success
iamalabel
0
# Test label, verbose: failure
iamalabel
1
# Test label: multiple arguments
0
# Test label: wildcards
0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label03.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho \"# Display label\"
tar --test-label --file=iamanarchive; echo \$?
decho \"# Display label: unlabeled\"
tar --test-label --file=unlabeled.tar; echo \$?
decho \"# Test label: success\"
tar --test-label --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label: failure\"
tar --test-label --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: unlabeled\"
tar --test-label --file=unlabeled.tar 'amalabel'; echo \$?
decho \"# Test label, verbose: success\"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo \$?
decho \"# Test label, verbose: failure\"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo \$?
decho \"# Test label: multiple arguments\"
tar --test-label --file=iamanarchive a iamalabel b; echo \$?
decho \"# Test label: wildcards\"
tar --test-label --file=iamanarchive --wildcards '*label'; echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "label03.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
tar -c --label='iamalabel' --file iamanarchive file
tar -c --file unlabeled.tar file
decho "# Display label"
tar --test-label --file=iamanarchive; echo $?
decho "# Display label: unlabeled"
tar --test-label --file=unlabeled.tar; echo $?
decho "# Test label: success"
tar --test-label --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label: failure"
tar --test-label --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: unlabeled"
tar --test-label --file=unlabeled.tar 'amalabel'; echo $?
decho "# Test label, verbose: success"
tar --test-label --verbose --file=iamanarchive 'iamalabel'; echo $?
decho "# Test label, verbose: failure"
tar --test-label --verbose --file=iamanarchive 'amalabel'; echo $?
decho "# Test label: multiple arguments"
tar --test-label --file=iamanarchive a iamalabel b; echo $?
decho "# Test label: wildcards"
tar --test-label --file=iamanarchive --wildcards '*label'; echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Display label
# Display label: unlabeled
# Test label: success
# Test label: failure
# Test label: unlabeled
# Test label, verbose: success
# Test label, verbose: failure
tar: Archive label mismatch
# Test label: multiple arguments
# Test label: wildcards
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Display label
iamalabel
0
# Display label: unlabeled
0
# Test label: success
0
# Test label: failure
1
# Test label: unlabeled
1
# Test label, verbose: success
iamalabel
0
# Test label, verbose: failure
iamalabel
1
# Test label: multiple arguments
0
# Test label: wildcards
0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label03.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_113
#AT_START_114
at_fn_group_banner 114 'label04.at:27' \
"label with non-create option" " " 15
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "114. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/label04.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive --label='New volume' file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive --label='New volume' file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Volume 'New volume' does not match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label04.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive --label='New volume' file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive --label='New volume' file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Volume 'New volume' does not match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label04.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive --label='New volume' file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive --label='New volume' file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label04.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive --label='New volume' file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive --label='New volume' file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Volume 'New volume' does not match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_114
#AT_START_115
at_fn_group_banner 115 'label05.at:24' \
"label with non-create option" " " 15
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "115. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/label05.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Archive not labeled to match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label05.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Archive not labeled to match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/label05.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho \"# Create volume\"
tar -c -f archive file
decho \"# Update: wrong label\"
tar -rf archive --label='My volume' file; echo \$?
decho \"# Update: right label\"
tar -rf archive file
)"
at_fn_check_prepare_notrace 'an embedded newline' "label05.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --file file
decho "# Create volume"
tar -c -f archive file
decho "# Update: wrong label"
tar -rf archive --label='My volume' file; echo $?
decho "# Update: right label"
tar -rf archive file
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "# Create volume
# Update: wrong label
tar: Archive not labeled to match 'My volume'
tar: Error is not recoverable: exiting now
# Update: right label
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Create volume
# Update: wrong label
2
# Update: right label
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/label05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_115
#AT_START_116
at_fn_group_banner 116 'incremental.at:23' \
"incremental" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "116. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incremental.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created \"on or after\" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)"
at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "structure/
separator
structure/
structure/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incremental.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created \"on or after\" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)"
at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "structure/
separator
structure/
structure/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incremental.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created \"on or after\" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)"
at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir structure
echo x >structure/file
# On Nextstep (and perhaps other 4.3BSD systems),
# a newly created file's ctime isn't updated
# until the next sync or stat operation on the file.
ls -l structure/file >/dev/null
# If the time of an initial backup and the creation time of a file contained
# in that backup are the same, the file will be backed up again when an
# incremental backup is done, because the incremental backup backs up
# files created "on or after" the initial backup time. Without the sleep
# command, behaviour of tar becomes variable, depending whether the system
# clock ticked over to the next second between creating the file and
# backing it up.
sleep 1
tar cf archive --listed=list structure
tar cfv archive --listed=list structure
echo separator
# ReiserFS often offsets the timestamps of newly created files
# 1 second to the past. Try to compensate for it, until a better
# solution is found.
sleep 2
echo y >structure/file
tar cfv archive --listed=list structure
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "structure/
separator
structure/
structure/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_116
#AT_START_117
at_fn_group_banner 117 'incr01.at:27' \
"restore broken symlinks from incremental" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "117. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
\$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/bar
separator
directory/
tar: Deleting 'directory/bar'
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
\$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/bar
separator
directory/
tar: Deleting 'directory/bar'
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
\$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
$as_ln_s foo directory/bar
tar -cf archive.0 -g db directory
rm directory/bar
tar -cf archive.1 -g db directory
mv directory orig
tar xvfg archive.0 /dev/null --warning=no-timestamp
echo separator
tar xvfg archive.1 /dev/null --warning=no-timestamp
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/bar
separator
directory/
tar: Deleting 'directory/bar'
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_117
#AT_START_118
at_fn_group_banner 118 'incr02.at:32' \
"restoring timestamps from incremental" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "118. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr02.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr02.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr02.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
# Create directory structure
mkdir dir
mkdir dir/subdir1
mkdir dir/subdir2
genfile --length 10 --file dir/subdir1/file
# Save mtime for later comparison
genfile --stat=mtime dir/subdir1 > ts
# Create an archive. Using incremental mode makes sure the
# archive will have a directory-first member ordering,
# i.e.:
# dir/
# dir/subdir1/
# dir/subdir2/
# dir/subdir1/foofile
#
# When restoring from this directory structure, 'dir/subdir2/' used to
# trigger apply_nonancestor_delayed_set_stat() which restored stats for
# 'subdir1' prior to restoring 'dir/subdir1/foofile'. Then, restoring the
# latter clobbered the directory timestamp.
tar -cf archive -g db dir
# Move away the directory
mv dir orig
# Wait enough time for timestamps to differ in case of failure.
sleep 5
# Restore the directory
tar -xf archive dir
# Check the timestamp
genfile --stat=mtime dir/subdir1 | diff ts -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_118
#AT_START_119
at_fn_group_banner 119 'listed01.at:26' \
"--listed for individual files" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "119. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/listed01.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1
tar --create \\
--file=archive.1 \\
--listed-incremental=listing \\
directory/file*
tar tf archive.1 || exit 1
sleep 2
genfile --length 10240 --pattern zeros --file directory/file2
echo \"separator\"
cp listing listing.old
tar --create \\
--file=archive.2 \\
--listed-incremental=listing \\
directory/file* || exit 1
tar tf archive.2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1
tar --create \
--file=archive.1 \
--listed-incremental=listing \
directory/file*
tar tf archive.1 || exit 1
sleep 2
genfile --length 10240 --pattern zeros --file directory/file2
echo "separator"
cp listing listing.old
tar --create \
--file=archive.2 \
--listed-incremental=listing \
directory/file* || exit 1
tar tf archive.2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/file1
separator
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/listed01.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1
tar --create \\
--file=archive.1 \\
--listed-incremental=listing \\
directory/file*
tar tf archive.1 || exit 1
sleep 2
genfile --length 10240 --pattern zeros --file directory/file2
echo \"separator\"
cp listing listing.old
tar --create \\
--file=archive.2 \\
--listed-incremental=listing \\
directory/file* || exit 1
tar tf archive.2 || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
# Let the things settle
sleep 1
tar --create \
--file=archive.1 \
--listed-incremental=listing \
directory/file*
tar tf archive.1 || exit 1
sleep 2
genfile --length 10240 --pattern zeros --file directory/file2
echo "separator"
cp listing listing.old
tar --create \
--file=archive.2 \
--listed-incremental=listing \
directory/file* || exit 1
tar tf archive.2 || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/file1
separator
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_119
#AT_START_120
at_fn_group_banner 120 'listed02.at:28' \
"working --listed" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "120. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/listed02.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
echo Create directories
mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1
for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
echo File \$file > \$file
sleep 1
done
sleep 1
echo Creating main archive
echo >&2 \"Creating main archive\"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err
sleep 1
echo Modifying filesystem
rm tart/a1
mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3
echo Directory contents
find tart -print | sort 2>/dev/null
sleep 1
echo Creating incremental archive
echo >&2 \"Creating incremental archive\"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
echo >&2 \"Extracting main archive\"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
echo Final files:
find tart -print | sort 2>/dev/null
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
echo Create directories
mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1
for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
echo File $file > $file
sleep 1
done
sleep 1
echo Creating main archive
echo >&2 "Creating main archive"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err
sleep 1
echo Modifying filesystem
rm tart/a1
mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3
echo Directory contents
find tart -print | sort 2>/dev/null
sleep 1
echo Creating incremental archive
echo >&2 "Creating incremental archive"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
echo >&2 "Extracting main archive"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
echo Final files:
find tart -print | sort 2>/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating main archive
tar: tart/c0: Directory is new
tar: tart/c1: Directory is new
tar: tart: Directory is new
Creating incremental archive
tar: tart/c2: Directory has been renamed from 'tart/c1'
Extracting main archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create directories
Creating main archive
tart/
tart/c0/
tart/c1/
tart/a1
tart/b1
tart/c0/cq1
tart/c0/cq2
tart/c1/ca1
tart/c1/ca2
Modifying filesystem
Directory contents
tart
tart/b2
tart/c0
tart/c0/cq1
tart/c0/cq2
tart/c2
tart/c2/ca1
tart/c2/ca2
tart/c2/ca3
Creating incremental archive
tart/
tart/c0/
tart/c2/
tart/b2
tart/c2/ca3
Extracting main archive
tart/
tart/c0/
tart/c1/
tart/a1
tart/b1
tart/c0/cq1
tart/c0/cq2
tart/c1/ca1
tart/c1/ca2
Extracting incremental archive
tar: Deleting 'tart/a1'
tar: Deleting 'tart/b1'
tart/
tart/b2
tart/c0/
tart/c2/
tart/c2/ca3
Final files:
tart
tart/b2
tart/c0
tart/c0/cq1
tart/c0/cq2
tart/c2
tart/c2/ca1
tart/c2/ca2
tart/c2/ca3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/listed02.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
echo Create directories
mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1
for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
echo File \$file > \$file
sleep 1
done
sleep 1
echo Creating main archive
echo >&2 \"Creating main archive\"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err
sleep 1
echo Modifying filesystem
rm tart/a1
mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3
echo Directory contents
find tart -print | sort 2>/dev/null
sleep 1
echo Creating incremental archive
echo >&2 \"Creating incremental archive\"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
echo >&2 \"Extracting main archive\"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
echo Final files:
find tart -print | sort 2>/dev/null
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
echo Create directories
mkdir tart
sleep 1
mkdir tart/c0
sleep 1
mkdir tart/c1
sleep 1
for file in tart/a1 tart/b1 tart/c0/cq1 tart/c0/cq2 tart/c1/ca1 tart/c1/ca2
do
echo File $file > $file
sleep 1
done
sleep 1
echo Creating main archive
echo >&2 "Creating main archive"
tar -c -v --listed-incremental=tart.incr1 -f archive.1 tart 2> err || exit 1
# The above prints two lines to stderr announcing the new directories c0 and c1.
# Ensure that they appear in this script's stderr in sorted order.
sort err 1>&2; rm -f err
sleep 1
echo Modifying filesystem
rm tart/a1
mv tart/b1 tart/b2
mv tart/c1 tart/c2
touch tart/c2/ca3
echo Directory contents
find tart -print | sort 2>/dev/null
sleep 1
echo Creating incremental archive
echo >&2 "Creating incremental archive"
cp -p tart.incr1 tart.incr2
tar -c -v --listed-incremental=tart.incr2 -f archive.2 tart || exit 1
sleep 1
rm -rf tart/*
echo Extracting main archive
echo >&2 "Extracting main archive"
tar -x -v --listed-incremental=tart.incr1 -f archive.1 || exit 1
echo Extracting incremental archive
# This command should produce three messages about deletion
# of the existing files, that may appear in any order. Piping
# to sort makes sure we don't depend on any particular ordering.
tar -x -v --listed-incremental=tart.incr2 -f archive.2 | sort 2>/dev/null
echo Final files:
find tart -print | sort 2>/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating main archive
tar: tart/c0: Directory is new
tar: tart/c1: Directory is new
tar: tart: Directory is new
Creating incremental archive
tar: tart/c2: Directory has been renamed from 'tart/c1'
Extracting main archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create directories
Creating main archive
tart/
tart/c0/
tart/c1/
tart/a1
tart/b1
tart/c0/cq1
tart/c0/cq2
tart/c1/ca1
tart/c1/ca2
Modifying filesystem
Directory contents
tart
tart/b2
tart/c0
tart/c0/cq1
tart/c0/cq2
tart/c2
tart/c2/ca1
tart/c2/ca2
tart/c2/ca3
Creating incremental archive
tart/
tart/c0/
tart/c2/
tart/b2
tart/c2/ca3
Extracting main archive
tart/
tart/c0/
tart/c1/
tart/a1
tart/b1
tart/c0/cq1
tart/c0/cq2
tart/c1/ca1
tart/c1/ca2
Extracting incremental archive
tar: Deleting 'tart/a1'
tar: Deleting 'tart/b1'
tart/
tart/b2
tart/c0/
tart/c2/
tart/c2/ca3
Final files:
tart
tart/b2
tart/c0
tart/c0/cq1
tart/c0/cq2
tart/c2
tart/c2/ca1
tart/c2/ca2
tart/c2/ca3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_120
#AT_START_121
at_fn_group_banner 121 'listed03.at:24' \
"incremental dump when the parent directory is unreadable" "" 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "121. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/listed03.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
genfile --file dir/sub/a/file
cd dir/sub
chmod a-r ..
tar -c -f archive.tar --listed-incremental=db.1 -v a 2>err
status=\$?
chmod a+r ..
if test \$status -eq 2; then
grep '^tar: \\.: Cannot getcwd' err >/dev/null 2>&1 && exit 77
fi
cat err >&2
exit \$status
)"
at_fn_check_prepare_notrace 'an embedded newline' "listed03.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
genfile --file dir/sub/a/file
cd dir/sub
chmod a-r ..
tar -c -f archive.tar --listed-incremental=db.1 -v a 2>err
status=$?
chmod a+r ..
if test $status -eq 2; then
grep '^tar: \.: Cannot getcwd' err >/dev/null 2>&1 && exit 77
fi
cat err >&2
exit $status
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: a: Directory is new
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_121
#AT_START_122
at_fn_group_banner 122 'listed04.at:26' \
"--listed-incremental and --one-file-system" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "122. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/listed04.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
echo a >dir/a
echo b >dir/b
tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
tar -tf archive.tar || exit
)"
at_fn_check_prepare_notrace 'an embedded newline' "listed04.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
echo a >dir/a
echo b >dir/b
tar --one-file-system -cvf archive.tar -g archive.incr dir || exit
tar -tf archive.tar || exit
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/a
dir/b
dir/
dir/a
dir/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_122
#AT_START_123
at_fn_group_banner 123 'listed05.at:33' \
"--listed-incremental and remounted directories" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "123. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/listed05.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
options=\"-C tartest --create --one-file-system --verbose\"
rm -rf archive-01.snar archive-01.tar tartest subdir
# Create initial structure
mkdir tartest
echo \"hi\" > tartest/top-level-file
mkdir tartest/subdir
echo \"hi\" > tartest/subdir/subdir-file
echo \"# Level 0\"
tar \$options --file archive-0.tar --listed-incremental=archive-0.snar .
echo \"# Remount\"
mv tartest/subdir .
mkdir tartest/subdir
mount -t ramfs none tartest/subdir || exit 77
tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -
echo \"# Level 1\"
cp archive-0.snar archive-1.snar
tar \$options --file archive-1.tar --listed-incremental=archive-1.snar .
umount tartest/subdir
)"
at_fn_check_prepare_notrace 'an embedded newline' "listed05.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
options="-C tartest --create --one-file-system --verbose"
rm -rf archive-01.snar archive-01.tar tartest subdir
# Create initial structure
mkdir tartest
echo "hi" > tartest/top-level-file
mkdir tartest/subdir
echo "hi" > tartest/subdir/subdir-file
echo "# Level 0"
tar $options --file archive-0.tar --listed-incremental=archive-0.snar .
echo "# Remount"
mv tartest/subdir .
mkdir tartest/subdir
mount -t ramfs none tartest/subdir || exit 77
tar -C subdir -c -f - . | tar -C tartest/subdir -x -f -
echo "# Level 1"
cp archive-0.snar archive-1.snar
tar $options --file archive-1.tar --listed-incremental=archive-1.snar .
umount tartest/subdir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: .: Directory is new
tar: ./subdir: Directory is new
tar: ./subdir: directory is on a different filesystem; not dumped
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "# Level 0
./
./subdir/
./top-level-file
./subdir/subdir-file
# Remount
# Level 1
./
./subdir/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/listed05.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_123
#AT_START_124
at_fn_group_banner 124 'incr03.at:28' \
"renamed files in incrementals" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "124. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr03.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Listing of archive.1
directory/
directory/x
directory/y
Listing of archive.2
directory/
directory/z
Directory after first restore
directory
directory/x
directory/y
Directory after second restore
directory
directory/y
directory/z
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr03.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Listing of archive.1
directory/
directory/x
directory/y
Listing of archive.2
directory/
directory/z
Directory after first restore
directory
directory/x
directory/y
Directory after second restore
directory
directory/y
directory/z
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr03.at:31:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --file=directory/x
genfile --file=directory/y
sleep 1
tar -cf archive.1 -g db directory
mv directory/x directory/z
cp db db.old
tar -cf archive.2 -g db directory
mv directory orig
echo Listing of archive.1
tar -tf archive.1 | sort
echo Listing of archive.2
tar -tf archive.2 | sort
echo Directory after first restore
tar -xf archive.1 -g db --warning=no-timestamp
find directory | sort
echo Directory after second restore
tar -xf archive.2 -g db --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Listing of archive.1
directory/
directory/x
directory/y
Listing of archive.2
directory/
directory/z
Directory after first restore
directory
directory/x
directory/y
Directory after second restore
directory
directory/y
directory/z
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_124
#AT_START_125
at_fn_group_banner 125 'incr04.at:29' \
"proper icontents initialization" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "125. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr04.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo \"Initial dump\"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo \"Incremental dump\"
tar cvf a1.tar -g a.sna a
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf("a/b/one_31_chars_long_file_name_%03d\n", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: a: Directory is new
tar: a/b: Directory is new
tar: a/c: Directory has been renamed from 'a/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Initial dump
a/
a/b/
a/b/one_31_chars_long_file_name_001
a/b/one_31_chars_long_file_name_002
a/b/one_31_chars_long_file_name_003
a/b/one_31_chars_long_file_name_004
a/b/one_31_chars_long_file_name_005
a/b/one_31_chars_long_file_name_006
a/b/one_31_chars_long_file_name_007
a/b/one_31_chars_long_file_name_008
a/b/one_31_chars_long_file_name_009
a/b/one_31_chars_long_file_name_010
a/b/one_31_chars_long_file_name_011
a/b/one_31_chars_long_file_name_012
a/b/one_31_chars_long_file_name_013
a/b/one_31_chars_long_file_name_014
a/b/one_31_chars_long_file_name_015
a/b/one_31_chars_long_file_name_016
a/b/one_31_chars_long_file_name_017
a/b/one_31_chars_long_file_name_018
a/b/one_31_chars_long_file_name_019
a/b/one_31_chars_long_file_name_020
a/b/one_31_chars_long_file_name_021
a/b/one_31_chars_long_file_name_022
a/b/one_31_chars_long_file_name_023
a/b/one_31_chars_long_file_name_024
a/b/one_31_chars_long_file_name_025
a/b/one_31_chars_long_file_name_026
a/b/one_31_chars_long_file_name_027
a/b/one_31_chars_long_file_name_028
a/b/one_31_chars_long_file_name_029
a/b/one_31_chars_long_file_name_030
a/b/one_31_chars_long_file_name_031
a/b/one_31_chars_long_file_name_032
a/b/one_31_chars_long_file_name_033
a/b/one_31_chars_long_file_name_034
a/b/one_31_chars_long_file_name_035
a/b/one_31_chars_long_file_name_036
a/b/one_31_chars_long_file_name_037
a/b/one_31_chars_long_file_name_038
a/b/one_31_chars_long_file_name_039
a/b/one_31_chars_long_file_name_040
a/b/one_31_chars_long_file_name_041
a/b/one_31_chars_long_file_name_042
a/b/one_31_chars_long_file_name_043
a/b/one_31_chars_long_file_name_044
a/b/one_31_chars_long_file_name_045
a/b/one_31_chars_long_file_name_046
a/b/one_31_chars_long_file_name_047
a/b/one_31_chars_long_file_name_048
a/b/one_31_chars_long_file_name_049
a/b/one_31_chars_long_file_name_050
a/b/one_31_chars_long_file_name_051
a/b/one_31_chars_long_file_name_052
a/b/one_31_chars_long_file_name_053
a/b/one_31_chars_long_file_name_054
a/b/one_31_chars_long_file_name_055
a/b/one_31_chars_long_file_name_056
a/b/one_31_chars_long_file_name_057
a/b/one_31_chars_long_file_name_058
a/b/one_31_chars_long_file_name_059
a/b/one_31_chars_long_file_name_060
a/b/one_31_chars_long_file_name_061
a/b/one_31_chars_long_file_name_062
a/b/one_31_chars_long_file_name_063
a/b/one_31_chars_long_file_name_064
a/b/one_31_chars_long_file_name_065
a/b/one_31_chars_long_file_name_066
a/b/one_31_chars_long_file_name_067
a/b/one_31_chars_long_file_name_068
a/b/one_31_chars_long_file_name_069
a/b/one_31_chars_long_file_name_070
a/b/one_31_chars_long_file_name_071
a/b/one_31_chars_long_file_name_072
a/b/one_31_chars_long_file_name_073
a/b/one_31_chars_long_file_name_074
a/b/one_31_chars_long_file_name_075
a/b/one_31_chars_long_file_name_076
a/b/one_31_chars_long_file_name_077
a/b/one_31_chars_long_file_name_078
a/b/one_31_chars_long_file_name_079
a/b/one_31_chars_long_file_name_080
a/b/one_31_chars_long_file_name_081
a/b/one_31_chars_long_file_name_082
a/b/one_31_chars_long_file_name_083
a/b/one_31_chars_long_file_name_084
a/b/one_31_chars_long_file_name_085
a/b/one_31_chars_long_file_name_086
a/b/one_31_chars_long_file_name_087
a/b/one_31_chars_long_file_name_088
a/b/one_31_chars_long_file_name_089
a/b/one_31_chars_long_file_name_090
a/b/one_31_chars_long_file_name_091
a/b/one_31_chars_long_file_name_092
a/b/one_31_chars_long_file_name_093
a/b/one_31_chars_long_file_name_094
a/b/one_31_chars_long_file_name_095
a/b/one_31_chars_long_file_name_096
a/b/one_31_chars_long_file_name_097
a/b/one_31_chars_long_file_name_098
a/b/one_31_chars_long_file_name_099
a/b/one_31_chars_long_file_name_100
a/b/one_31_chars_long_file_name_101
a/b/one_31_chars_long_file_name_102
a/b/one_31_chars_long_file_name_103
a/b/one_31_chars_long_file_name_104
a/b/one_31_chars_long_file_name_105
a/b/one_31_chars_long_file_name_106
a/b/one_31_chars_long_file_name_107
a/b/one_31_chars_long_file_name_108
a/b/one_31_chars_long_file_name_109
a/b/one_31_chars_long_file_name_110
a/b/one_31_chars_long_file_name_111
a/b/one_31_chars_long_file_name_112
a/b/one_31_chars_long_file_name_113
a/b/one_31_chars_long_file_name_114
a/b/one_31_chars_long_file_name_115
a/b/one_31_chars_long_file_name_116
a/b/one_31_chars_long_file_name_117
a/b/one_31_chars_long_file_name_118
a/b/one_31_chars_long_file_name_119
a/b/one_31_chars_long_file_name_120
a/b/one_31_chars_long_file_name_121
a/b/one_31_chars_long_file_name_122
a/b/one_31_chars_long_file_name_123
a/b/one_31_chars_long_file_name_124
a/b/one_31_chars_long_file_name_125
a/b/one_31_chars_long_file_name_126
a/b/one_31_chars_long_file_name_127
a/b/one_31_chars_long_file_name_128
a/b/one_31_chars_long_file_name_129
a/b/one_31_chars_long_file_name_130
a/b/one_31_chars_long_file_name_131
a/b/one_31_chars_long_file_name_132
a/b/one_31_chars_long_file_name_133
a/b/one_31_chars_long_file_name_134
a/b/one_31_chars_long_file_name_135
a/b/one_31_chars_long_file_name_136
a/b/one_31_chars_long_file_name_137
a/b/one_31_chars_long_file_name_138
a/b/one_31_chars_long_file_name_139
a/b/one_31_chars_long_file_name_140
a/b/one_31_chars_long_file_name_141
a/b/one_31_chars_long_file_name_142
Incremental dump
a/
a/c/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr04.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo \"Initial dump\"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo \"Incremental dump\"
tar cvf a1.tar -g a.sna a
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf("a/b/one_31_chars_long_file_name_%03d\n", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: a: Directory is new
tar: a/b: Directory is new
tar: a/c: Directory has been renamed from 'a/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Initial dump
a/
a/b/
a/b/one_31_chars_long_file_name_001
a/b/one_31_chars_long_file_name_002
a/b/one_31_chars_long_file_name_003
a/b/one_31_chars_long_file_name_004
a/b/one_31_chars_long_file_name_005
a/b/one_31_chars_long_file_name_006
a/b/one_31_chars_long_file_name_007
a/b/one_31_chars_long_file_name_008
a/b/one_31_chars_long_file_name_009
a/b/one_31_chars_long_file_name_010
a/b/one_31_chars_long_file_name_011
a/b/one_31_chars_long_file_name_012
a/b/one_31_chars_long_file_name_013
a/b/one_31_chars_long_file_name_014
a/b/one_31_chars_long_file_name_015
a/b/one_31_chars_long_file_name_016
a/b/one_31_chars_long_file_name_017
a/b/one_31_chars_long_file_name_018
a/b/one_31_chars_long_file_name_019
a/b/one_31_chars_long_file_name_020
a/b/one_31_chars_long_file_name_021
a/b/one_31_chars_long_file_name_022
a/b/one_31_chars_long_file_name_023
a/b/one_31_chars_long_file_name_024
a/b/one_31_chars_long_file_name_025
a/b/one_31_chars_long_file_name_026
a/b/one_31_chars_long_file_name_027
a/b/one_31_chars_long_file_name_028
a/b/one_31_chars_long_file_name_029
a/b/one_31_chars_long_file_name_030
a/b/one_31_chars_long_file_name_031
a/b/one_31_chars_long_file_name_032
a/b/one_31_chars_long_file_name_033
a/b/one_31_chars_long_file_name_034
a/b/one_31_chars_long_file_name_035
a/b/one_31_chars_long_file_name_036
a/b/one_31_chars_long_file_name_037
a/b/one_31_chars_long_file_name_038
a/b/one_31_chars_long_file_name_039
a/b/one_31_chars_long_file_name_040
a/b/one_31_chars_long_file_name_041
a/b/one_31_chars_long_file_name_042
a/b/one_31_chars_long_file_name_043
a/b/one_31_chars_long_file_name_044
a/b/one_31_chars_long_file_name_045
a/b/one_31_chars_long_file_name_046
a/b/one_31_chars_long_file_name_047
a/b/one_31_chars_long_file_name_048
a/b/one_31_chars_long_file_name_049
a/b/one_31_chars_long_file_name_050
a/b/one_31_chars_long_file_name_051
a/b/one_31_chars_long_file_name_052
a/b/one_31_chars_long_file_name_053
a/b/one_31_chars_long_file_name_054
a/b/one_31_chars_long_file_name_055
a/b/one_31_chars_long_file_name_056
a/b/one_31_chars_long_file_name_057
a/b/one_31_chars_long_file_name_058
a/b/one_31_chars_long_file_name_059
a/b/one_31_chars_long_file_name_060
a/b/one_31_chars_long_file_name_061
a/b/one_31_chars_long_file_name_062
a/b/one_31_chars_long_file_name_063
a/b/one_31_chars_long_file_name_064
a/b/one_31_chars_long_file_name_065
a/b/one_31_chars_long_file_name_066
a/b/one_31_chars_long_file_name_067
a/b/one_31_chars_long_file_name_068
a/b/one_31_chars_long_file_name_069
a/b/one_31_chars_long_file_name_070
a/b/one_31_chars_long_file_name_071
a/b/one_31_chars_long_file_name_072
a/b/one_31_chars_long_file_name_073
a/b/one_31_chars_long_file_name_074
a/b/one_31_chars_long_file_name_075
a/b/one_31_chars_long_file_name_076
a/b/one_31_chars_long_file_name_077
a/b/one_31_chars_long_file_name_078
a/b/one_31_chars_long_file_name_079
a/b/one_31_chars_long_file_name_080
a/b/one_31_chars_long_file_name_081
a/b/one_31_chars_long_file_name_082
a/b/one_31_chars_long_file_name_083
a/b/one_31_chars_long_file_name_084
a/b/one_31_chars_long_file_name_085
a/b/one_31_chars_long_file_name_086
a/b/one_31_chars_long_file_name_087
a/b/one_31_chars_long_file_name_088
a/b/one_31_chars_long_file_name_089
a/b/one_31_chars_long_file_name_090
a/b/one_31_chars_long_file_name_091
a/b/one_31_chars_long_file_name_092
a/b/one_31_chars_long_file_name_093
a/b/one_31_chars_long_file_name_094
a/b/one_31_chars_long_file_name_095
a/b/one_31_chars_long_file_name_096
a/b/one_31_chars_long_file_name_097
a/b/one_31_chars_long_file_name_098
a/b/one_31_chars_long_file_name_099
a/b/one_31_chars_long_file_name_100
a/b/one_31_chars_long_file_name_101
a/b/one_31_chars_long_file_name_102
a/b/one_31_chars_long_file_name_103
a/b/one_31_chars_long_file_name_104
a/b/one_31_chars_long_file_name_105
a/b/one_31_chars_long_file_name_106
a/b/one_31_chars_long_file_name_107
a/b/one_31_chars_long_file_name_108
a/b/one_31_chars_long_file_name_109
a/b/one_31_chars_long_file_name_110
a/b/one_31_chars_long_file_name_111
a/b/one_31_chars_long_file_name_112
a/b/one_31_chars_long_file_name_113
a/b/one_31_chars_long_file_name_114
a/b/one_31_chars_long_file_name_115
a/b/one_31_chars_long_file_name_116
a/b/one_31_chars_long_file_name_117
a/b/one_31_chars_long_file_name_118
a/b/one_31_chars_long_file_name_119
a/b/one_31_chars_long_file_name_120
a/b/one_31_chars_long_file_name_121
a/b/one_31_chars_long_file_name_122
a/b/one_31_chars_long_file_name_123
a/b/one_31_chars_long_file_name_124
a/b/one_31_chars_long_file_name_125
a/b/one_31_chars_long_file_name_126
a/b/one_31_chars_long_file_name_127
a/b/one_31_chars_long_file_name_128
a/b/one_31_chars_long_file_name_129
a/b/one_31_chars_long_file_name_130
a/b/one_31_chars_long_file_name_131
a/b/one_31_chars_long_file_name_132
a/b/one_31_chars_long_file_name_133
a/b/one_31_chars_long_file_name_134
a/b/one_31_chars_long_file_name_135
a/b/one_31_chars_long_file_name_136
a/b/one_31_chars_long_file_name_137
a/b/one_31_chars_long_file_name_138
a/b/one_31_chars_long_file_name_139
a/b/one_31_chars_long_file_name_140
a/b/one_31_chars_long_file_name_141
a/b/one_31_chars_long_file_name_142
Incremental dump
a/
a/c/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr04.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf(\"a/b/one_31_chars_long_file_name_%03d\\n\", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo \"Initial dump\"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo \"Incremental dump\"
tar cvf a1.tar -g a.sna a
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
install-sh -d a/b >/dev/null || exit 77
awk 'BEGIN {
for (i=1;i<=142;i++)
printf("a/b/one_31_chars_long_file_name_%03d\n", i);
}' < /dev/null | genfile --files-from -
sleep 1
echo "Initial dump"
tar cvf a0.tar -g a.sna a
mv a/b a/c
echo "Incremental dump"
tar cvf a1.tar -g a.sna a
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: a: Directory is new
tar: a/b: Directory is new
tar: a/c: Directory has been renamed from 'a/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Initial dump
a/
a/b/
a/b/one_31_chars_long_file_name_001
a/b/one_31_chars_long_file_name_002
a/b/one_31_chars_long_file_name_003
a/b/one_31_chars_long_file_name_004
a/b/one_31_chars_long_file_name_005
a/b/one_31_chars_long_file_name_006
a/b/one_31_chars_long_file_name_007
a/b/one_31_chars_long_file_name_008
a/b/one_31_chars_long_file_name_009
a/b/one_31_chars_long_file_name_010
a/b/one_31_chars_long_file_name_011
a/b/one_31_chars_long_file_name_012
a/b/one_31_chars_long_file_name_013
a/b/one_31_chars_long_file_name_014
a/b/one_31_chars_long_file_name_015
a/b/one_31_chars_long_file_name_016
a/b/one_31_chars_long_file_name_017
a/b/one_31_chars_long_file_name_018
a/b/one_31_chars_long_file_name_019
a/b/one_31_chars_long_file_name_020
a/b/one_31_chars_long_file_name_021
a/b/one_31_chars_long_file_name_022
a/b/one_31_chars_long_file_name_023
a/b/one_31_chars_long_file_name_024
a/b/one_31_chars_long_file_name_025
a/b/one_31_chars_long_file_name_026
a/b/one_31_chars_long_file_name_027
a/b/one_31_chars_long_file_name_028
a/b/one_31_chars_long_file_name_029
a/b/one_31_chars_long_file_name_030
a/b/one_31_chars_long_file_name_031
a/b/one_31_chars_long_file_name_032
a/b/one_31_chars_long_file_name_033
a/b/one_31_chars_long_file_name_034
a/b/one_31_chars_long_file_name_035
a/b/one_31_chars_long_file_name_036
a/b/one_31_chars_long_file_name_037
a/b/one_31_chars_long_file_name_038
a/b/one_31_chars_long_file_name_039
a/b/one_31_chars_long_file_name_040
a/b/one_31_chars_long_file_name_041
a/b/one_31_chars_long_file_name_042
a/b/one_31_chars_long_file_name_043
a/b/one_31_chars_long_file_name_044
a/b/one_31_chars_long_file_name_045
a/b/one_31_chars_long_file_name_046
a/b/one_31_chars_long_file_name_047
a/b/one_31_chars_long_file_name_048
a/b/one_31_chars_long_file_name_049
a/b/one_31_chars_long_file_name_050
a/b/one_31_chars_long_file_name_051
a/b/one_31_chars_long_file_name_052
a/b/one_31_chars_long_file_name_053
a/b/one_31_chars_long_file_name_054
a/b/one_31_chars_long_file_name_055
a/b/one_31_chars_long_file_name_056
a/b/one_31_chars_long_file_name_057
a/b/one_31_chars_long_file_name_058
a/b/one_31_chars_long_file_name_059
a/b/one_31_chars_long_file_name_060
a/b/one_31_chars_long_file_name_061
a/b/one_31_chars_long_file_name_062
a/b/one_31_chars_long_file_name_063
a/b/one_31_chars_long_file_name_064
a/b/one_31_chars_long_file_name_065
a/b/one_31_chars_long_file_name_066
a/b/one_31_chars_long_file_name_067
a/b/one_31_chars_long_file_name_068
a/b/one_31_chars_long_file_name_069
a/b/one_31_chars_long_file_name_070
a/b/one_31_chars_long_file_name_071
a/b/one_31_chars_long_file_name_072
a/b/one_31_chars_long_file_name_073
a/b/one_31_chars_long_file_name_074
a/b/one_31_chars_long_file_name_075
a/b/one_31_chars_long_file_name_076
a/b/one_31_chars_long_file_name_077
a/b/one_31_chars_long_file_name_078
a/b/one_31_chars_long_file_name_079
a/b/one_31_chars_long_file_name_080
a/b/one_31_chars_long_file_name_081
a/b/one_31_chars_long_file_name_082
a/b/one_31_chars_long_file_name_083
a/b/one_31_chars_long_file_name_084
a/b/one_31_chars_long_file_name_085
a/b/one_31_chars_long_file_name_086
a/b/one_31_chars_long_file_name_087
a/b/one_31_chars_long_file_name_088
a/b/one_31_chars_long_file_name_089
a/b/one_31_chars_long_file_name_090
a/b/one_31_chars_long_file_name_091
a/b/one_31_chars_long_file_name_092
a/b/one_31_chars_long_file_name_093
a/b/one_31_chars_long_file_name_094
a/b/one_31_chars_long_file_name_095
a/b/one_31_chars_long_file_name_096
a/b/one_31_chars_long_file_name_097
a/b/one_31_chars_long_file_name_098
a/b/one_31_chars_long_file_name_099
a/b/one_31_chars_long_file_name_100
a/b/one_31_chars_long_file_name_101
a/b/one_31_chars_long_file_name_102
a/b/one_31_chars_long_file_name_103
a/b/one_31_chars_long_file_name_104
a/b/one_31_chars_long_file_name_105
a/b/one_31_chars_long_file_name_106
a/b/one_31_chars_long_file_name_107
a/b/one_31_chars_long_file_name_108
a/b/one_31_chars_long_file_name_109
a/b/one_31_chars_long_file_name_110
a/b/one_31_chars_long_file_name_111
a/b/one_31_chars_long_file_name_112
a/b/one_31_chars_long_file_name_113
a/b/one_31_chars_long_file_name_114
a/b/one_31_chars_long_file_name_115
a/b/one_31_chars_long_file_name_116
a/b/one_31_chars_long_file_name_117
a/b/one_31_chars_long_file_name_118
a/b/one_31_chars_long_file_name_119
a/b/one_31_chars_long_file_name_120
a/b/one_31_chars_long_file_name_121
a/b/one_31_chars_long_file_name_122
a/b/one_31_chars_long_file_name_123
a/b/one_31_chars_long_file_name_124
a/b/one_31_chars_long_file_name_125
a/b/one_31_chars_long_file_name_126
a/b/one_31_chars_long_file_name_127
a/b/one_31_chars_long_file_name_128
a/b/one_31_chars_long_file_name_129
a/b/one_31_chars_long_file_name_130
a/b/one_31_chars_long_file_name_131
a/b/one_31_chars_long_file_name_132
a/b/one_31_chars_long_file_name_133
a/b/one_31_chars_long_file_name_134
a/b/one_31_chars_long_file_name_135
a/b/one_31_chars_long_file_name_136
a/b/one_31_chars_long_file_name_137
a/b/one_31_chars_long_file_name_138
a/b/one_31_chars_long_file_name_139
a/b/one_31_chars_long_file_name_140
a/b/one_31_chars_long_file_name_141
a/b/one_31_chars_long_file_name_142
Incremental dump
a/
a/c/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_125
#AT_START_126
at_fn_group_banner 126 'incr05.at:21' \
"incremental dumps with -C" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "126. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr05.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0
./
./sub/
./file1
./sub/file2
Level 1
./
./sub/
./file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr05.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0
./
./sub/
./file1
./sub/file2
Level 1
./
./sub/
./file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr05.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr05.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
echo Level 0
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
genfile --file dir/file3
echo Level 1
tar -c -f archive.tar -g db -C dir -v --warning=no-new-dir .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0
./
./sub/
./file1
./sub/file2
Level 1
./
./sub/
./file3
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr05.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_126
#AT_START_127
at_fn_group_banner 127 'incr06.at:21' \
"incremental dumps of nested directories" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "127. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr06.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0 . sub
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 0 sub .
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 1 . sub
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
Level 1 sub .
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr06.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0 . sub
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 0 sub .
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 1 . sub
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
Level 1 sub .
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr06.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr06.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dir
mkdir dir/sub
mkdir dir/sub/a
mkdir dir/sub/b
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --file dir/sub/a/file3
echo Level 0 . sub
tar -c -f archive-0.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 0 sub .
tar -c -f archive-0.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
mkdir dir/c
genfile --file dir/sub/b/file4
echo Level 1 . sub
tar -c -f archive-1.1.tar -g db.1 -C dir -v --warning=no-new-dir . sub
echo Level 1 sub .
tar -c -f archive-1.2.tar -g db.2 -C dir -v --warning=no-new-dir sub .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0 . sub
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 0 sub .
./
sub/
sub/a/
sub/b/
./file1
sub/file2
sub/a/file3
Level 1 . sub
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
Level 1 sub .
./
./c/
sub/
sub/a/
sub/b/
sub/b/file4
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr06.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_127
#AT_START_128
at_fn_group_banner 128 'incr07.at:18' \
"incremental restores with -C" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "128. $at_setup_line: testing $at_desc ..."
$at_traceon
# Tar 1.26 had problems extracting from incremental restores when given
# the -C option. The code in incremen.c:try_purge_directory and
# misc.c:remove_any_file was using savedir(), which ignored eventual changes
# in the current working directory and caused the malfunctioning.
#
# The problem was reported by Piotr Rotter on 2013-03-22.
#
# This testcase is based on scripts provided by Piotr Rotter and Nathan
# Stratton Treadway.
#
# References: <514C8F56.90900@active24.pl>,
# http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00036.html,
# <20130326181922.GZ3732@shire.ontko.com>,
# http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00042.html,
# <20130327051828.GA3732@shire.ontko.com>,
# http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00043.html,
# <20130327054957.GB3732@shire.ontko.com>,
# http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00044.html
{ set +x
printf "%s\n" "$at_srcdir/incr07.at:40:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 \"toplevel dirA exists\"
exit 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "C0
tar: dirA: Directory is new
C1
C2
E0
E1
E2
E3
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "C0
dirA/
dirA/a
dirA/b
C1
dirA/
dirA/c
C2
dirA/
E0
dirA/
dirA/a
dirA/b
E1
dirA/
dirA/c
E2
dirA/
tar: Deleting 'dirA/a'
E3
dirA/
tar: Deleting 'dirA/dirB'
FIN
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr07.at:40:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 \"toplevel dirA exists\"
exit 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "C0
tar: dirA: Directory is new
C1
C2
E0
E1
E2
E3
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "C0
dirA/
dirA/a
dirA/b
C1
dirA/
dirA/c
C2
dirA/
E0
dirA/
dirA/a
dirA/b
E1
dirA/
dirA/c
E2
dirA/
tar: Deleting 'dirA/a'
E3
dirA/
tar: Deleting 'dirA/dirB'
FIN
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr07.at:40:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 \"toplevel dirA exists\"
exit 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr07.at:40"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir dirA
echo 'a' > dirA/a
echo 'a' > dirA/b
decho C0
tar -g test.snar -vcf test.0.tar dirA
echo 'a' > dirA/c
decho C1
tar -g test.snar -vcf test.1.tar dirA
rm -f dirA/a
decho C2
tar -g test.snar -vcf test.2.tar dirA
mkdir ext
rm -rf dirA
decho E0
tar -g test.snar -vxf test.0.tar -C ext/
decho E1
tar -g test.snar -vxf test.1.tar -C ext/
decho E2
tar -g test.snar -vxf test.2.tar -C ext/
mkdir ext/dirA/dirB
touch ext/dirA/dirB/file
decho E3
tar -g test.snar -vxf test.2.tar -C ext/
echo FIN
test -d dirA && echo >&2 "toplevel dirA exists"
exit 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "C0
tar: dirA: Directory is new
C1
C2
E0
E1
E2
E3
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "C0
dirA/
dirA/a
dirA/b
C1
dirA/
dirA/c
C2
dirA/
E0
dirA/
dirA/a
dirA/b
E1
dirA/
dirA/c
E2
dirA/
tar: Deleting 'dirA/a'
E3
dirA/
tar: Deleting 'dirA/dirB'
FIN
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr07.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_128
#AT_START_129
at_fn_group_banner 129 'incr08.at:38' \
"filename normalization" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "129. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr08.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir tartest
cd tartest
mkdir foo
mkdir foo/subdir
mkdir foo/subdir/dir1
mkdir subdir
mkdir subdir/dir2
decho A
find .|sort
decho B
DIR=\`pwd\`
tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . \$DIR
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir tartest
cd tartest
mkdir foo
mkdir foo/subdir
mkdir foo/subdir/dir1
mkdir subdir
mkdir subdir/dir2
decho A
find .|sort
decho B
DIR=`pwd`
tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/incr08.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr08.at:41:
DIR=\`pwd\`/gnu/tartest
sed \"s|\$DIR|ABSPATH|\" stdout
"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41"
( $at_check_trace;
DIR=`pwd`/gnu/tartest
sed "s|$DIR|ABSPATH|" stdout
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./foo
./foo/subdir
./foo/subdir/dir1
./subdir
./subdir/dir2
B
./
./subdir/
./subdir/dir1/
ABSPATH/
ABSPATH/subdir/
ABSPATH/subdir/dir2/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr08.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/incr08.at:41:
DIR=\`pwd\`/gnu/tartest
sed \"/tar: Removing leading \\\`\\/*\\/' from/d;s|\$DIR|ABSPATH|\" stderr"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41"
( $at_check_trace;
DIR=`pwd`/gnu/tartest
sed "/tar: Removing leading \`\/*\/' from/d;s|$DIR|ABSPATH|" stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
B
tar: .: Directory is new
tar: ./subdir: Directory is new
tar: ./subdir/dir1: Directory is new
tar: ABSPATH: Directory is new
tar: ABSPATH/subdir: Directory is new
tar: ABSPATH/subdir/dir2: Directory is new
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr08.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_129
#AT_START_130
at_fn_group_banner 130 'incr09.at:26' \
"incremental with alternating -C" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "130. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr09.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo bar middle
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
echo middle/file > middle/middle_file
decho A
tar -cvf foo.tar --incremental -C foo . -C \`pwd\` middle -C bar .
rm foo.tar
>toplevel_file
decho B
tar -cvf foo.tar --incremental -C foo . -C \`pwd\` toplevel_file -C bar .
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr09.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo bar middle
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
echo middle/file > middle/middle_file
decho A
tar -cvf foo.tar --incremental -C foo . -C `pwd` middle -C bar .
rm foo.tar
>toplevel_file
decho B
tar -cvf foo.tar --incremental -C foo . -C `pwd` toplevel_file -C bar .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
tar: .: Directory is new
tar: middle: Directory is new
tar: .: Directory is new
B
tar: .: Directory is new
tar: .: Directory is new
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
./
./
middle/
./bar_file
./foo_file
middle/middle_file
B
./
./
toplevel_file
./bar_file
./foo_file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr09.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_130
#AT_START_131
at_fn_group_banner 131 'incr10.at:18' \
"concatenated incremental archives (deletes)" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "131. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Extraction from concatenated incremental archives
# produced spurious error messages when trying to set file ownership
# and permissions on deleted directories.
# Reported by: Alex Efros <powerman@powerman.name>
# References: <20150411224008.GO24600@home.power>
# http://lists.gnu.org/archive/html/bug-tar/2015-04/msg00003.html
{ set +x
printf "%s\n" "$at_srcdir/incr10.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir in
mkdir in/dir
decho Level 0
tar -cvf 1.tar -g snap -C in .
rmdir in/dir
decho Level 1
tar -cvf 2.tar -g snap -C in .
cp 1.tar full.tar
decho Concat
tar -A 2.tar -f full.tar -g /dev/null
decho Extract
mkdir out
tar -xvf full.tar -g /dev/null -C out
)"
at_fn_check_prepare_notrace 'an embedded newline' "incr10.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
mkdir in
mkdir in/dir
decho Level 0
tar -cvf 1.tar -g snap -C in .
rmdir in/dir
decho Level 1
tar -cvf 2.tar -g snap -C in .
cp 1.tar full.tar
decho Concat
tar -A 2.tar -f full.tar -g /dev/null
decho Extract
mkdir out
tar -xvf full.tar -g /dev/null -C out
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Level 0
tar: .: Directory is new
tar: ./dir: Directory is new
Level 1
Concat
Extract
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0
./
./dir/
Level 1
./
Concat
Extract
./
./dir/
./
tar: Deleting './dir'
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr10.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_131
#AT_START_132
at_fn_group_banner 132 'incr11.at:25' \
"concatenated incremental archives (renames)" " " 16
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "132. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/incr11.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
install-sh -d data/dir >/dev/null && genfile --file data/dir/file || exit 77
decho Level 0
tar -cvf full.tar -g snap -C data .
decho Level 1
mv data/dir data/dir2
tar -cvf incr.tar -g snap -C data .
decho Concat
cp full.tar full2.tar
tar -A -f full2.tar incr.tar
decho Extract
mkdir out
tar -xvf full2.tar -g /dev/null -C out
decho List
find out | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "incr11.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
ckmtime || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
install-sh -d data/dir >/dev/null && genfile --file data/dir/file || exit 77
decho Level 0
tar -cvf full.tar -g snap -C data .
decho Level 1
mv data/dir data/dir2
tar -cvf incr.tar -g snap -C data .
decho Concat
cp full.tar full2.tar
tar -A -f full2.tar incr.tar
decho Extract
mkdir out
tar -xvf full2.tar -g /dev/null -C out
decho List
find out | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Level 0
tar: .: Directory is new
tar: ./dir: Directory is new
Level 1
tar: ./dir2: Directory has been renamed from './dir'
Concat
Extract
List
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Level 0
./
./dir/
./dir/file
Level 1
./
./dir2/
Concat
Extract
./
./dir/
./dir/file
./
./dir2/
List
out
out/dir2
out/dir2/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/incr11.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_132
#AT_START_133
at_fn_group_banner 133 'filerem01.at:36' \
"file removed as we read it" " " 17
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "133. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/filerem01.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --run --checkpoint=3 --unlink dir/file1 -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db -v dir >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --run --checkpoint=3 --unlink dir/file1 -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db -v dir >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/file1: File removed before we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/filerem01.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/filerem01.at:39:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --run --checkpoint=3 --unlink dir/file1 -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db -v dir >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
genfile --run --checkpoint=3 --unlink dir/file1 -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db -v dir >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/file1: File removed before we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/filerem01.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
# Timing information:
#
# For -Hgnu the above command line takes about 8 seconds to execute and
# produces:
#
# tar: dir: Directory is new
# tar: dir/sub: Directory is new
# dir/
# tar: Write checkpoint 1
# tar: Write checkpoint 2
# dir/sub/
# tar: Write checkpoint 3
# tar: Write checkpoint 4
# dir/file1
# tar: Write checkpoint 5
# dir/sub/file2
# tar: Write checkpoint 6
# tar: Write checkpoint 7
# tar: Write checkpoint 8
#
# For -Hposix the above command line takes about 14 seconds to execute and
# produces:
#
# ./tar: dir: Directory is new
# ./tar: dir/sub: Directory is new
# dir/
# ./tar: Write checkpoint 1
# ./tar: Write checkpoint 2
# ./tar: Write checkpoint 3
# dir/sub/
# ./tar: Write checkpoint 4
# ./tar: Write checkpoint 5
# ./tar: Write checkpoint 6
# dir/file1
# ./tar: Write checkpoint 7
# ./tar: Write checkpoint 8
# ./tar: Write checkpoint 9
# dir/sub/file2
# ./tar: Write checkpoint 10
# ./tar: Write checkpoint 11
# ./tar: Write checkpoint 12
# ./tar: Write checkpoint 13
# ./tar: Write checkpoint 14
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_133
#AT_START_134
at_fn_group_banner 134 'filerem02.at:26' \
"toplevel file removed" " " 17
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "134. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/filerem02.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1
genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "filerem02.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1
genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/filerem02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/filerem02.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1
genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "filerem02.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
mkdir dir2
genfile --file dir2/file1
genfile --run --checkpoint=3 --exec 'rm -rf dir2' -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; cat "$at_stderr"
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/filerem02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
# Ignore stdout and stderr because their contents depend on
# the file system implementation.
# Timing information: see filerem01.at
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_134
#AT_START_135
at_fn_group_banner 135 'dirrem01.at:38' \
"directory removed before reading" " " 18
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "135. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/dirrem01.at:41:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case \"\$TEST_TAR_FORMAT\" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db \\
--warning=no-file-changed \\
-v dir >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:41"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db \
--warning=no-file-changed \
-v dir >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/sub: File removed before we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/dirrem01.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/dirrem01.at:41:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case \"\$TEST_TAR_FORMAT\" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db \\
--warning=no-file-changed \\
-v dir >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:41"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db \
--warning=no-file-changed \
-v dir >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/sub: File removed before we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 1 $at_status "$at_srcdir/dirrem01.at:41"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_135
#AT_START_136
at_fn_group_banner 136 'dirrem02.at:31' \
"explicitly named directory removed before reading" "" 18
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "136. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/dirrem02.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case \"\$TEST_TAR_FORMAT\" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db \\
--warning=no-file-changed \\
-v dir dir/sub >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "dirrem02.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db \
--warning=no-file-changed \
-v dir dir/sub >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/sub: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/dirrem02.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/dirrem02.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case \"\$TEST_TAR_FORMAT\" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\
tar --blocking-factor=1 -c -f archive.tar \\
--listed-incremental db \\
--warning=no-file-changed \\
-v dir dir/sub >/dev/null
)"
at_fn_check_prepare_notrace 'an embedded newline' "dirrem02.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
mkdir dir/sub
genfile --file dir/file1
genfile --file dir/sub/file2
case "$TEST_TAR_FORMAT" in
posix) CPT=5;;
gnu) CPT=3;;
*) exit 77
esac
genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \
tar --blocking-factor=1 -c -f archive.tar \
--listed-incremental db \
--warning=no-file-changed \
-v dir dir/sub >/dev/null
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: Directory is new
tar: dir/sub: Directory is new
tar: dir/sub: Cannot open: No such file or directory
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo stdout:; cat "$at_stdout"
at_fn_check_status 2 $at_status "$at_srcdir/dirrem02.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_136
#AT_START_137
at_fn_group_banner 137 'rename01.at:24' \
"renamed dirs in incrementals" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "137. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/rename01.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/file1
foo/file2
foo/bar/file
Creating incremental archive
foo/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/file
foo/file1
foo/file2
End directory listing 1
Begin directory listing 2
foo
foo/baz
foo/baz/file
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename01.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/file1
foo/file2
foo/bar/file
Creating incremental archive
foo/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/file
foo/file1
foo/file2
End directory listing 1
Begin directory listing 2
foo
foo/baz
foo/baz/file
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename01.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar foo/baz
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfg arch.2 /dev/null
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/file1
foo/file2
foo/bar/file
Creating incremental archive
foo/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/file
foo/file1
foo/file2
End directory listing 1
Begin directory listing 2
foo
foo/baz
foo/baz/file
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_137
#AT_START_138
at_fn_group_banner 138 'rename02.at:24' \
"move between hierarchies" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "138. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/rename02.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/bar/baz: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/bar/baz/
foo/file1
foo/file2
foo/bar/file.r
foo/bar/baz/file.z
Creating incremental archive
foo/
foo/bar/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/baz
foo/bar/baz/file.z
foo/bar/file.r
foo/file1
foo/file2
End directory listing 1
foo/
foo/bar/
foo/baz/
Begin directory listing 2
foo
foo/bar
foo/bar/file.r
foo/baz
foo/baz/file.z
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename02.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/bar/baz: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/bar/baz/
foo/file1
foo/file2
foo/bar/file.r
foo/bar/baz/file.z
Creating incremental archive
foo/
foo/bar/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/baz
foo/bar/baz/file.z
foo/bar/file.r
foo/file1
foo/file2
End directory listing 1
foo/
foo/bar/
foo/baz/
Begin directory listing 2
foo
foo/bar
foo/bar/file.r
foo/baz
foo/baz/file.z
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename02.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo \"Creating base archive\"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo \"Creating incremental archive\"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/bar
genfile --file foo/bar/file.r
mkdir foo/bar/baz
genfile --file foo/bar/baz/file.z
sleep 1
echo "Creating base archive"
tar -g incr -cf arch.1 -v foo
mv foo/bar/baz foo
echo "Creating incremental archive"
tar -g incr -cf arch.2 -v foo
mv foo old
tar xfg arch.1 /dev/null --warning=no-timestamp 2>tmperr
sort tmperr >&2
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: Directory is new
tar: foo/bar: Directory is new
tar: foo/bar/baz: Directory is new
tar: foo/baz: Directory has been renamed from 'foo/bar/baz'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating base archive
foo/
foo/bar/
foo/bar/baz/
foo/file1
foo/file2
foo/bar/file.r
foo/bar/baz/file.z
Creating incremental archive
foo/
foo/bar/
foo/baz/
Begin directory listing 1
foo
foo/bar
foo/bar/baz
foo/bar/baz/file.z
foo/bar/file.r
foo/file1
foo/file2
End directory listing 1
foo/
foo/bar/
foo/baz/
Begin directory listing 2
foo
foo/bar
foo/bar/file.r
foo/baz
foo/baz/file.z
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_138
#AT_START_139
at_fn_group_banner 139 'rename03.at:23' \
"cyclic renames" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "139. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/rename03.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo \"First dump\"
echo \"First dump\">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a \$\$
mv c a
mv b c
mv \$\$ b)
echo \"Second dump\"
echo \"Second dump\" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)
echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "First dump
tar: foo/a: Directory is new
tar: foo/b: Directory is new
tar: foo/c: Directory is new
tar: foo: Directory is new
Second dump
tar: foo/a: Directory has been renamed from 'foo/c'
tar: foo/b: Directory has been renamed from 'foo/a'
tar: foo/c: Directory has been renamed from 'foo/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First dump
foo/
foo/a/
foo/b/
foo/c/
foo/file1
foo/file2
foo/a/filea
foo/b/fileb
foo/c/filec
Second dump
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 1
foo
foo/a
foo/a/filea
foo/b
foo/b/fileb
foo/c
foo/c/filec
foo/file1
foo/file2
End directory listing 1
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 2
foo
foo/a
foo/a/filec
foo/b
foo/b/filea
foo/c
foo/c/fileb
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename03.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo \"First dump\"
echo \"First dump\">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a \$\$
mv c a
mv b c
mv \$\$ b)
echo \"Second dump\"
echo \"Second dump\" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)
echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "First dump
tar: foo/a: Directory is new
tar: foo/b: Directory is new
tar: foo/c: Directory is new
tar: foo: Directory is new
Second dump
tar: foo/a: Directory has been renamed from 'foo/c'
tar: foo/b: Directory has been renamed from 'foo/a'
tar: foo/c: Directory has been renamed from 'foo/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First dump
foo/
foo/a/
foo/b/
foo/c/
foo/file1
foo/file2
foo/a/filea
foo/b/fileb
foo/c/filec
Second dump
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 1
foo
foo/a
foo/a/filea
foo/b
foo/b/fileb
foo/c
foo/c/filec
foo/file1
foo/file2
End directory listing 1
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 2
foo
foo/a
foo/a/filec
foo/b
foo/b/filea
foo/c
foo/c/fileb
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename03.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo \"First dump\"
echo \"First dump\">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a \$\$
mv c a
mv b c
mv \$\$ b)
echo \"Second dump\"
echo \"Second dump\" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo \"Begin directory listing 1\"
find foo | sort
echo \"End directory listing 1\"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
genfile --file foo/file1
genfile --file foo/file2
mkdir foo/a
genfile --file foo/a/filea
mkdir foo/b
genfile --file foo/b/fileb
mkdir foo/c
genfile --file foo/c/filec
sleep 1
echo "First dump"
echo "First dump">&2
tar -g incr -cf arch.1 -v foo 2>tmperr
sort tmperr >&2
# Shuffle directories:
(cd foo
mv a $$
mv c a
mv b c
mv $$ b)
echo "Second dump"
echo "Second dump" >&2
tar -g incr -cf arch.2 -v foo 2>tmperr
sort tmperr >&2
tar xfg arch.1 /dev/null --warning=no-timestamp
echo "Begin directory listing 1"
find foo | sort
echo "End directory listing 1"
tar xfgv arch.2 /dev/null --warning=no-timestamp
echo Begin directory listing 2
find foo | sort
echo End directory listing 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "First dump
tar: foo/a: Directory is new
tar: foo/b: Directory is new
tar: foo/c: Directory is new
tar: foo: Directory is new
Second dump
tar: foo/a: Directory has been renamed from 'foo/c'
tar: foo/b: Directory has been renamed from 'foo/a'
tar: foo/c: Directory has been renamed from 'foo/b'
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First dump
foo/
foo/a/
foo/b/
foo/c/
foo/file1
foo/file2
foo/a/filea
foo/b/fileb
foo/c/filec
Second dump
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 1
foo
foo/a
foo/a/filea
foo/b
foo/b/fileb
foo/c
foo/c/filec
foo/file1
foo/file2
End directory listing 1
foo/
foo/a/
foo/b/
foo/c/
Begin directory listing 2
foo
foo/a
foo/a/filec
foo/b
foo/b/filea
foo/c
foo/c/fileb
foo/file1
foo/file2
End directory listing 2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_139
#AT_START_140
at_fn_group_banner 140 'rename04.at:27' \
"renamed directory containing subdirectories" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "140. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/rename04.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename04.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename04.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename04.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename04.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_140
#AT_START_141
at_fn_group_banner 141 'rename05.at:24' \
"renamed subdirectories" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "141. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/rename05.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename05.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename05.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename05.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir directory
mkdir directory/subdir
genfile --file=directory/file
decho Creating initial archive
tar -cf archive.1 -g db.1 directory
decho Renaming
mv directory/subdir directory/subdir.0
mv directory dir
decho Creating incremental archive
cp db.1 db.2
tar -cf archive.2 -g db.2 dir
mv dir orig
decho First restore
tar -xf archive.1 -g db.1 --warning=no-timestamp
find directory | sort
decho Second restore
tar -xf archive.2 -g db.2 --warning=no-timestamp
find dir | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
Second restore
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
Creating initial archive
Renaming
Creating incremental archive
First restore
directory
directory/file
directory/subdir
Second restore
dir
dir/subdir.0
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename05.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_141
#AT_START_142
at_fn_group_banner 142 'rename06.at:19' \
"chained renames" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "142. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: test whether chained renames are processed correctly
# during the incremental archive creation. Tar 1.32.90 failed to
# encode them.
# Reported by: Deweloper <deweloper@wp.pl>
# References: <20200214100922.44c43334@amazur-u.kat.adbgroup.pl>,
# https://lists.gnu.org/archive/html/bug-tar/2020-02/msg00008.html
{ set +x
printf "%s\n" "$at_srcdir/rename06.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename06.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
tar: ./d1: Directory has been renamed from './d2'
tar: ./d3: Directory has been renamed from './d1'
First extract
Second extract
Resulting directory
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
./
./d1/
./d3/
./d1/file3
First extract
Second extract
Resulting directory
test1
test1/d1
test1/d1/file2
test1/d1/file3
test1/d3
test1/d3/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename06.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename06.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename06.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
tar: ./d1: Directory has been renamed from './d2'
tar: ./d3: Directory has been renamed from './d1'
First extract
Second extract
Resulting directory
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
./
./d1/
./d3/
./d1/file3
First extract
Second extract
Resulting directory
test1
test1/d1
test1/d1/file2
test1/d1/file3
test1/d3
test1/d3/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename06.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/rename06.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "rename06.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
decho Creating directory structure
mkdir test test/d1 test/d2
genfile --file test/d1/file1
genfile --file test/d2/file2
decho First dump
tar -c -g 0.snar -C test -f backup0.tar .
decho Altering directory structure
genfile --file test/d2/file3
mv test/d1 test/d3
mv test/d2 test/d1
decho Second dump
cp 0.snar 1.snar
tar -vc -g 1.snar -C test -f backup1.tar .
mkdir test1
decho First extract
tar -C test1 -x -g /dev/null -f backup0.tar
decho Second extract
tar -C test1 -x -g /dev/null -f backup1.tar
decho Resulting directory
find test1 | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
tar: ./d1: Directory has been renamed from './d2'
tar: ./d3: Directory has been renamed from './d1'
First extract
Second extract
Resulting directory
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating directory structure
First dump
Altering directory structure
Second dump
./
./d1/
./d3/
./d1/file3
First extract
Second extract
Resulting directory
test1
test1/d1
test1/d1/file2
test1/d1/file3
test1/d3
test1/d3/file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/rename06.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_142
#AT_START_143
at_fn_group_banner 143 'chtype.at:27' \
"changed file types in incrementals" " " 19
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "143. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/chtype.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First backup
Second backup
Restore archive.1
Restore archive.2
directory
directory/a
directory/a/a
directory/a/b
directory/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/chtype.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First backup
Second backup
Restore archive.1
Restore archive.2
directory
directory/a
directory/a/a
directory/a/b
directory/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/chtype.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
install-sh -d directory/b/c >/dev/null && genfile --file directory/b/c/x || exit 77
mkdir directory/a
genfile --file directory/a/a
echo First backup
tar --create --file=archive.1 --listed-incremental=db.1 directory
sleep 2
# Remove directory b and create a file with this name.
# Previous versions were not able to restore over this file.
rm -r directory/b
genfile --file directory/b
genfile --file directory/a/b
echo Second backup
tar --create --file=archive.2 --listed-incremental=db.2 directory
# Delete a
rm -r directory
echo Restore archive.1
tar -xf archive.1 --listed-incremental=/dev/null --warning=no-timestamp
echo Restore archive.2
tar -xf archive.2 --listed-incremental=/dev/null --warning=no-timestamp
find directory | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "First backup
Second backup
Restore archive.1
Restore archive.2
directory
directory/a
directory/a/a
directory/a/b
directory/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_143
#AT_START_144
at_fn_group_banner 144 'ignfail.at:23' \
"ignfail" " " 20
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "144. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/ignfail.at:26:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=\$?
chmod 600 file
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=\$?
chmod 600 file
test \$status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=\$?
chmod 700 directory
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=\$?
chmod 700 directory
test \$status = 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: file: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: file: Warning: Cannot open: Permission denied
-----
tar: directory: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: directory: Warning: Cannot open: Permission denied
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/ignfail.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=\$?
chmod 600 file
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=\$?
chmod 600 file
test \$status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=\$?
chmod 700 directory
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=\$?
chmod 700 directory
test \$status = 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: file: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: file: Warning: Cannot open: Permission denied
-----
tar: directory: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: directory: Warning: Cannot open: Permission denied
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/ignfail.at:26:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=\$?
chmod 600 file
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=\$?
chmod 600 file
test \$status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=\$?
chmod 700 directory
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=\$?
chmod 700 directory
test \$status = 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: file: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: file: Warning: Cannot open: Permission denied
-----
tar: directory: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: directory: Warning: Cannot open: Permission denied
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/ignfail.at:26:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=\$?
chmod 600 file
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=\$?
chmod 600 file
test \$status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=\$?
chmod 700 directory
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=\$?
chmod 700 directory
test \$status = 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: file: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: file: Warning: Cannot open: Permission denied
-----
tar: directory: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: directory: Warning: Cannot open: Permission denied
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/ignfail.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=\$?
chmod 600 file
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=\$?
chmod 600 file
test \$status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=\$?
chmod 700 directory
test \$status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=\$?
chmod 700 directory
test \$status = 0
)"
at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
# The test is meaningless for super-user.
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
touch file
mkdir directory
touch directory/file
echo 1>&2 -----
chmod 000 file
tar cf archive file
status=$?
chmod 600 file
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 file
tar cf archive --ignore-failed-read file || exit 1
status=$?
chmod 600 file
test $status = 0 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive directory
status=$?
chmod 700 directory
test $status = 2 || exit 1
echo 1>&2 -----
chmod 000 directory
tar cf archive --ignore-failed-read directory || exit 1
status=$?
chmod 700 directory
test $status = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: file: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: file: Warning: Cannot open: Permission denied
-----
tar: directory: Cannot open: Permission denied
tar: Exiting with failure status due to previous errors
-----
tar: directory: Warning: Cannot open: Permission denied
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_144
#AT_START_145
at_fn_group_banner 145 'link01.at:33' \
"link count gt 2" " " 21
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "145. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/link01.at:36:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)"
at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "test.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)"
at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "test.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link01.at:36:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)"
at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "test.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link01.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)"
at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "test.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)"
at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
mkdir directory/test1
mkdir directory/test2
echo TEST > directory/test1/test.txt
ln directory/test1/test.txt directory/test2/test.txt || exit 77
tar cf archive directory/test1/test.txt directory/test1/test.txt
rm -r directory
tar xf archive --warning=no-timestamp
ls directory/test1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "test.txt
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_145
#AT_START_146
at_fn_group_banner 146 'link02.at:32' \
"preserve hard links with --remove-files" " " 21
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "146. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/link02.at:35:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link02.at:35:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link02.at:35:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link02.at:35:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link02.at:35:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link02.at:35"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
tar -c -f archive --remove-files file1 file2 file3 file4
tar tfv archive | sed -n 's/.*file[2-4] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "file1
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link02.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_146
#AT_START_147
at_fn_group_banner 147 'link03.at:24' \
"working -l with --remove-files" " " 21
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "147. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/link03.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Missing links to 'file1'.
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "archive.1
archive.2
testing archive.2
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link03.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Missing links to 'file1'.
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "archive.1
archive.2
testing archive.2
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link03.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Missing links to 'file1'.
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "archive.1
archive.2
testing archive.2
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link03.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Missing links to 'file1'.
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "archive.1
archive.2
testing archive.2
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link03.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)"
at_fn_check_prepare_notrace 'an embedded newline' "link03.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.1
tar -c -f archive.1 -l --remove-files file1 file2 file3 file4
genfile -l 64 -f file1
ln file1 file2
ln file2 file3
ln file3 file4
echo archive.2
tar -c -f archive.2 -l --remove-files file1 file2 file3
echo testing archive.2
tar tfv archive.2 | sed -n 's/.*file[2-3] link to //p'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: Missing links to 'file1'.
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "archive.1
archive.2
testing archive.2
file1
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link03.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_147
#AT_START_148
at_fn_group_banner 148 'link04.at:29' \
"link count is 1 but multiple occurrences" " " 21
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "148. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/link04.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)"
at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/
dir/file
dir/file link to dir/file
dir/symlink -> file
dir/symlink link to dir/symlink
--
==
dir/
dir/FOO
dir/FOO link to dir/FOO
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link04.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)"
at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/
dir/file
dir/file link to dir/file
dir/symlink -> file
dir/symlink link to dir/symlink
--
==
dir/
dir/FOO
dir/FOO link to dir/FOO
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link04.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)"
at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/
dir/file
dir/file link to dir/file
dir/symlink -> file
dir/symlink link to dir/symlink
--
==
dir/
dir/FOO
dir/FOO link to dir/FOO
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link04.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)"
at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/
dir/file
dir/file link to dir/file
dir/symlink -> file
dir/symlink link to dir/symlink
--
==
dir/
dir/FOO
dir/FOO link to dir/FOO
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/link04.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)"
at_fn_check_prepare_notrace 'an embedded newline' "link04.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir
echo TEST > dir/file
ln -s file dir/symlink || exit 77
tar cf archive dir dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
' | sort
echo --
tar cfl archive dir dir
echo ==
tar chf archive dir
tar tvf archive | sed '
s,.*[0-9] dir/,dir/,
s,file,FOO,g
s,symlink,FOO,g
' | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/
dir/file
dir/file link to dir/file
dir/symlink -> file
dir/symlink link to dir/symlink
--
==
dir/
dir/FOO
dir/FOO link to dir/FOO
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/link04.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_148
#AT_START_149
at_fn_group_banner 149 'longv7.at:24' \
"long names in V7 archives" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "149. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/longv7.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
echo separator
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "longv7.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir this_is_a_very_long_name_for_a_directory_which_causes_problems
touch this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c
tar cf archive this_is_a_very_long_name_for_a_directory_which_causes_problems
echo separator
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: this_is_a_very_long_name_for_a_directory_which_causes_problems/this_is_a_very_long_file_name_which_raises_issues.c: file name is too long (max 99); not dumped
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
this_is_a_very_long_name_for_a_directory_which_causes_problems/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/longv7.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_149
#AT_START_150
at_fn_group_banner 150 'long01.at:28' \
"long file names divisible by block size" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "150. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/long01.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile
tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile
tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
endfile
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/long01.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile
tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
install-sh -d 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde >/dev/null && genfile --file 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde || exit 77
echo test > endfile
tar cf archive 0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde endfile
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde/0123456789abcde
endfile
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_150
#AT_START_151
at_fn_group_banner 151 'lustar01.at:21' \
"ustar: unsplittable file name" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "151. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/lustar01.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
)"
at_fn_check_prepare_notrace 'an embedded newline' "lustar01.at:27"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file=this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_between_name_and_prefix: file name is too long (cannot be split); not dumped
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/lustar01.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_151
#AT_START_152
at_fn_group_banner 152 'lustar02.at:21' \
"ustar: unsplittable path name" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "152. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/lustar02.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
)"
at_fn_check_prepare_notrace 'an embedded newline' "lustar02.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/tween_name_and_prefix || exit 77
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: this_is_a_very_long_name_for_a_file_designed_to_test_generation_of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/: file name is too long (cannot be split); not dumped
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/lustar02.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_152
#AT_START_153
at_fn_group_banner 153 'lustar03.at:21' \
"ustar: splitting long names" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "153. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/lustar03.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
echo \"Create archive\"
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
echo \"List archive\"
tar tf archive)"
at_fn_check_prepare_notrace 'an embedded newline' "lustar03.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
install-sh -d this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be >/dev/null && genfile --file this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file || exit 77
echo "Create archive"
tar cf archive this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be
echo "List archive"
tar tf archive)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create archive
List archive
this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/
this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_archives_by_gnu_tar_semicolon_it_will_not_fit_the_name_field_and_cannot_be_split_be/file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/lustar03.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_153
#AT_START_154
at_fn_group_banner 154 'old.at:23' \
"old archives" " " 22
at_xfail=no
(
printf "%s\n" "154. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/old.at:27:
mkdir directory
tar cfvo archive directory || exit 1
tar tf archive
"
at_fn_check_prepare_notrace 'an embedded newline' "old.at:27"
( $at_check_trace;
mkdir directory
tar cfvo archive directory || exit 1
tar tf archive
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
directory/
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/old.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_154
#AT_START_155
at_fn_group_banner 155 'time01.at:20' \
"time: tricky time stamps" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "155. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/time01.at:23:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
mkdir dir
# Test files with time stamps that are near common sources of error,
# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
# Use GNU-style @ notation for very large time stamps, since they
# typically don't render into years correctly due to int overflow.
for s in \\
@-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \\
0000-01-01T00:00:00 0000-01-01T00:00:01 \\
0000-01-02T00:00:00 \\
1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \\
1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \\
1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \\
1901-12-14T20:45:51 \\
1969-12-31T23:59:58 1969-12-31T23:59:59 \\
1970-01-01T00:00:00 1970-01-01T00:00:01 \\
2038-01-18T03:14:07 \\
2038-01-19T03:14:07 2038-01-19T03:14:08 \\
2106-02-07T06:28:15 2106-02-07T06:28:16 \\
2242-03-16T12:56:31 2242-03-16T12:56:32 \\
9999-12-31T23:59:58 9999-12-31T23:59:59 \\
@9223372036854775807 @9223372036854775808
do
# Skip a time stamp \$s if it's out of range for this platform,
# of if it uses a notation that this platform does not recognize.
touch -d \$s dir/f\$s >/dev/null 2>&1 || continue
# Likewise for \$s.1. If \$s is the most negative time stamp and
# time stamps are signed, then \$s.1 is out of range.
touch -d \$s.1 dir/f\$s.\$ns >/dev/null 2>&1 || continue
for frac in 01 001 00001 000001 0000001 00000001 000000001 0000000001 \\
9 99 999 99999 999999 9999999 99999999 999999999 9999999999
do
touch -d \$s.\$frac dir/f\$s.\$frac
done
done
tar -c -f archive.tar dir
tar -d -f archive.tar dir
)"
at_fn_check_prepare_notrace 'an embedded newline' "time01.at:23"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
mkdir dir
# Test files with time stamps that are near common sources of error,
# typically near powers of 2 (for seconds) or near 0, 1970, or 9999 (years).
# Use GNU-style @ notation for very large time stamps, since they
# typically don't render into years correctly due to int overflow.
for s in \
@-9223372036854775809 @-9223372036854775808 @-9223372036854775807 \
0000-01-01T00:00:00 0000-01-01T00:00:01 \
0000-01-02T00:00:00 \
1697-10-17T11:03:27 1697-10-17T11:03:28 1697-10-17T11:03:29 \
1833-11-24T17:31:43 1833-11-24T17:31:44 1833-11-24T17:31:45 \
1901-12-13T20:45:51 1901-12-13T20:45:52 1901-12-13T20:45:53 \
1901-12-14T20:45:51 \
1969-12-31T23:59:58 1969-12-31T23:59:59 \
1970-01-01T00:00:00 1970-01-01T00:00:01 \
2038-01-18T03:14:07 \
2038-01-19T03:14:07 2038-01-19T03:14:08 \
2106-02-07T06:28:15 2106-02-07T06:28:16 \
2242-03-16T12:56:31 2242-03-16T12:56:32 \
9999-12-31T23:59:58 9999-12-31T23:59:59 \
@9223372036854775807 @9223372036854775808
do
# Skip a time stamp $s if it's out of range for this platform,
# of if it uses a notation that this platform does not recognize.
touch -d $s dir/f$s >/dev/null 2>&1 || continue
# Likewise for $s.1. If $s is the most negative time stamp and
# time stamps are signed, then $s.1 is out of range.
touch -d $s.1 dir/f$s.$ns >/dev/null 2>&1 || continue
for frac in 01 001 00001 000001 0000001 00000001 000000001 0000000001 \
9 99 999 99999 999999 9999999 99999999 999999999 9999999999
do
touch -d $s.$frac dir/f$s.$frac
done
done
tar -c -f archive.tar dir
tar -d -f archive.tar dir
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/time01.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_155
#AT_START_156
at_fn_group_banner 156 'time02.at:20' \
"time: clamping mtime" " " 22
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "156. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/time02.at:23:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
export TZ=UTC0
mkdir dir
touch -d 2015-12-01T00:00:00 dir/a >/dev/null 2>&1 || exit 77
touch -d 2016-01-01T00:00:00 dir/b >/dev/null 2>&1 || exit 77
touch -d 2016-02-01T00:00:00 dir/c >/dev/null 2>&1 || exit 77
touch -d 2038-01-01T00:00:00 dir/d >/dev/null 2>&1 || exit 77
tar -c --mtime 2016-01-15T00:00:00 --clamp-mtime -f archive.tar dir
tar -d -f archive.tar dir|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "time02.at:23"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
export TZ=UTC0
mkdir dir
touch -d 2015-12-01T00:00:00 dir/a >/dev/null 2>&1 || exit 77
touch -d 2016-01-01T00:00:00 dir/b >/dev/null 2>&1 || exit 77
touch -d 2016-02-01T00:00:00 dir/c >/dev/null 2>&1 || exit 77
touch -d 2038-01-01T00:00:00 dir/d >/dev/null 2>&1 || exit 77
tar -c --mtime 2016-01-15T00:00:00 --clamp-mtime -f archive.tar dir
tar -d -f archive.tar dir|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/c: Mod time differs
dir/d: Mod time differs
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/time02.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_156
#AT_START_157
at_fn_group_banner 157 'multiv01.at:23' \
"multivolume dumps from pipes" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "157. $at_setup_line: testing $at_desc ..."
$at_traceon
# Fixme: should be configurable
# TRUSS=truss -o /tmp/tr
# TRUSS=strace
{ set +x
printf "%s\n" "$at_srcdir/multiv01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
\" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
echo \"file2 block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
for count in 2 3 4 5 6 7 8 ; do
echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
done
done >file2
if test \$TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
--tape-length=\$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
" 9" "10" "11" "12" "13" "14" "15" "16" ; do \
echo "file2 block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
for count in 2 3 4 5 6 7 8 ; do
echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
done
done >file2
if test $TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
--tape-length=$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
\" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
echo \"file2 block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
for count in 2 3 4 5 6 7 8 ; do
echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
done
done >file2
if test \$TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
--tape-length=\$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
" 9" "10" "11" "12" "13" "14" "15" "16" ; do \
echo "file2 block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
for count in 2 3 4 5 6 7 8 ; do
echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
done
done >file2
if test $TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
--tape-length=$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv01.at:30:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in \" 1\" \" 2\" \" 3\" \" 4\" \" 5\" \" 6\" \" 7\" \" 8\" \\
\" 9\" \"10\" \"11\" \"12\" \"13\" \"14\" \"15\" \"16\" ; do \\
echo \"file2 block \${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
for count in 2 3 4 5 6 7 8 ; do
echo \"bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla\"
done
done >file2
if test \$TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=\$TAPE_LENGTH \\
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=\$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \\
--tape-length=\$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 7168 --file file1
for block in " 1" " 2" " 3" " 4" " 5" " 6" " 7" " 8" \
" 9" "10" "11" "12" "13" "14" "15" "16" ; do \
echo "file2 block ${block} bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
for count in 2 3 4 5 6 7 8 ; do
echo "bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla!bla"
done
done >file2
if test $TEST_TAR_FORMAT = pax; then
TAPE_LENGTH=11
else
TAPE_LENGTH=10
fi
tar -c --multi-volume --tape-length=$TAPE_LENGTH \
-f t1-pipe.tar -f t2-pipe.tar ./file1 ./file2 || exit 1
mkdir extract-dir-pipe
dd bs=4096 count=$TAPE_LENGTH if=t2-pipe.tar 2>/dev/null |
PATH=$PATH ${TRUSS} tar -f t1-pipe.tar -f - \
-C extract-dir-pipe -x --multi-volume --warning=no-timestamp \
--tape-length=$TAPE_LENGTH --read-full-records || exit 1
cmp file1 extract-dir-pipe/file1
cmp file2 extract-dir-pipe/file2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_157
#AT_START_158
at_fn_group_banner 158 'multiv02.at:28' \
"skipping a straddling member" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "158. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv02.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
en
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv02.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
en
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv02.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
genfile --length 10240 --file en
genfile --length 20000 --file to
genfile --length 20000 --file tre
genfile --length 10240 --file fire
exec <&-
tar -c -f A.tar -f B.tar -f C.tar -M -L 30 en to tre fire || exit 1
echo separator
tar -v -x -f A.tar -f B.tar -f C.tar -M en --warning=no-timestamp || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
en
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_158
#AT_START_159
at_fn_group_banner 159 'multiv03.at:30' \
"MV archive & long filenames" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "159. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv03.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
cat > ../experr <<EOF
tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '\$BFILE' is possibly continued on this volume: header contains truncated name
EOF
cat > ../expout <<EOF
\$AFILE
separator-1
separator-2
EOF
genfile --length 15360 --file \$AFILE
exec <&-
tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1
echo separator-1
genfile --length 15360 --file \$BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
echo separator-2
mv \$BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp \$BFILE bfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
cat > ../experr <<EOF
tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '$BFILE' is possibly continued on this volume: header contains truncated name
EOF
cat > ../expout <<EOF
$AFILE
separator-1
separator-2
EOF
genfile --length 15360 --file $AFILE
exec <&-
tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1
echo separator-1
genfile --length 15360 --file $BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
echo separator-2
mv $BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp $BFILE bfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv03.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
AFILE=\`awk 'BEGIN { for (i = 0; i < 100; i++) printf \"a\"; exit; }'\`
BFILE=\`awk 'BEGIN { for (i = 0; i < 101; i++) printf \"b\"; exit; }'\`
cat > ../experr <<EOF
tar: \$BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '\$BFILE' is possibly continued on this volume: header contains truncated name
EOF
cat > ../expout <<EOF
\$AFILE
separator-1
separator-2
EOF
genfile --length 15360 --file \$AFILE
exec <&-
tar -M -L 10 -c -f arch.1 -f arch.2 \$AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1
echo separator-1
genfile --length 15360 --file \$BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 \$BFILE || exit 1
echo separator-2
mv \$BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp \$BFILE bfile
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
AFILE=`awk 'BEGIN { for (i = 0; i < 100; i++) printf "a"; exit; }'`
BFILE=`awk 'BEGIN { for (i = 0; i < 101; i++) printf "b"; exit; }'`
cat > ../experr <<EOF
tar: $BFILE: file name too long to be stored in a GNU multivolume header, truncated
tar: '$BFILE' is possibly continued on this volume: header contains truncated name
EOF
cat > ../expout <<EOF
$AFILE
separator-1
separator-2
EOF
genfile --length 15360 --file $AFILE
exec <&-
tar -M -L 10 -c -f arch.1 -f arch.2 $AFILE || exit 1
tar -tM -f arch.1 -f arch.2 || exit 1
echo separator-1
genfile --length 15360 --file $BFILE
tar -M -L 10 -c -f arch.1 -f arch.2 $BFILE || exit 1
echo separator-2
mv $BFILE bfile
tar -M -x -f arch.1 -f arch.2 --warning=no-timestamp || exit 1
cmp $BFILE bfile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
$at_diff experr "$at_stderr" || at_failed=:
$at_diff expout "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv03.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_159
#AT_START_160
at_fn_group_banner 160 'multiv04.at:36' \
"split directory members in a MV archive" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "160. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv04.at:39:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
exec <&-
sleep 2
tar --listed-incremental=list -c -f archive.a directory
sleep 2
tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
echo separator
tar -MRt -f arc.1 -f arc.2)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
exec <&-
sleep 2
tar --listed-incremental=list -c -f archive.a directory
sleep 2
tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
echo separator
tar -MRt -f arc.1 -f arc.2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
separator
block 0: directory/
block 35: ** Block of NULs **
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv04.at:39:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf(\"directory/%014x\\n\", i); }' </dev/null | genfile --files-from -
exec <&-
sleep 2
tar --listed-incremental=list -c -f archive.a directory
sleep 2
tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
echo separator
tar -MRt -f arc.1 -f arc.2)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir directory
awk 'BEGIN { for (i = 0; i < 1024; i++) printf("directory/%014x\n", i); }' </dev/null | genfile --files-from -
exec <&-
sleep 2
tar --listed-incremental=list -c -f archive.a directory
sleep 2
tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v directory
echo separator
tar -MRt -f arc.1 -f arc.2)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "directory/
separator
block 0: directory/
block 35: ** Block of NULs **
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_160
#AT_START_161
at_fn_group_banner 161 'multiv05.at:26' \
"Restoring after an out of sync volume" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "161. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv05.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 250k --file jeden
genfile --length 250k --file dwa
genfile --length 250k --file trzy
genfile --length 250k --file cztery
genfile --length 250k --file piec
genfile --length 250k --file szesc
echo Creating archive
tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
echo separator
mkdir bak
mv jeden dwa trzy cztery piec szesc bak
tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
echo Diffing jeden
cmp bak/jeden jeden || exit 1
echo Diffing dwa
cmp bak/dwa dwa || exit 1
echo Diffing trzy
cmp bak/trzy trzy || exit 1
echo Diffing cztery
cmp bak/cztery cztery || exit 1
echo Diffing piec
cmp bak/piec piec || exit 1
echo Diffing szesc
cmp bak/szesc szesc || exit 1
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv05.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
genfile --length 250k --file jeden
genfile --length 250k --file dwa
genfile --length 250k --file trzy
genfile --length 250k --file cztery
genfile --length 250k --file piec
genfile --length 250k --file szesc
echo Creating archive
tar -c -M -L 502 -f a.tar -f b.tar -f c.tar jeden dwa trzy cztery piec szesc
echo separator
mkdir bak
mv jeden dwa trzy cztery piec szesc bak
tar -vxM -f a.tar -f c.tar -f b.tar -f c.tar
echo Diffing jeden
cmp bak/jeden jeden || exit 1
echo Diffing dwa
cmp bak/dwa dwa || exit 1
echo Diffing trzy
cmp bak/trzy trzy || exit 1
echo Diffing cztery
cmp bak/cztery cztery || exit 1
echo Diffing piec
cmp bak/piec piec || exit 1
echo Diffing szesc
cmp bak/szesc szesc || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: 'trzy' is not continued on this volume
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating archive
separator
jeden
dwa
trzy
cztery
piec
szesc
Diffing jeden
Diffing dwa
Diffing trzy
Diffing cztery
Diffing piec
Diffing szesc
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv05.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_161
#AT_START_162
at_fn_group_banner 162 'multiv06.at:27' \
"Multivolumes with L=record_size" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "162. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv06.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv06.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating file
Creating archive
Testing archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating file
Creating archive
Testing archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv06.at:30:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv06.at:30"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
exec <&-
decho Creating file
genfile --length 20139 --file file
decho Creating archive
tar -c -M -L10 -b20 -farc.1 -farc.2 -farc.3 file
decho Testing archive
tar -t -M -farc.1 -farc.2 -farc.3)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating file
Creating archive
Testing archive
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating file
Creating archive
Testing archive
file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_162
#AT_START_163
at_fn_group_banner 163 'multiv07.at:28' \
"volumes split at an extended header" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "163. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv07.at:31:
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
exec <&-
cd \$TEST_DATA_DIR
tar -t -M -fxsplit-1.tar -fxsplit-2.tar
"
at_fn_check_prepare_notrace 'an embedded newline' "multiv07.at:31"
( $at_check_trace;
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq xsplit-1.tar 0e008c84c517e48fbf23ca6a7033cde6 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq xsplit-2.tar 03150b9852d285458f43734e9e0b9a45 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
exec <&-
cd $TEST_DATA_DIR
tar -t -M -fxsplit-1.tar -fxsplit-2.tar
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Archive volumes split at an extended header Volume 1
foo
bar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv07.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_163
#AT_START_164
at_fn_group_banner 164 'multiv08.at:25' \
"multivolume header creation" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "164. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv08.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 9472 --file a
genfile --length 9984 --file b
decho Creating
tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
decho Testing
tar -tMR -f A.tar -f B.tar -f C.tar
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv08.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --length 9472 --file a
genfile --length 9984 --file b
decho Creating
tar -c -M -L10 -f A.tar -f B.tar -f C.tar a b
decho Testing
tar -tMR -f A.tar -f B.tar -f C.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "Creating
Testing
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Creating
Testing
block 0: a
block 21: b
block 43: ** Block of NULs **
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv08.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_164
#AT_START_165
at_fn_group_banner 165 'multiv09.at:26' \
"bad next volume" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "165. $at_setup_line: testing $at_desc ..."
$at_traceon
# filename of length 100 characters
{ set +x
printf "%s\n" "$at_srcdir/multiv09.at:33:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
echo \"created\"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "created
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv09.at:33:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
echo \"created\"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "created
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv09.at:33:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
echo \"created\"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "created
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv09.at:33:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
echo \"created\"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "created
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/multiv09.at:33:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit \$?
echo \"created\"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv09.at:33"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --length 2000000 --file aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
tar --format=gnu -cM --tape-length 1M -f A.tar -f B.tar aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || exit $?
echo "created"
tar --format=gnu -xM -f A.tar 2>/dev/null <<EOF
y
q
EOF
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "created
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/multiv09.at:33"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_165
#AT_START_166
at_fn_group_banner 166 'multiv10.at:37' \
"file start at the beginning of a posix volume" " " 23
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "166. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/multiv10.at:40:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
set -e
genfile --length=15360 --file data1
genfile --length=15360 --file data2
tar -v -c -L 10 -M -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar data1 data2
tar -M -t -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
mkdir out
tar -C out -M -x -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
cmp data1 out/data1
cmp data2 out/data2
)"
at_fn_check_prepare_notrace 'an embedded newline' "multiv10.at:40"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
set -e
genfile --length=15360 --file data1
genfile --length=15360 --file data2
tar -v -c -L 10 -M -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar data1 data2
tar -M -t -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
mkdir out
tar -C out -M -x -f 1.tar -f 2.tar -f 3.tar -f 4.tar -f 5.tar
cmp data1 out/data1
cmp data2 out/data2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "data1
data2
data1
data2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multiv10.at:40"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_166
#AT_START_167
at_fn_group_banner 167 'owner.at:21' \
"--owner and --group" " " 24
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "167. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/owner.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
genfile --file a
tar --owner=\"Joe the Plumber:1234\" \\
--group=\"Plumber's Union:5678\" \\
--mtime='@0' \\
--mode='u=rw,go=r' \\
-cf arc a
tar -tvf arc
tar --numeric-owner -tvf arc
)"
at_fn_check_prepare_notrace 'an embedded newline' "owner.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
genfile --file a
tar --owner="Joe the Plumber:1234" \
--group="Plumber's Union:5678" \
--mtime='@0' \
--mode='u=rw,go=r' \
-cf arc a
tar -tvf arc
tar --numeric-owner -tvf arc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "-rw-r--r-- Joe the Plumber/Plumber's Union 0 1970-01-01 00:00 a
-rw-r--r-- 1234/5678 0 1970-01-01 00:00 a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/owner.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_167
#AT_START_168
at_fn_group_banner 168 'map.at:21' \
"--owner-map and --group-map" " " 24
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "168. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/map.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
genfile --file a
set -- \`genfile --stat=uid,gid a\`
cat > uid.map <<EOT
# Owner mapping
+\$1 \"Joe the Plumber:1234\"
EOT
# Group mapping
cat > gid.map <<EOT
+\$2 \"Plumber's Union:5678\"
EOT
tar --owner-map=uid.map\\
--group-map=gid.map\\
--owner=\"Fallback Owner:4321\" \\
--group=\"Fallback Group:8765\" \\
--mtime='@0' \\
--mode='u=rw,go=r' \\
-cf 1.tar a
tar -tvf 1.tar
tar --numeric-owner -tvf 1.tar
> uid.map
> gid.map
tar --owner-map=uid.map\\
--group-map=gid.map\\
--owner=\"Fallback Owner:4321\" \\
--group=\"Fallback Group:8765\" \\
--mtime='@0' \\
--mode='u=rw,go=r' \\
-cf 2.tar a
tar -tvf 2.tar
tar --numeric-owner -tvf 2.tar
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "map.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
export TZ=UTC0
genfile --file a
set -- `genfile --stat=uid,gid a`
cat > uid.map <<EOT
# Owner mapping
+$1 "Joe the Plumber:1234"
EOT
# Group mapping
cat > gid.map <<EOT
+$2 "Plumber's Union:5678"
EOT
tar --owner-map=uid.map\
--group-map=gid.map\
--owner="Fallback Owner:4321" \
--group="Fallback Group:8765" \
--mtime='@0' \
--mode='u=rw,go=r' \
-cf 1.tar a
tar -tvf 1.tar
tar --numeric-owner -tvf 1.tar
> uid.map
> gid.map
tar --owner-map=uid.map\
--group-map=gid.map\
--owner="Fallback Owner:4321" \
--group="Fallback Group:8765" \
--mtime='@0' \
--mode='u=rw,go=r' \
-cf 2.tar a
tar -tvf 2.tar
tar --numeric-owner -tvf 2.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "-rw-r--r-- Joe the Plumber/Plumber's Union 0 1970-01-01 00:00 a
-rw-r--r-- 1234/5678 0 1970-01-01 00:00 a
-rw-r--r-- Fallback Owner/Fallback Group 0 1970-01-01 00:00 a
-rw-r--r-- 4321/8765 0 1970-01-01 00:00 a
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/map.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_168
#AT_START_169
at_fn_group_banner 169 'sparse01.at:21' \
"sparse files" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "169. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/sparse01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --length 1000 -f begin
genfile --length 1000 -f end
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive --warning=no-timestamp
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
cat >stdout.re <<'_ATEOF'
separator
-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
-rw-r--r-- ^ ^ * *10344448 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
separator
sparsefile 10344448
_ATEOF
awk '{print NR " " $0}' stdout > $$.1
awk '{print NR " " $0}' stdout.re | join - $$.1 |
while read NUM RE LINE
do
echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
done
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_169
#AT_START_170
at_fn_group_banner 170 'sparse02.at:21' \
"extracting sparse file over a pipe" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "170. $at_setup_line: testing $at_desc ..."
$at_traceon
# Tar 1.14 - 1.15.1 was unable to extract sparse files to a pipe.
# References: <16896.21739.460782.124775@jik.kamens.brookline.ma.us>
# http://lists.gnu.org/archive/html/bug-tar/2005-02/msg00003.html
{ set +x
printf "%s\n" "$at_srcdir/sparse02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file sparsefile --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar --hole-detection=raw -c -f archive --sparse sparsefile || exit 1
echo separator
tar xfO archive | cat - > sparsecopy || exit 1
cmp sparsefile sparsecopy
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_170
#AT_START_171
at_fn_group_banner 171 'sparse03.at:21' \
"storing sparse files > 8G" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "171. $at_setup_line: testing $at_desc ..."
$at_traceon
# Tar 1.15.1 incorrectly computed sparse member size if the extended
# PAX header contained size keyword.
# References: <87vf46nb36.fsf@penguin.cs.ucla.edu>
# http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html
{ set +x
printf "%s\n" "$at_srcdir/sparse03.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77
genfile --length 1000 --file begin
genfile --length 1000 --file end
genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "sparse03.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
genfile --length 1000 --file begin
genfile --length 1000 --file end
genfile --sparse --file sparsefile --block-size 512 8G A || exit 77
tar -c -f archive --sparse begin sparsefile end || exit 1
echo separator
tar tfv archive
echo separator
mkdir directory
tar Cxf directory archive
genfile --stat=name,size sparsefile
cmp sparsefile directory/sparsefile
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo stdout:; tee stdout <"$at_stdout"
at_fn_check_status 0 $at_status "$at_srcdir/sparse03.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
cat >stdout.re <<'_ATEOF'
separator
-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 begin
-rw-r--r-- ^ ^ * *8589935104 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 sparsefile
-rw-r--r-- ^ ^ * *1000 0-90-90-90-9-0-90-9-0-90-9 0-90-9:0-90-9 end
separator
sparsefile 8589935104
_ATEOF
awk '{print NR " " $0}' stdout > $$.1
awk '{print NR " " $0}' stdout.re | join - $$.1 |
while read NUM RE LINE
do
echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
done
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_171
#AT_START_172
at_fn_group_banner 172 'sparse04.at:21' \
"storing long sparse file names" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "172. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Tar versions from 1.15.92 to 1.25 would incorrectly
# store sparse file names longer than 100 characters in pax mode.
# Namely, the 'path' keyword of the produced PAX header would contain the
# crafted name of the header itself, instead of that of the file.
# Reported by: Kamil Dudka <kdudka@redhat.com>
# References: <201011250026.44908.kdudka@redhat.com>,
# http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00099.html
{ set +x
printf "%s\n" "$at_srcdir/sparse04.at:35:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
tar -f - -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar tf -
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse04.at:35"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 --block-size 512 8M A || exit 77
tar -f - -c --sparse --posix 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | tar tf -
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse04.at:35"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_172
#AT_START_173
at_fn_group_banner 173 'sparse05.at:21' \
"listing sparse files bigger than 2^33 B" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "173. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: If an archive in POSIX.1-2001 archive contained a sparse file
# member whose real size (excluding zero blocks) is bigger than 2^33 bytes,
# tar 1.28 would incorrectly list the real member size.
# Reported by: Pavel Raiskup <praiskup@redhat.com>
# References: <1359119879.15037.4.camel@raiskup>,
# http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html
{ set +x
printf "%s\n" "$at_srcdir/sparse05.at:31:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77
cat >mapfile <<'_ATEOF'
0 =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
_ATEOF
genfile --sparse --file BIGFILE --block-size 4K - < mapfile || exit 77
tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print \$3, \$(NF) }'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "sparse05.at:31"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
cat >mapfile <<'_ATEOF'
0 =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
10M =2560
_ATEOF
genfile --sparse --file BIGFILE --block-size 4K - < mapfile || exit 77
tar -f - -c --sparse --posix BIGFILE | tar tvf - | awk '{ print $3, $(NF) }'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "20961034240 BIGFILE
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_173
#AT_START_174
at_fn_group_banner 174 'sparse06.at:21' \
"storing sparse file using seek method" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "174. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/sparse06.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
checkseekhole || exit 77
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=seek\"
genfile --sparse --file bigsparse 0 ABC 8G DEF || exit 77
tar -cSf a bigsparse
test \$? -eq 0 || exit 1
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M DEF || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC 20M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M DEF 20M GHI 30M JKL 40M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse06.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
checkseekhole || exit 77
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=seek"
genfile --sparse --file bigsparse 0 ABC 8G DEF || exit 77
tar -cSf a bigsparse
test $? -eq 0 || exit 1
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 0 ABC 10M DEF || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M ABC 20M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
rm -rf out archive.tar smallsparse && mkdir out
genfile --sparse --quiet --file smallsparse 10M DEF 20M GHI 30M JKL 40M || exit 77
tar -cSf archive.tar smallsparse
tar -xf archive.tar -C out
cmp smallsparse out/smallsparse
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse06.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_174
#AT_START_175
at_fn_group_banner 175 'sparse07.at:21' \
"sparse files with unicode names" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "175. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/sparse07.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse07.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "\\305\\276lu\\305\\245
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse07.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse07.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse07.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "\\305\\276lu\\305\\245
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse07.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparse07.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparse07.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --file žluť --block-size 512 0 ABCD 1M EFGH 2000K IJKL || exit 77
tar -c -f archive --sparse žluť || exit 1
tar tf archive
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "\\305\\276lu\\305\\245
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparse07.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_175
#AT_START_176
at_fn_group_banner 176 'sparsemv.at:21' \
"sparse files in MV archives" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "176. $at_setup_line: testing $at_desc ..."
$at_traceon
# Check if sparse files are correctly split between GNU multi-volume
# archives.
# There are two cases: the file can be split within an empty (null) block,
# or within a data block. Since null blocks are not archived, the first
# case means the file is split between two consecutive data blocks.
#
{ set +x
printf "%s\n" "$at_srcdir/sparsemv.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo \"Pass 1: Split between data blocks\"
echo \"Create archive\"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo \"Test archive\"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo \"Compare archive\"
tar --record-size=512 -d -M -f arc.1 -f arc.2
echo \"Pass 2: Split within a data block\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo \"Create archive\"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo \"Test archive\"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo \"Compare archive\"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Pass 1: Split between data blocks
Create archive
Test archive
sparsefile
Compare archive
Pass 2: Split within a data block
Create archive
Test archive
sparsefile
Compare archive
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sparsemv.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo \"Pass 1: Split between data blocks\"
echo \"Create archive\"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo \"Test archive\"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo \"Compare archive\"
tar --record-size=512 -d -M -f arc.1 -f arc.2
echo \"Pass 2: Split within a data block\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo \"Create archive\"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo \"Test archive\"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo \"Compare archive\"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)"
at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse -c --record-size=512 -M -L6 -f arc.1 -f arc.2 sparsefile || exit 1
echo "Test archive"
tar --record-size=512 -t -M -f arc.1 -f arc.2
echo "Compare archive"
tar --record-size=512 -d -M -f arc.1 -f arc.2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Pass 1: Split between data blocks
Create archive
Test archive
sparsefile
Compare archive
Pass 2: Split within a data block
Create archive
Test archive
sparsefile
Compare archive
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_176
#AT_START_177
at_fn_group_banner 177 'spmvp00.at:21' \
"sparse files in PAX MV archives, v.0.0" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "177. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/spmvp00.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
echo \"Pass 1: Split between data blocks\"
echo \"Create archive\"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo \"Pass 2: Split within a data block\"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo \"Create archive\"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)"
at_fn_check_prepare_notrace 'an embedded newline' "spmvp00.at:24"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHI 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=0.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Pass 1: Split between data blocks
Create archive
Test archive
sparsefile
Compare archive
Pass 2: Split within a data block
Create archive
Test archive
sparsefile
Compare archive
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/spmvp00.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_177
#AT_START_178
at_fn_group_banner 178 'spmvp01.at:21' \
"sparse files in PAX MV archives, v.0.1" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "178. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/spmvp01.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo \"Pass 1: Split between data blocks\"
echo \"Create archive\"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo \"Pass 2: Split within a data block\"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo \"Create archive\"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)"
at_fn_check_prepare_notrace 'an embedded newline' "spmvp01.at:24"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGHIJK 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFGHIJ 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=0.1 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Pass 1: Split between data blocks
Create archive
Test archive
sparsefile
Compare archive
Pass 2: Split within a data block
Create archive
Test archive
sparsefile
Compare archive
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/spmvp01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_178
#AT_START_179
at_fn_group_banner 179 'spmvp10.at:21' \
"sparse files in PAX MV archives, v.1.0" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "179. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/spmvp10.at:24:
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H pax\"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS=\"\$TAR_OPTIONS --hole-detection=raw\"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo \"Pass 1: Split between data blocks\"
echo \"Create archive\"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo \"Pass 2: Split within a data block\"
genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
echo \"Create archive\"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo \"Test archive\"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo \"Compare archive\"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)"
at_fn_check_prepare_notrace 'an embedded newline' "spmvp10.at:24"
( $at_check_trace;
mkdir pax
(cd pax
TEST_TAR_FORMAT=pax
export TEST_TAR_FORMAT
TAR_OPTIONS="-H pax"
export TAR_OPTIONS
rm -rf *
exec <&-
TAR_OPTIONS="$TAR_OPTIONS --hole-detection=raw"
genfile --sparse --file sparsefile 0 ABCDEFGH 1M ABCDEFGHI || exit 77
echo "Pass 1: Split between data blocks"
echo "Create archive"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
echo "Pass 2: Split within a data block"
genfile --sparse --file sparsefile 0 ABCDEFG 1M ABCDEFGHI || exit 77
echo "Create archive"
tar --sparse --sparse-version=1.0 -c --record-size=512 -M -L6 -f arc.1 -f arc.2 -f arc.3 sparsefile
echo "Test archive"
tar -t -M -f arc.1 -f arc.2 -f arc.3
echo "Compare archive"
tar -d -M -f arc.1 -f arc.2 -f arc.3
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Pass 1: Split between data blocks
Create archive
Test archive
sparsefile
Compare archive
Pass 2: Split within a data block
Create archive
Test archive
sparsefile
Compare archive
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/spmvp10.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_179
#AT_START_180
at_fn_group_banner 180 'sptrcreat.at:33' \
"sparse file truncated while archiving" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "180. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/sptrcreat.at:36:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.at:36"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 11575296 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrcreat.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 11575296 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrcreat.at:36:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.at:36"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 200m --length 11575296 --pattern=zeros
tar dvf bar | sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 11575296 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_180
#AT_START_181
at_fn_group_banner 181 'sptrdiff00.at:26' \
"file truncated in sparse region while comparing" "" 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "181. $at_setup_line: testing $at_desc ..."
$at_traceon
# This triggers short read in check_sparse_region.
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff00.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff00.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff00.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 3 --length 200m --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_181
#AT_START_182
at_fn_group_banner 182 'sptrdiff01.at:26' \
"file truncated in data region while comparing" " " 25
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "182. $at_setup_line: testing $at_desc ..."
$at_traceon
# This triggers short read in check_data_region.
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff01.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff01.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/sptrdiff01.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \\
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\
tar --sparse -vdf bar
)"
at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --sparse --block-size=1024 --file foo \
0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ || exit 77
genfile --file baz
echo creating
tar --sparse -vcf bar foo baz
echo comparing
genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \
tar --sparse -vdf bar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "creating
foo
baz
comparing
foo
foo: Size differs
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_182
#AT_START_183
at_fn_group_banner 183 'update.at:28' \
"update unchanged directories" " " 26
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "183. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/update.at:31:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
directory/
directory/file1
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
directory/
directory/file1
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update.at:31:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
directory/
directory/file1
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update.at:31:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
directory/
directory/file1
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir directory
genfile --length 10240 --pattern zeros --file directory/file1
genfile --length 10240 --pattern default --file directory/file2
tar cf archive directory || exit 1
echo separator
tar uf archive directory || exit 1
echo separator
tar tf archive | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
directory/
directory/file1
directory/file2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_183
#AT_START_184
at_fn_group_banner 184 'update01.at:29' \
"update directories" " " 26
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "184. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/update01.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
genfile --file a/c
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
genfile --file a/c
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/c
separator
a/
a/b
a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update01.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
genfile --file a/c
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
genfile --file a/c
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/c
separator
a/
a/b
a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update01.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
genfile --file a/c
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
genfile --file a/c
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/c
separator
a/
a/b
a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update01.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
genfile --file a/c
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
genfile --file a/c
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/c
separator
a/
a/b
a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update01.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
genfile --file a/c
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update01.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
genfile --file a/c
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/c
separator
a/
a/b
a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_184
#AT_START_185
at_fn_group_banner 185 'update02.at:26' \
"update changed files" " " 26
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "185. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/update02.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
touch a/b
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
touch a/b
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/b
separator
a/
a/b
a/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update02.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
touch a/b
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
touch a/b
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/b
separator
a/
a/b
a/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update02.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
touch a/b
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
touch a/b
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/b
separator
a/
a/b
a/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update02.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
touch a/b
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
touch a/b
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/b
separator
a/
a/b
a/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update02.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo \"separator\"
sleep 2
touch a/b
tar ufv arc a
echo \"separator\"
tar tf arc | sort || exit 1
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "update02.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
tar cf arc a
echo "separator"
sleep 2
touch a/b
tar ufv arc a
echo "separator"
tar tf arc | sort || exit 1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
a/b
separator
a/
a/b
a/b
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update02.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_185
#AT_START_186
at_fn_group_banner 186 'update03.at:20' \
"update with chdir" " " 26
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "186. $at_setup_line: testing $at_desc ..."
$at_traceon
# Tar <=1.29 failed to chdir when -u was used with -C
# Reported by: Ivan Kalvachev <ikalvachev@gmail.com>
# References: <CABA=pqfSq-4PJYp7W2ezGOz+fR2uh74AyA7kOeXJBzg2o-oQBA@mail.gmail.com>,
# http://lists.gnu.org/archive/html/bug-tar/2016-08/msg00003.html
{ set +x
printf "%s\n" "$at_srcdir/update03.at:27:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)"
at_fn_check_prepare_notrace 'an embedded newline' "update03.at:27"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
subdir1/
subdir1/a
subdir2/
subdir2/a
Update
subdir1/b
subdir2/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update03.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)"
at_fn_check_prepare_notrace 'an embedded newline' "update03.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
subdir1/
subdir1/a
subdir2/
subdir2/a
Update
subdir1/b
subdir2/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update03.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)"
at_fn_check_prepare_notrace 'an embedded newline' "update03.at:27"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
subdir1/
subdir1/a
subdir2/
subdir2/a
Update
subdir1/b
subdir2/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update03.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)"
at_fn_check_prepare_notrace 'an embedded newline' "update03.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
subdir1/
subdir1/a
subdir2/
subdir2/a
Update
subdir1/b
subdir2/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update03.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)"
at_fn_check_prepare_notrace 'an embedded newline' "update03.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir dir1
mkdir dir2
mkdir dir1/subdir1 dir2/subdir2
genfile --file dir1/subdir1/a
genfile --file dir2/subdir2/a
echo Create
tar -vcf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
genfile --file dir1/subdir1/b
genfile --file dir2/subdir2/c
echo Update
tar -vuf arc.tar -C dir1 subdir1 -C ../dir2 subdir2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
subdir1/
subdir1/a
subdir2/
subdir2/a
Update
subdir1/b
subdir2/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update03.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_186
#AT_START_187
at_fn_group_banner 187 'update04.at:20' \
"update with wildcards" " " 26
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "187. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/update04.at:23:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo \"update\" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo \"Second update\"
tar ufv archive --wildcards './file.*'
echo \"Non-matching pattern\"
tar ufv archive --wildcards './file.*' './foo.*'
echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "update04.at:23"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo "update" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo "Second update"
tar ufv archive --wildcards './file.*'
echo "Non-matching pattern"
tar ufv archive --wildcards './file.*' './foo.*'
echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./foo.*: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
First update
./file.b
Second update
Non-matching pattern
2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update04.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update04.at:23:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo \"update\" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo \"Second update\"
tar ufv archive --wildcards './file.*'
echo \"Non-matching pattern\"
tar ufv archive --wildcards './file.*' './foo.*'
echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "update04.at:23"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo "update" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo "Second update"
tar ufv archive --wildcards './file.*'
echo "Non-matching pattern"
tar ufv archive --wildcards './file.*' './foo.*'
echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./foo.*: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
First update
./file.b
Second update
Non-matching pattern
2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update04.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update04.at:23:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo \"update\" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo \"Second update\"
tar ufv archive --wildcards './file.*'
echo \"Non-matching pattern\"
tar ufv archive --wildcards './file.*' './foo.*'
echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "update04.at:23"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo "update" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo "Second update"
tar ufv archive --wildcards './file.*'
echo "Non-matching pattern"
tar ufv archive --wildcards './file.*' './foo.*'
echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./foo.*: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
First update
./file.b
Second update
Non-matching pattern
2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update04.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update04.at:23:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo \"update\" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo \"Second update\"
tar ufv archive --wildcards './file.*'
echo \"Non-matching pattern\"
tar ufv archive --wildcards './file.*' './foo.*'
echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "update04.at:23"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo "update" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo "Second update"
tar ufv archive --wildcards './file.*'
echo "Non-matching pattern"
tar ufv archive --wildcards './file.*' './foo.*'
echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./foo.*: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
First update
./file.b
Second update
Non-matching pattern
2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update04.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/update04.at:23:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo \"update\" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo \"Second update\"
tar ufv archive --wildcards './file.*'
echo \"Non-matching pattern\"
tar ufv archive --wildcards './file.*' './foo.*'
echo \$?
)"
at_fn_check_prepare_notrace 'an embedded newline' "update04.at:23"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file file.a
genfile --file file.b
genfile --file file.c
echo Create
tar cf archive ./file.*
sleep 1
echo "update" > file.b
echo First update
tar ufv archive --wildcards './file.*'
echo "Second update"
tar ufv archive --wildcards './file.*'
echo "Non-matching pattern"
tar ufv archive --wildcards './file.*' './foo.*'
echo $?
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: ./foo.*: Not found in archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Create
First update
./file.b
Second update
Non-matching pattern
2
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/update04.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_187
#AT_START_188
at_fn_group_banner 188 'verify.at:25' \
"verify" " " 27
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "188. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/verify.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
Verify foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verify.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
Verify foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verify.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
Verify foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verify.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
Verify foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/verify.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "verify.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
touch foo
tar -cvf archive.tar --verify foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
Verify foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/verify.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_188
#AT_START_189
at_fn_group_banner 189 'volume.at:23' \
"volume" " " 28
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "189. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/volume.at:26:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
tar -cf archive -V label -T /dev/null || exit 1
tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1
echo 1>&2 -----
tar xfV archive lab
test \$? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test \$? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test \$? = 2
)"
at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
tar -cf archive -V label -T /dev/null || exit 1
tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1
echo 1>&2 -----
tar xfV archive lab
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test $? = 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: Volume 'label' does not match 'lab'
tar: Error is not recoverable: exiting now
-----
tar: Volume 'label' does not match 'bel'
tar: Error is not recoverable: exiting now
-----
tar: Volume 'label' does not match 'babel'
tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/volume.at:26:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
tar -cf archive -V label -T /dev/null || exit 1
tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1
echo 1>&2 -----
tar xfV archive lab
test \$? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test \$? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test \$? = 2
)"
at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
tar -cf archive -V label -T /dev/null || exit 1
tar xfV archive label || exit 1
tar xfV archive 'la?el' || exit 1
tar xfV archive 'l*l' || exit 1
echo 1>&2 -----
tar xfV archive lab
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive bel
test $? = 2 || exit 1
echo 1>&2 -----
tar xfV archive babel
test $? = 2
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "-----
tar: Volume 'label' does not match 'lab'
tar: Error is not recoverable: exiting now
-----
tar: Volume 'label' does not match 'bel'
tar: Error is not recoverable: exiting now
-----
tar: Volume 'label' does not match 'babel'
tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_189
#AT_START_190
at_fn_group_banner 190 'volsize.at:29' \
"volume header size" " " 28
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "190. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/volsize.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
echo Short Listing
tar tf \$TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf \$TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf \$TEST_DATA_DIR/abc.tar
find abc|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Short Listing
abc/not-a-file.gif
abc/CCC
Verbose Listing
V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
-rw-r--r-- tom/users 0 2006-04-22 19:52 abc/CCC
Extracted directory
abc
abc/CCC
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/volsize.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
echo Short Listing
tar tf \$TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf \$TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf \$TEST_DATA_DIR/abc.tar
find abc|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Short Listing
abc/not-a-file.gif
abc/CCC
Verbose Listing
V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
-rw-r--r-- tom/users 0 2006-04-22 19:52 abc/CCC
Extracted directory
abc
abc/CCC
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/volsize.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
echo Short Listing
tar tf \$TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf \$TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf \$TEST_DATA_DIR/abc.tar
find abc|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Short Listing
abc/not-a-file.gif
abc/CCC
Verbose Listing
V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
-rw-r--r-- tom/users 0 2006-04-22 19:52 abc/CCC
Extracted directory
abc
abc/CCC
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/volsize.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
echo Short Listing
tar tf \$TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf \$TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf \$TEST_DATA_DIR/abc.tar
find abc|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Short Listing
abc/not-a-file.gif
abc/CCC
Verbose Listing
V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
-rw-r--r-- tom/users 0 2006-04-22 19:52 abc/CCC
Extracted directory
abc
abc/CCC
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/volsize.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
test -z \"\$TEST_DATA_DIR\" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 \$TEST_DATA_DIR \$TEST_DATA_URL || exit 77
echo Short Listing
tar tf \$TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf \$TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf \$TEST_DATA_DIR/abc.tar
find abc|sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
test -z "$TEST_DATA_DIR" && exit 77
tarball_prereq abc.tar 540f196ceddcad9e7bd2f2d7533d0474 $TEST_DATA_DIR $TEST_DATA_URL || exit 77
echo Short Listing
tar tf $TEST_DATA_DIR/abc.tar
echo Verbose Listing
tar --utc -tvf $TEST_DATA_DIR/abc.tar
echo Extracted directory
tar xf $TEST_DATA_DIR/abc.tar
find abc|sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "Short Listing
abc/not-a-file.gif
abc/CCC
Verbose Listing
V--------- 0/0 1536 2006-05-08 22:07 abc/not-a-file.gif--Volume Header--
-rw-r--r-- tom/users 0 2006-04-22 19:52 abc/CCC
Extracted directory
abc
abc/CCC
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_190
#AT_START_191
at_fn_group_banner 191 'comprec.at:21' \
"compressed format recognition" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "191. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/comprec.at:25:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo \"separator\"
tar cfz archive file1
echo \"separator\"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)"
at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comprec.at:25:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo \"separator\"
tar cfz archive file1
echo \"separator\"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)"
at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comprec.at:25:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo \"separator\"
tar cfz archive file1
echo \"separator\"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)"
at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comprec.at:25:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo \"separator\"
tar cfz archive file1
echo \"separator\"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)"
at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comprec.at:25:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo \"separator\"
tar cfz archive file1
echo \"separator\"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)"
at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
genfile --length 10240 --file file1
echo "separator"
tar cfz archive file1
echo "separator"
mv file1 orig
tar xfv archive --warning=no-timestamp
cmp orig file1
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
separator
file1
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_191
#AT_START_192
at_fn_group_banner 192 'shortfile.at:26' \
"short input files" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "192. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/shortfile.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --length 511 --file foo || exit 5
tar tf foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortfile.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --length 511 --file foo || exit 5
tar tf foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/shortfile.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_192
#AT_START_193
at_fn_group_banner 193 'shortupd.at:31' \
"updating short archives" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "193. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/shortupd.at:34:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortupd.at:34:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortupd.at:34:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortupd.at:34:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/shortupd.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)"
at_fn_check_prepare_notrace 'an embedded newline' "shortupd.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
touch foo
tar uf archive foo
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/shortupd.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_193
#AT_START_194
at_fn_group_banner 194 'truncate.at:29' \
"truncate" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "194. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/truncate.at:32:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \\
tar -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 5120 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/truncate.at:32:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \\
tar -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 5120 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/truncate.at:32:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \\
tar -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 5120 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/truncate.at:32:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \\
tar -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 5120 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/truncate.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \\
tar -vcf bar foo baz
echo Exit status: \$?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')"
at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 200k
genfile --file baz
genfile --run --checkpoint 10 --length 195k --truncate foo -- \
tar -vcf bar foo baz
echo Exit status: $?
echo separator
genfile --file foo --seek 195k --length 5k --pattern=zeros
tar dvf bar|sed '/foo: Mod time differs/d')
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: File shrank by 5120 bytes; padding with zeros
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
Exit status: 1
separator
foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_194
#AT_START_195
at_fn_group_banner 195 'grow.at:24' \
"grow" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "195. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/grow.at:27:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)"
at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: file changed as we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/grow.at:27:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)"
at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: file changed as we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/grow.at:27:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)"
at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: file changed as we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/grow.at:27:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)"
at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: file changed as we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/grow.at:27:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)"
at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
genfile --file foo --length 50000k
genfile --file baz
genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: foo: file changed as we read it
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "foo
baz
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_195
#AT_START_196
at_fn_group_banner 196 'sigpipe.at:21' \
"sigpipe handling" " " 29
at_xfail=no
(
printf "%s\n" "196. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: Tar 1.23 ignored sigpipe which lead to spurious "write
# error" diagnostics when piping output to another programs.
# Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
# References: http://lists.gnu.org/archive/html/bug-tar/2010-03/msg00039.html
# <20100319184141.GC30047@wo.int.altlinux.org>
{ set +x
printf "%s\n" "$at_srcdir/sigpipe.at:30:
case \`(cat \"\$at_myself\" 2>&3 | :) 3>&1 >/dev/null\` in #(
?*) exit 77;;
esac
genfile --length 2048 --file first
genfile --length 2048 --file second
genfile --length 2049 --file third
tar cf archive first second third
# Discard diagnostics that some shells generate about broken pipes.
(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
"
at_fn_check_prepare_notrace 'a `...` command substitution' "sigpipe.at:30"
( $at_check_trace;
case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
?*) exit 77;;
esac
genfile --length 2048 --file first
genfile --length 2048 --file second
genfile --length 2049 --file third
tar cf archive first second third
# Discard diagnostics that some shells generate about broken pipes.
(tar tf archive 2>&3 | :) 3>&2 2>/dev/null
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/sigpipe.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_196
#AT_START_197
at_fn_group_banner 197 'comperr.at:18' \
"compressor program failure" " " 29
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "197. $at_setup_line: testing $at_desc ..."
$at_traceon
# Description: If the --use-compress-program fails, then it is unsafe
# to assume that the created archive is OK. Tar should fail with a
# prominent error message.
# Reported by: Ole Tange <tange@gnu.org>
# References: <CA+4vN7wLZ-+LK1t7WMkM_b9f3mV9JTnSuPamPn2ciX5PTN=9Xw@mail.gmail.com>,
# http://lists.gnu.org/archive/html/bug-tar/2015-03/msg00002.html
{ set +x
printf "%s\n" "$at_srcdir/comperr.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=\$?
sed -n '\$p' err
exit \$rc
)"
at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comperr.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=\$?
sed -n '\$p' err
exit \$rc
)"
at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comperr.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=\$?
sed -n '\$p' err
exit \$rc
)"
at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comperr.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=\$?
sed -n '\$p' err
exit \$rc
)"
at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/comperr.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=\$?
sed -n '\$p' err
exit \$rc
)"
at_fn_check_prepare_notrace 'an embedded newline' "comperr.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
tar --use-compress-program false -cf a.tar . 2>err
rc=$?
sed -n '$p' err
exit $rc
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "tar: Error is not recoverable: exiting now
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/comperr.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_197
#AT_START_198
at_fn_group_banner 198 'remfiles01.at:28' \
"remove-files with compression" " " 30
at_xfail=no
(
printf "%s\n" "198. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/remfiles01.at:32:
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 && exit 77
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
case \`(cat \"\$at_myself\" 2>&3 | :) 3>&1 >/dev/null\` in #(
?*) exit 77;;
esac
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
cd dir
genfile --file a --length 0
chmod 0 a
genfile --file b
mkdir c
# Depending on when the SIGPIPE gets delivered, the invocation below
# may finish with either
# tar: a: Cannot write: Broken pipe
# or
# tar: Child returned status 2
# Discard diagnostics that some shells generate about broken pipes,
# and discard all of tar's diagnostics except for the ones saying \"(child)\".
# Gzip's exit code is propagated to the shell. Usually it is 141.
# Convert all non-zero exits to 2 to make it predictable.
(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
EC=\$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit \$EC
"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles01.at:32"
( $at_check_trace;
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 && exit 77
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
case `(cat "$at_myself" 2>&3 | :) 3>&1 >/dev/null` in #(
?*) exit 77;;
esac
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
cd dir
genfile --file a --length 0
chmod 0 a
genfile --file b
mkdir c
# Depending on when the SIGPIPE gets delivered, the invocation below
# may finish with either
# tar: a: Cannot write: Broken pipe
# or
# tar: Child returned status 2
# Discard diagnostics that some shells generate about broken pipes,
# and discard all of tar's diagnostics except for the ones saying "(child)".
# Gzip's exit code is propagated to the shell. Usually it is 141.
# Convert all non-zero exits to 2 to make it predictable.
(tar -c -f a -z --remove-files b c 2>err || (exit 2) ) 2>/dev/null
EC=$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit $EC
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar (child): a: Cannot open: Permission denied
tar (child): Error is not recoverable: exiting now
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./b
./c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/remfiles01.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_198
#AT_START_199
at_fn_group_banner 199 'remfiles02.at:28' \
"remove-files with compression: grand-child" " " 30
at_xfail=no
(
printf "%s\n" "199. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/remfiles02.at:32:
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir dir
cd dir
mkdir a
genfile --file b
mkdir c
tar -c -f a -z --remove-files b c 2>err
EC=\$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit \$EC
"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles02.at:32"
( $at_check_trace;
cat /dev/null | gzip - > /dev/null 2>&1 || exit 77
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir dir
cd dir
mkdir a
genfile --file b
mkdir c
tar -c -f a -z --remove-files b c 2>err
EC=$?
sed -n '/(child)/p' err >&2
rm err
find . | sort
exit $EC
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar (child): a: Cannot open: Is a directory
tar (child): Error is not recoverable: exiting now
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./b
./c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/remfiles02.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_199
#AT_START_200
at_fn_group_banner 200 'remfiles03.at:28' \
"remove-files with symbolic links" " " 30
at_xfail=no
(
printf "%s\n" "200. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles03.at:31:
mkdir a
mkdir a/b
ln -s b a/c || exit 77
tar --remove-files -cf a.tar a
genfile --stat a
"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles03.at:31"
( $at_check_trace;
mkdir a
mkdir a/b
ln -s b a/c || exit 77
tar --remove-files -cf a.tar a
genfile --stat a
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "genfile: stat(a) failed: No such file or directory
" | \
$at_diff - "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles03.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_200
#AT_START_201
at_fn_group_banner 201 'remfiles04a.at:25' \
"remove-files with -C:rel in -c/non-incr. mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "201. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles04a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --remove-files -C foo bar
echo A
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04a.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --remove-files -C foo bar
echo A
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles04a.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_201
#AT_START_202
at_fn_group_banner 202 'remfiles04b.at:33' \
"remove-files with -C:rel in -c/incr. mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "202. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles04b.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --incremental --remove-files -C foo bar
echo A
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04b.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar --incremental --remove-files -C foo bar
echo A
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles04b.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_202
#AT_START_203
at_fn_group_banner 203 'remfiles04c.at:33' \
"remove-files with -C:rel in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "203. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles04c.at:36:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar -C foo bar
echo A
find . | sort
tar -rf foo.tar --remove-files -C foo bar
echo B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles04c.at:36"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
echo bar > bar
echo foobar > foo/bar
tar -cf foo.tar -C foo bar
echo A
find . | sort
tar -rf foo.tar --remove-files -C foo bar
echo B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./foo
./foo.tar
./foo/bar
B
.
./bar
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles04c.at:36"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_203
#AT_START_204
at_fn_group_banner 204 'remfiles05a.at:34' \
"remove-files with -C:rel,rel in -c/non-incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "204. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles05a.at:37:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --remove-files -C foo file -C ../bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05a.at:37"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --remove-files -C foo file -C ../bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles05a.at:37"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_204
#AT_START_205
at_fn_group_banner 205 'remfiles05b.at:25' \
"remove-files with -C:rel,rel in -c/incr. mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "205. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles05b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05b.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C ../bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles05b.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_205
#AT_START_206
at_fn_group_banner 206 'remfiles05c.at:25' \
"remove-files with -C:rel,rel in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "206. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles05c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
tar -cf foo.tar -C foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C ../bar file
decho C
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles05c.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
tar -cf foo.tar -C foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C ../bar file
decho C
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
C
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./bar/file
./file
./foo
./foo.tar
./foo/file
B
file
file
C
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles05c.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_206
#AT_START_207
at_fn_group_banner 207 'remfiles06a.at:25' \
"remove-files with -C:rel,abs in -c/non-incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "207. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles06a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
decho A
tar -cvf foo.tar --remove-files -C foo file -C \$DIR/bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06a.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --remove-files -C foo file -C $DIR/bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles06a.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_207
#AT_START_208
at_fn_group_banner 208 'remfiles06b.at:25' \
"remove-files with -C:rel,abs in -c/incr. mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "208. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles06b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C \$DIR/bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06b.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --incremental --remove-files -C foo file -C $DIR/bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles06b.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_208
#AT_START_209
at_fn_group_banner 209 'remfiles06c.at:25' \
"remove-files with -C:rel,abs in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "209. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles06c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
tar -cf foo.tar -C foo file -C \$DIR/bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C \$DIR/bar file
decho C
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles06c.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
tar -cf foo.tar -C foo file -C $DIR/bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo file -C $DIR/bar file
decho C
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
C
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./bar/file
./file
./foo
./foo.tar
./foo/file
B
file
file
C
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles06c.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_209
#AT_START_210
at_fn_group_banner 210 'remfiles07a.at:25' \
"remove-files with -C:abs,rel in -c/non-incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "210. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles07a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
decho A
tar -cvf foo.tar --remove-files -C \$DIR/foo file -C ../bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07a.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles07a.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_210
#AT_START_211
at_fn_group_banner 211 'remfiles07b.at:25' \
"remove-files with -C:abs,rel in -c/incr. mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "211. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles07b.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
decho A
tar -cvf foo.tar --incremental --remove-files -C \$DIR/foo file -C ../bar file
decho B
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07b.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
decho A
tar -cvf foo.tar --incremental --remove-files -C $DIR/foo file -C ../bar file
decho B
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
file
file
B
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles07b.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_211
#AT_START_212
at_fn_group_banner 212 'remfiles07c.at:25' \
"remove-files with -C:abs,rel in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "212. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles07c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=\`pwd\`
tar -cf foo.tar -C \$DIR/foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C \$DIR/foo file -C ../bar file
decho C
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles07c.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo file > file
echo foo/file > foo/file
echo bar/file > bar/file
DIR=`pwd`
tar -cf foo.tar -C $DIR/foo file -C ../bar file
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C $DIR/foo file -C ../bar file
decho C
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
C
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./bar/file
./file
./foo
./foo.tar
./foo/file
B
file
file
C
.
./bar
./file
./foo
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles07c.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_212
#AT_START_213
at_fn_group_banner 213 'remfiles08a.at:28' \
"remove-files deleting two subdirs in -c/non-incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "213. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles08a.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --remove-files -C foo . -C ../bar .
decho B
find .
)"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles08a.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --remove-files -C foo . -C ../bar .
decho B
find .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
./
./foo_file
./
./bar_file
B
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles08a.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_213
#AT_START_214
at_fn_group_banner 214 'remfiles08b.at:31' \
"remove-files deleting two subdirs in -c/incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "214. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles08b.at:34:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo . -C ../bar .
decho B
find .
)"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles08b.at:34"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
decho A
tar -cvf foo.tar --incremental --remove-files -C foo . -C ../bar .
decho B
find .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
tar: .: Directory is new
tar: .: Directory is new
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
./
./
./foo_file
./bar_file
B
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles08b.at:34"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_214
#AT_START_215
at_fn_group_banner 215 'remfiles08c.at:28' \
"remove-files deleting two subdirs in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "215. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles08c.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
tar -cf foo.tar -C foo . -C ../bar .
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo . -C ../bar .
decho C
find .
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles08c.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
mkdir bar
echo foo/foo_file > foo/foo_file
echo bar/bar_file > bar/bar_file
tar -cf foo.tar -C foo . -C ../bar .
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files -C foo . -C ../bar .
decho C
find .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
C
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./bar
./bar/bar_file
./foo
./foo.tar
./foo/foo_file
B
./
./foo_file
./
./bar_file
C
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles08c.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_215
#AT_START_216
at_fn_group_banner 216 'remfiles09a.at:25' \
"remove-files on full directory in -c/non-incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "216. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles09a.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --remove-files foo
decho B
find .
)"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles09a.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --remove-files foo
decho B
find .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
foo/
foo/file
B
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles09a.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_216
#AT_START_217
at_fn_group_banner 217 'remfiles09b.at:29' \
"remove-files on full directory in -c/incr. mode" "" 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "217. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles09b.at:32:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --incremental --remove-files foo
decho B
find .
)"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles09b.at:32"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
tar -cvf foo.tar --incremental --remove-files foo
decho B
find .
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
tar: foo: Directory is new
B
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
foo/
foo/file
B
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles09b.at:32"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_217
#AT_START_218
at_fn_group_banner 218 'remfiles09c.at:25' \
"remove-files on full directory in -r mode" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "218. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles09c.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir foo
echo foo/file > foo/file
tar -cf foo.tar foo
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files foo
decho C
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "remfiles09c.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir foo
echo foo/file > foo/file
tar -cf foo.tar foo
decho A
find . | sort
decho B
tar -rvf foo.tar --remove-files foo
decho C
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "A
B
C
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
.
./foo
./foo.tar
./foo/file
B
foo/
foo/file
C
.
./foo.tar
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles09c.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_218
#AT_START_219
at_fn_group_banner 219 'remfiles10.at:20' \
"remove-files" " " 30
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "219. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/remfiles10.at:23:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
(cd foo && tar -cvf ../foo.tar --remove-files .)
tar_status=\$?
decho B
find foo
exit \$tar_status
)"
at_fn_check_prepare_notrace 'an embedded newline' "remfiles10.at:23"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
mkdir foo
echo foo/file > foo/file
decho A
(cd foo && tar -cvf ../foo.tar --remove-files .)
tar_status=$?
decho B
find foo
exit $tar_status
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "A
./
./file
B
foo
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 2 $at_status "$at_srcdir/remfiles10.at:23"
$at_failed && at_fn_log_failure
$at_traceon; }
# Check standard error produced by the above command. Exact errno reported
# when trying to remove CWD may differ, so it is stripped off.
{ set +x
printf "%s\n" "$at_srcdir/remfiles10.at:44: sed '2s/:[^:]*\$//' stderr"
at_fn_check_prepare_dynamic "sed '2s/:[^:]*$//' stderr" "remfiles10.at:44"
( $at_check_trace; sed '2s/:[^:]*$//' stderr
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "A
tar: .: Cannot rmdir
tar: Exiting with failure status due to previous errors
B
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/remfiles10.at:44"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_219
#AT_START_220
at_fn_group_banner 220 'xattr01.at:25' \
"xattrs: basic functionality" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "220. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurDirValue\"
user.test=\"OurFileValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr01.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurDirValue\"
user.test=\"OurFileValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr01.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurDirValue\"
user.test=\"OurFileValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr01.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurDirValue\"
user.test=\"OurFileValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr01.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr01.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
tar --xattrs -cf archive.tar dir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurDirValue\"
user.test=\"OurFileValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_220
#AT_START_221
at_fn_group_banner 221 'xattr02.at:25' \
"xattrs: change directory with -C option" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "221. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^\$
getfattr -h -d file2 | grep -v -e '^#' -e ^\$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^$
getfattr -h -d file2 | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurFile1Value\"
user.test=\"OurFile2Value\"
user.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^\$
getfattr -h -d file2 | grep -v -e '^#' -e ^\$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^$
getfattr -h -d file2 | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurFile1Value\"
user.test=\"OurFile2Value\"
user.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^\$
getfattr -h -d file2 | grep -v -e '^#' -e ^\$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^$
getfattr -h -d file2 | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurFile1Value\"
user.test=\"OurFile2Value\"
user.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^\$
getfattr -h -d file2 | grep -v -e '^#' -e ^\$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^$
getfattr -h -d file2 | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurFile1Value\"
user.test=\"OurFile2Value\"
user.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^\$
getfattr -h -d file2 | grep -v -e '^#' -e ^\$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr02.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n user.test -v OurFile1Value dir/file1
setfattr -n user.test -v OurFile2Value dir/subdir/file2
setfattr -n user.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs -xf archive.tar
getfattr -h -d file1 | grep -v -e '^#' -e ^$
getfattr -h -d file2 | grep -v -e '^#' -e ^$
getfattr -h -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"OurFile1Value\"
user.test=\"OurFile2Value\"
user.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_221
#AT_START_222
at_fn_group_banner 222 'xattr03.at:25' \
"xattrs: trusted.* attributes" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "222. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr03.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "trusted.test=\"OurFile1Value\"
trusted.test=\"OurFile2Value\"
trusted.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr03.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "trusted.test=\"OurFile1Value\"
trusted.test=\"OurFile2Value\"
trusted.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr03.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "trusted.test=\"OurFile1Value\"
trusted.test=\"OurFile2Value\"
trusted.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr03.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "trusted.test=\"OurFile1Value\"
trusted.test=\"OurFile2Value\"
trusted.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr03.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^\$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr03.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
mkdir dir/subdir/subsubdir
genfile --file dir/file1
genfile --file dir/subdir/file2
setfattr -n trusted.test -v OurFile1Value dir/file1
setfattr -n trusted.test -v OurFile2Value dir/subdir/file2
setfattr -n trusted.test -v OurDirValue dir/subdir/subsubdir
tar --xattrs -cf archive.tar -C dir file1 -C subdir file2 subsubdir
rm -rf dir
tar --xattrs --xattrs-include=trusted* -xf archive.tar
getfattr -mtrusted. -d file1 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d file2 | grep -v -e '^#' -e ^$
getfattr -mtrusted. -d subsubdir | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "trusted.test=\"OurFile1Value\"
trusted.test=\"OurFile2Value\"
trusted.test=\"OurDirValue\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr03.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_222
#AT_START_223
at_fn_group_banner 223 'xattr04.at:26' \
"xattrs: s/open/openat/ regression" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "223. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr04.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=\$?
getfattr -h -d output/file | grep -v -e '^#' -e ^\$
exit \$ret
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"value\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr04.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=\$?
getfattr -h -d output/file | grep -v -e '^#' -e ^\$
exit \$ret
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"value\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr04.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=\$?
getfattr -h -d output/file | grep -v -e '^#' -e ^\$
exit \$ret
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"value\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr04.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=\$?
getfattr -h -d output/file | grep -v -e '^#' -e ^\$
exit \$ret
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"value\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr04.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=\$?
getfattr -h -d output/file | grep -v -e '^#' -e ^\$
exit \$ret
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr04.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.test -v value dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
ret=$?
getfattr -h -d output/file | grep -v -e '^#' -e ^$
exit $ret
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "user.test=\"value\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr04.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_223
#AT_START_224
at_fn_group_banner 224 'xattr05.at:28' \
"xattrs: keywords with '=' and '%'" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "224. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr05.at:31:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr05.at:31:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr05.at:31:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr05.at:31:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr05.at:31:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr05.at:31"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
setfattr -n user.=NAME%3D= -v value dir/file
getfattr -d dir/file | grep -v '# ' > before
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar -C dir .
tar --xattrs -xf archive.tar -C output
getfattr -d output/file | grep -v '# ' > after
diff before after
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr05.at:31"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_224
#AT_START_225
at_fn_group_banner 225 'xattr06.at:27' \
"xattrs: exclude xattrs on create " " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "225. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr06.at:30:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.\${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \\
-e excluded \\
-e inclb \\
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr06.at:30"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \
-e excluded \
-e inclb \
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr06.at:30:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.\${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \\
-e excluded \\
-e inclb \\
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr06.at:30"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \
-e excluded \
-e inclb \
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr06.at:30:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.\${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \\
-e excluded \\
-e inclb \\
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr06.at:30"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \
-e excluded \
-e inclb \
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr06.at:30:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.\${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \\
-e excluded \\
-e inclb \\
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr06.at:30"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \
-e excluded \
-e inclb \
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr06.at:30:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.\${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \\
-e excluded \\
-e inclb \\
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr06.at:30"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir output
genfile --file dir/file
for attr in excluded incla inclb inclc incl_excluded
do
setfattr -n user.${attr} -v value dir/file || exit 77
done
tar --xattrs-include=user.incl'*' --xattrs-exclude=user.incl_excluded -cf archive.tar -C dir .
tar -xf archive.tar --xattrs-include=user.incl[ab] --xattrs-exclude=user.inclb -C output
getfattr -d output/file | grep -v \
-e excluded \
-e inclb \
-e inclc > filtered
getfattr -d output/file > full
# if they differ then the attribute is still present
diff filtered full
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr06.at:30"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_225
#AT_START_226
at_fn_group_banner 226 'xattr07.at:26' \
"xattrs: xattrs and --skip-old-files" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "226. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr07.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr07.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: skipping existing file
tar: dir/file: skipping existing file
tar: dir/file2: skipping existing file
tar: dir/file: Cannot open: File exists
tar: dir/file2: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
dir/file2
dir/
dir/file
dir/file2
user.test=\"OurDirValue2\"
user.test=\"OurFileValue2\"
user.test=\"OurFileValue2\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr07.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr07.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr07.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: skipping existing file
tar: dir/file: skipping existing file
tar: dir/file2: skipping existing file
tar: dir/file: Cannot open: File exists
tar: dir/file2: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
dir/file2
dir/
dir/file
dir/file2
user.test=\"OurDirValue2\"
user.test=\"OurFileValue2\"
user.test=\"OurFileValue2\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr07.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr07.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr07.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: skipping existing file
tar: dir/file: skipping existing file
tar: dir/file2: skipping existing file
tar: dir/file: Cannot open: File exists
tar: dir/file2: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
dir/file2
dir/
dir/file
dir/file2
user.test=\"OurDirValue2\"
user.test=\"OurFileValue2\"
user.test=\"OurFileValue2\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr07.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr07.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr07.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: skipping existing file
tar: dir/file: skipping existing file
tar: dir/file2: skipping existing file
tar: dir/file: Cannot open: File exists
tar: dir/file2: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
dir/file2
dir/
dir/file
dir/file2
user.test=\"OurDirValue2\"
user.test=\"OurFileValue2\"
user.test=\"OurFileValue2\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr07.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr07.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file | grep -v -e '^#' -e ^\$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^\$
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr07.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
genfile --file dir/file2
setfattr -n user.test -v OurDirValue dir
setfattr -n user.test -v OurFileValue dir/file
setfattr -n user.test -v OurFileValue dir/file2
tar --xattrs --no-recursion -cf archive.tar dir dir/file dir/file2
setfattr -n user.test -v OurDirValue2 dir
setfattr -n user.test -v OurFileValue2 dir/file
setfattr -n user.test -v OurFileValue2 dir/file2
# Check that tar continues to file2 too!
tar --xattrs -xvf archive.tar --skip-old-files
tar --xattrs -xvf archive.tar --keep-old-files
getfattr -h -d dir | grep -v -e '^#' -e ^$
getfattr -h -d dir/file | grep -v -e '^#' -e ^$
getfattr -h -d dir/file2 | grep -v -e '^#' -e ^$
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo >>"$at_stderr"; printf "%s\n" "tar: dir: skipping existing file
tar: dir/file: skipping existing file
tar: dir/file2: skipping existing file
tar: dir/file: Cannot open: File exists
tar: dir/file2: Cannot open: File exists
tar: Exiting with failure status due to previous errors
" | \
$at_diff - "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/
dir/file
dir/file2
dir/
dir/file
dir/file2
user.test=\"OurDirValue2\"
user.test=\"OurFileValue2\"
user.test=\"OurFileValue2\"
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr07.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_226
#AT_START_227
at_fn_group_banner 227 'xattr08.at:26' \
"xattrs: xattrs and read-only files" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "227. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/xattr08.at:29:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr08.at:29"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr08.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr08.at:29:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr08.at:29"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr08.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr08.at:29:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr08.at:29"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr08.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr08.at:29:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr08.at:29"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr08.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/xattr08.at:29:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "xattr08.at:29"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir dir2
genfile --file dir/file
setfattr -n user.test -v OurDirValue dir/file
chmod a-w dir/file
tar --xattrs -C dir -cf archive.tar file
tar --xattrs -C dir2 -xf archive.tar
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/xattr08.at:29"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_227
#AT_START_228
at_fn_group_banner 228 'acls01.at:25' \
"acls: basic functionality" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "228. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/acls01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/file
setfacl -m u:\$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls01.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/file
setfacl -m u:\$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls01.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/file
setfacl -m u:\$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls01.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/file
setfacl -m u:\$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls01.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/file
setfacl -m u:\$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls01.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/file
setfacl -m u:$MYNAME:--x dir
getfattr -h -m. -d dir dir/file > before
tar --acls -cf archive.tar dir
rm -rf dir
tar --acls -xf archive.tar
getfattr -h -m. -d dir dir/file > after
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_228
#AT_START_229
at_fn_group_banner 229 'acls02.at:25' \
"acls: work with -C" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "229. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/acls02.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/subdir
setfacl -m u:\$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls02.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/subdir
setfacl -m u:\$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls02.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/subdir
setfacl -m u:\$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls02.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/subdir
setfacl -m u:\$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls02.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=\$( id -un )
setfacl -m u:\$MYNAME:--x dir/subdir
setfacl -m u:\$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test \"\$?\" = 0
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "acls02.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkdir dir/subdir
genfile --file dir/subdir/file
MYNAME=$( id -un )
setfacl -m u:$MYNAME:--x dir/subdir
setfacl -m u:$MYNAME:--x dir/subdir/file
cd dir
getfattr -h -m. -d subdir subdir/file > ../before
cd ..
tar --acls -cf archive.tar -C dir subdir
rm -rf dir
mkdir dir
tar --acls -xf archive.tar -C dir
cd dir
getfattr -h -m. -d subdir subdir/file > ../after
cd ..
diff before after
test "$?" = 0
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls02.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_229
#AT_START_230
at_fn_group_banner 230 'acls03.at:30' \
"acls: default ACLs" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "230. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/acls03.at:47:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
MYNAME=\$( id -un )
MYGROUP=\$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:\$MYGROUP:r-x pure/d1
setfacl -d -m g:\$MYGROUP:rwx pure/d1
setfacl -d -m u:\$MYNAME:rwx pure/d1
# \"*a\" files have \"some\" additional ACLs
setfacl -m u:\$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:\$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on \"how the files were extracted from
# archive\". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl\$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:\$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:\$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optacl
sacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
echo \"\$pure\" > pure.log
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
if test ! \"\$pure\" \"=\" \"\$sacl_def_optacl\"; then
echo \"bad 'pure' against 'sacl_def_optacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_nodef_optacl\" > sacl_nodef_optacl.log
if test ! \"\$sacl_def_optacl\" \"=\" \"\$sacl_nodef_optacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output\"
fi
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optnoacl\" \"=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$sacl_nodef_optnoacl\" > sacl_nodef_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$sacl_nodef_optnoacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optacl\" > nosacl_nodef_optacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$sacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optnoacl\" \"!=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "acls03.at:47"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
test -z "`sort < /dev/null 2>&1`" || exit 77
MYNAME=$( id -un )
MYGROUP=$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx pure/d1
# "*a" files have "some" additional ACLs
setfacl -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on "how the files were extracted from
# archive". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optacl
sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
echo "$pure" > pure.log
echo "$sacl_def_optacl" > sacl_def_optacl.log
if test ! "$pure" "=" "$sacl_def_optacl"; then
echo "bad 'pure' against 'sacl_def_optacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
fi
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
fi
echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
fi
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls03.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls03.at:47:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
MYNAME=\$( id -un )
MYGROUP=\$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:\$MYGROUP:r-x pure/d1
setfacl -d -m g:\$MYGROUP:rwx pure/d1
setfacl -d -m u:\$MYNAME:rwx pure/d1
# \"*a\" files have \"some\" additional ACLs
setfacl -m u:\$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:\$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on \"how the files were extracted from
# archive\". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl\$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:\$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:\$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optacl
sacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
echo \"\$pure\" > pure.log
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
if test ! \"\$pure\" \"=\" \"\$sacl_def_optacl\"; then
echo \"bad 'pure' against 'sacl_def_optacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_nodef_optacl\" > sacl_nodef_optacl.log
if test ! \"\$sacl_def_optacl\" \"=\" \"\$sacl_nodef_optacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output\"
fi
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optnoacl\" \"=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$sacl_nodef_optnoacl\" > sacl_nodef_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$sacl_nodef_optnoacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optacl\" > nosacl_nodef_optacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$sacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optnoacl\" \"!=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "acls03.at:47"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
test -z "`sort < /dev/null 2>&1`" || exit 77
MYNAME=$( id -un )
MYGROUP=$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx pure/d1
# "*a" files have "some" additional ACLs
setfacl -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on "how the files were extracted from
# archive". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optacl
sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
echo "$pure" > pure.log
echo "$sacl_def_optacl" > sacl_def_optacl.log
if test ! "$pure" "=" "$sacl_def_optacl"; then
echo "bad 'pure' against 'sacl_def_optacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
fi
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
fi
echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
fi
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls03.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls03.at:47:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
MYNAME=\$( id -un )
MYGROUP=\$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:\$MYGROUP:r-x pure/d1
setfacl -d -m g:\$MYGROUP:rwx pure/d1
setfacl -d -m u:\$MYNAME:rwx pure/d1
# \"*a\" files have \"some\" additional ACLs
setfacl -m u:\$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:\$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on \"how the files were extracted from
# archive\". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl\$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:\$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:\$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optacl
sacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
echo \"\$pure\" > pure.log
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
if test ! \"\$pure\" \"=\" \"\$sacl_def_optacl\"; then
echo \"bad 'pure' against 'sacl_def_optacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_nodef_optacl\" > sacl_nodef_optacl.log
if test ! \"\$sacl_def_optacl\" \"=\" \"\$sacl_nodef_optacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output\"
fi
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optnoacl\" \"=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$sacl_nodef_optnoacl\" > sacl_nodef_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$sacl_nodef_optnoacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optacl\" > nosacl_nodef_optacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$sacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optnoacl\" \"!=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "acls03.at:47"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
test -z "`sort < /dev/null 2>&1`" || exit 77
MYNAME=$( id -un )
MYGROUP=$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx pure/d1
# "*a" files have "some" additional ACLs
setfacl -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on "how the files were extracted from
# archive". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optacl
sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
echo "$pure" > pure.log
echo "$sacl_def_optacl" > sacl_def_optacl.log
if test ! "$pure" "=" "$sacl_def_optacl"; then
echo "bad 'pure' against 'sacl_def_optacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
fi
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
fi
echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
fi
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls03.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls03.at:47:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
MYNAME=\$( id -un )
MYGROUP=\$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:\$MYGROUP:r-x pure/d1
setfacl -d -m g:\$MYGROUP:rwx pure/d1
setfacl -d -m u:\$MYNAME:rwx pure/d1
# \"*a\" files have \"some\" additional ACLs
setfacl -m u:\$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:\$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on \"how the files were extracted from
# archive\". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl\$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:\$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:\$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optacl
sacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
echo \"\$pure\" > pure.log
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
if test ! \"\$pure\" \"=\" \"\$sacl_def_optacl\"; then
echo \"bad 'pure' against 'sacl_def_optacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_nodef_optacl\" > sacl_nodef_optacl.log
if test ! \"\$sacl_def_optacl\" \"=\" \"\$sacl_nodef_optacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output\"
fi
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optnoacl\" \"=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$sacl_nodef_optnoacl\" > sacl_nodef_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$sacl_nodef_optnoacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optacl\" > nosacl_nodef_optacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$sacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optnoacl\" \"!=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "acls03.at:47"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
test -z "`sort < /dev/null 2>&1`" || exit 77
MYNAME=$( id -un )
MYGROUP=$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx pure/d1
# "*a" files have "some" additional ACLs
setfacl -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on "how the files were extracted from
# archive". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optacl
sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
echo "$pure" > pure.log
echo "$sacl_def_optacl" > sacl_def_optacl.log
if test ! "$pure" "=" "$sacl_def_optacl"; then
echo "bad 'pure' against 'sacl_def_optacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
fi
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
fi
echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
fi
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls03.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/acls03.at:47:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
MYNAME=\$( id -un )
MYGROUP=\$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:\$MYGROUP:r-x pure/d1
setfacl -d -m g:\$MYGROUP:rwx pure/d1
setfacl -d -m u:\$MYNAME:rwx pure/d1
# \"*a\" files have \"some\" additional ACLs
setfacl -m u:\$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:\$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on \"how the files were extracted from
# archive\". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl\$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:\$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:\$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optacl
sacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl=\"\$(find d1 | sort | xargs -n 1 getfacl)\"
cd ..
echo \"\$pure\" > pure.log
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
if test ! \"\$pure\" \"=\" \"\$sacl_def_optacl\"; then
echo \"bad 'pure' against 'sacl_def_optacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_nodef_optacl\" > sacl_nodef_optacl.log
if test ! \"\$sacl_def_optacl\" \"=\" \"\$sacl_nodef_optacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output\"
fi
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optnoacl\" \"=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$sacl_nodef_optnoacl\" > sacl_nodef_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$sacl_nodef_optnoacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optacl\" > nosacl_nodef_optacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output\"
fi
echo \"\$nosacl_def_optacl\" > nosacl_def_optacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optacl\" \"=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$sacl_def_optnoacl\" > sacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$sacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output\"
fi
echo \"\$sacl_def_optacl\" > sacl_def_optacl.log
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
if test ! \"\$sacl_def_optacl\" \"!=\" \"\$nosacl_def_optnoacl\"; then
echo \"bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output\"
fi
echo \"\$nosacl_def_optnoacl\" > nosacl_def_optnoacl.log
echo \"\$nosacl_nodef_optnoacl\" > nosacl_nodef_optnoacl.log
if test ! \"\$nosacl_def_optnoacl\" \"!=\" \"\$nosacl_nodef_optnoacl\"; then
echo \"bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output\"
fi
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "acls03.at:47"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
test -z "`sort < /dev/null 2>&1`" || exit 77
MYNAME=$( id -un )
MYGROUP=$( id -gn )
# Prepare directory structure with default ACLs
mkdir -p pure/d1/d2
genfile --file pure/d1/f2a
genfile --file pure/d1/f2b
genfile --file pure/d1/d2/f3a
genfile --file pure/d1/d2/f3b
setfacl -m g:$MYGROUP:r-x pure/d1
setfacl -d -m g:$MYGROUP:rwx pure/d1
setfacl -d -m u:$MYNAME:rwx pure/d1
# "*a" files have "some" additional ACLs
setfacl -m u:$MYNAME:--- pure/d1/d2/f3a
setfacl -m u:$MYNAME:--- pure/d1/f2a
# use default format (no acls stored)
tar -cf noacl.tar -C pure d1
# use posix format, acls stored
tar --acls -cf acl.tar -C pure d1
# Directory names are chosen based on "how the files were extracted from
# archive". Equivalent no* tags are used also:
# ^sacl_ — extracted archive has stored ACLs
# _def_ — target directory (-C) has default ACLs
# _optacl$ — extraction was done with --acls option
mkdir sacl_def_optacl
mkdir sacl_def_optnoacl
mkdir sacl_nodef_optacl
mkdir sacl_nodef_optnoacl
mkdir nosacl_def_optacl
mkdir nosacl_def_optnoacl
mkdir nosacl_nodef_optacl
mkdir nosacl_nodef_optnoacl
setfacl -d -m u:$MYNAME:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
setfacl -d -m g:$MYGROUP:--- nosacl_def_optnoacl sacl_def_optnoacl sacl_def_optacl nosacl_def_optacl
tar -xf acl.tar -C sacl_nodef_optnoacl
tar --acls -xf acl.tar -C sacl_nodef_optacl
tar -xf acl.tar -C sacl_def_optnoacl
tar --acls -xf acl.tar -C sacl_def_optacl
tar -xf noacl.tar -C nosacl_def_optnoacl
# _NO_ ACLs in output
tar -xf noacl.tar -C nosacl_nodef_optnoacl
tar -xf noacl.tar -C nosacl_nodef_optacl
tar -cf noacl_repackaged.tar -C nosacl_nodef_optnoacl d1
# _NO_ ACLs in output (even when default ACLs exist)
tar --acls -xf noacl_repackaged.tar -C nosacl_def_optacl
cd pure
pure="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optacl
sacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_def_optnoacl
sacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optacl
sacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd sacl_nodef_optnoacl
sacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optacl
nosacl_def_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_def_optnoacl
nosacl_def_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optacl
nosacl_nodef_optacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
cd nosacl_nodef_optnoacl
nosacl_nodef_optnoacl="$(find d1 | sort | xargs -n 1 getfacl)"
cd ..
echo "$pure" > pure.log
echo "$sacl_def_optacl" > sacl_def_optacl.log
if test ! "$pure" "=" "$sacl_def_optacl"; then
echo "bad 'pure' against 'sacl_def_optacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_nodef_optacl" > sacl_nodef_optacl.log
if test ! "$sacl_def_optacl" "=" "$sacl_nodef_optacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_nodef_optacl' output"
fi
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optnoacl" "=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optnoacl' against 'nosacl_def_optnoacl' output"
fi
echo "$sacl_nodef_optnoacl" > sacl_nodef_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$sacl_nodef_optnoacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'sacl_nodef_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optacl" > nosacl_nodef_optacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optacl' output"
fi
echo "$nosacl_def_optacl" > nosacl_def_optacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optacl" "=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optacl' against 'nosacl_nodef_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$sacl_def_optnoacl" > sacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$sacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'sacl_def_optnoacl' output"
fi
echo "$sacl_def_optacl" > sacl_def_optacl.log
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
if test ! "$sacl_def_optacl" "!=" "$nosacl_def_optnoacl"; then
echo "bad 'sacl_def_optacl' against 'nosacl_def_optnoacl' output"
fi
echo "$nosacl_def_optnoacl" > nosacl_def_optnoacl.log
echo "$nosacl_nodef_optnoacl" > nosacl_nodef_optnoacl.log
if test ! "$nosacl_def_optnoacl" "!=" "$nosacl_nodef_optnoacl"; then
echo "bad 'nosacl_def_optnoacl' against 'nosacl_nodef_optnoacl' output"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
at_fn_diff_devnull "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/acls03.at:47"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_230
#AT_START_231
at_fn_group_banner 231 'selnx01.at:25' \
"selinux: basic store/restore" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "231. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/selnx01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
grep -v -e '^#' -e ^\$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test \"\$?\" -eq \"0\"; then
echo \"selinux contexts probably restored while --selinux is off\"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test \"\$?\" -ne \"0\"; then
echo \"bad result\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
grep -v -e '^#' -e ^$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
echo "selinux contexts probably restored while --selinux is off"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
echo "bad result"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "security.selinux=\"system_u
security.selinux=\"unconfined_u
security.selinux=\"system_u
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selnx01.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
grep -v -e '^#' -e ^\$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test \"\$?\" -eq \"0\"; then
echo \"selinux contexts probably restored while --selinux is off\"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test \"\$?\" -ne \"0\"; then
echo \"bad result\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
grep -v -e '^#' -e ^$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
echo "selinux contexts probably restored while --selinux is off"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
echo "bad result"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "security.selinux=\"system_u
security.selinux=\"unconfined_u
security.selinux=\"system_u
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selnx01.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
grep -v -e '^#' -e ^\$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test \"\$?\" -eq \"0\"; then
echo \"selinux contexts probably restored while --selinux is off\"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test \"\$?\" -ne \"0\"; then
echo \"bad result\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
grep -v -e '^#' -e ^$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
echo "selinux contexts probably restored while --selinux is off"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
echo "bad result"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "security.selinux=\"system_u
security.selinux=\"unconfined_u
security.selinux=\"system_u
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selnx01.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
grep -v -e '^#' -e ^\$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test \"\$?\" -eq \"0\"; then
echo \"selinux contexts probably restored while --selinux is off\"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test \"\$?\" -ne \"0\"; then
echo \"bad result\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
grep -v -e '^#' -e ^$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
echo "selinux contexts probably restored while --selinux is off"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
echo "bad result"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "security.selinux=\"system_u
security.selinux=\"unconfined_u
security.selinux=\"system_u
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selnx01.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \\
grep -v -e '^#' -e ^\$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test \"\$?\" -eq \"0\"; then
echo \"selinux contexts probably restored while --selinux is off\"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test \"\$?\" -ne \"0\"; then
echo \"bad result\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selnx01.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
genfile --file dir/file
ln -s file dir/link
getfattr -h -d -msecurity.selinux dir dir/file dir/link > start
restorecon -R dir
chcon -h --user=system_u dir
chcon -h --user=unconfined_u dir/file
chcon -h --user=system_u dir/link
# archive whole directory including selinux contexts
tar --selinux -cf archive.tar dir
# clear the directory
rm -rf dir
# ================================================
# check if selinux contexts are correctly restored
tar --selinux -xf archive.tar
# archive for later debugging
cp archive.tar archive_origin.tar
# check if selinux contexts were restored
getfattr -h -d dir dir/file dir/link -msecurity.selinux | \
grep -v -e '^#' -e ^$ | cut -d: -f1
# ===========================================================================
# check if selinux contexts are not restored when --selinux option is missing
getfattr -h -d -msecurity.selinux dir dir/file dir/link > with_selinux
rm -rf dir
tar -xf archive.tar
getfattr -h -d -msecurity.selinux dir dir/file dir/link > without_selinux
diff with_selinux without_selinux > diff_with_without
if test "$?" -eq "0"; then
echo "selinux contexts probably restored while --selinux is off"
fi
# =================================================================
# check if selinux is not archived when --selinux option is missing
tar -cf archive.tar dir
# clear the directory
rm -rf dir
# restore (with --selinux)
tar --selinux -xf archive.tar dir
getfattr -h -d -msecurity.selinux dir dir/file dir/link > final
diff start final > final_diff
if test "$?" -ne "0"; then
echo "bad result"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "security.selinux=\"system_u
security.selinux=\"unconfined_u
security.selinux=\"system_u
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selnx01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_231
#AT_START_232
at_fn_group_banner 232 'selacl01.at:25' \
"acls/selinux: special files & fifos" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "232. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/selacl01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
MINOR=\$( stat /dev/urandom --printf=\"%T\" )
mknod dir/chartype c \$MAJOR \$MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:\$UID:--- dir/fifo
setfacl -m u:\$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selacl01.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
MINOR=\$( stat /dev/urandom --printf=\"%T\" )
mknod dir/chartype c \$MAJOR \$MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:\$UID:--- dir/fifo
setfacl -m u:\$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selacl01.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
MINOR=\$( stat /dev/urandom --printf=\"%T\" )
mknod dir/chartype c \$MAJOR \$MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:\$UID:--- dir/fifo
setfacl -m u:\$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selacl01.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
MINOR=\$( stat /dev/urandom --printf=\"%T\" )
mknod dir/chartype c \$MAJOR \$MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:\$UID:--- dir/fifo
setfacl -m u:\$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/selacl01.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
restorecon \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
chcon -h --user=unconfined_u \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
err=\$( tar --selinux -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfacl \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:\$UID:rwx \$file
err=\$( tar --acls -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=\$( stat /dev/urandom --printf=\"%t\" )
MINOR=\$( stat /dev/urandom --printf=\"%T\" )
mknod dir/chartype c \$MAJOR \$MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:\$UID:--- dir/fifo
setfacl -m u:\$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "selacl01.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
restorecon $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
chcon -h --user=unconfined_u $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
err=$( tar --selinux -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfacl $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
file=$(TMPDIR=. mktemp fiXXXXXX)
setfacl -m u:$UID:rwx $file
err=$( tar --acls -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
mkdir dir
mkfifo dir/fifo
MAJOR=$( stat /dev/urandom --printf="%t" )
MINOR=$( stat /dev/urandom --printf="%T" )
mknod dir/chartype c $MAJOR $MINOR
# setup attributes
restorecon -R dir
chcon -h --user=system_u dir/fifo
chcon -h --user=system_u dir/chartype
setfacl -m u:$UID:--- dir/fifo
setfacl -m u:$UID:rwx dir/chartype
getfacl dir/fifo >> before
getfattr -msecurity.selinux dir/chartype >> before
tar --xattrs --selinux --acls -cf archive.tar dir
mv dir olddir
tar --xattrs --selinux --acls -xf archive.tar
getfacl dir/fifo >> after
getfattr -msecurity.selinux dir/chartype >> after
diff before after
echo separator
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "separator
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/selacl01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_232
#AT_START_233
at_fn_group_banner 233 'capabs_raw01.at:25' \
"capabilities: binary store/restore" " " 31
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "233. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/capabs_raw01.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setcap \"= cap_chown=ei\" \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getcap \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
mkdir dir
genfile --file dir/file
setcap \"= cap_chown=ei\" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setcap "= cap_chown=ei" $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getcap $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
mkdir dir
genfile --file dir/file
setcap "= cap_chown=ei" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/file = cap_chown=ei
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/capabs_raw01.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setcap \"= cap_chown=ei\" \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getcap \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
mkdir dir
genfile --file dir/file
setcap \"= cap_chown=ei\" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setcap "= cap_chown=ei" $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getcap $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
mkdir dir
genfile --file dir/file
setcap "= cap_chown=ei" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/file = cap_chown=ei
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/capabs_raw01.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setcap \"= cap_chown=ei\" \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getcap \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
mkdir dir
genfile --file dir/file
setcap \"= cap_chown=ei\" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setcap "= cap_chown=ei" $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getcap $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
mkdir dir
genfile --file dir/file
setcap "= cap_chown=ei" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/file = cap_chown=ei
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/capabs_raw01.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setcap \"= cap_chown=ei\" \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getcap \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
mkdir dir
genfile --file dir/file
setcap \"= cap_chown=ei\" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setcap "= cap_chown=ei" $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getcap $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
mkdir dir
genfile --file dir/file
setcap "= cap_chown=ei" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/file = cap_chown=ei
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/capabs_raw01.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
echo \"test\" > \$\$
chmod 0 \$\$
cat \$\$ > /dev/null 2>&1
result=\$?
rm -f \$\$
test \$result -eq 0 || exit 77
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getfattr \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj \$file
# check whether tar fails to store xattrs
err=\$( tar --xattrs -cf /dev/null \$file 2>&1 >/dev/null | wc -l )
if test \"\$err\" != \"0\"; then
exit 77
fi
file=\$(TMPDIR=. mktemp fiXXXXXX)
setcap \"= cap_chown=ei\" \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
getcap \$file &> /dev/null
if test \"\$?\" != 0; then
exit 77
fi
rm -rf \$file
mkdir dir
genfile --file dir/file
setcap \"= cap_chown=ei\" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "capabs_raw01.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
echo "test" > $$
chmod 0 $$
cat $$ > /dev/null 2>&1
result=$?
rm -f $$
test $result -eq 0 || exit 77
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v test $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getfattr $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setfattr -n user.test -v ahoj $file
# check whether tar fails to store xattrs
err=$( tar --xattrs -cf /dev/null $file 2>&1 >/dev/null | wc -l )
if test "$err" != "0"; then
exit 77
fi
file=$(TMPDIR=. mktemp fiXXXXXX)
setcap "= cap_chown=ei" $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
getcap $file &> /dev/null
if test "$?" != 0; then
exit 77
fi
rm -rf $file
mkdir dir
genfile --file dir/file
setcap "= cap_chown=ei" dir/file
# archive whole directory including binary xattrs
tar --xattrs -cf archive.tar dir
# clear the directory
rm -rf dir
# restore _all_ xattrs (not just the user.* domain)
tar --xattrs --xattrs-include='*' -xf archive.tar
# Newer systems print = instead of + here
getcap dir/file | sed 's/+/=/'
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "dir/file = cap_chown=ei
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/capabs_raw01.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_233
#AT_START_234
at_fn_group_banner 234 'onetop01.at:21' \
"tar --one-top-level" " " 32
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "234. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/onetop01.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop01.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop01.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop01.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop01.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop01.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop01.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop01.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop01.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop01.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop01.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_234
#AT_START_235
at_fn_group_banner 235 'onetop02.at:21' \
"tar --one-top-level --show-transformed" " " 32
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "235. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/onetop02.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop02.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/c
.
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop02.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop02.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/c
.
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop02.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop02.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/c
.
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop02.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop02.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/c
.
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop02.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop02.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --show-transformed -v -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/c
.
./a
./a/b
./a/c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop02.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_235
#AT_START_236
at_fn_group_banner 236 'onetop03.at:21' \
"tar --one-top-level --transform" " " 32
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "236. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/onetop03.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop03.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop03.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop03.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop03.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop03.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop03.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop03.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop03.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop03.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
mkdir out
cd out
tar --one-top-level --transform 's/c/d/' -x -f ../a.tar
find . | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" ".
./a
./a/b
./a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop03.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_236
#AT_START_237
at_fn_group_banner 237 'onetop04.at:21' \
"tar --one-top-level --transform" " " 32
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "237. $at_setup_line: testing $at_desc ..."
$at_traceon
{ set +x
printf "%s\n" "$at_srcdir/onetop04.at:24:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop04.at:24:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop04.at:24:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop04.at:24:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop04.at:24:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
test -z \"\`sort < /dev/null 2>&1\`\" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)"
at_fn_check_prepare_notrace 'a `...` command substitution' "onetop04.at:24"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
test -z "`sort < /dev/null 2>&1`" || exit 77
mkdir a
genfile --file a/b
genfile --file c
tar cf a.tar a c
tar -tf a.tar --one-top-level --transform 's/c/d/' --show-transformed | sort
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "a/
a/b
a/d
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop04.at:24"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_237
#AT_START_238
at_fn_group_banner 238 'onetop05.at:21' \
"tar --one-top-level restoring permissions" " " 32
at_xfail=no
test -f $XFAILFILE && at_xfail=yes
(
printf "%s\n" "238. $at_setup_line: testing $at_desc ..."
$at_traceon
# When extracting an archive that contains ./ with the --one-top-level option,
# the mode and ownership of ./ would be incorrectly applied to the current
# working directory, instead of the requested top-level directory.
{ set +x
printf "%s\n" "$at_srcdir/onetop05.at:28:
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H v7\"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod \$orig_mode d
mode=\$(genfile --stat=mode.7777 d)
test \$mode = \$orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=\$(genfile --stat=mode.777 d1)
if test 700 = \$mode; then
echo \"CWD: OK\"
else
echo \"CWD: mode changed: 700 != \$mode\"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=\$(genfile --stat=mode.777 d2)
if test 700 = \$mode; then
echo \"DIR: OK\"
else
echo \"DIR: mode changed: 700 != \$mode\"
fi
mode=\$(genfile --stat=mode.7777 d2/top)
if test \$mode = \$orig_mode; then
echo \"TOP: OK\"
else
echo \"TOP: mode changed: \$orig_mode != \$mode\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
( $at_check_trace;
mkdir v7
(cd v7
TEST_TAR_FORMAT=v7
export TEST_TAR_FORMAT
TAR_OPTIONS="-H v7"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod $orig_mode d
mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
echo "CWD: OK"
else
echo "CWD: mode changed: 700 != $mode"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
echo "DIR: OK"
else
echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
echo "TOP: OK"
else
echo "TOP: mode changed: $orig_mode != $mode"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "CWD: OK
DIR: OK
TOP: OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop05.at:28:
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H oldgnu\"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod \$orig_mode d
mode=\$(genfile --stat=mode.7777 d)
test \$mode = \$orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=\$(genfile --stat=mode.777 d1)
if test 700 = \$mode; then
echo \"CWD: OK\"
else
echo \"CWD: mode changed: 700 != \$mode\"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=\$(genfile --stat=mode.777 d2)
if test 700 = \$mode; then
echo \"DIR: OK\"
else
echo \"DIR: mode changed: 700 != \$mode\"
fi
mode=\$(genfile --stat=mode.7777 d2/top)
if test \$mode = \$orig_mode; then
echo \"TOP: OK\"
else
echo \"TOP: mode changed: \$orig_mode != \$mode\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
( $at_check_trace;
mkdir oldgnu
(cd oldgnu
TEST_TAR_FORMAT=oldgnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H oldgnu"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod $orig_mode d
mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
echo "CWD: OK"
else
echo "CWD: mode changed: 700 != $mode"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
echo "DIR: OK"
else
echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
echo "TOP: OK"
else
echo "TOP: mode changed: $orig_mode != $mode"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "CWD: OK
DIR: OK
TOP: OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop05.at:28:
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H ustar\"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod \$orig_mode d
mode=\$(genfile --stat=mode.7777 d)
test \$mode = \$orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=\$(genfile --stat=mode.777 d1)
if test 700 = \$mode; then
echo \"CWD: OK\"
else
echo \"CWD: mode changed: 700 != \$mode\"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=\$(genfile --stat=mode.777 d2)
if test 700 = \$mode; then
echo \"DIR: OK\"
else
echo \"DIR: mode changed: 700 != \$mode\"
fi
mode=\$(genfile --stat=mode.7777 d2/top)
if test \$mode = \$orig_mode; then
echo \"TOP: OK\"
else
echo \"TOP: mode changed: \$orig_mode != \$mode\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
( $at_check_trace;
mkdir ustar
(cd ustar
TEST_TAR_FORMAT=ustar
export TEST_TAR_FORMAT
TAR_OPTIONS="-H ustar"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod $orig_mode d
mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
echo "CWD: OK"
else
echo "CWD: mode changed: 700 != $mode"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
echo "DIR: OK"
else
echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
echo "TOP: OK"
else
echo "TOP: mode changed: $orig_mode != $mode"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "CWD: OK
DIR: OK
TOP: OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop05.at:28:
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H posix\"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod \$orig_mode d
mode=\$(genfile --stat=mode.7777 d)
test \$mode = \$orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=\$(genfile --stat=mode.777 d1)
if test 700 = \$mode; then
echo \"CWD: OK\"
else
echo \"CWD: mode changed: 700 != \$mode\"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=\$(genfile --stat=mode.777 d2)
if test 700 = \$mode; then
echo \"DIR: OK\"
else
echo \"DIR: mode changed: 700 != \$mode\"
fi
mode=\$(genfile --stat=mode.7777 d2/top)
if test \$mode = \$orig_mode; then
echo \"TOP: OK\"
else
echo \"TOP: mode changed: \$orig_mode != \$mode\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
( $at_check_trace;
mkdir posix
(cd posix
TEST_TAR_FORMAT=posix
export TEST_TAR_FORMAT
TAR_OPTIONS="-H posix"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod $orig_mode d
mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
echo "CWD: OK"
else
echo "CWD: mode changed: 700 != $mode"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
echo "DIR: OK"
else
echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
echo "TOP: OK"
else
echo "TOP: mode changed: $orig_mode != $mode"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "CWD: OK
DIR: OK
TOP: OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
{ set +x
printf "%s\n" "$at_srcdir/onetop05.at:28:
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS=\"-H gnu\"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod \$orig_mode d
mode=\$(genfile --stat=mode.7777 d)
test \$mode = \$orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=\$(genfile --stat=mode.777 d1)
if test 700 = \$mode; then
echo \"CWD: OK\"
else
echo \"CWD: mode changed: 700 != \$mode\"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=\$(genfile --stat=mode.777 d2)
if test 700 = \$mode; then
echo \"DIR: OK\"
else
echo \"DIR: mode changed: 700 != \$mode\"
fi
mode=\$(genfile --stat=mode.7777 d2/top)
if test \$mode = \$orig_mode; then
echo \"TOP: OK\"
else
echo \"TOP: mode changed: \$orig_mode != \$mode\"
fi
)"
at_fn_check_prepare_notrace 'a $(...) command substitution' "onetop05.at:28"
( $at_check_trace;
mkdir gnu
(cd gnu
TEST_TAR_FORMAT=gnu
export TEST_TAR_FORMAT
TAR_OPTIONS="-H gnu"
export TAR_OPTIONS
rm -rf *
orig_mode=3702
mkdir d
chmod $orig_mode d
mode=$(genfile --stat=mode.7777 d)
test $mode = $orig_mode || exit 77
genfile --file d/file
tar -cf d.tar -C d .
rm -rf d
(mkdir d1
chmod 700 d1
cd d1
tar --one-top-level=top -xpf ../d.tar)
mode=$(genfile --stat=mode.777 d1)
if test 700 = $mode; then
echo "CWD: OK"
else
echo "CWD: mode changed: 700 != $mode"
fi
mkdir d2
chmod 700 d2
tar -C d2 --one-top-level=top -xpf d.tar
mode=$(genfile --stat=mode.777 d2)
if test 700 = $mode; then
echo "DIR: OK"
else
echo "DIR: mode changed: 700 != $mode"
fi
mode=$(genfile --stat=mode.7777 d2/top)
if test $mode = $orig_mode; then
echo "TOP: OK"
else
echo "TOP: mode changed: $orig_mode != $mode"
fi
)
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "CWD: OK
DIR: OK
TOP: OK
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/onetop05.at:28"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_238
#AT_START_239
at_fn_group_banner 239 'gtarfail.at:21' \
"gtarfail" " " 33
at_xfail=no
(
printf "%s\n" "239. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/gtarfail.at:26:
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail.tar
"
at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:26"
( $at_check_trace;
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail.tar
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "-rw-r--r-- jes/glone 518 2001-05-25 14:41 vedpowered.gif
-rw-r--r-- jes/glone 6825 1997-04-29 00:19 cd.gif
-rw-r--r-- jes/glone 33354 1999-06-22 12:17 DSCN0049c.JPG
-rw-r--r-- jes/glone 86159 2001-06-05 18:16 Window1.jpg
-rw-r--r-- jes/glone 1310 2001-05-25 13:05 vipower.gif
-rw-rw-rw- jes/glone 148753 1998-09-15 13:08 billyboy.jpg
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_239
#AT_START_240
at_fn_group_banner 240 'gtarfail2.at:21' \
"gtarfail2" " " 33
at_xfail=no
(
printf "%s\n" "240. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/gtarfail2.at:26:
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail2.tar
"
at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:26"
( $at_check_trace;
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gtarfail2.tar 6b607d1faec14b82f69525d9c5b66e53 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvf $STAR_TESTSCRIPTS/gtarfail2.tar
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "-rwxr-xr-x jes/glone 214 2001-09-21 14:08 .clean
lrwxrwxrwx jes/cats 0 1998-05-07 12:39 RULES -> makefiles/RULES
drwxr-sr-x jes/glone 0 2001-12-10 00:00 build/
-rw-r--r-- jes/glone 312019 2001-12-10 00:00 build/smake-1.2.tar.gz
drwxr-sr-x jes/glone 0 2001-11-09 18:20 build/psmake/
-rwxr-xr-x jes/glone 259 2000-01-09 16:36 build/psmake/MAKE
-rwxr-xr-x jes/glone 4820 2001-02-25 22:45 build/psmake/MAKE.sh
-rw-r--r-- jes/glone 647 2001-02-25 23:50 build/psmake/Makefile
lrwxrwxrwx jes/glone 0 2001-08-29 10:53 build/psmake/archconf.c -> ../archconf.c
lrwxrwxrwx jes/glone 0 2001-08-29 10:54 build/psmake/astoi.c -> ../../lib/astoi.c
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_240
#AT_START_241
at_fn_group_banner 241 'multi-fail.at:21' \
"multi-fail" " " 33
at_xfail=no
(
printf "%s\n" "241. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/multi-fail.at:26:
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvM -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \\
-f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
"
at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:26"
( $at_check_trace;
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gnu-multi-fail-volume1.gtar 7c28663dd98b0bd91ceb4be7af55254e $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvM -f $STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \
-f $STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&-
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
at_fn_diff_devnull "$at_stderr" || at_failed=:
echo >>"$at_stdout"; printf "%s\n" "drwxrwsr-x joerg/bs 0 2003-10-11 14:32 OBJ/i386-sunos5-gcc/
-rw-r--r-- joerg/bs 1 2003-10-11 14:32 OBJ/i386-sunos5-gcc/Dnull
-rw-r--r-- joerg/bs 1743 2003-10-10 18:06 OBJ/i386-sunos5-gcc/star.d
-rw-r--r-- joerg/bs 1460 2003-10-11 11:53 OBJ/i386-sunos5-gcc/header.d
-rw-r--r-- joerg/bs 1540 2003-10-10 18:06 OBJ/i386-sunos5-gcc/cpiohdr.d
-rw-r--r-- joerg/bs 2245 2003-10-10 18:06 OBJ/i386-sunos5-gcc/xheader.d
-rw-r--r-- joerg/bs 1254 2003-10-10 18:06 OBJ/i386-sunos5-gcc/xattr.d
-rw-r--r-- joerg/bs 1330 2003-10-10 18:06 OBJ/i386-sunos5-gcc/list.d
-rw-r--r-- joerg/bs 1745 2003-10-10 18:06 OBJ/i386-sunos5-gcc/extract.d
-rw-r--r-- joerg/bs 1518 2003-10-10 18:06 OBJ/i386-sunos5-gcc/create.d
-rw-r--r-- joerg/bs 1235 2003-10-10 18:06 OBJ/i386-sunos5-gcc/append.d
-rw-r--r-- joerg/bs 1368 2003-10-10 18:06 OBJ/i386-sunos5-gcc/diff.d
-rw-r--r-- joerg/bs 1423 2003-10-10 18:06 OBJ/i386-sunos5-gcc/remove.d
-rw-r--r-- joerg/bs 1493 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star_unix.d
-rw-r--r-- joerg/bs 1572 2003-10-10 18:07 OBJ/i386-sunos5-gcc/acl_unix.d
-rw-r--r-- joerg/bs 1453 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fflags.d
-rw-r--r-- joerg/bs 2257 2003-10-11 14:32 OBJ/i386-sunos5-gcc/buffer.d
-rw-r--r-- joerg/bs 969 2003-10-07 17:53 OBJ/i386-sunos5-gcc/dirtime.d
-rw-r--r-- joerg/bs 1308 2003-10-10 18:07 OBJ/i386-sunos5-gcc/lhash.d
-rw-r--r-- joerg/bs 1287 2003-10-10 18:07 OBJ/i386-sunos5-gcc/hole.d
-rw-r--r-- joerg/bs 1105 2003-10-10 18:07 OBJ/i386-sunos5-gcc/longnames.d
-rw-r--r-- joerg/bs 1230 2003-10-10 18:07 OBJ/i386-sunos5-gcc/names.d
-rw-r--r-- joerg/bs 1091 2003-10-10 18:07 OBJ/i386-sunos5-gcc/movearch.d
-rw-r--r-- joerg/bs 961 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.d
-rw-r--r-- joerg/bs 1113 2003-10-10 18:07 OBJ/i386-sunos5-gcc/props.d
-rw-r--r-- joerg/bs 2146 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fetchdir.d
-rw-r--r-- joerg/bs 1093 2003-10-10 18:07 OBJ/i386-sunos5-gcc/unicode.d
-rw-r--r-- joerg/bs 1211 2003-10-10 18:07 OBJ/i386-sunos5-gcc/subst.d
-rw-r--r-- joerg/bs 2076 2003-10-11 11:53 OBJ/i386-sunos5-gcc/volhdr.d
-rw-r--r-- joerg/bs 1480 2003-10-10 18:07 OBJ/i386-sunos5-gcc/chdir.d
-rw-r--r-- joerg/bs 42460 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star.o
-rw-r--r-- joerg/bs 22564 2003-10-11 11:53 OBJ/i386-sunos5-gcc/header.o
-rw-r--r-- joerg/bs 7880 2003-10-10 18:07 OBJ/i386-sunos5-gcc/cpiohdr.o
-rw-r--r-- joerg/bs 14624 2003-10-10 18:07 OBJ/i386-sunos5-gcc/xheader.o
-rw-r--r-- joerg/bs 924 2003-10-10 18:07 OBJ/i386-sunos5-gcc/xattr.o
-rw-r--r-- joerg/bs 6120 2003-10-10 18:07 OBJ/i386-sunos5-gcc/list.o
-rw-r--r-- joerg/bs 12764 2003-10-10 18:07 OBJ/i386-sunos5-gcc/extract.o
-rw-r--r-- joerg/bs 14668 2003-10-10 18:07 OBJ/i386-sunos5-gcc/create.o
-rw-r--r-- joerg/bs 2576 2003-10-10 18:07 OBJ/i386-sunos5-gcc/append.o
-rw-r--r-- joerg/bs 7636 2003-10-10 18:07 OBJ/i386-sunos5-gcc/diff.o
-rw-r--r-- joerg/bs 3072 2003-10-10 18:07 OBJ/i386-sunos5-gcc/remove.o
-rw-r--r-- joerg/bs 5612 2003-10-10 18:07 OBJ/i386-sunos5-gcc/star_unix.o
-rw-r--r-- joerg/bs 6220 2003-10-10 18:07 OBJ/i386-sunos5-gcc/acl_unix.o
-rw-r--r-- joerg/bs 1092 2003-10-10 18:07 OBJ/i386-sunos5-gcc/fflags.o
-rw-r--r-- joerg/bs 20996 2003-10-11 14:32 OBJ/i386-sunos5-gcc/buffer.o
-rw-r--r-- joerg/bs 2060 2003-10-07 17:53 OBJ/i386-sunos5-gcc/dirtime.o
-rw-r--r-- joerg/bs 1664 2003-10-10 18:07 OBJ/i386-sunos5-gcc/lhash.o
-rw-r--r-- joerg/bs 10564 2003-10-10 18:07 OBJ/i386-sunos5-gcc/hole.o
-rw-r--r-- joerg/bs 3864 2003-10-10 18:07 OBJ/i386-sunos5-gcc/longnames.o
-rw-r--r-- joerg/bs 2576 2003-10-10 18:07 OBJ/i386-sunos5-gcc/names.o
-rw-r--r-- joerg/bs 952 2003-10-10 18:07 OBJ/i386-sunos5-gcc/movearch.o
-rw-r--r-- joerg/bs 2756 2003-10-07 17:53 OBJ/i386-sunos5-gcc/table.o
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_241
#AT_START_242
at_fn_group_banner 242 'ustar-big-2g.at:21' \
"ustar-big-2g" " " 33
at_xfail=no
(
printf "%s\n" "242. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/ustar-big-2g.at:26:
test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ustar-big-2g.at:26"
( $at_check_trace;
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "-rw------- jes/glone 2147483647 2002-06-15 14:53 big
-rw-r--r-- jes/glone 0 2002-06-15 14:53 file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
cat >stderr.re <<'_ATEOF'
tar: Record size = .*
_ATEOF
awk '{print NR " " $0}' stderr > $$.1
awk '{print NR " " $0}' stderr.re | join - $$.1 |
while read NUM RE LINE
do
echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
done
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_242
#AT_START_243
at_fn_group_banner 243 'ustar-big-8g.at:21' \
"ustar-big-8g" " " 33
at_xfail=no
(
printf "%s\n" "243. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/ustar-big-8g.at:26:
test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ustar-big-8g.at:26"
( $at_check_trace;
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvjf $STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "-rw------- jes/glone 8589934591 2002-06-15 15:08 8gb-1
-rw-r--r-- jes/glone 0 2002-06-15 14:53 file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
cat >stderr.re <<'_ATEOF'
tar: Record size = .*
_ATEOF
awk '{print NR " " $0}' stderr > $$.1
awk '{print NR " " $0}' stderr.re | join - $$.1 |
while read NUM RE LINE
do
echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
done
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_243
#AT_START_244
at_fn_group_banner 244 'pax-big-10g.at:21' \
"pax-big-10g" " " 33
at_xfail=no
(
printf "%s\n" "244. $at_setup_line: testing $at_desc ..."
$at_traceon
unset TAR_OPTIONS
{ set +x
printf "%s\n" "$at_srcdir/pax-big-10g.at:26:
test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z \"\$STAR_TESTSCRIPTS\" && exit 77
tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff \$STAR_TESTSCRIPTS \$STAR_DATA_URL || exit 77
tar --utc -tvjf \$STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
"
at_fn_check_prepare_notrace 'a ${...} parameter expansion' "pax-big-10g.at:26"
( $at_check_trace;
test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77
cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77
test -z "$STAR_TESTSCRIPTS" && exit 77
tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff $STAR_TESTSCRIPTS $STAR_DATA_URL || exit 77
tar --utc -tvjf $STAR_TESTSCRIPTS/pax-big-10g.tar.bz2
) >>"$at_stdout" 2>>"$at_stderr" 5>&-
at_status=$? at_failed=false
$at_check_filter
echo stderr:; tee stderr <"$at_stderr"
echo >>"$at_stdout"; printf "%s\n" "-rw------- jes/glone 10737418240 2002-06-15 21:18 10g
-rw-r--r-- jes/glone 0 2002-06-15 14:53 file
" | \
$at_diff - "$at_stdout" || at_failed=:
at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:26"
$at_failed && at_fn_log_failure
$at_traceon; }
cat >stderr.re <<'_ATEOF'
tar: Record size = .*
_ATEOF
awk '{print NR " " $0}' stderr > $$.1
awk '{print NR " " $0}' stderr.re | join - $$.1 |
while read NUM RE LINE
do
echo "$LINE" | grep -- "$RE" >/dev/null || exit 1
done
set +x
$at_times_p && times >"$at_times_file"
) 5>&1 2>&1 7>&- | eval $at_tee_pipe
read at_status <"$at_status_file"
#AT_STOP_244