+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"; $as_echo "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_176
+#AT_START_177
+at_fn_group_banner 177 'selacl01.at:25' \
+ "acls/selinux: special files & fifos" " " 25
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "177. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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_177
+#AT_START_178
+at_fn_group_banner 178 'capabs_raw01.at:25' \
+ "capabilities: binary store/restore" " " 25
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "178. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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
+
+getcap dir/file
+)"
+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
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "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
+$as_echo "$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
+
+getcap dir/file
+)"
+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
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "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
+$as_echo "$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
+
+getcap dir/file
+)"
+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
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "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
+$as_echo "$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
+
+getcap dir/file
+)"
+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
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "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
+$as_echo "$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
+
+getcap dir/file
+)"
+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
+
+getcap dir/file
+)
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo >>"$at_stdout"; $as_echo "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_178
+#AT_START_179
+at_fn_group_banner 179 'onetop01.at:21' \
+ "tar --one-top-level" " " 26
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "179. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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_179
+#AT_START_180
+at_fn_group_banner 180 'onetop02.at:21' \
+ "tar --one-top-level --show-transformed" " " 26
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "180. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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
+$as_echo "$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"; $as_echo "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_180
+#AT_START_181
+at_fn_group_banner 181 'onetop03.at:21' \
+ "tar --one-top-level --transform" " " 26
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "181. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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
+$as_echo "$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"; $as_echo ".
+./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_181
+#AT_START_182
+at_fn_group_banner 182 'onetop04.at:21' \
+ "tar --one-top-level --transform" " " 26
+at_xfail=no
+ test -f $XFAILFILE && at_xfail=yes
+(
+ $as_echo "182. $at_setup_line: testing $at_desc ..."
+ $at_traceon
+
+
+
+
+
+ { set +x
+$as_echo "$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"; $as_echo "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
+$as_echo "$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 *