chiark / gitweb /
Tests suite: import-nonnative: Put a .pc in the craziest .orig too
[dgit.git] / tests / tests / import-nonnative
index d709ab594b353cacd22095bc56638c9f70fd6b6e..b8cbf255057e5f1603b7ace4f6ebe22b9b6d8f9a 100755 (executable)
@@ -55,6 +55,19 @@ chk2() {
        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
@@ -65,6 +78,9 @@ chk2() {
                        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 ..
 }
@@ -80,4 +96,45 @@ chk example 1.0-1
 # 3.0 (quilt), single-debian-patch, one orig
 chk sunxi-tools 1.2-2.~~dgittest
 
+mangle1 () {
+       rm -f ${1}_*
+       chk1 "$@"
+       cd $tmp/mirror/pool/main
+       dpkg-source -x ${p}_${v}.dsc td
+       orig=${p}_${v%-*}.orig.tar.gz
+       tar zxf $orig
+       rm $orig ${p}_${v}.*
+       cd $p
+       mkdir urk
+       echo urk >urk/urk
+       export GZIP=-1
+}
+mangle2 () {
+       cd ..
+       dpkg-source -b td
+       rm -rf $p td
+       cd $tmp
+       t-archive-none $p
+       t-archive-query
+       chk2
+}
+
+# 3.0 (quilt), multiple patches, tarbomb orig
+mangle1 example 1.0-1
+tar zvcf ../$orig *
+mangle2
+
+# 3.0 (quilt), multiple patches, tarbomb orig with dot
+mangle1 example 1.0-1
+tar zvcf ../$orig .
+mangle2
+
+# 3.0 (quilt), multiple patches, tarbomb orig with dot and .git and .pc
+mangle1 example 1.0-1
+git init
+mkdir .pc
+echo SPONG >.pc/SPONG
+tar zvcf ../$orig .
+mangle2
+
 echo done.