171 lines
6.3 KiB
Bash
Executable file
171 lines
6.3 KiB
Bash
Executable file
#!/bin/sh
|
|
set -e
|
|
|
|
TESTDIR="$(readlink -f "$(dirname "$0")")"
|
|
. "$TESTDIR/framework"
|
|
setupenvironment
|
|
configarchitecture 'i386'
|
|
|
|
insertpackage 'unstable' 'unrelated' 'i386' '1'
|
|
insertpackage 'unstable' 'ancientstuff' 'all' '1'
|
|
insertpackage 'unstable' 'boringstuff' 'all' '1' '' '' 'shared short description'
|
|
insertpackage 'unstable' 'coolstuff' 'all' '1'
|
|
insertpackage 'unstable' 'dullstuff' 'all' '1' '' '' 'shared short description'
|
|
insertpackage 'unstable' 'evilstuff' 'all' '1'
|
|
insertpackage 'unstable' 'foostuff' 'all' '1' '' '' 'shared short description'
|
|
insertpackage 'unstable' 'goodstuff' 'all' '1'
|
|
insertpackage 'unstable' "longdesc" 'all' '1' '' '' "$(for i in $(seq 0 100); do printf '%s' 'lorem ipsum '; done)"
|
|
|
|
setupaptarchive --no-update
|
|
changetowebserver
|
|
|
|
testsuccess aptget update
|
|
PKGORDER='coolstuff foostuff coolstuff foostuff'
|
|
msgtest 'Prepare expectation for' 'aptcache show'
|
|
if aptcache show $PKGORDER | grep -v '^ ' > aptcacheshow.out 2>&1; then
|
|
msgpass
|
|
else
|
|
cat aptcacheshow.out || true
|
|
msgfail
|
|
fi
|
|
testsuccessequal '4' grep -c '^Package: ' aptcacheshow.out
|
|
msgtest 'Prepare expectation for' 'apt show'
|
|
if apt show $PKGORDER | grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' > aptshow.out 2>&1; then
|
|
msgpass
|
|
else
|
|
cat aptshow.out || true
|
|
msgfail
|
|
fi
|
|
testsuccessequal '4' grep -c '^Package: ' aptshow.out
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
checkaptshow() {
|
|
testsuccess aptcache show $PKGORDER
|
|
sed -i -e 's#^Description: #Description-en: #' rootdir/tmp/testsuccess.output
|
|
testequal "$(cat aptcacheshow.out)
|
|
" grep -v '^ ' rootdir/tmp/testsuccess.output
|
|
|
|
testsuccess apt show $PKGORDER
|
|
sed -i -e 's#^Description-en: #Description: #' rootdir/tmp/testsuccess.output
|
|
testequal "$(cat aptshow.out)
|
|
" grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' rootdir/tmp/testsuccess.output
|
|
|
|
if [ -n "$(ls rootdir/var/lib/apt/lists/*Translation* 2>/dev/null)" ]; then
|
|
testsuccess find rootdir/var/lib/apt/lists/ -name '*Translation*' -delete
|
|
|
|
testsuccess aptcache show $PKGORDER
|
|
sed -i -e 's#^Description: #Description-en: #' rootdir/tmp/testsuccess.output
|
|
testequal "$(cat aptcacheshow.out)
|
|
" grep -v '^ ' rootdir/tmp/testsuccess.output
|
|
|
|
testsuccess apt show $PKGORDER
|
|
sed -i -e 's#^Description-en: #Description: #' rootdir/tmp/testsuccess.output
|
|
testequal "$(cat aptshow.out)
|
|
" grep -v -e '^ ' -e '^[A-Z][a-z]\+-Size: ' rootdir/tmp/testsuccess.output
|
|
fi
|
|
}
|
|
|
|
translationslisted() {
|
|
msgtest 'No download of non-existent locals' "$1"
|
|
export LC_ALL=""
|
|
testsuccess --nomsg aptget update -o Acquire::Languages=en
|
|
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of existent locals' "$1"
|
|
testsuccess --nomsg aptget update
|
|
cp rootdir/tmp/testsuccess.output testsuccess.output
|
|
testsuccess grep -q -e 'Translation-en ' testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of en in LC_ALL=C' "$1"
|
|
export LC_ALL=C
|
|
testsuccess --nomsg aptget update
|
|
cp rootdir/tmp/testsuccess.output testsuccess.output
|
|
testsuccess grep -q -e 'Translation-en ' testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
unset LC_ALL
|
|
|
|
msgtest 'Download of en as forced language' "$1"
|
|
testsuccess --nomsg aptget update -o Acquire::Languages=en
|
|
cp rootdir/tmp/testsuccess.output testsuccess.output
|
|
testsuccess grep -q -e 'Translation-en ' testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of nothing else in forced language' "$1"
|
|
testsuccess --nomsg aptget update -o Acquire::Languages=en
|
|
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download no Translation- if forced language is non-existent' "$1"
|
|
testsuccess --nomsg aptget update -o Acquire::Languages=ast_DE
|
|
testfailure grep -q -e 'Translation-' rootdir/tmp/testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of nothing if none is forced' "$1"
|
|
testsuccess --nomsg aptget update -o Acquire::Languages=none
|
|
testfailure grep -q -e 'Translation' rootdir/tmp/testsuccess.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
}
|
|
|
|
translationslisted 'with full Index'
|
|
|
|
# No Release file at all, so no records about Translation files
|
|
# (fallback to guessing)
|
|
find aptarchive \( -name 'Release' -o -name 'InRelease' \) -delete
|
|
echo 'Acquire::AllowInsecureRepositories "true";' > rootdir/etc/apt/apt.conf.d/allow-insecure-repositories.conf
|
|
|
|
msgtest 'Download of en as forced language' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=en
|
|
testsuccess grep -q -e 'Translation-en ' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of nothing else in forced language' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=en
|
|
testfailure grep -q -e 'Translation-[^e][^n] ' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of ast_DE as forced language' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=ast_DE
|
|
testsuccess grep -q -e 'Translation-ast_DE$' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of nothing else in forced language' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=ast_DE
|
|
testfailure grep -q -e 'Translation-[^a][^s]' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
msgtest 'Download of nothing if none is forced' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=none
|
|
testfailure grep -q -e 'Translation' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
mkdir -p rootdir/var/lib/apt/lists
|
|
touch rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-ast_DE
|
|
|
|
msgtest 'Download of builtin files' 'without Index'
|
|
testwarning --nomsg aptget update
|
|
testsuccess grep -q -e 'Translation-ast_DE' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|
|
|
|
mkdir -p rootdir/var/lib/apt/lists
|
|
touch rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_i18n_Translation-ast_DE
|
|
|
|
msgtest 'Download of nothing (even builtin) if none is forced' 'without Index'
|
|
testwarning --nomsg aptget update -o Acquire::Languages=none
|
|
testfailure grep -q -e 'Translation' rootdir/tmp/testwarning.output
|
|
checkaptshow
|
|
rm -rf rootdir/var/lib/apt/lists
|