You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
10 KiB
154 lines
10 KiB
#!/bin/sh
|
|
set -e
|
|
|
|
TESTDIR=$(readlink -f $(dirname $0))
|
|
. $TESTDIR/framework
|
|
|
|
setupenvironment
|
|
configarchitecture 'i386'
|
|
|
|
LISTS='rootdir/etc/apt/sources.list.d/test.list'
|
|
SOURCES='rootdir/etc/apt/sources.list.d/test.sources'
|
|
BASE='# some comment
|
|
# that contains a : as well
|
|
#Types: meep
|
|
|
|
Types: deb
|
|
URIs: http://ftp.debian.org/debian
|
|
Suites: stable
|
|
Components: main
|
|
Description: summay
|
|
and the long part'
|
|
|
|
msgcleantest() {
|
|
rm -f $LISTS $SOURCES
|
|
msgtest "$@"
|
|
}
|
|
|
|
msgcleantest 'Test sources.list' 'old style'
|
|
echo "deb http://ftp.debian.org/debian stable main" > $LISTS
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test sources.list' 'old style with tabs'
|
|
echo "deb http://ftp.debian.org/debian stable main" > $LISTS
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test sources.list' 'old style with options'
|
|
echo "deb [trusted=yes arch+=armel,powerpc] http://ftp.debian.org/debian stable main" > $LISTS
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-powerpc/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-powerpc_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test sources.list' 'old style with comments'
|
|
echo "deb http://ftp.debian.org/debian stable main # non-free" > $LISTS
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test sources.list' 'old style with option comments'
|
|
echo "deb [trusted=yes#yeahreally] http://ftp.debian.org/debian stable main # non-free" > $LISTS
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test sources.list' 'simple deb822'
|
|
echo "$BASE" > $SOURCES
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test deb822 with' 'two entries'
|
|
# Two entries
|
|
echo "$BASE" > $SOURCES
|
|
echo "" >> $SOURCES
|
|
echo "$BASE" | sed s/stable/unstable/ >> $SOURCES
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0
|
|
'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/unstable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
# two suite entries
|
|
msgcleantest 'Test deb822 with' 'two Suite entries'
|
|
echo "$BASE" | sed -e "s/stable/stable unstable/" > $SOURCES
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0
|
|
'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/unstable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_unstable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test deb822' 'architecture option'
|
|
echo "$BASE" > $SOURCES
|
|
echo "Architectures: amd64 armel" >> $SOURCES
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-amd64_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test old-style' 'suite arch variable'
|
|
echo 'deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/' > $LISTS
|
|
testequal --nomsg "'http://ftp.tlh.debian.org/universe/unstable/binary-i386/InRelease' ftp.tlh.debian.org_universe_unstable_binary-i386_InRelease 0
|
|
'http://ftp.tlh.debian.org/universe/unstable/binary-i386/Packages.xz' ftp.tlh.debian.org_universe_unstable_binary-i386_Packages 0
|
|
'http://ftp.tlh.debian.org/universe/unstable/binary-i386/en.xz' ftp.tlh.debian.org_universe_unstable_binary-i386_en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test deb822' 'suite arch variable'
|
|
echo 'Types: deb
|
|
URIs: http://ftp.tlh.debian.org/universe
|
|
Suites: stable/binary-$(ARCH)/' > $SOURCES
|
|
testequal --nomsg "'http://ftp.tlh.debian.org/universe/stable/binary-i386/InRelease' ftp.tlh.debian.org_universe_stable_binary-i386_InRelease 0
|
|
'http://ftp.tlh.debian.org/universe/stable/binary-i386/Packages.xz' ftp.tlh.debian.org_universe_stable_binary-i386_Packages 0
|
|
'http://ftp.tlh.debian.org/universe/stable/binary-i386/en.xz' ftp.tlh.debian.org_universe_stable_binary-i386_en 0 " aptget update --print-uris
|
|
|
|
msgcleantest 'Test old-style sources.list file which has' 'malformed dist'
|
|
echo "deb http://ftp.debian.org" > $LISTS
|
|
testequal --nomsg "E: Malformed entry 1 in list file $TMPWORKINGDIRECTORY/$LISTS (Suite)
|
|
E: The list of sources could not be read." aptget update --print-uris
|
|
|
|
msgcleantest 'Test deb822 sources.list file which has' 'malformed URI'
|
|
echo "Types: deb
|
|
Suites: stable
|
|
" > $SOURCES
|
|
testequal --nomsg "E: Malformed entry 1 in sources file $TMPWORKINGDIRECTORY/$SOURCES (URI)
|
|
E: The list of sources could not be read." aptget update --print-uris
|
|
|
|
# with Enabled: false
|
|
echo "$BASE" > $SOURCES
|
|
echo "Enabled: no" >> $SOURCES
|
|
testempty aptget update --print-uris
|
|
|
|
# multiple URIs
|
|
msgcleantest 'Test deb822 sources.list file which has' 'Multiple URIs work'
|
|
echo "$BASE" | sed -e 's#http://ftp.debian.org/debian#http://ftp.debian.org/debian http://ftp.de.debian.org/debian#' > $SOURCES
|
|
testequal --nomsg "'http://ftp.de.debian.org/debian/dists/stable/InRelease' ftp.de.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.de.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.de.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.de.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.de.debian.org_debian_dists_stable_main_i18n_Translation-en 0
|
|
'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
# multiple Type in one field
|
|
msgcleantest 'Test deb822 sources.list file which has' 'Multiple Types work'
|
|
echo "$BASE" | sed -e 's#Types: deb#Types: deb deb-src#' > $SOURCES
|
|
testequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/source/Sources.xz' ftp.debian.org_debian_dists_stable_main_source_Sources 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0
|
|
'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 " aptget update --print-uris
|
|
|
|
# a Suite
|
|
msgcleantest 'Test deb822 sources.list file which has' 'an exact path and no sections'
|
|
cat > $SOURCES <<EOF
|
|
Types: deb
|
|
URIs: http://emacs.naquadah.org
|
|
Suites: stable/
|
|
EOF
|
|
testequal --nomsg "'http://emacs.naquadah.org/stable/InRelease' emacs.naquadah.org_stable_InRelease 0
|
|
'http://emacs.naquadah.org/stable/Packages.xz' emacs.naquadah.org_stable_Packages 0
|
|
'http://emacs.naquadah.org/stable/en.xz' emacs.naquadah.org_stable_en 0 " aptget update --print-uris
|
|
|