[devscripts] 10/12: test_uscan_mangle: refactor to address V4 and MUT
Osamu Aoki
osamu at moszumanska.debian.org
Wed Sep 23 16:43:30 UTC 2015
This is an automated email from the git hooks/post-receive script.
osamu pushed a commit to branch multitar
in repository devscripts.
commit f9ff81c1c03976df32aee06dce6e6d01079387da
Author: Osamu Aoki <osamu at debian.org>
Date: Fri Sep 18 11:13:44 2015 +0000
test_uscan_mangle: refactor to address V4 and MUT
* MUT (standard)
* MUT (main tarball less)
* Refactor code
* Test for version 4
---
test/test_uscan_mangle | 542 ++++++++++++++++++++++++++++++++-----------------
1 file changed, 355 insertions(+), 187 deletions(-)
diff --git a/test/test_uscan_mangle b/test/test_uscan_mangle
index f5a081c..edf393c 100755
--- a/test/test_uscan_mangle
+++ b/test/test_uscan_mangle
@@ -19,7 +19,7 @@ test_dir=$(readlink -f "${0%/*}")
# Operation mode
if test "$1" = --installed; then
- COMMAND="uscan --no-conf --compression=xz"
+ COMMAND="uscan --no-conf"
shift
else
top_srcdir=$(readlink -f "${0%/*}/..")
@@ -27,12 +27,9 @@ else
PATH="$top_srcdir/scripts:$PATH"
PERL5LIB="$top_srcdir/lib"
export PERL5LIB
- COMMAND="uscan --no-conf --compression=xz"
+ COMMAND="uscan --no-conf"
fi
-REPOPATH=repo
-POOLPATH=pool
-
# Initial Debian revision value is distribution dependent
SUFFIX="1"
if which dpkg-vendor >/dev/null 2>&1; then
@@ -47,11 +44,12 @@ fi
WEBSCRIPT=":"
DEBUGECHO=":"
DEBUGLSLR=":"
+DEBUGBASH=":"
# comment out for debug
#COMMAND="$COMMAND --debug"
#DEBUGECHO=echo
-#DEBUGLSLR="ls -laR"
-
+#DEBUGBASH="bash -i"
+#DEBUGBASH="ls -laR"
cleanup(){
kill -9 $(cat $TMPDIR/$REPOPATH/pid)
rm -rf $TMPDIR
@@ -60,13 +58,15 @@ cleanup(){
spawnHttpServer(){
(
+ USCAN_HTTP_SERVER=${USCAN_HTTP_SERVER:-server.py}
mkdir -p $TMPDIR/$REPOPATH
cd $TMPDIR/$REPOPATH
- python "$test_dir/uscan/server-head.py" 2>log &
+ python "$test_dir/uscan/$USCAN_HTTP_SERVER" 2>log &
echo $! > pid
while ! [ -s port ]; do
:
done
+ unset USCAN_HTTP_SERVER
)
}
@@ -88,8 +88,8 @@ containsName(){
# make debian/ in `pwd`
# debian/watch contains $WATCHVER and $WATCHLINE with template URL updated
makeDebianDir() {
- DEBNAME=$1 # Debian source package name
- DEBVER=$2 # DEbian source package version
+ DEBNAME=${1:-foo} # Debian source package name
+ DEBVER=${2:-1.0} # Debian source package version
mkdir -p debian/source
cat <<END > debian/rules
@@ -117,22 +117,85 @@ END
# debian/copyright
echo "Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/" \
> debian/copyright
+ if [ "$FILEEXCLUDE" = "1" ]; then
+ cat <<'END' >> debian/copyright
+Files-Excluded: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+END
+ elif [ "$FILEEXCLUDE" = "2" ]; then
+ cat <<'END' >> debian/copyright
+Files-Excluded-foo: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+Files-Excluded-bar: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+Files-Excluded-baz: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+END
+ elif [ "$FILEEXCLUDE" = "3" ]; then
+ cat <<'END' >> debian/copyright
+Files-Excluded: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+Files-Excluded-bar: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+Files-Excluded-baz: exclude-this
+ exclude-dir
+ */exclude-dir
+ .*
+ */js/jquery.js
+ ;?echo?baz;?#
+END
+ fi
# debian/watch
echo "version=$WATCHVER" > debian/watch
echo "$WATCHLINE" | sed -e "s,@@@url@@@,http://localhost:${PORT}/,g" - \
>> debian/watch
}
+
# make tarball in $REPOPATH/$POOLPATH
makeUpstreamTar() {
- UPNAME=$1 # Upstream package name
- UPVER=$2 # upstream package version
+ UPNAME=${1:-foo} # Upstream package name
+ UPVER=${2:-1.0} # upstream package version
COMPRESSION=${3:-gz} # archve compression type
TYPE=${4:-non-native} # set this if native-type upstream
OLDDIR=`pwd`
mkdir -p $TMPDIR/$REPOPATH/$POOLPATH/$UPNAME-$UPVER
cd $TMPDIR/$REPOPATH/$POOLPATH
- touch $UPNAME-$UPVER/$UPNAME-$UPVER
+ touch $UPNAME-$UPVER/FILE.$UPNAME.$UPVER
+ touch $UPNAME-$UPVER/include-this
+ touch $UPNAME-$UPVER/exclude-this
+ touch $UPNAME-$UPVER/.hidden
+ mkdir -p "$UPNAME-$UPVER/; echo baz; #/"
+ mkdir -p $UPNAME-$UPVER/exclude-dir
+ touch $UPNAME-$UPVER/exclude-dir/file
+ mkdir -p $UPNAME-$UPVER/subdir/exclude-dir
+ touch $UPNAME-$UPVER/subdir/exclude-dir/file2
+ mkdir -p $UPNAME-$UPVER/docs/html/js/
+ touch $UPNAME-$UPVER/docs/html/js/jquery.js
if [ "$TYPE" = "native" ]; then
cd $TMPDIR/$REPOPATH/$POOLPATH/$UPNAME-$UPVER
makeDebianDir $UPNAME $UPVER
@@ -156,12 +219,22 @@ makeUpstreamTar() {
# setup a common watch file test environment
helperWatch() {
- SITESCRIPT=$1
- VEROLD=$2
- VERNEW=$3
- PREFIX=$4
- TMPDIR=$(mktemp -d)
+ local SITESCRIPT=${1:-siteWebNonNative}
+ local VEROLD=${2:-1.0}
+ local VERNEW=${3:-2.0}
+ local PREFIX=$4
+ local TMPDIR=$(mktemp -d)
ORIGDIR=`pwd`
+ PKG=${PKG:-foo}
+ REPOPATH=${REPOPATH:-repo}
+ POOLPATH=${POOLPATH:-pool}
+ GZREPACK=${GZREPACK:-gz}
+ XCOMMAND=${XCOMMAND:-$COMMAND}
+ WATCHVER="${WATCHVER:-3}"
+ WATCHLINE0="@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate"
+ WATCHLINE="${WATCHLINE:-$WATCHLINE0}"
+ COMPONENTS=${COMPONENTS:-}
+ FILEEXCLUDE=${FILEEXCLUDE:-0}
cd $TMPDIR
# start HTTP server with its root at $TMPDIR/$REPOPATH
spawnHttpServer
@@ -179,29 +252,79 @@ helperWatch() {
if [ ! -d debian ]; then
makeDebianDir $PKG ${PREFIX}${VEROLD}-$SUFFIX
fi
- $COMMAND
+ local UUPDATE=""
+ if grep -q "uupdate" $TMPDIR/${PKG}/debian/watch ; then
+ UUPDATE=uupdate
+ fi
+ $XCOMMAND
assertEquals "uscan: exit_code!=0 but exit_code=0" "$?" "0"
cd $TMPDIR
UTARBALL=${PKG}-${VERNEW}.tar.gz
- STARBALL=${PKG}_${PREFIX}${VERNEW}.orig.tar.gz
+ STARBALL=${PKG}_${PREFIX}${VERNEW}.orig.tar.$GZREPACK
assertTrue "$UTARBALL missing: $WATCHLINE" "[ -f $UTARBALL ]"
assertTrue "$STARBALL missing: $WATCHLINE" "[ -f $STARBALL ]"
# check uupdate
if [ "$UUPDATE" = "uupdate" ]; then
- assertTrue 'pristine tarball is not extracted' "[ -f $TMPDIR/${PKG}-${PREFIX}${VERNEW}/debian/changelog ]"
- DVERSION=`dpkg-parsechangelog -l$TMPDIR/${PKG}-${PREFIX}${VERNEW}/debian/changelog -SVersion`
+ cd $TMPDIR/${PKG}-${PREFIX}${VERNEW}
+ assertTrue 'pristine tarball is not extracted' "[ -f debian/changelog ]"
+ DVERSION=`dpkg-parsechangelog -ldebian/changelog -SVersion`
assertEquals "uscan: Version should be ${PREFIX}${VERNEW}-$SUFFIX but $DVERSION" "$DVERSION" "${PREFIX}${VERNEW}-$SUFFIX"
+ if [ "$FILEEXCLUDE" != "2" ]; then
+ assertTrue 'file that must be present is excluded in the tarball' '[ -f include-this ]'
+ fi
+ if [ "$FILEEXCLUDE" = "1" ] || [ "$FILEEXCLUDE" = "3" ]; then
+ assertFalse "file that must be excluded is present in the tarball" '[ -f exclude-this ]'
+ assertFalse "hidden file that must be excluded is present in the tarball" '[ -f .hidden ]'
+ assertFalse "dir that must be excluded is present in the tarball" '[ -d exclude-dir ]'
+ assertFalse "subdir that must be excluded is present in the tarball" '[ -d subdir/exclude-dir ]'
+ CONTENTS=$(ls -R)
+ assertFalse "non-root-file that must be excluded is present in the tarball" \
+ $(containsName "$CONTENTS" jquery.js)
+ assertFalse "path with whitespace that must be excluded is present in the tarball" \
+ $(containsName "$CONTENTS" "; echo baz; #/")
+ fi
+ for c in $COMPONENTS ; do
+ cd $TMPDIR/${PKG}-${PREFIX}${VERNEW}/$c
+ assertTrue 'file that must be present is excluded in the tarball' '[ -f include-this ]'
+ if [ "$FILEEXCLUDE" = "2" ] || [ "$FILEEXCLUDE" = "3" ]; then
+ assertFalse "file that must be excluded is present in the orig-$c.tar" '[ -f exclude-this ]'
+ assertFalse "hidden file that must be excluded is present in the orig-$c.tar" '[ -f .hidden ]'
+ assertFalse "dir that must be excluded is present in the orig-$c.tar" '[ -d exclude-dir ]'
+ assertFalse "subdir that must be excluded is present in the orig-$c.tar" '[ -d subdir/exclude-dir ]'
+ CONTENTS=$(ls -R)
+ assertFalse "non-root-file that must be excluded is present in the orig-$c.tar" \
+ $(containsName "$CONTENTS" jquery.js)
+ assertFalse "path with whitespace that must be excluded is present in the orig-$c.tar" \
+ $(containsName "$CONTENTS" "; echo baz; #/")
+ fi
+ done
+ cd $TMPDIR
fi
- $DEBUGLSLR
+ $DEBUGBASH
cd $ORIGDIR
cleanup
+ unset REPOPATH
+ unset POOLPATH
+ unset GZREPACK
+ unset XCOMMAND
+ unset WATCHVER
+ unset WATCHLINE
+ unset COMPONENTS
+ unset FILEEXCLUDE
}
# setup a common watch file test environment to see user-agent
helperWatchUA() {
- SITESCRIPT=$1
+ local SITESCRIPT=${1:-siteWebNonNative}
TMPDIR=$(mktemp -d)
ORIGDIR=`pwd`
+ PKG=${PKG:-foo}
+ REPOPATH=${REPOPATH:-repo}
+ POOLPATH=${POOLPATH:-pool}
+ XCOMMAND=${XCOMMAND:-$COMMAND}
+ WATCHVER="${WATCHVER:-3}"
+ WATCHLINE0="@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate"
+ WATCHLINE="${WATCHLINE:-$WATCHLINE0}"
cd $TMPDIR
# start HTTP server with its root at $TMPDIR/$REPOPATH
spawnHttpServer
@@ -215,141 +338,123 @@ helperWatchUA() {
if [ ! -d debian ]; then
makeDebianDir $PKG 1.0-$SUFFIX
fi
- $COMMAND
+ $XCOMMAND
USERAGENTX="$(grep -ie '^User-Agent:' ../repo/log |head -1 | perl -p -e "s/\r//g" )"
assertTrue "Bad $USERAGENTX" "[ \"$USERAGENTX\" = \"User-Agent: $USERAGENT\" ]"
echo "SENT: \"User-Agent: $USERAGENT\""
echo "GOT : \"$USERAGENTX\""
+ $DEBUGBASH
cd $ORIGDIR
cleanup
+ unset REPOPATH
+ unset POOLPATH
+ unset XCOMMAND
+ unset WATCHVER
+ unset WATCHLINE
}
-# setup a common watch file test environment
-helperWatchXZ() {
- SITESCRIPT=$1
- VEROLD=$2
- VERNEW=$3
- PREFIX=$4
- TMPDIR=$(mktemp -d)
- ORIGDIR=`pwd`
- cd $TMPDIR
- # start HTTP server with its root at $TMPDIR/$REPOPATH
- spawnHttpServer
- PORT=$(cat $TMPDIR/$REPOPATH/port)
- $DEBUGECHO " ***** http://localhost:$PORT started showing $TMPDIR/$REPOPATH *****"
- # make web site
- $SITESCRIPT
- # make local $VEROLD source tree
- tar -xzf $TMPDIR/$REPOPATH/$POOLPATH/${PKG}-${VEROLD}.tar.gz
- if [ -n "$PREFIX" ]; then
- mv $TMPDIR/${PKG}-${VEROLD} $TMPDIR/${PKG}-${PREFIX}${VEROLD}
- fi
- mv $TMPDIR/${PKG}-${PREFIX}${VEROLD} $TMPDIR/${PKG}
- cd $TMPDIR/${PKG}
- if [ ! -d debian ]; then
- makeDebianDir $PKG ${PREFIX}${VEROLD}-$SUFFIX
- fi
- $COMMAND
- assertEquals "uscan: exit_code!=0 but exit_code=0" "$?" "0"
- cd $TMPDIR
- UTARBALL=${PKG}-${VERNEW}.tar.gz
- STARBALL=${PKG}_${PREFIX}${VERNEW}.orig.tar.xz
- assertTrue "$UTARBALL missing: $WATCHLINE" "[ -f $UTARBALL ]"
- assertTrue "$STARBALL missing: $WATCHLINE" "[ -f $STARBALL ]"
- # check uupdate
- if [ "$UUPDATE" = "uupdate" ]; then
- assertTrue 'pristine tarball is not extracted' "[ -f $TMPDIR/${PKG}-${PREFIX}${VERNEW}/debian/changelog ]"
- DVERSION=`dpkg-parsechangelog -l$TMPDIR/${PKG}-${PREFIX}${VERNEW}/debian/changelog -SVersion`
- assertEquals "uscan: Version should be ${PREFIX}${VERNEW}-$SUFFIX but $DVERSION" "$DVERSION" "${PREFIX}${VERNEW}-$SUFFIX"
- fi
- $DEBUGLSLR
- cd $ORIGDIR
- cleanup
-}
# populate pool directory
-sitePoolNative() {
+siteNative() {
+ local PKG=${1:-foo}
makeUpstreamTar $PKG 0.0 gz native
makeUpstreamTar $PKG 1.0 gz native
makeUpstreamTar $PKG 2.0 gz native
- mkdir -p $TMPDIR/$REPOPATH/123/foo/ooo/
- mkdir -p $TMPDIR/$REPOPATH/124/foo/ooo/
- mkdir -p $TMPDIR/$REPOPATH/125/foo/ooo/
- ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/${PKG}-0.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/${PKG}-1.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/${PKG}-2.0.tar.gz
+ mkdir -p $TMPDIR/$REPOPATH/123/$PKG/ooo/
+ mkdir -p $TMPDIR/$REPOPATH/124/$PKG/ooo/
+ mkdir -p $TMPDIR/$REPOPATH/125/$PKG/ooo/
+ ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz $TMPDIR/$REPOPATH/123/$PKG/ooo/${PKG}-0.0.tar.gz
+ ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz $TMPDIR/$REPOPATH/124/$PKG/ooo/${PKG}-1.0.tar.gz
+ ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz $TMPDIR/$REPOPATH/125/$PKG/ooo/${PKG}-2.0.tar.gz
}
-sitePoolNonNative() {
+siteNonNative() {
+ local PKG=${1:-foo}
makeUpstreamTar $PKG 0.0 gz non-native
makeUpstreamTar $PKG 1.0 gz non-native
makeUpstreamTar $PKG 2.0 gz non-native
- mkdir -p $TMPDIR/$REPOPATH/123/foo/ooo/
- mkdir -p $TMPDIR/$REPOPATH/124/foo/ooo/
- mkdir -p $TMPDIR/$REPOPATH/125/foo/ooo/
- ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/${PKG}-0.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/${PKG}-1.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/${PKG}-2.0.tar.gz
+ mkdir -p $TMPDIR/$REPOPATH/123/$PKG/ooo/
+ mkdir -p $TMPDIR/$REPOPATH/124/$PKG/ooo/
+ mkdir -p $TMPDIR/$REPOPATH/125/$PKG/ooo/
+ ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz $TMPDIR/$REPOPATH/123/$PKG/ooo/${PKG}-0.0.tar.gz
+ ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz $TMPDIR/$REPOPATH/124/$PKG/ooo/${PKG}-1.0.tar.gz
+ ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz $TMPDIR/$REPOPATH/125/$PKG/ooo/${PKG}-2.0.tar.gz
}
# hide siteNative behind a web page
siteWebNative() {
- sitePoolNative
+ siteNative
+ cat <<END > $TMPDIR/$REPOPATH/index.html
+<html>
+<head>
+ <meta charset="utf-8">
+</head>
+<body>
+<a href="/123/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
+</body>
+<html>
+END
+}
+
+siteWebNonNative() {
+ siteNonNative
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
-<a href="/123/foo/ooo/$PKG-0.0.tar.gz">Very old</a> <br/ >
-<a href="/124/foo/ooo/$PKG-1.0.tar.gz">A bit OLD</a> <br />
-<a href="/125/foo/ooo/$PKG-2.0.tar.gz">Latest</a> <br />
+<a href="/123/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteWebNonNative() {
- sitePoolNonNative
+ siteNonNative
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
-<a href="/123/foo/ooo/$PKG-0.0.tar.gz">Very old</a> <br/ >
-<a href="/124/foo/ooo/$PKG-1.0.tar.gz">A bit OLD</a> <br />
-<a href="/125/foo/ooo/$PKG-2.0.tar.gz">Latest</a> <br />
+<a href="/123/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteWebNonNativeR() {
- makeUpstreamTar $PKG 0.0 gz non-native
- makeUpstreamTar $PKG 1.0 gz non-native
- makeUpstreamTar $PKG 2.0 gz non-native
+ makeUpstreamTar foo 0.0 gz non-native
+ makeUpstreamTar foo 1.0 gz non-native
+ makeUpstreamTar foo 2.0 gz non-native
mkdir -p $TMPDIR/$REPOPATH/123/foo/ooo/
mkdir -p $TMPDIR/$REPOPATH/124/foo/ooo/
mkdir -p $TMPDIR/$REPOPATH/125/foo/ooo/
- ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/${PKG}-0.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/${PKG}-1.0.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/${PKG}-2.0.tar.gz
+ ln -sf ../../../$POOLPATH/foo-0.0.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/foo-0.0.tar.gz
+ ln -sf ../../../$POOLPATH/foo-1.0.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/foo-1.0.tar.gz
+ ln -sf ../../../$POOLPATH/foo-2.0.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/foo-2.0.tar.gz
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
-<a href="/125/foo/ooo/$PKG-0.0.tar.gz">Very old</a> <br/ >
-<a href="/124/foo/ooo/$PKG-1.0.tar.gz">A bit OLD</a> <br />
-<a href="/123/foo/ooo/$PKG-2.0.tar.gz">Latest</a> <br />
+<a href="/125/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/123/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
sitePrWebNonNative() {
- sitePoolNonNative
+ siteNonNative
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
@@ -365,40 +470,64 @@ END
}
siteWebNonNativeLarge() {
- makeUpstreamTar $PKG 19990101 gz non-native
- makeUpstreamTar $PKG 20000101 gz non-native
- makeUpstreamTar $PKG 20010101 gz non-native
+ makeUpstreamTar foo 19990101 gz non-native
+ makeUpstreamTar foo 20000101 gz non-native
+ makeUpstreamTar foo 20010101 gz non-native
mkdir -p $REPOPATH/123/foo/ooo/
mkdir -p $REPOPATH/124/foo/ooo/
mkdir -p $REPOPATH/125/foo/ooo/
- ln -sf ../../../$POOLPATH/${PKG}-19990101.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/${PKG}-19990101.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-20000101.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/${PKG}-20000101.tar.gz
- ln -sf ../../../$POOLPATH/${PKG}-20010101.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/${PKG}-20010101.tar.gz
+ ln -sf ../../../$POOLPATH/foo-19990101.tar.gz $TMPDIR/$REPOPATH/123/foo/ooo/foo-19990101.tar.gz
+ ln -sf ../../../$POOLPATH/foo-20000101.tar.gz $TMPDIR/$REPOPATH/124/foo/ooo/foo-20000101.tar.gz
+ ln -sf ../../../$POOLPATH/foo-20010101.tar.gz $TMPDIR/$REPOPATH/125/foo/ooo/foo-20010101.tar.gz
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
-<a href="/123/foo/ooo/$PKG-19990101.tar.gz">Very old</a> <br/ >
-<a href="/124/foo/ooo/$PKG-20000101.tar.gz">A bit OLD</a> <br />
-<a href="/125/foo/ooo/$PKG-20010101.tar.gz">Latest</a> <br />
+<a href="/123/foo/ooo/foo-19990101.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-20000101.tar.gz">A bit OLD</a> <br />
+<a href="/125/foo/ooo/foo-20010101.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteXmlNonNative() {
- sitePoolNonNative
+ siteNonNative
+ cat <<END > $TMPDIR/$REPOPATH/index.html
+<html>
+<head>
+ <meta charset="utf-8">
+</head>
+<body>
+<Key>/123/foo/ooo/foo-0.0.tar.gz</Key> <br/ >
+<Key>/124/foo/ooo/foo-1.0.tar.gz</Key> <br />
+<Key>/125/foo/ooo/foo-2.0.tar.gz</Key> <br />
+</body>
+<html>
+END
+}
+
+siteWebNonNativeMUT() {
+ siteNonNative foo
+ siteNonNative bar
+ siteNonNative baz
cat <<END > $TMPDIR/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
-<Key>/123/foo/ooo/$PKG-0.0.tar.gz</Key> <br/ >
-<Key>/124/foo/ooo/$PKG-1.0.tar.gz</Key> <br />
-<Key>/125/foo/ooo/$PKG-2.0.tar.gz</Key> <br />
+<a href="/123/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
+<a href="/123/bar/ooo/bar-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/bar/ooo/bar-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/bar/ooo/bar-2.0.tar.gz">Latest</a> <br />
+<a href="/123/baz/ooo/baz-0.0.tar.gz">Very old</a> <br/ >
+<a href="/124/baz/ooo/baz-1.0.tar.gz">A bit OLD</a> <br />
+<a href="/125/baz/ooo/baz-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
@@ -406,125 +535,164 @@ END
# test a watch files
-testWatch3Native() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='@@@url@@@/(\d+)/(.+)/(.+)/'$PKG'-([\.\d]+).tar.gz debian'
- helperWatch sitePoolNative 1.0 2.0
+### VERSION 4 ###
+
+# test native package w/o uupdate, bare HTTP server in normal order
+testWatch4Native() {
+ WATCHVER=4
+ WATCHLINE='@@@url@@@/(\d+)/(.+)/(.+)/foo-([\.\d]+).tar.gz debian'
+ helperWatch siteNative
+}
+
+# test non-native package with uupdate, bare HTTP server in normal order
+testWatch4NonNative() {
+ WATCHVER=4
+ WATCHLINE='@@@url@@@(\d+)/(.+)/(.+)/ foo-([\.\d]+).tar.gz debian uupdate'
+ helperWatch siteNonNative
}
-testWatch3NonNative() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='@@@url@@@(\d+)/(.+)/(.+)/ '$PKG'-([\.\d]+).tar.gz debian uupdate'
- helperWatch sitePoolNonNative 1.0 2.0
+# test 3 parameter watch line
+testWatch4WebNative() {
+ WATCHVER=4
+ WATCHLINE='@@@url@@@ (?:.*)/foo-([\d\.]+).tar.gz debian'
+ helperWatch siteWebNative
}
-testWatch3WebNative() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='@@@url@@@ (?:.*)/'$PKG'-([\d\.]+).tar.gz debian'
- helperWatch siteWebNative 1.0 2.0
+# test normal web page
+testWatch4WebNonNative() {
+ WATCHVER=4
+ helperWatch
}
-testWatch3WebNonNative() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
- helperWatch siteWebNonNative 1.0 2.0
+# test normal web page (Files-exclude)
+testWatch4WebNonNativeFE() {
+ FILEEXCLUDE=1
+ WATCHVER=4
+ helperWatch
}
-testWatch3WebNonNativeR() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
- helperWatch siteWebNonNativeR 1.0 2.0
+# test normal web page (file path reverse order)
+testWatch4WebNonNativeR() {
+ WATCHVER=4
+ helperWatch siteWebNonNativeR
}
-testWatch3PrWebNonNative() {
- PKG=foo
- WATCHVER="3"
+# test for downloadurlmangle and filenamemangle for tricky web page
+testWatch4PrWebNonNative() {
+ WATCHVER=4
WATCHLINE='opts="downloadurlmangle = s%boo/xxx%foo/ooo% ; s%boo-%foo-%, \
filenamemangle = s%.*boo-(.*)%foo-$1% " \
@@@url@@@/ (?:.*)/boo-([\d\.]+).tar.gz \
debian uupdate'
- helperWatch sitePrWebNonNative 1.0 2.0
+ helperWatch sitePrWebNonNative
}
-testWatch3WebNonNativeDlCurrent() {
- PKG=foo
- COMMANDOLD="$COMMAND"
- COMMAND="$COMMAND --download-current-version"
- WATCHVER="3"
- WATCHLINE='@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
+# test --download-current-version
+testWatch4WebNonNativeDlCurrent() {
+ WATCHVER=4
+ XCOMMAND="$COMMAND --download-current-version"
+ WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 1.0
- COMMAND="$COMMANDOLD"
-}
-testWatch3WebNonNativeDlUversion() {
- PKG=foo
- COMMANDOLD="$COMMAND"
- COMMAND="$COMMAND --download-version 0.0"
- WATCHVER="3"
- WATCHLINE='@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
+}
+
+# test --download-version
+testWatch4WebNonNativeDlUversion() {
+ WATCHVER=4
+ XCOMMAND="$COMMAND --download-version 0.0"
+ WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
- COMMAND="$COMMANDOLD"
-}
-testWatch3WebNonNativeDlDversion() {
- PKG=foo
- COMMANDOLD="$COMMAND"
- COMMAND="$COMMAND --download-debversion 0.0-1"
- WATCHVER="3"
- WATCHLINE='@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
+}
+
+# test --download-debversion uupdate
+testWatch4WebNonNativeDlDversion() {
+ WATCHVER=4
+ XCOMMAND="$COMMAND --download-debversion 0.0-1"
+ WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
- COMMAND="$COMMANDOLD"
}
# Debian version is 0.19990101 for future proof while upstream is 19990101
-testWatch3WebNonNativeLarge() {
- PKG=foo
- WATCHVER="3"
+testWatch4WebNonNativeLarge() {
+ WATCHVER=4
WATCHLINE='opts=" dversionmangle = s/0\.(.*)/$1/ , \
oversionmangle = s/(.*)/0.$1/" \
- @@@url@@@ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
+ @@@url@@@ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNativeLarge 20000101 20010101 0.
}
# test for pagemangle
-testWatch3XmlNonNative() {
- PKG=foo
- WATCHVER="3"
+testWatch4XmlNonNative() {
+ WATCHVER=4
WATCHLINE='opts="pagemangle = \
s%<Key>([^<]*)</Key>%<Key><a href=\"$1\">$1</a></Key>%g" \
- @@@url@@@/ (?:.*)/'$PKG'-([\d\.]+).tar.gz debian uupdate'
- helperWatch siteXmlNonNative 1.0 2.0
+ @@@url@@@/ (?:.*)/foo-([\d\.]+).tar.gz debian uupdate'
+ helperWatch siteXmlNonNative
}
-testWatch3WebNonNativeUA() {
- PKG=foo
- WATCHVER="3"
+# test user-agent string setting via opts=
+testWatch4WebNonNativeUA() {
+ WATCHVER=4
+ USCAN_HTTP_SERVER="server-head.py"
USERAGENT="foo/bar; baz:12,3.45"
- WATCHLINE='opts="useragent= '$USERAGENT' "'"\n"'@@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
- helperWatchUA siteWebNonNative
+ WATCHLINE='opts="useragent= '$USERAGENT' "'"\n"'@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
+ helperWatchUA
+ unset USERAGENT
+ unset USCAN_HTTP_SERVER
}
# test repack and compression
-testWatch3WebNonNativeXZ() {
- PKG=foo
- WATCHVER="3"
- WATCHLINE='opts=repack,compression=xz @@@url@@@/ (?:.*)/'$PKG'-([\.\d]+).tar.gz debian uupdate'
- helperWatchXZ siteWebNonNative 1.0 2.0
+testWatch4WebNonNativeBZ2() {
+ WATCHVER=4
+ WATCHLINE='opts=repack,compression=bz2 @@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
+ GZREPACK=bz2
+ helperWatch
+ unset GZREPACK
+}
+
+# test repack and compression
+testWatch4WebNonNativeXZ() {
+ WATCHVER=4
+ WATCHLINE='opts=repack,compression=xz @@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
+ GZREPACK=xz
+ helperWatch
+ unset GZREPACK
}
# test spaces everywhere
-testWatch3PrWebNonNativeXZ() {
- PKG=foo
- WATCHVER="3"
+testWatch4PrWebNonNativeXZ() {
+ WATCHVER=4
WATCHLINE='opts = "downloadurlmangle = s%boo/xxx%foo/ooo% ; s%boo-%foo-%, \
filenamemangle = s%.*boo-(.*)%foo-$1% , \
repack , compression=xz" \
@@@url@@@/ (?:.*)/boo-([\d\.]+).tar.gz \
debian uupdate'
- helperWatchXZ sitePrWebNonNative 1.0 2.0
+ GZREPACK=xz
+ helperWatch sitePrWebNonNative
+ unset GZREPACK
+}
+
+### VERSION 4 only ###
+
+# test normal web page (MUT)
+testWatch4WebNonNativeMUT() {
+ WATCHVER=4
+ COMPONENTS="bar baz"
+ FILEEXCLUDE=3
+ WATCHLINE='@@@url@@@ (?:.*)/foo-([\d\.]+).tar.gz debian
+opts="component=bar" @@@url@@@ (?:.*)/bar-([\d\.]+).tar.gz same
+opts="component=baz" @@@url@@@ (?:.*)/baz-([\d\.]+).tar.gz same uupdate'
+ helperWatch siteWebNonNativeMUT
+}
+
+# test normal web page (MUT with O main)
+testWatch4WebNonNativeMUT0() {
+ WATCHVER=4
+ COMPONENTS="foo bar baz"
+ FILEEXCLUDE=2
+ WATCHLINE='opts="component=foo" @@@url@@@ (?:.*)/foo-([\d\.]+).tar.gz debian
+opts="component=bar" @@@url@@@ (?:.*)/bar-([\d\.]+).tar.gz same
+opts="component=baz" @@@url@@@ (?:.*)/baz-([\d\.]+).tar.gz same uupdate'
+ helperWatch siteWebNonNativeMUT
}
. 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