chiark / gitweb /
git-debrebase: breakwater_of: permit unclean to be an fproblem
[dgit.git] / tests / tests / gitattributes
index a00c1d3667482732aa4781b5395dfcc10d110bfb..9e1c246a476cf400c95b76af163663ef1c5938ca 100755 (executable)
@@ -104,8 +104,12 @@ sfmt_setup () {
 }
 
 sums_check () {
-       # caller should cd into working directory and set
+       # caller should cd into working directory, set
        #   $sums  $branch
+       # and check out $branch
+
+       sha256sum af/* >../$sums.checkout
+       diff -U0 ../sums ../$sums.checkout
 
        for f in af/*; do
                git cat-file blob "refs/heads/$branch:$f" \
@@ -117,23 +121,11 @@ sums_check () {
        diff -U0 ../sums ../$sums
 }
 
-sfmt_import () {
-       inst=$1
-       dgitargs=$2
-       branch="import.$sfmt-$inst"
-       brkerr=stderr.$sfmt-$inst.broken
-       dscf=${p}_${v}.dsc
-       sums=sums.$sfmt-$inst
-
-       mkdir $pdb-import-$inst
-       cd $pdb-import-$inst
-       git init
+sums_check_broken () {
+       # caller should cd into working directory, set
+       #   $sums
+       # and check out the broken branch
 
-       LC_MESSAGES=C \
-       t-dgit $dgitargs import-dsc ../$dscf +$branch.broken \
-               2>&1 |tee ../$brkerr
-       fgrep 'warning: source tree contains .gitattributes' ../$brkerr
-       git checkout $branch.broken
        sha256sum af/* >../$sums.broken
 
        for s in ../sums ../$sums.broken; do
@@ -145,11 +137,49 @@ sfmt_import () {
        rc=$?
        set -e
        test $rc = 1
+}
+
+t-dgit-warn-check () {
+       local warnok=$1; shift
+       # warnok should be  0 if the warning is expected
+       #                   1 if the warning is NOT expected
+
+       local err=stderr.$wd
+
+       LC_MESSAGES=C t-dgit "$@" 2>&1 |tee ../$err
+
+       set +e
+       egrep 'warning: .* contains \.gitattributes' ../$err
+       rc=$?
+       set -e
+
+       test "$rc" = "$warnok"
+}
+
+sfmt_import () {
+       inst=$1
+       dgitargs=$2
+       branch="import.$sfmt-$inst"
+       dscf=${p}_${v}.dsc
+       sums=sums.$sfmt-$inst
+       wd=$pdb-import-$inst
+
+       mkdir $wd
+       cd $wd
+       git init
+
+       t-dgit-warn-check 0 $dgitargs import-dsc ../$dscf +$branch.broken
+
+       git checkout $branch.broken
+
+       sums_check_broken
 
        t-dgit setup-new-tree
 
-       t-dgit $dgitargs import-dsc ../$dscf +$branch
+       t-dgit-warn-check 1 $dgitargs import-dsc ../$dscf +$branch
        git checkout $branch
+       touch af/*
+       git reset --hard
 
        sums_check
 
@@ -200,4 +230,27 @@ sfmt_setup 1.0-1 quilt
 sfmt_import norm
 sfmt_import absurd --force-import-gitapply-absurd
 
-#t-ok
+: ----- 'test clone (with "3.0 (quilt)")' -----
+
+mv $origtar ${dscf%.dsc}.* $tmp/mirror/pool/main/
+t-archive-query sid
+
+t-dgit-warn-check 0 -cdgit.default.setup-gitattributes=false \
+       clone $p sid $p.clone.broken
+cd $p.clone.broken
+
+sums=$p.clone.broken
+sums_check_broken
+
+cd ..
+
+t-dgit-warn-check 1 clone $p sid $p.clone
+
+cd $p.clone
+sums=sums.clone
+branch=dgit/sid
+sums_check
+
+cd ..
+
+t-ok