diff options
-rw-r--r-- | debian/tests/control | 4 | ||||
-rwxr-xr-x | tests/tests/gitattributes | 111 |
2 files changed, 115 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control index 2ba4183..5563a80 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -11,6 +11,10 @@ Tests-Directory: tests/tests Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential Restrictions: x-dgit-intree-only x-dgit-git-only +Tests: gitattributes +Tests-Directory: tests/tests +Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, bsdgames + Tests: defdistro-mirror mirror mirror-debnewgit mirror-private Tests-Directory: tests/tests Depends: dgit, dgit-infrastructure, devscripts, debhelper (>=8), fakeroot, build-essential, rsync diff --git a/tests/tests/gitattributes b/tests/tests/gitattributes new file mode 100755 index 0000000..0b4bad6 --- /dev/null +++ b/tests/tests/gitattributes @@ -0,0 +1,111 @@ +#!/bin/bash +set -e +. tests/lib + +t-dependencies bsdgames +t-tstunt-parsechangelog + +t-archive-none example +v=1.0 +t-worktree $v + +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 ----- + +mkdir af + +addpatch () { + pname=$1 + cat >../editor.pl <<END + next if m/^$/..0; + s{^(description:).*}{\$1 dgit test patch $pname}i; + \$_='' if m/^ /; +END + EDITOR="perl -pi $tmp/editor.pl" dpkg-source -iX --commit . $pname + test -f debian/patches/$pname +} + +badattr1 () { + local filename=$1 + local attrspec=$2 + echo >>af/$filename "Test file with $attrspec" + printf >>af/$filename 'crlf: \r\n' + echo >>af/$filename 'id $Id: $' + echo >>af/$filename 'id $Id: SPLARK $' + echo >>.gitattributes "af/$filename" "$attrspec" +} + +badattr () { + attrname=$1; shift + badattr1 $attrname-set $attrname + badattr1 $attrname-unset -$attrname + badattr1 $attrname-unspec \!$attrname + local val + for val in "$@"; do + badattr1 $attrname=$val $attrname=$val + done +} + +# xxx want to make each of these files into a quilt patch + +t-git-config core.eol crlf + +badattr text auto +badattr eol lf crlf +badattr ident + +t-git-config filter.dgit-test-crazy-f.smudge '/usr/games/rot13 2' +t-git-config filter.dgit-test-crazy-f.clean '/usr/games/rot13 24' +t-git-config filter.dgit-test-crazy-f.requrired true + +badattr filter dgit-test-crazy-f + +badattr diff +badattr merge text binary union +badattr whitespace +badattr export-ignore +badattr export-subst +badattr delta +badattr encoding no-such-encoding + +mv af ../af.aside +addpatch gitattrs + +mv ../af.aside af +addpatch files + +sha256sum af/* >sums +addpatch sums + +dpkg-source -b . + +cd .. +mkdir $p.import +cd $p.import +git init + +#t-dgit --force-import-gitapply-absurd import-dsc ../${p}_${v}.dsc +import +t-dgit import-dsc ../${p}_${v}.dsc +import + +git checkout import + +for f in af/*; do + git cat-file blob "refs/heads/import:$f" | sha256sum | \ + sed -e 's#-$#'$f'#' \ + >>../sums +done + +diff -U0 sums ../sums + +#t-ok |