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 <os...@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 _______________________________________________ devscripts-devel mailing list devscripts-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/devscripts-devel