summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/lib-import-chk84
-rwxr-xr-xtests/tests/import-nonnative94
2 files changed, 90 insertions, 88 deletions
diff --git a/tests/lib-import-chk b/tests/lib-import-chk
new file mode 100644
index 0000000..ee33cbe
--- /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 b8cbf25..fa9b74b 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