+WVSTART "save --strip-path (relative)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save --strip-path $tmp/src -n foo $tmp/src/x
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/ "$tmp/restore/latest/"
+) || WVFAIL
+
+WVSTART "save --strip-path (absolute)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save --strip-path "$TOP" -n foo $tmp/src
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/ "$tmp/restore/latest/$tmp/src/"
+) || WVFAIL
+
+WVSTART "save --strip-path (no match)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save --strip-path $tmp/foo -n foo $tmp/src/x
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/ "$tmp/restore/latest/$TOP/$tmp/src/"
+) || WVFAIL
+
+WVSTART "save --graft (empty graft points disallowed)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ WVFAIL bup save --graft =/grafted -n graft-point-absolute $tmp
+ WVFAIL bup save --graft $TOP/$tmp= -n graft-point-absolute $tmp
+) || WVFAIL
+
+WVSTART "save --graft /x/y=/a/b (relative paths)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save --graft $tmp/src=x -n foo $tmp/src
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/ "$tmp/restore/latest/$TOP/x/"
+) || WVFAIL
+
+WVSTART "save --graft /x/y=/a/b (matching structure)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save -v --graft "$TOP/$tmp/src/x/y=$TOP/$tmp/src/a/b" \
+ -n foo $tmp/src/x/y
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/x/y/ \
+ "$tmp/restore/latest/$TOP/$tmp/src/a/b/"
+) || WVFAIL
+
+WVSTART "save --graft /x/y=/a (shorter target)"
+(
+ tmp=graft-points.tmp
+ rm -rf $tmp
+ mkdir $tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save -v --graft "$TOP/$tmp/src/x/y=/a" -n foo $tmp/src/x/y
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/x/y/ "$tmp/restore/latest/a/"
+) || WVFAIL
+
+WVSTART "save --graft /x=/a/b (longer target)"
+(
+ tmp=graft-points.tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ rm -rf $tmp
+ mkdir $tmp
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save -v --graft "$TOP/$tmp/src=$TOP/$tmp/src/a/b/c" \
+ -n foo $tmp/src
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/ "$tmp/restore/latest/$TOP/$tmp/src/a/b/c/"
+) || WVFAIL
+
+WVSTART "save --graft /x=/ (root target)"
+(
+ tmp=graft-points.tmp
+ export BUP_DIR="$(pwd)/$tmp/bup"
+ rm -rf $tmp
+ mkdir $tmp
+ WVPASS bup init
+ mkdir -p $tmp/src/x/y/z
+ WVPASS bup random 8k > $tmp/src/x/y/random-1
+ WVPASS bup random 8k > $tmp/src/x/y/z/random-2
+ WVPASS bup index -u $tmp/src
+ WVPASS bup save -v --graft "$TOP/$tmp/src/x=/" -n foo $tmp/src/x
+ WVPASS bup restore -C $tmp/restore /foo/latest
+ WVPASS t/compare-trees $tmp/src/x/ "$tmp/restore/latest/"
+) || WVFAIL
+
+#WVSTART "save --graft /=/x/ (root source)"
+# FIXME: Not tested for now -- will require cleverness, or caution as root.