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