[devscripts] 01/06: Initial test suite for mk-origtargz
Joachim Breitner
nomeata at moszumanska.debian.org
Sat Apr 12 23:21:51 UTC 2014
This is an automated email from the git hooks/post-receive script.
nomeata pushed a commit to branch mk-origtargz
in repository devscripts.
commit fa8a642c1ee65def0f29935acde6c15eb050eb31
Author: Joachim Breitner <nomeata at debian.org>
Date: Sun Apr 13 01:08:58 2014 +0200
Initial test suite for mk-origtargz
---
scripts/mk-origtargz.pl | 13 ++++--
test/test_mk-origtargz | 120 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 130 insertions(+), 3 deletions(-)
diff --git a/scripts/mk-origtargz.pl b/scripts/mk-origtargz.pl
index 6beb561..a59df79 100755
--- a/scripts/mk-origtargz.pl
+++ b/scripts/mk-origtargz.pl
@@ -4,6 +4,9 @@
# and removing unwanted files.
# Copyright (C) 2014 Joachim Breitner <nomeata at debian.org>
#
+# It contains code formerly found in uscan.
+# Copyright (C) 2002-2006, Julian Gilbey
+#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
@@ -151,6 +154,7 @@ use File::Temp qw/tempfile/;
use Devscripts::Compression qw/compression_is_supported compression_guess_from_file compression_get_property/;
use Cwd 'abs_path';
use File::Copy;
+use Dpkg::Control::Hash;
BEGIN {
eval { require Text::Glob; };
@@ -440,7 +444,8 @@ if ($same_name) {
}
} else {
if ($mode eq "symlink") {
- symlink $curfile, $destfile;
+ # TODO: Make symbolic link as relative as possible
+ symlink abs_path($curfile), $destfile;
} elsif ($mode eq "copy") {
copy $curfile, $destfile;
} elsif ($mode eq "rename") {
@@ -448,7 +453,7 @@ if ($same_name) {
}
}
-# Tell the use what wae did
+# Tell the use what we did
if ($is_zipfile or $do_repack or $deletecount) {
print "Succesfully repacked $upstream as $destfile";
@@ -456,8 +461,10 @@ if ($is_zipfile or $do_repack or $deletecount) {
print "Succesfully symlinked $upstream to $destfile";
} elsif ($mode eq "copy") {
print "Succesfully copied $upstream to $destfile";
-} elsif ($mode eq "renamed") {
+} elsif ($mode eq "rename") {
print "Succesfully renamed $upstream to $destfile";
+} else {
+ die "Unknown mode $mode."
}
if ($deletecount) {
diff --git a/test/test_mk-origtargz b/test/test_mk-origtargz
new file mode 100755
index 0000000..3375ef8
--- /dev/null
+++ b/test/test_mk-origtargz
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# Copyright 2014, Rafael Laboissiere <rafael at laboissiere.net>
+
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# On Debian systems, the complete text of the GNU General Public License
+# version 3 can be found in the /usr/share/common-licenses/GPL-3 file.
+
+if test "$1" = --installed; then
+ MK_ORIGTARGZ="mk-origtargz"
+ shift
+else
+ top_srcdir=$(readlink -f "${0%/*}/..")
+ MK_ORIGTARGZ="perl -I $top_srcdir $top_srcdir/scripts/mk-origtargz.pl"
+fi
+
+cleanup(){
+ kill -9 $(cat $TMPDIR/repo/pid)
+ rm -rf $TMPDIR
+}
+
+trap cleanup 1 2 3 13 15
+
+
+makeSubDir () {
+ dir=$1
+ shift
+
+ mkdir -p "$TMPDIR/foo-0.1/$dir"
+ touch "$TMPDIR/foo-0.1/$dir/a-file"
+ mkdir "$TMPDIR/foo-0.1/$dir/a-subdir"
+ touch "$TMPDIR/foo-0.1/$dir/a-subdir/a-file"
+}
+
+
+makeUpstreamFiles () {
+ mkdir -p "$TMPDIR/foo-0.1"
+ touch "$TMPDIR/foo-0.1/include-this-file"
+ touch "$TMPDIR/foo-0.1/exclude-this-file"
+ touch "$TMPDIR/foo-0.1/.include-this-hidden-file"
+ touch "$TMPDIR/foo-0.1/.exclude-this-hidden-file"
+
+ makeSubDir "include-this-dir"
+ makeSubDir "exclude-this-dir"
+ makeSubDir ".include-this-hidden-dir"
+ makeSubDir ".exclude-this-hidden-dir"
+ makeSubDir "a-dir/include-this-subdir"
+ makeSubDir "a-dir/exclude-this-subdir"
+
+ touch "$TMPDIR/foo-0.1/; echo exclude-this-strange-file; #"
+
+}
+makeTarBall () {
+ comp="$1";
+ makeUpstreamFiles
+ tar --create --auto-compress --file "$TMPDIR/foo-0.1.tar.$comp" --directory "$TMPDIR" foo-0.1
+ rm -rf "$TMPDIR/foo-0.1"
+}
+
+makeZipFile () {
+ makeUpstreamFiles
+ (cd $TMPDIR; zip -q -r "foo-0.1.zip" foo-0.1 )
+ rm -rf "$TMPDIR/foo-0.1"
+}
+
+makeDebanDir() {
+ mkdir -p $TMPDIR/foo/debian
+ cat <<END > $TMPDIR/foo/debian/changelog
+foo (0.1-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Joe Developer <jd at debian.org> Mon, 02 Nov 2013 22:21:31 -0100
+END
+}
+
+testSymlink() {
+ TMPDIR=$(mktemp -d)
+ makeTarBall gz
+ makeDebanDir
+ ( cd $TMPDIR/foo ; $MK_ORIGTARGZ ../foo-0.1.tar.gz )
+ assertTrue "original tarball does not exist" "[ -e $TMPDIR/foo-0.1.tar.gz ]"
+ assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertTrue "result is not a symlink" "[ -L $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertTrue "result is not readable" "[ -r $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertEquals "final symlink" foo-0.1.tar.gz "$(readlink $TMPDIR/foo_0.1.orig.tar.gz)"
+}
+
+testCopy() {
+ TMPDIR=$(mktemp -d)
+ makeTarBall gz
+ makeDebanDir
+ ( cd $TMPDIR/foo ; $MK_ORIGTARGZ --copy ../foo-0.1.tar.gz )
+ assertTrue "original tarball does not exist" "[ -e $TMPDIR/foo-0.1.tar.gz ]"
+ assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertFalse "result is a symlink" "[ -L $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertTrue "result is not readable" "[ -r $TMPDIR/foo_0.1.orig.tar.gz ]"
+}
+
+testRename() {
+ TMPDIR=$(mktemp -d)
+ makeTarBall gz
+ makeDebanDir
+ ( cd $TMPDIR/foo ; $MK_ORIGTARGZ --rename ../foo-0.1.tar.gz )
+ assertFalse "original tarball does exist" "[ -e $TMPDIR/foo-0.1.tar.gz ]"
+ assertTrue "result does not exist" "[ -e $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertFalse "result is a symlink" "[ -L $TMPDIR/foo_0.1.orig.tar.gz ]"
+ assertTrue "result is not readable" "[ -r $TMPDIR/foo_0.1.orig.tar.gz ]"
+}
+
+. shunit2
--
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