From 36b36dbb7a6d685dcb7c9f22bfe66113006d6d4e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 7 Nov 2016 23:52:23 +0000 Subject: [PATCH] Test suite: lib-import-chk: Break out from import-nonnative Signed-off-by: Ian Jackson --- tests/lib-import-chk | 84 ++++++++++++++++++++++++++++++++ tests/tests/import-nonnative | 94 +++--------------------------------- 2 files changed, 90 insertions(+), 88 deletions(-) create mode 100644 tests/lib-import-chk diff --git a/tests/lib-import-chk b/tests/lib-import-chk new file mode 100644 index 00000000..ee33cbef --- /dev/null +++ b/tests/lib-import-chk @@ -0,0 +1,84 @@ + +t-import-chk1 () { + p=$1 + v=$2 + + t-archive $p $v +} +t-import-chk2() { + t-git-none + rm -rf $p + t-dgit --no-rm-on-error clone $p + + # And now we make an update using the same orig tarball, and + # check that the orig import is stable. + + cd $p + + git branch first-import + + m='Commit for import check' + echo "$m" >>import-check + + v=${v%-*}-99 + dch -v $v -D unstable -m "$m" + + git add import-check debian/changelog + git commit -m "$m" + + t-dgit -wgf quilt-fixup + t-dgit -wgf build-source + + # The resulting .dsc does not have a Dgit line (because dgit push + # puts that in). So we just shove it in the archive now + + ln ../${p}_${v}.* $tmp/mirror/pool/main/ + t-archive-query + + t-dgit fetch + + git branch first-2nd-import remotes/dgit/dgit/sid + + t-git-next-date + + git update-ref refs/remotes/dgit/dgit/sid first-import + + t-dgit fetch + + t-refs-same-start + t-ref-same refs/remotes/dgit/dgit/sid + t-ref-same refs/heads/first-2nd-import + + for orig in ../${p}_${v%-*}.orig*.tar.*; do + tar -atf $orig | LC_ALL=C sort >../files.o + pfx=$(perl <../files.o -ne ' + while (<>) { + m#^([^/]+/)# or exit 0; + $x //= $1; + $x eq $1 or exit 0; + } + print "$x\n"; + ') + perl -i~ -pe ' + s#^\Q'"$pfx"'\E##; + $_="" if m/^$/ || m#/$# || m#^\.git/#; + ' ../files.o + orig=${orig#../} + pat="^Import ${orig//./\\.}\$" + t-refs-same-start + for start in first-import first-2nd-import; do + git log --pretty='tformat:%H' --grep "$pat" $start \ + >../t.imp + test $(wc -l <../t.imp) = 1 + imp=$(cat ../t.imp) + t-ref-same-val "$orig $start" "$imp" + done + git ls-tree -r --name-only "$t_ref_val:" \ + | sort >../files.g + diff ../files.{o,g} + done + cd .. +} + +t-import-chk() { t-import-chk1 "$@"; t-import-chk2; } + diff --git a/tests/tests/import-nonnative b/tests/tests/import-nonnative index b8cbf255..fa9b74b4 100755 --- a/tests/tests/import-nonnative +++ b/tests/tests/import-nonnative @@ -1,104 +1,22 @@ #!/bin/bash set -e . tests/lib +. $troot/lib-import-chk t-tstunt-parsechangelog -chk1 () { - p=$1 - v=$2 - - t-archive $p $v -} -chk2() { - t-git-none - rm -rf $p - t-dgit --no-rm-on-error clone $p - - # And now we make an update using the same orig tarball, and - # check that the orig import is stable. - - cd $p - - git branch first-import - - m='Commit for import check' - echo "$m" >>import-check - - v=${v%-*}-99 - dch -v $v -D unstable -m "$m" - - git add import-check debian/changelog - git commit -m "$m" - - t-dgit -wgf quilt-fixup - t-dgit -wgf build-source - - # The resulting .dsc does not have a Dgit line (because dgit push - # puts that in). So we just shove it in the archive now - - ln ../${p}_${v}.* $tmp/mirror/pool/main/ - t-archive-query - - t-dgit fetch - - git branch first-2nd-import remotes/dgit/dgit/sid - - t-git-next-date - - git update-ref refs/remotes/dgit/dgit/sid first-import - - t-dgit fetch - - t-refs-same-start - t-ref-same refs/remotes/dgit/dgit/sid - t-ref-same refs/heads/first-2nd-import - - for orig in ../${p}_${v%-*}.orig*.tar.*; do - tar -atf $orig | LC_ALL=C sort >../files.o - pfx=$(perl <../files.o -ne ' - while (<>) { - m#^([^/]+/)# or exit 0; - $x //= $1; - $x eq $1 or exit 0; - } - print "$x\n"; - ') - perl -i~ -pe ' - s#^\Q'"$pfx"'\E##; - $_="" if m/^$/ || m#/$# || m#^\.git/#; - ' ../files.o - orig=${orig#../} - pat="^Import ${orig//./\\.}\$" - t-refs-same-start - for start in first-import first-2nd-import; do - git log --pretty='tformat:%H' --grep "$pat" $start \ - >../t.imp - test $(wc -l <../t.imp) = 1 - imp=$(cat ../t.imp) - t-ref-same-val "$orig $start" "$imp" - done - git ls-tree -r --name-only "$t_ref_val:" \ - | sort >../files.g - diff ../files.{o,g} - done - cd .. -} - -chk() { chk1 "$@"; chk2; } - # 1.0 with diff -chk pari-extra 3-1 +t-import-chk pari-extra 3-1 # 3.0 (quilt), multiple patches, multiple origs -chk example 1.0-1 +t-import-chk example 1.0-1 # 3.0 (quilt), single-debian-patch, one orig -chk sunxi-tools 1.2-2.~~dgittest +t-import-chk sunxi-tools 1.2-2.~~dgittest mangle1 () { rm -f ${1}_* - chk1 "$@" + t-import-chk1 "$@" cd $tmp/mirror/pool/main dpkg-source -x ${p}_${v}.dsc td orig=${p}_${v%-*}.orig.tar.gz @@ -116,7 +34,7 @@ mangle2 () { cd $tmp t-archive-none $p t-archive-query - chk2 + t-import-chk2 } # 3.0 (quilt), multiple patches, tarbomb orig -- 2.30.2