X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=tests%2Ftests%2Fgitattributes;h=fd3faa35899acc3e43bd5870ee5b7e7c4773150e;hb=606993b2249c69f0a3b6ee95c4cf42dc97c99e83;hp=0b4bad6683957cb950892f7a3e197481681199ab;hpb=b5aba87052036cc6afcac1b460a522e556adb607;p=dgit.git diff --git a/tests/tests/gitattributes b/tests/tests/gitattributes index 0b4bad66..fd3faa35 100755 --- a/tests/tests/gitattributes +++ b/tests/tests/gitattributes @@ -3,39 +3,18 @@ set -e . tests/lib t-dependencies bsdgames +t-dependencies man-db git-man t-tstunt-parsechangelog t-archive-none example -v=1.0 -t-worktree $v +t-git-none +bv=1.0 +t-worktree $bv -cd $p - -: ----- convert to "3.0 (quilt)" - -rm -rf .git -tar --exclude=debian -C .. -zcf ../${p}_${v}.orig.tar.gz $p -dch -v 1.0-1 -m convert -mkdir -p debian/source -echo '3.0 (quilt)' >debian/source/format - -v=1.0-1 - -: ----- make everything break ----- +: ----- prepare badnesses ----- mkdir af -addpatch () { - pname=$1 - cat >../editor.pl <>af/$filename 'crlf: \r\n' echo >>af/$filename 'id $Id: $' echo >>af/$filename 'id $Id: SPLARK $' - echo >>.gitattributes "af/$filename" "$attrspec" + echo >>gitattrs "af/$filename" "$attrspec" } badattr () { @@ -79,33 +58,138 @@ badattr export-subst badattr delta badattr encoding no-such-encoding -mv af ../af.aside -addpatch gitattrs +man gitattributes \ +| perl -ne 'print $1,"\n" if m/^ *(\w[-a-z]*)$/' \ +> grepped-attrs -mv ../af.aside af -addpatch files +exec sums -addpatch sums -dpkg-source -b . +# ----- common to source formats ----- -cd .. -mkdir $p.import -cd $p.import -git init +sfmt_setup () { + v=$1 + sfmt=$2 -#t-dgit --force-import-gitapply-absurd import-dsc ../${p}_${v}.dsc +import -t-dgit import-dsc ../${p}_${v}.dsc +import + pdb=$p.$sfmt -git checkout import + local addpatch=${sfmt}_addpatch + local convert=${sfmt}_convert -for f in af/*; do - git cat-file blob "refs/heads/import:$f" | sha256sum | \ - sed -e 's#-$#'$f'#' \ - >>../sums -done + cp -a $p $pdb-edit + cd $pdb-edit + + $convert + + dch -v $v -m convert + + rm -rf .git + + cp ../gitattrs .gitattributes + $addpatch gitattrs + + cp -a ../af . + $addpatch files + + cp ../sums . + $addpatch sums + + dpkg-source -b . + + cd .. +} + +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 + + 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 + sed 's/[0-9a-f]* //' $s >$s.nosums + done + diff -U0 ../sums.nosums ../$sums.broken.nosums + set +e + diff -U0 ../sums ../$sums.broken + rc=$? + set -e + test $rc = 1 + + t-dgit setup-new-tree + + t-dgit $dgitargs import-dsc ../$dscf +$branch + git checkout $branch + + for f in af/*; do + git cat-file blob "refs/heads/$branch:$f" \ + | sha256sum \ + | sed -e 's#-$#'$f'#' \ + >>../$sums + done + + cd .. + diff -U0 sums $sums +} + +: ----- generate the orig ----- + +origtar=${p}_${bv}.orig.tar.gz + +tar --exclude=debian --exclude=.git -zcf $origtar $p + +: ----- test 1.0 native ----- + +native_addpatch () { :; } +native_convert () { :; } + +sfmt_setup 1.1 native +sfmt_import norm + +: ----- test 1.0 diff ----- + +diff_addpatch () { :; } +diff_convert () { :; } + +sfmt_setup 1.1 diff +sfmt_import norm + +: ----- test "3.0 (quilt)" ----- + +quilt_addpatch () { + pname=$1 + cat >../editor.pl <debian/source/format +} -diff -U0 sums ../sums +sfmt_setup 1.0-1 quilt +sfmt_import norm +sfmt_import absurd --force-import-gitapply-absurd #t-ok