1#!/bin/sh 2set -e 3 4tar=${tar-star} 5if echo "${tar}" | grep / > /dev/null; then 6 if echo "${tar}" | grep '^/' > /dev/null; then 7 : 8 else 9 tar=`pwd`/${tar} 10 fi 11fi 12echo tar installed as "$tar" 1>&2 13 14 15mkdir /tmp/test.$$ 16cd /tmp/test.$$ 17 18set -x 19 20mkdir test 21mkdir test/dir1 22mkdir test/dir2 23 24echo dir1-file > test/dir1/dir1-file 25echo dir1-file2 > test/dir1/dir1-file2 26echo dir1-file3 > test/dir1/dir1-file3 27echo dir2-file > test/dir2/dir2-file 28echo dir2-file2 > test/dir2/dir2-file2 29 30"$tar" -P -c -xdev -sparse -acl -link-dirs level=0 \ 31 tardumps=/tmp/test.$$/tardumps -wtardumps \ 32 f=/tmp/test.$$/full.tar -C /tmp/test.$$/test . 33 34rm -f test/dir1/dir1-file 35mv test/dir1/dir1-file2 test/dir1/dir1-file2a 36echo new >> test/dir1/dir1-file3 37echo dir1-file4 > test/dir1/dir1-file4 38mv test/dir2 test/dir2a 39 40"$tar" -c -xdev -sparse -acl -link-dirs level=1 \ 41 tardumps=/tmp/test.$$/tardumps -wtardumps \ 42 f=/tmp/test.$$/incremental.tar -C /tmp/test.$$/test . 43 44mv test orig 45mkdir test 46cd /tmp/test.$$/test 47 48"$tar" -xpU -restore -partial f=/tmp/test.$$/full.tar 49"$tar" -xpU -restore -partial f=/tmp/test.$$/incremental.tar 50 51rm star-symtable 52rm -rf star-tmpdir 53cd /tmp/test.$$/ 54diff -r orig test > diff.out 55ret=$? 56 57cd / 58if [ "$ret" = 0 ]; then 59 rm -rf /tmp/test.$$ 60fi 61exit $ret 62