1
0
Fork 0
devscripts/test/test_uscan_mangle
Daniel Baumann b543f2e88d
Adding upstream version 2.25.15.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-21 11:04:07 +02:00

1562 lines
58 KiB
Bash
Executable file

#!/bin/bash
# Copyright (C) 2013, Rafael Laboissiere <rafael@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.
set -u
TESTTYPE=Mangle
. ./lib_test_uscan
COMMAND="uscan --no-conf"
# set safe defaults
WEBSCRIPT=":"
DEBUGECHO=":"
DEBUGLSLR=":"
DEBUGBASH=":"
# comment out for debug
#COMMAND="$COMMAND --debug"
#COMMAND="$COMMAND --verbose"
#DEBUGECHO=echo
#DEBUGLSLR="ls -laR"
#DEBUGLSLR="ls -la"
#DEBUGBASH="bash -i"
# Initial Debian revision value is distribution dependent
SUFFIX="1"
if command -v dpkg-vendor >/dev/null; then
VENDER="$(dpkg-vendor --query Vendor 2>/dev/null|tr 'A-Z' 'a-z')"
case "$VENDER" in
debian) SUFFIX="1" ;;
*) SUFFIX="0${VENDER}1" ;;
esac
fi
tearDown(){
killHttpServer
echo
}
trap tearDown EXIT
containsName(){
echo "$1" | grep -qF "$2"
echo $?
}
. "${0%/*}/shunit2-helper-functions.sh"
# The following tests do the following: (1) create a minimal Debian package
# directory, containing minimal files debian/{changelog,watch,copyright},
# (2) create a minimal repository, containing a tarball (built on the fly),
# (3) start an HTTP server that works offline, using the SimpleHTTPServer
# module of Python, and (4) run uscan inside that minimal universe.
# make debian/ in `pwd`
# debian/watch contains $WATCHVER and $WATCHLINE with template URL updated
makeDebianDir() {
DEBNAME=${1:-foo} # Debian source package name
DEBVER=${2:-1.0} # Debian source package version
mkdir -p debian/source
cat <<END > debian/rules
%:
dh $@
END
chmod 755 debian/rules
cat <<END > debian/changelog
$DEBNAME ($DEBVER) unstable; urgency=low
* Release of the $DEBNAME package $DEBVER.
-- Joe Developer <jd@debian.org> Mon, 02 Nov 2013 22:21:31 -0100
END
# debian/source/format
case $DEBVER in
*-*) # non-native package
echo "3.0 (quilt)" > debian/source/format
;;
*) # native package
echo "3.0 (native)" > debian/source/format
;;
esac
# debian/copyright
echo "Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/" \
> debian/copyright
if [ "${FILEEXCLUDE:-0}" = "1" ]; then
# exclude just for main
cat <<'END' >> debian/copyright
Files-Excluded: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
END
elif [ "${FILEEXCLUDE:-0}" = "2" ]; then
# exclude for main(=foo) bar baz
cat <<'END' >> debian/copyright
Files-Excluded: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
Files-Excluded-bar: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
Files-Excluded-baz: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
END
elif [ "${FILEEXCLUDE:-0}" = "3" ]; then
# exclude for foo bar baz
cat <<'END' >> debian/copyright
Files-Excluded-foo: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
Files-Excluded-bar: exclude-this
*/exclude-dir
.*
*/js/jquery.js
;?echo?baz;?#
Files-Excluded-baz: exclude-this
*/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
# debian/upstream/signing-key.asc
mkdir -p debian/upstream
if [ "$KEYMODE" = "ASC" ]; then
cp -f $test_dir/uscan/PUBLIC_KEY.asc debian/upstream/signing-key.asc
else
cp -f "$GPGHOME/pubring.gpg" debian/upstream/signing-key.pgp
fi
}
# make tarball in $REPOPATH/$POOLPATH
makeUpstreamTar() {
UPNAME=${1:-foo} # Upstream package name
UPVER=${2:-1.0} # upstream package version
COMPRESSION=${3:-gz} # archive compression type
TYPE=${4:-non-native} # set this if native-type upstream
OLDDIR=`pwd`
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/$POOLPATH/$UPNAME-$UPVER
cd "$TEMP_PKG_DIR"/$REPOPATH/$POOLPATH
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 "$TEMP_PKG_DIR"/$REPOPATH/$POOLPATH/$UPNAME-$UPVER
makeDebianDir $UPNAME $UPVER
cd "$TEMP_PKG_DIR"/$REPOPATH/$POOLPATH
fi
case $COMPRESSION in
gz|gzip)
NEWTAR=$UPNAME-$UPVER.tar.gz
tar -czf $NEWTAR $UPNAME-$UPVER
;;
bz2|bzip2)
NEWTAR=$UPNAME-$UPVER.tar.bz2
tar --bzip2 -cf $NEWTAR $UPNAME-$UPVER
;;
xz)
NEWTAR= $UPNAME-$UPVER.tar.xz
tar --xz -cf $NEWTAR $UPNAME-$UPVER
;;
zip)
NEWTAR=$UPNAME-$UPVER.zip
zip -r $NEWTAR $UPNAME-$UPVER
;;
*) echo "Wrong compression mode: $COMPRESSION"
exit 1
;;
esac
case "${SIGMODE:-}" in # undefined SIGMODE → no sig
ASC) # make $NEWTAR.asc
$GPG --homedir "$GPGHOME" --no-options -q --batch --no-default-keyring \
--default-key 72543FAF \
--armor --detach-sign $NEWTAR
;;
BIN) #make $NEWTAR.sig
$GPG --homedir "$GPGHOME" --no-options -q --batch --no-default-keyring \
--default-key 72543FAF \
--detach-sign $NEWTAR
;;
SELF) #make $NEWTAR.gpg
$GPG --homedir "$GPGHOME" --no-options -q --batch --no-default-keyring \
--default-key 72543FAF \
--sign $NEWTAR
esac
cd $OLDDIR
}
# setup a common watch file test environment
helperWatch() {
local SITESCRIPT=${1:-siteWebNonNative}
local VEROLD=${2:-1.0}
local VERNEW=${3:-2.0}
local PREFIX="${4:-}"
TEMP_PKG_DIR=${TEMP_PKG_DIR:-$(mktemp -d -p "$SHUNIT_TMPDIR" uscan_mangle.XXXXXX)}
ORIGDIR=`pwd`
PKG=${PKG:-foo}
REPOPATH=${REPOPATH:-repo}
POOLPATH=${POOLPATH:-pool}
MGZREPACK=${MGZREPACK:-gz}
XCOMMAND=${XCOMMAND:-$COMMAND}
WATCHVER="${WATCHVER:-3}"
WATCHLINE0="@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate"
WATCHLINE="${WATCHLINE:-$WATCHLINE0}"
COMPONENTS=${COMPONENTS:-}
FILEEXCLUDE=${FILEEXCLUDE:-0} # no exclude
FILENAMEMANGLE=${FILENAMEMANGLE:-}
VERNEW_MANGLED=${VERNEW_MANGLED:-$VERNEW}
SIGMODE=${SIGMODE:-ASC} # ASC=ASCII or BIN=BINARY or SELF
KEYMODE=${KEYMODE:-ASC} # ASC=ASCII AEMORED or BIN=DEARMORED BINARY
cd "$TEMP_PKG_DIR"
# start HTTP server with its root at "$TEMP_PKG_DIR"/$REPOPATH
spawnHttpServer
PORT=$(cat "$TEMP_PKG_DIR"/$REPOPATH/port)
$DEBUGECHO " ***** http://localhost:$PORT started showing "$TEMP_PKG_DIR"/$REPOPATH *****"
# make web site
$SITESCRIPT
# make local $VEROLD source tree
tar -xzf "$TEMP_PKG_DIR"/$REPOPATH/$POOLPATH/${PKG}-${VEROLD}.tar.gz
if [ -n "$PREFIX" ]; then
mv "$TEMP_PKG_DIR"/${PKG}-${VEROLD} "$TEMP_PKG_DIR"/${PKG}-${PREFIX}${VEROLD}
fi
mv "$TEMP_PKG_DIR"/${PKG}-${PREFIX}${VEROLD} "$TEMP_PKG_DIR"/${PKG}
cd "$TEMP_PKG_DIR"/${PKG}
if [ ! -d debian ]; then
makeDebianDir $PKG ${PREFIX}${VEROLD}-$SUFFIX
fi
local UUPDATE=""
if grep -q "uupdate" "$TEMP_PKG_DIR"/${PKG}/debian/watch ; then
UUPDATE=uupdate
fi
local PGP=""
if grep -q "pgpurlmangle" "$TEMP_PKG_DIR"/${PKG}/debian/watch ; then
PGP=pgp
fi
if grep -q "pgpmode *= *auto" "$TEMP_PKG_DIR"/${PKG}/debian/watch ; then
PGP=pgp
fi
if grep -q "pgpmode *= *previous" "$TEMP_PKG_DIR"/${PKG}/debian/watch ; then
PGP=pgp
fi
$XCOMMAND
assertEquals "uscan: exit_code!=0 but exit_code=0" "$?" "0"
cd "$TEMP_PKG_DIR"
$DEBUGLSLR
UTARBALL=${PKG}-${UVERSION:-${VERNEW}}.tar.gz
if [[ "$FILENAMEMANGLE" != *"$PKG"* ]]; then
UTARBALL=${PKG}-${UVERSION:-${VERNEW}}.tar.gz
else
UTARBALL=${PKG}-${UVERSION:-${VERNEW}}-filenamemangle.tar.gz
fi
STARBALL=${PKG}_${PREFIX}${VERNEW_MANGLED}.orig.tar.$MGZREPACK
if [ ! -f $STARBALL ]; then
# testWatch4WebNonNativeMUT0() only repacks its component tarballs. It does
# not repack the main upstream tarball, which is the usual behaviour when
# excluding files from the upstream source. This means we need to find the
# upstream tarball.
STARBALL=${PKG}_${PREFIX}${VERNEW_MANGLED}.orig.tar.gz
fi
assertTrue "$UTARBALL missing: $WATCHLINE" "[ -f $UTARBALL ]"
assertTrue "$STARBALL missing: $WATCHLINE" "[ -f $STARBALL ]"
if [ "$PGP" = "pgp" ]; then
UTARSIG=${PKG}-${UVERSION:-${VERNEW}}.tar.gz.sig
if [ ! -f $UTARSIG ]; then
UTARSIG=${PKG}-${UVERSION:-${VERNEW}}.tar.gz.asc
fi
STARSIG=${PKG}_${PREFIX}${VERNEW_MANGLED}.orig.tar.$MGZREPACK.asc
assertTrue "$UTARSIG and *.sig missing: $WATCHLINE" "[ -f $UTARSIG ]"
assertTrue "$STARSIG missing: $WATCHLINE" "[ -f $STARSIG ]"
fi
for cpnt in $COMPONENTS; do
if [[ "$FILENAMEMANGLE" != *"$cpnt"* ]]; then
UTARBALL=${cpnt}-${CMPVERSION:-${VERNEW}}.tar.gz
else
UTARBALL=${PKG}-${cpnt}-${CMPVERSION:-${VERNEW}}.tar.gz
fi
STARBALL=${PKG}_${PREFIX}${VERNEW_MANGLED}.orig-${cpnt}.tar.$MGZREPACK
assertTrue "$UTARBALL missing: $WATCHLINE" "[ -f $UTARBALL ]"
assertTrue "$STARBALL missing: $WATCHLINE" "[ -f $STARBALL ]"
if [ "$PGP" = "pgp" ]; then
UTARSIG=${cpnt}-${CMPVERSION:-${VERNEW}}.tar.gz.sig
if [ ! -f $UTARSIG ]; then
UTARSIG=${cpnt}-${CMPVERSION:-${VERNEW}}.tar.gz.asc
fi
STARSIG=${PKG}_${PREFIX}${VERNEW_MANGLED}.orig-${cpnt}.tar.$MGZREPACK.asc
assertTrue "$UTARSIG and *.sig missing: $WATCHLINE" "[ -f $UTARSIG ]"
# Skipping this: signature link skipped when upstream file is repacked
#assertTrue "$STARSIG missing: $WATCHLINE" "[ -f $STARSIG ]"
fi
done
# check uupdate
if [ "$UUPDATE" = "uupdate" ]; then
cd "$TEMP_PKG_DIR"/${PKG}-${PREFIX}${VERNEW_MANGLED}
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_MANGLED}-$SUFFIX"
if [ "$FILEEXCLUDE" != "3" ]; then
# main is dummy
assertTrue 'file that must be present is excluded in the tarball' '[ -f include-this ]'
fi
if [ "$FILEEXCLUDE" = "1" ] || [ "$FILEEXCLUDE" = "2" ]; 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 "$TEMP_PKG_DIR"/${PKG}-${PREFIX}${VERNEW_MANGLED}/$c
assertTrue 'file that must be present is excluded in the tarball' '[ -f include-this ]'
if [ "$FILEEXCLUDE" = "1" ] || [ "$FILEEXCLUDE" = "2" ]; 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 "$TEMP_PKG_DIR"
fi
$DEBUGBASH
cd $ORIGDIR
unset REPOPATH
unset POOLPATH
unset MGZREPACK
unset XCOMMAND
unset WATCHVER
unset WATCHLINE
unset COMPONENTS
unset FILEEXCLUDE
unset FILENAMEMANGLE
unset VERNEW_MANGLED
unset SIGMODE
unset KEYMODE
}
# setup a common watch file test environment to see user-agent
helperWatchUA() {
local SITESCRIPT=${1:-siteWebNonNative}
TEMP_PKG_DIR=$(mktemp -d -p "$SHUNIT_TMPDIR" uscan_mangle.XXXXXX)
ORIGDIR=`pwd`
PKG=${PKG:-foo}
REPOPATH=${REPOPATH:-repo}
POOLPATH=${POOLPATH:-pool}
XCOMMAND=${XCOMMAND:-$COMMAND}
WATCHVER="${WATCHVER:-3}"
WATCHLINE0="@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate"
WATCHLINE="${WATCHLINE:-$WATCHLINE0}"
KEYMODE=${KEYMODE:-ASC} # ASC=ASCII AEMORED or BIN=DEARMORED BINARY
cd "$TEMP_PKG_DIR"
# start HTTP server with its root at "$TEMP_PKG_DIR"/$REPOPATH
spawnHttpServer
PORT=$(cat "$TEMP_PKG_DIR"/$REPOPATH/port)
$DEBUGECHO " ***** http://localhost:$PORT started showing "$TEMP_PKG_DIR"/$REPOPATH *****"
# make web site
$SITESCRIPT
# make local $VEROLD source tree
mkdir -p "$TEMP_PKG_DIR"/${PKG}
cd "$TEMP_PKG_DIR"/${PKG}
if [ ! -d debian ]; then
makeDebianDir $PKG 1.0-$SUFFIX
fi
$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
unset REPOPATH
unset POOLPATH
unset XCOMMAND
unset WATCHVER
unset WATCHLINE
unset KEYMODE
}
# populate pool directory
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 "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz
}
siteNonNative() {
local PKG=${1:-foo}
local EXTRA=${2:-}
makeUpstreamTar $PKG 0.0 gz non-native
makeUpstreamTar $PKG 1.0-rc-1 gz non-native
makeUpstreamTar $PKG 1.0 gz non-native
makeUpstreamTar $PKG 2.0 gz non-native
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/
if [ -n "$EXTRA" ]; then
makeUpstreamTar $PKG 3.0 gz non-native
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/
fi
if [ "${SIGMODE:-}" = "ASC" ]; then
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz.asc
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/${PKG}-1.0-rc-1.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/${PKG}-1.0-rc-1.tar.gz.asc
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz.asc
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz.asc
if [ -n "$EXTRA" ]; then
ln -sf ../../../$POOLPATH/${PKG}-3.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/${PKG}-3.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-3.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/${PKG}-3.0.tar.gz.asc
fi
elif [ "${SIGMODE:-}" = "BIN" ]; then
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz.sig
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/${PKG}-1.0-rc-1.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/${PKG}-1.0-rc-1.tar.gz.sig
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz.sig
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz.sig
if [ -n "$EXTRA" ]; then
ln -sf ../../../$POOLPATH/${PKG}-3.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/${PKG}-3.0.tar.gz
ln -sf ../../../$POOLPATH/${PKG}-3.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/${PKG}-3.0.tar.gz.sig
fi
elif [ "${SIGMODE:-}" = "SELF" ]; then
ln -sf ../../../$POOLPATH/${PKG}-0.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/0.0/$PKG/ooo/${PKG}-0.0.tar.gz.gpg
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/1.0-rc-1/$PKG/ooo/${PKG}-1.0-rc-1.tar.gz.gpg
ln -sf ../../../$POOLPATH/${PKG}-1.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/1.0/$PKG/ooo/${PKG}-1.0.tar.gz.gpg
ln -sf ../../../$POOLPATH/${PKG}-2.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/2.0/$PKG/ooo/${PKG}-2.0.tar.gz.gpg
if [ -n "$EXTRA" ]; then
ln -sf ../../../$POOLPATH/${PKG}-3.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/3.0/$PKG/ooo/${PKG}-3.0.tar.gz.gpg
fi
fi
}
# hide siteNative behind a web page
siteWebNative() {
siteNative
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteWebNonNative() {
siteNonNative
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0-rc-1/foo/ooo/foo-1.0-rc-1.tar.gz">Slightly older</a> <br />
<a href="/1.0/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteWebNonNativeRecWithBase() {
siteNonNative "$@"
for DIR in "$TEMP_PKG_DIR"/$REPOPATH/[0-9].*; do
[ -d "$DIR" ] && cat <<END > "$DIR"/index.html
<html>
<head>
<meta charset="utf-8">
<base href="/${DIR##*/}/foo/ooo/x.html"/>
</head>
<body>
<a href="foo-${DIR##*/}.tar.gz">Blah</a> <br/ >
</body>
<html>
END
done
}
siteWebNonNativeR() {
makeUpstreamTar foo 0.0 gz non-native
makeUpstreamTar foo 1.0 gz non-native
makeUpstreamTar foo 2.0 gz non-native
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/123/foo/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/124/foo/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/125/foo/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/325/foo/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/424/foo/ooo/
mkdir -p "$TEMP_PKG_DIR"/$REPOPATH/523/foo/ooo/
if [ "$SIGMODE" = "ASC" ]; then
ln -sf ../../../$POOLPATH/foo-0.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/125/foo/ooo/foo-0.0.tar.gz
ln -sf ../../../$POOLPATH/foo-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/124/foo/ooo/foo-1.0.tar.gz
ln -sf ../../../$POOLPATH/foo-2.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/123/foo/ooo/foo-2.0.tar.gz
ln -sf ../../../$POOLPATH/foo-0.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/325/foo/ooo/foo-0.0.tar.gz.asc
ln -sf ../../../$POOLPATH/foo-1.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/424/foo/ooo/foo-1.0.tar.gz.asc
ln -sf ../../../$POOLPATH/foo-2.0.tar.gz.asc "$TEMP_PKG_DIR"/$REPOPATH/523/foo/ooo/foo-2.0.tar.gz.asc
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<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 />
<a href="/325/foo/ooo/foo-0.0.tar.gz.asc">Very old sig</a> <br/ >
<a href="/424/foo/ooo/foo-1.0.tar.gz.asc">A bit OLD sig</a> <br />
<a href="/523/foo/ooo/foo-2.0.tar.gz.asc">Latest sig</a> <br />
</body>
<html>
END
elif [ "$SIGMODE" = "BIN" ]; then
ln -sf ../../../$POOLPATH/foo-0.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/125/foo/ooo/foo-0.0.tar.gz
ln -sf ../../../$POOLPATH/foo-1.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/124/foo/ooo/foo-1.0.tar.gz
ln -sf ../../../$POOLPATH/foo-2.0.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/123/foo/ooo/foo-2.0.tar.gz
ln -sf ../../../$POOLPATH/foo-0.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/325/foo/ooo/foo-0.0.tar.gz.sig
ln -sf ../../../$POOLPATH/foo-1.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/424/foo/ooo/foo-1.0.tar.gz.sig
ln -sf ../../../$POOLPATH/foo-2.0.tar.gz.sig "$TEMP_PKG_DIR"/$REPOPATH/523/foo/ooo/foo-2.0.tar.gz.sig
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<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 />
<a href="/325/foo/ooo/foo-0.0.tar.gz.sig">Very old sig</a> <br/ >
<a href="/424/foo/ooo/foo-1.0.tar.gz.sig">A bit OLD sig</a> <br />
<a href="/523/foo/ooo/foo-2.0.tar.gz.sig">Latest sig</a> <br />
</body>
<html>
END
elif [ "$SIGMODE" = "SELF" ]; then
ln -sf ../../../$POOLPATH/foo-0.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/325/foo/ooo/foo-0.0.tar.gz.gpg
ln -sf ../../../$POOLPATH/foo-1.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/424/foo/ooo/foo-1.0.tar.gz.gpg
ln -sf ../../../$POOLPATH/foo-2.0.tar.gz.gpg "$TEMP_PKG_DIR"/$REPOPATH/523/foo/ooo/foo-2.0.tar.gz.gpg
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<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 />
<a href="/325/foo/ooo/foo-0.0.tar.gz.gpg">Very old sig</a> <br/ >
<a href="/424/foo/ooo/foo-1.0.tar.gz.gpg">A bit OLD sig</a> <br />
<a href="/523/foo/ooo/foo-2.0.tar.gz.gpg">Latest sig</a> <br />
</body>
<html>
END
fi
}
sitePrWebNonNative() {
siteNonNative
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/boo/xxx/boo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/boo/xxx/boo-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/boo/xxx/boo-2.0.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteWebNonNativeLarge() {
makeUpstreamTar foo 19990101 gz non-native
makeUpstreamTar foo 20000101 gz non-native
makeUpstreamTar foo 20010101 gz non-native
mkdir -p $REPOPATH/0.0/foo/ooo/
mkdir -p $REPOPATH/1.0/foo/ooo/
mkdir -p $REPOPATH/2.0/foo/ooo/
ln -sf ../../../$POOLPATH/foo-19990101.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/0.0/foo/ooo/foo-19990101.tar.gz
ln -sf ../../../$POOLPATH/foo-20000101.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/1.0/foo/ooo/foo-20000101.tar.gz
ln -sf ../../../$POOLPATH/foo-20010101.tar.gz "$TEMP_PKG_DIR"/$REPOPATH/2.0/foo/ooo/foo-20010101.tar.gz
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-19990101.tar.gz">Very old</a> <br/ >
<a href="/1.0/foo/ooo/foo-20000101.tar.gz">A bit OLD</a> <br />
<a href="/2.0/foo/ooo/foo-20010101.tar.gz">Latest</a> <br />
</body>
<html>
END
}
siteXmlNonNative() {
siteNonNative
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<Key>/0.0/foo/ooo/foo-0.0.tar.gz</Key> <br/ >
<Key>/1.0/foo/ooo/foo-1.0.tar.gz</Key> <br />
<Key>/2.0/foo/ooo/foo-2.0.tar.gz</Key> <br />
</body>
<html>
END
}
siteWebNonNativeMUT() {
siteNonNative foo
siteNonNative bar EXTRA
siteNonNative baz EXTRA
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/foo/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz.asc">Latest sig</a> <br />
<a href="/0.0/bar/ooo/bar-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/bar/ooo/bar-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/bar/ooo/bar-2.0.tar.gz">Latest</a> <br />
<a href="/3.0/bar/ooo/bar-3.0.tar.gz">OOPS Latest</a> <br />
<a href="/3.0/bar/ooo/bar-3.0.tar.gz.asc">Latest sig</a> <br />
<a href="/0.0/baz/ooo/baz-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/baz/ooo/baz-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/baz/ooo/baz-2.0.tar.gz">Latest</a> <br />
<a href="/3.0/baz/ooo/baz-3.0.tar.gz">OOPS Latest</a> <br />
<a href="/3.0/baz/ooo/baz-3.0.tar.gz.asc">Latest sig</a> <br />
</body>
<html>
END
}
siteWebNonNativeMUT_filenamemangle() {
siteNonNative foo
siteNonNative bar EXTRA
siteNonNative baz EXTRA
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/foo/ooo/foo-1.0.tar.gz">A bit old</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz">Latest</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz.asc">Latest sig</a> <br />
<a href="/0.0/bar/ooo/bar-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/bar/ooo/bar-1.0.tar.gz">A bit old</a> <br />
<a href="/2.0/bar/ooo/bar-2.0.tar.gz">Latest</a> <br />
<a href="/3.0/bar/ooo/bar-2.0.tar.gz.asc">Latest sig</a> <br />
<a href="/0.0/baz/ooo/baz-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/baz/ooo/baz-1.0.tar.gz">A bit old</a> <br />
<a href="/2.0/baz/ooo/baz-2.0.tar.gz">Latest</a> <br />
<a href="/3.0/baz/ooo/baz-2.0.tar.gz.asc">Latest sig</a> <br />
</body>
<html>
END
}
siteWebNonNativeGetOnlyHref() {
siteNonNative foo
cat <<END > "$TEMP_PKG_DIR"/$REPOPATH/index.html
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<a href="/0.0/foo/ooo/foo-0.0.tar.gz">Very old</a> <br/ >
<a href="/1.0/bar/ooo/foo-1.0.tar.gz">A bit OLD</a> <br />
<a href="/2.0/foo/ooo/foo-2.0.tar.gz" data-foobar-href="">Latest</a> <br />
<aueu href="/2.0/foo/ooo/foo-3.0.tar.gz" data-foobar-href="">Nothing here</a> <br />
</body>
<html>
END
}
# test a watch files
### VERSION3 ###
# version locking calls suffer changes due to uupdate calling differences
# test --download-current-version
testWatch3WebNonNativeDlCurrent() {
WATCHVER=3
XCOMMAND="$COMMAND --download-current-version"
WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 1.0
}
# test --download-version
testWatch3WebNonNativeDlUversion() {
WATCHVER=3
XCOMMAND="$COMMAND --download-version 0.0"
WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
}
# test --download-debversion uupdate
testWatch3WebNonNativeDlDversion() {
WATCHVER=3
XCOMMAND="$COMMAND --download-debversion 0.0-1"
WATCHLINE='@@@url@@@/ (?:.*)/foo-([\.\d]+).tar.gz debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
}
### VERSION 4 ###
# standard tests
# test native package w/o uupdate, bare HTTP server in normal order
testWatch4Native() {
WATCHVER=4
WATCHLINE='@@@url@@@/([\.\d]+)/(.+)/(.+)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteNative
}
# test non-native package with uupdate, bare HTTP server in normal order
testWatch4NonNative() {
WATCHVER=4
WATCHLINE='@@@url@@@([\.\d]+)/(.+)/(.+)/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteNonNative
}
# test non-native package with uupdate, bare HTTP server with dirversionmangle
testWatch4NonNativeDMangle() {
WATCHVER=4
WATCHLINE='opts="dirversionmangle=s/^\d*[13579]\./0~$&/, uversionmangle=s/^\d*[13579]\./0~$&/" @@@url@@@([\.\d]+)/(.+)/(.+)/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch "siteNonNative foo EXTRA"
}
# ... and without dirversionmangle, should return version 3
testWatch4NonNativeDMangleWithoutD() {
WATCHVER=4
WATCHLINE='@@@url@@@([\.\d]+)/(.+)/(.+)/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch "siteNonNative foo EXTRA" 1.0 3.0
}
# test non-native package with uupdate, bare HTTP server with dirversionmangle and base
testWatch4NonNativeDMangleB() {
WATCHVER=4
WATCHLINE='opts="dirversionmangle=s/^\d*[13579]\./0~$&/, uversionmangle=s/^\d*[13579]\./0~$&/" @@@url@@@([\.\d]+)/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch "siteWebNonNativeRecWithBase foo EXTRA"
}
# ... and without dirversionmangle, should return version 3
testWatch4NonNativeDMangleBWithoutD() {
WATCHVER=4
WATCHLINE='@@@url@@@([\.\d]+)/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch "siteWebNonNativeRecWithBase foo EXTRA" 1.0 3.0
}
# test 3 parameter watch line
testWatch4WebNative() {
WATCHVER=4
WATCHLINE='@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteWebNative
}
# test normal web page
testWatch4WebNonNative() {
WATCHVER=4
helperWatch
}
# test normal web page (Files-exclude)
testWatch4WebNonNativeFE() {
MGZREPACK=xz
FILEEXCLUDE=1
WATCHVER=4
helperWatch
}
# test normal web page (file path reverse order)
testWatch4WebNonNativeR() {
WATCHVER=4
helperWatch siteWebNonNativeR
}
# test for downloadurlmangle and filenamemangle for tricky web page
testWatch4PrWebNonNative() {
WATCHVER=4
WATCHLINE='opts="downloadurlmangle = s%boo/xxx%@PACKAGE@/ooo% ; s%boo-%@PACKAGE@-%, \
filenamemangle = s%.*boo-(.*)%@PACKAGE@-$1% " \
@@@url@@@/ (?:.*)/boo@ANY_VERSION@@ARCHIVE_EXT@ \
debian uupdate'
helperWatch sitePrWebNonNative
}
# test --download-current-version
testWatch4NonNativeDlCurrent() {
WATCHVER=4
XCOMMAND="$COMMAND --download-current-version"
WATCHLINE='@@@url@@@/([\d\.]+)/@PACKAGE@/ooo/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteNonNative 1.0 1.0
}
# test --download-version
testWatch4NonNativeDlUversion() {
WATCHVER=4
XCOMMAND="$COMMAND --download-version 0.0"
WATCHLINE='@@@url@@@/([\d\.]+)/@PACKAGE@/ooo/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteNonNative 1.0 0.0
}
# test --download-version with uversionmangle
testWatch4NonNativeDlUversion_uversionmangle() {
VERNEW_MANGLED='1.0~rc-1'
WATCHVER=4
XCOMMAND="$COMMAND --download-version 1.0-rc-1"
WATCHLINE='opts="dirversionmangle=s/-([a-z]+-)/~$1/,uversionmangle=s/-([a-z]+-)/~$1/" @@@url@@@/([\d][\d\.a-z-]+)/@PACKAGE@/ooo/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteNonNative 1.0 1.0-rc-1
}
# test --download-debversion uupdate
testWatch4NonNativeDlDversion() {
WATCHVER=4
XCOMMAND="$COMMAND --download-debversion 0.0-1"
WATCHLINE='@@@url@@@/([\d\.]+)/@PACKAGE@/ooo/ @PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteNonNative 1.0 0.0
}
# test --download-current-version
testWatch4WebNonNativeDlCurrent() {
WATCHVER=4
XCOMMAND="$COMMAND --download-current-version"
WATCHLINE='@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteWebNonNative 1.0 1.0
}
# test --download-version
testWatch4WebNonNativeDlUversion() {
WATCHVER=4
XCOMMAND="$COMMAND --download-version 0.0"
WATCHLINE='@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
}
# test --download-debversion uupdate
testWatch4WebNonNativeDlDversion() {
WATCHVER=4
XCOMMAND="$COMMAND --download-debversion 0.0-1"
WATCHLINE='@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteWebNonNative 1.0 0.0
}
# Debian version is 0.19990101 for future proof while upstream is 19990101
testWatch4WebNonNativeLarge() {
WATCHVER=4
WATCHLINE='opts=" dversionmangle = s/0\.(.*)/$1/ , \
oversionmangle = s/(.*)/0.$1/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteWebNonNativeLarge 20000101 20010101 0.
}
# test for pagemangle
testWatch4XmlNonNative() {
WATCHVER=4
WATCHLINE='opts="pagemangle = \
s%<Key>([^<]*)</Key>%<Key><a href=\"$1\">$1</a></Key>%g" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteXmlNonNative
}
# test user-agent string setting via opts=
testWatch4WebNonNativeUA() {
WATCHVER=4
KEYMODE=BIN
USERAGENT="foo/bar; baz:12,3.45"
WATCHLINE='opts="useragent= '$USERAGENT' "'" \
"'@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatchUA
unset USERAGENT
}
# test repack and compression
testWatch4WebNonNativeBZ2() {
WATCHVER=4
WATCHLINE='opts=repack,compression=bz2 @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
MGZREPACK=bz2
helperWatch
}
# test repack and compression
testWatch4WebNonNativeXZ() {
MGZREPACK=xz
WATCHVER=4
WATCHLINE='opts=repack,compression=xz @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test spaces everywhere
testWatch4PrWebNonNativeXZ() {
MGZREPACK=xz
WATCHVER=4
WATCHLINE='opts = "downloadurlmangle = s%boo/xxx%@PACKAGE@/ooo% ; s%boo-%@PACKAGE@-%, \
filenamemangle = s%.*boo-(.*)%@PACKAGE@-$1% , \
repack , compression=xz" \
@@@url@@@/ (?:.*)/boo@ANY_VERSION@@ARCHIVE_EXT@ \
debian uupdate'
helperWatch sitePrWebNonNative
}
# test get strictly href from links and not something like foo-href. See #904578 and MR !25
testWatchGetOnlyHref() {
WATCHVER=4
WATCHLINE='@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch siteWebNonNativeGetOnlyHref 1.0 2.0
}
### VERSION 4 with sig check ###
# test normal web page with sig(asc)
testWatch4WebNonNativeSig() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s%(.*)%$1.asc%" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) with < and >
testWatch4WebNonNativeSigAngleBraket() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s<(.*)><$1.asc>" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) with < and > with space
testWatch4WebNonNativeSigAngleBraketSpace() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s<(.*)> <$1.asc>" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) with < and > with tab
testWatch4WebNonNativeSigAngleBraketTab() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s<(.*)> <$1.asc>" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) with [ and ]
testWatch4WebNonNativeSigSquareBraket() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s[(.*)][$1.asc]" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) with { and }
testWatch4WebNonNativeSigCurlyBraket() {
WATCHVER=4
WATCHLINE='opts = "pgpsigurlmangle = s{(.*)}{$1.asc}" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(asc) - auto
testWatch4WebNonNativeSigAuto() {
WATCHVER=4
WATCHLINE='opts = "pgpmode = auto" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate'
helperWatch
}
# test normal web page with sig(bin) (Files-exclude)
testWatch4WebNonNativeFESig() {
MGZREPACK=xz
FILEEXCLUDE=1
WATCHVER=4
SIGMODE=BIN
KEYMODE=BIN
WATCHLINE='opts = "pgpsigurlmangle = s%(.*)%$1.sig%" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ \
debian uupdate'
helperWatch
}
# test normal web page with sig (different file path for sig and tar; reverse order)
testWatch4WebNonNativeRSig() {
WATCHVER=4
WATCHLINE='opts = "pgpmode=next" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts = "pgpmode=previous" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@.asc previous uupdate'
helperWatch siteWebNonNativeR
}
# test normal web page with sig (different file path for sig and tar; reverse order, BIN)
testWatch4WebNonNativeRSigBIN() {
WATCHVER=4
SIGMODE=BIN
WATCHLINE='opts = "pgpmode=next" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts = "pgpmode=previous" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@.sig previous uupdate'
helperWatch siteWebNonNativeR
}
# test normal web page with sig (different file path for sig and tar; reverse order, BIN BIN)
testWatch4WebNonNativeRSigBINiBIN() {
WATCHVER=4
SIGMODE=BIN
KEYMODE=BIN
WATCHLINE='opts = "pgpmode=next" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts = "pgpmode=previous" @@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@.sig previous uupdate'
helperWatch siteWebNonNativeR
}
# test normal web page with sig (self)
testWatch4WebNonNativeSelfSig() {
WATCHVER=4
SIGMODE=SELF
WATCHLINE='opts = "pgpmode = self" \
@@@url@@@/ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@.gpg debian uupdate'
helperWatch siteWebNonNativeR
}
### VERSION 4 only ###
# filenamemangle supports two patterns, each causing different behaviour.
# * The first pattern replaces the existing URL with the new filename.
# * The second pattern modifies the filename component, creating a new (and invalid) URL.
# test normal web page (filenamemangle on main upstream tarball [pattern 1])
testWatch4WebNonNative_filenamemangle1a() {
WATCHVER=4
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteWebNonNative
}
# test normal web page (signature and filenamemangle on main upstream tarball [pattern 1])
testWatch4WebNonNative_filenamemangle1b() {
WATCHVER=4
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteWebNonNative
}
# test normal web page (filenamemangle on main upstream tarball [pattern 2])
testWatch4WebNonNative_filenamemangle1c() {
WATCHVER=4
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s/(\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteWebNonNative
}
# test normal web page (signature and filenamemangle on main upstream tarball [pattern 2])
testWatch4WebNonNative_filenamemangle1d() {
WATCHVER=4
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s/(\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian'
helperWatch siteWebNonNative
}
# test normal web page (MUT)
testWatch4WebNonNativeMUT() {
MGZREPACK=xz
WATCHVER=4
COMPONENTS="bar baz"
SIGMODE=BIN
FILEEXCLUDE=2
WATCHLINE='
opts=" pgpsigurlmangle=s/$/.sig/" @@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar,pgpsigurlmangle=s/$/.sig/" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz,pgpsigurlmangle=s/$/.sig/" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same uupdate'
helperWatch siteWebNonNativeMUT
}
# test normal web page (MUT, filenamemangle on main upstream tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle1a() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on main upstream tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle1b() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on main upstream tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle1c() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on main upstream tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle1d() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=foo
WATCHLINE='
opts="filenamemangle=s/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on first component tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle2a() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=bar
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on first component tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle2b() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=bar
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on first component tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle2c() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=bar
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on first component tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle2d() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=bar
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on second component tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle3a() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=baz
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on second component tarball [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle3b() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=baz
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on second component tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle3c() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=baz
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signature and filenamemangle on second component tarball [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle3d() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE=baz
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on both component tarballs [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle4a() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="$COMPONENTS"
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signatures and filenamemangle on both component tarballs [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle4b() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="$COMPONENTS"
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on both component tarballs [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle4c() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="$COMPONENTS"
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signatures and filenamemangle on both component tarballs [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle4d() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="$COMPONENTS"
WATCHLINE='
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on all upstream tarballs [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle5a() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="foo $COMPONENTS"
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signatures and filenamemangle on all upstream tarballs [pattern 1])
testWatch4WebNonNativeMUT_filenamemangle5b() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="foo $COMPONENTS"
WATCHLINE='
opts="filenamemangle=s#.+/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)#$1-filenamemangle$2#, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s#.+/(bar-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s#.+/(baz-)#@PACKAGE@-$1#, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, filenamemangle on all upstream tarballs [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle5c() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="foo $COMPONENTS"
WATCHLINE='
opts="filenamemangle=s/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT, signatures and filenamemangle on all upstream tarballs [pattern 2])
testWatch4WebNonNativeMUT_filenamemangle5d() {
WATCHVER=4
COMPONENTS="bar baz"
FILENAMEMANGLE="foo $COMPONENTS"
WATCHLINE='
opts="filenamemangle=s/(@PACKAGE@-\d\S+)(@ARCHIVE_EXT@)/$1-filenamemangle$2/, \
pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar, filenamemangle=s/(bar-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz, filenamemangle=s/(baz-)/@PACKAGE@-$1/, pgpsigurlmangle=s/$/.asc/" \
@@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same'
helperWatch siteWebNonNativeMUT_filenamemangle
}
# test normal web page (MUT with O main)
testWatch4WebNonNativeMUT0() {
WATCHVER=4
COMPONENTS="foo bar baz"
FILEEXCLUDE=3
MGZREPACK=xz
WATCHLINE='
opts="component=foo,pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ debian
opts="component=bar,pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ same
opts="component=baz,pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ same uupdate'
helperWatch siteWebNonNativeMUT
}
# Group test without signatures
testWatch4WebNonNativeGroup() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+~3.0
}
# Group test with repack suffix
testWatch4WebNonNativeGroupRepackSuffix() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,repacksuffix=+ds,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+ds+~3.0
}
testWatch4WebNonNativeGroupRepackSuffix2() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="dversionmangle=auto,pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="dversionmangle=auto,component=bar,repacksuffix=~ds,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="dversionmangle=auto,component=baz,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0~ds+~3.0
}
# Group test with pgpsigurlmangle
testWatch4WebNonNativeGroupSigned() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,pgpsigurlmangle=s/$/.asc/" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+~3.0
}
# Group test with pgpmode next/previous
testWatch4WebNonNativeGroupSignedNext() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
SIGMODE=ASC
WATCHLINE='
opts="pgpmode=next" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="pgpmode=previous" @@@url@@@/ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@.asc previous
opts="component=bar,pgpmode=next" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,pgpmode=previous" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@.asc previous
opts="component=baz,pgpmode=next" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,pgpmode=previous" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@.asc previous'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+~3.0
}
testWatch4WebNonNativeGroupWithCompression() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,compression=xz,repack,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,repack,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ group'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+~3.0
}
testWatch4WebNonNativeGroupWithChecksum1() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,compression=xz,repack,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=baz,repack,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ checksum'
helperWatch siteWebNonNativeMUT 1.0 2.0+~3.0+~cs3.0
}
testWatch4WebNonNativeGroupWithChecksum2() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,compression=xz,repack,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ checksum
opts="component=baz,repack,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ checksum'
helperWatch siteWebNonNativeMUT 1.0 2.0+~cs6.0
}
testWatch4WebNonNativeGroupWithChecksumAndIgnore() {
WATCHVER=4
COMPONENTS="bar baz"
FILEEXCLUDE=3
UVERSION=2.0
CMPVERSION=3.0
WATCHLINE='
opts="pgpmode=none" @@@url@@@ (?:.*)/foo@ANY_VERSION@@ARCHIVE_EXT@ group
opts="component=bar,compression=xz,repack,pgpmode=none" @@@url@@@ (?:.*)/bar@ANY_VERSION@@ARCHIVE_EXT@ checksum
opts="component=baz,repack,pgpmode=none" @@@url@@@ (?:.*)/baz@ANY_VERSION@@ARCHIVE_EXT@ ignore'
helperWatch siteWebNonNativeMUT 1.0 2.0+~cs3.0
}
. shunit2