[devscripts] 05/05: Refactor uscan Files-Excluded test suite
Joachim Breitner
nomeata at moszumanska.debian.org
Fri Mar 21 15:58:36 UTC 2014
This is an automated email from the git hooks/post-receive script.
nomeata pushed a commit to branch master
in repository devscripts.
commit c379237cae5e2319566932ce095fdb2ce199374a
Author: Joachim Breitner <nomeata at debian.org>
Date: Fri Mar 21 16:58:22 2014 +0100
Refactor uscan Files-Excluded test suite
---
test/test_uscan | 161 +++++++++++++++++++++++++++++---------------------------
1 file changed, 83 insertions(+), 78 deletions(-)
diff --git a/test/test_uscan b/test/test_uscan
index aa97b83..79ea755 100755
--- a/test/test_uscan
+++ b/test/test_uscan
@@ -144,24 +144,20 @@ END
}
+
# The following function tests the Files-Excluded feature of uscan, which
# allows the selective exclusion of files from the upstream tarball before
# repacking it.
-testFileExclusion() {
-
- PKG=foo
- PORT=8000
- TMPDIR=$(mktemp -d)
+helperCreateRepo () {
+ mkdir -p $PKG/debian
- mkdir -p $TMPDIR/$PKG/debian
-
- cat <<END > $TMPDIR/$PKG/debian/watch
+ cat <<END > $PKG/debian/watch
version=3
http://localhost:$PORT/$PKG-(\d).tar.gz
END
- cat <<END > $TMPDIR/$PKG/debian/changelog
+ cat <<END > $PKG/debian/changelog
$PKG (0-1) unstable; urgency=low
* Initial release
@@ -169,42 +165,30 @@ $PKG (0-1) unstable; urgency=low
-- Joe Developer <jd at debian.org> Mon, 02 Nov 2013 22:21:31 -0100
END
- cat <<END > $TMPDIR/$PKG/debian/copyright
+ cat <<'END' > $PKG/debian/copyright
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files-Excluded: exclude-this
exclude-dir
.*
js/jquery.js
+ ;\ echo\ baz;\ #
END
- # Test matching with escaped characters
- printf ' ;\ echo\ baz;\ #\n' >> $TMPDIR/$PKG/debian/copyright
-
+ mkdir -p repo
+ touch repo/include-this
+ touch repo/exclude-this
+ touch repo/.hidden
+ mkdir -p "repo/; echo baz; #/"
+ mkdir -p repo/exclude-dir
+ touch repo/exclude-dir/file
+ mkdir -p repo/exclude-dir/subdir
+ touch repo/exclude-dir/subdir/file2
+ mkdir -p repo/docs/html/js/
+ touch repo/docs/html/js/jquery.js
- mkdir -p $TMPDIR/repo
- touch $TMPDIR/repo/include-this
- touch $TMPDIR/repo/exclude-this
- touch $TMPDIR/repo/.hidden
- mkdir -p "$TMPDIR/repo/; echo baz; #/"
- mkdir -p $TMPDIR/repo/exclude-dir
- touch $TMPDIR/repo/exclude-dir/file
- mkdir -p $TMPDIR/repo/exclude-dir/subdir
- touch $TMPDIR/repo/exclude-dir/subdir/file2
- mkdir -p $TMPDIR/repo/docs/html/js/
- touch $TMPDIR/repo/docs/html/js/jquery.js
-
- ( cd $TMPDIR/repo ;
- tar cfz $PKG-1.tar.gz * ;
- python -m SimpleHTTPServer $PORT &
- echo $! > pid )
-
- (cd $TMPDIR/$PKG ; $COMMAND)
+}
- TARBALL=${PKG}_1+dfsg.orig.tar.gz
- assertTrue 'pristine tarball is not created' "[ -f $TMPDIR/$TARBALL ]"
- assertNotNull 'pristine tarball is not gzip-compressed' \
- "$( file $TMPDIR/$TARBALL | grep 'gzip compressed data' )"
- CONTENTS="$(tar atf $TMPDIR/$TARBALL)"
+helperTestContent() {
assertTrue 'file that must be present is excluded in the tarball' \
$(containsName "$CONTENTS" include-this)
assertFalse 'file that must be excluded is present in the tarball' \
@@ -219,6 +203,31 @@ END
$(containsName "$CONTENTS" .hidden)
assertFalse "path with whitespace that must be excluded is present" \
$(containsName "$CONTENTS" "; echo baz; #/")
+}
+
+testFileExclusion() {
+
+ PKG=foo
+ PORT=8000
+ TMPDIR=$(mktemp -d)
+
+ (
+ cd $TMPDIR
+ helperCreateRepo
+ cd repo
+ tar cfz $PKG-1.tar.gz * .hidden
+ python -m SimpleHTTPServer $PORT &
+ echo $! > pid )
+
+ (cd $TMPDIR/$PKG ; $COMMAND)
+
+ TARBALL=${PKG}_1+dfsg.orig.tar.gz
+ assertTrue 'pristine tarball is not created' "[ -f $TMPDIR/$TARBALL ]"
+ assertNotNull 'pristine tarball is not gzip-compressed' \
+ "$( file $TMPDIR/$TARBALL | grep 'gzip compressed data' )"
+ CONTENTS="$(tar atf $TMPDIR/$TARBALL)"
+
+ helperTestContent
cleanup
@@ -232,62 +241,58 @@ testFileExclusionZip() {
PORT=8000
TMPDIR=$(mktemp -d)
- mkdir -p $TMPDIR/$PKG/debian
-
- cat <<END > $TMPDIR/$PKG/debian/watch
+ (
+ cd $TMPDIR
+ helperCreateRepo
+ cat <<END > $PKG/debian/watch
version=3
http://localhost:$PORT/$PKG-(\d).zip
END
- cat <<END > $TMPDIR/$PKG/debian/changelog
-$PKG (0-1) unstable; urgency=low
+ cd repo
+ zip -r $PKG-1.zip * .hidden;
+ python -m SimpleHTTPServer $PORT &
+ echo $! > pid )
- * Initial release
+ OUTPUT=$( (cd $TMPDIR/$PKG ; $COMMAND) 2>&1)
+ assertTrue 'zipfile not downloaded' "[ -f $TMPDIR/$PKG-1.zip ]"
+ assertTrue 'zipfile not copied to +dfsg' "[ -f $TMPDIR/$PKG-1+dfsg.zip ]"
+ CONTENTS="$(zipinfo -1 $TMPDIR/$PKG-1+dfsg.zip)"
+ helperTestContent
- -- Joe Developer <jd at debian.org> Mon, 02 Nov 2013 22:21:31 -0100
-END
+ cleanup
- cat <<END > $TMPDIR/$PKG/debian/copyright
-Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
-Files-Excluded: exclude-this
- exclude-dir
- .*
-END
+}
- # Test matching with escaped characters
- printf ' ;\ echo\ baz;\ #\n' >> $TMPDIR/$PKG/debian/copyright
+# The same, for a zip file that is being repacked
+testFileExclusionZipToTar() {
- mkdir -p $TMPDIR/repo
- touch $TMPDIR/repo/include-this
- touch $TMPDIR/repo/exclude-this
- touch $TMPDIR/repo/.hidden
- mkdir -p "$TMPDIR/repo/; echo baz; #/"
- mkdir -p $TMPDIR/repo/exclude-dir/subdir
- touch $TMPDIR/repo/exclude-dir/file
- touch $TMPDIR/repo/exclude-dir/subdir/file2
+ PKG=foo
+ PORT=8000
+ TMPDIR=$(mktemp -d)
- ( cd $TMPDIR/repo ;
- zip -r $PKG-1.zip * ;
+ (
+ cd $TMPDIR
+ helperCreateRepo
+ cat <<END > $PKG/debian/watch
+version=3
+http://localhost:$PORT/$PKG-(\d).zip
+END
+
+ cd repo
+ zip -r $PKG-1.zip * .hidden;
python -m SimpleHTTPServer $PORT &
echo $! > pid )
- OUTPUT=$( (cd $TMPDIR/$PKG ; $COMMAND) 2>&1)
- assertTrue 'zipfile not downloaded' "[ -f $TMPDIR/$PKG-1.zip ]"
- assertTrue 'zipfile not copied to +dfsg' "[ -f $TMPDIR/$PKG-1+dfsg.zip ]"
- CONTENTS="$(zipinfo -1 $TMPDIR/$PKG-1+dfsg.zip)"
- assertTrue 'file that must be present is excluded in the zip file' \
- $(containsName "$CONTENTS" include-this)
- assertFalse 'file that must be excluded is present in the zip file' \
- $(containsName "$CONTENTS" exclude-this)
- assertFalse "dir that must be excluded is present in the zip file" \
- $(containsName "$CONTENTS" exclude-dir)
- assertFalse "subdir that must be excluded is present in the zip file" \
- $(containsName "$CONTENTS" subdir)
- assertFalse "hidden file that must be excluded is present in the zip file" \
- $(containsName "$CONTENTS" .hidden)
- assertFalse "path with whitespace that must be excluded is present" \
- $(containsName "$CONTENTS" "; echo baz; #/")
+ OUTPUT=$( (cd $TMPDIR/$PKG ; $COMMAND --repack) 2>&1)
+
+ TARBALL=${PKG}_1+dfsg.orig.tar.xz
+ assertTrue 'pristine tarball is not created' "[ -f $TMPDIR/$TARBALL ]"
+ assertNotNull 'pristine tarball is not xz-compressed' \
+ "$( file $TMPDIR/$TARBALL | grep 'XZ compressed data' )"
+ CONTENTS="$(tar atf $TMPDIR/$TARBALL)"
+ helperTestContent
cleanup
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/collab-maint/devscripts.git
More information about the devscripts-devel
mailing list