#!/bin/sh
set -e
echo tartest:
TMP="$tmp"
SRCDIR=`cd ${srcdir}; pwd -P`
PATH=$PATH:/usr/bin/X11
export PATH
umask 022


if test ! -d $TMP; then
  mkdir $TMP
fi

cd $TMP;

ROOTGROUP=root

SYSNAME="`uname -s 2>/dev/null`"

case x"$SYSNAME" in
  x*kFreeBSD*)
    ;;
  x"Darwin")
    ROOTGROUP=wheel
    ;;
  x*BSD*)
    ROOTGROUP=wheel
    ;;
esac

#test 1: try some silly mkdir, chmod, chown commands
#        and see if we get the same tar file as I
#        did when I created the lot as RealRoot:

rm -rf tar
mkdir tar
cd tar
LIST="1 2 3 4 5 6 fjsdk 1289 vn.34.654l."
for f in $LIST; do
  mkdir -p $f/$f/$f.hello
  touch     $f/$f/file
done

#do some mv/rm stuff.
#The "mv" part used to confuse fakeroot_0.0-6
#   (inodes weren't removed from cache)
FILES=`for f in $LIST; do for c in mv rm ; do echo $c.$f ; done ; done`
touch $FILES
chown daemon:sys $FILES
for f in $LIST; do
  mv mv.$f gone
  rm rm.$f
done
rm gone

for f in $LIST; do
  mkdir -p hello/$f
  touch     hello/$f/file
  touch     $f.file
done

chown -R daemon:sys 2
chown -R daemon:$ROOTGROUP 3 4
chmod -R u+xs 2
chmod u+s  5

# see bugs (not wraping open()) in manual page: don't `chmod 0'
# the file hello itself (only the directories in it).
chmod 0 hello hello/* #tar/hello/vn.34.654l./{,file}
echo "0123456789012" > hello/hello


cd ..


rm -f tartest.tar.gz
uudecode ${SRCDIR}/tartest.tar.gz.uue

tar -cf - tar | gzip -9 > faketar.tar.gz

${SRCDIR}/compare-tar tartest.tar.gz faketar.tar.gz

#test 2: try to unpack, pack the tar archive, and
#        see if the result is the same archive
#        (yes, I've created bugs that would past test1, but
#        not test2)

rm -rf tar

gzip -dc tartest.tar.gz | tar xf -
tar cf - tar | gzip -9 >tartest.test.tar.gz

${SRCDIR}/compare-tar tartest.tar.gz tartest.test.tar.gz

#Would like to do this, but fakedebug doens't generate stdout (yet), so
#I cannot do this yet.
#
#rm -rf tar tmp-1 tmp-2 *.tar.gz
#if test "`../../fakedebug`"; then
#  echo "Outout of fakedebug isn't zero, after cleaning up everything:"
#  ../../fakedebug
#  exit 1
#fi
