]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | set -e | |
3 | ||
4 | TESTDIR="$(readlink -f "$(dirname "$0")")" | |
5 | . "$TESTDIR/framework" | |
6 | ||
7 | setupenvironment | |
8 | configarchitecture 'i386' | |
9 | ||
10 | LISTS='rootdir/etc/apt/sources.list.d/test.list' | |
11 | ABSLISTS="$(readlink -f $LISTS)" | |
12 | SOURCES='rootdir/etc/apt/sources.list.d/test.sources' | |
13 | BASE='# some comment | |
14 | # that contains a : as well | |
15 | #Types: meep | |
16 | ||
17 | Types: deb | |
18 | #Types: deb-src | |
19 | URIs: http://ftp.debian.org/debian | |
20 | Suites: stable | |
21 | Components: main | |
22 | Description: summay | |
23 | # comments are ignored | |
24 | and the long part' | |
25 | ||
26 | msgcleantest() { | |
27 | rm -f $LISTS $SOURCES | |
28 | msgtest "$@" | |
29 | } | |
30 | ||
31 | msgcleantest 'Test sources.list' 'old style' | |
32 | echo "deb http://ftp.debian.org/debian stable main" > $LISTS | |
33 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
34 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
35 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
36 | '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 | |
37 | ||
38 | msgcleantest 'Test sources.list' 'old style with tabs' | |
39 | echo "deb http://ftp.debian.org/debian stable main" > $LISTS | |
40 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
41 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
42 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
43 | '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 | |
44 | ||
45 | msgcleantest 'Test sources.list' 'old style with forgotten end for options' | |
46 | echo "deb [trusted=yes arch+=armel,powerpc http://ftp.debian.org/debian stable main" > $LISTS | |
47 | testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] not assignment) | |
48 | E: The list of sources could not be read." aptget update --print-uris | |
49 | ||
50 | msgcleantest 'Test sources.list' 'old style with stray ] instead of options' | |
51 | echo "deb ] http://ftp.debian.org/debian stable main" > $LISTS | |
52 | testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS (URI parse) | |
53 | E: The list of sources could not be read." aptget update --print-uris | |
54 | ||
55 | msgcleantest 'Test sources.list' 'old style options no key' | |
56 | echo "deb [=test] http://ftp.debian.org/debian stable main" > $LISTS | |
57 | testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] no key) | |
58 | E: The list of sources could not be read." aptget update --print-uris | |
59 | ||
60 | msgcleantest 'Test sources.list' 'old style options no value' | |
61 | echo "deb [test=] http://ftp.debian.org/debian stable main" > $LISTS | |
62 | testfailureequal --nomsg "E: Malformed entry 1 in list file $ABSLISTS ([option] no value) | |
63 | E: The list of sources could not be read." aptget update --print-uris | |
64 | ||
65 | msgcleantest 'Test sources.list' 'old style with options' | |
66 | echo "deb [trusted=yes arch+=armel,powerpc] http://ftp.debian.org/debian stable main" > $LISTS | |
67 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
68 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
69 | 'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0 | |
70 | 'http://ftp.debian.org/debian/dists/stable/main/binary-powerpc/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-powerpc_Packages 0 | |
71 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
72 | '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 | |
73 | ||
74 | msgcleantest 'Test sources.list' 'old style with comments' | |
75 | echo "deb http://ftp.debian.org/debian stable main # non-free" > $LISTS | |
76 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
77 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
78 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
79 | '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 | |
80 | ||
81 | msgcleantest 'Test sources.list' 'old style with option comments' | |
82 | echo "deb [trusted=yes#yeahreally] http://ftp.debian.org/debian stable main # non-free" > $LISTS | |
83 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
84 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
85 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
86 | '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 | |
87 | ||
88 | msgcleantest 'Test sources.list' 'simple deb822' | |
89 | echo "$BASE" > $SOURCES | |
90 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
91 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
92 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
93 | '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 | |
94 | ||
95 | msgcleantest 'Test deb822 with' 'two entries' | |
96 | # Two entries | |
97 | echo "$BASE" > $SOURCES | |
98 | echo "" >> $SOURCES | |
99 | echo "$BASE" | sed s/stable/unstable/ >> $SOURCES | |
100 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
101 | 'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0 | |
102 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
103 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
104 | 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 | |
105 | 'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0 | |
106 | 'http://ftp.debian.org/debian/dists/unstable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-all_Packages 0 | |
107 | '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 | |
108 | ||
109 | # two suite entries | |
110 | msgcleantest 'Test deb822 with' 'two Suite entries' | |
111 | echo "$BASE" | sed -e "s/stable/stable unstable/" > $SOURCES | |
112 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
113 | 'http://ftp.debian.org/debian/dists/unstable/InRelease' ftp.debian.org_debian_dists_unstable_InRelease 0 | |
114 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
115 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
116 | 'http://ftp.debian.org/debian/dists/stable/main/i18n/Translation-en.xz' ftp.debian.org_debian_dists_stable_main_i18n_Translation-en 0 | |
117 | 'http://ftp.debian.org/debian/dists/unstable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-i386_Packages 0 | |
118 | 'http://ftp.debian.org/debian/dists/unstable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_unstable_main_binary-all_Packages 0 | |
119 | '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 | |
120 | ||
121 | msgcleantest 'Test deb822' 'architecture option' | |
122 | echo "$BASE" > $SOURCES | |
123 | echo "Architectures: amd64 armel" >> $SOURCES | |
124 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
125 | 'http://ftp.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-amd64_Packages 0 | |
126 | 'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0 | |
127 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
128 | '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 | |
129 | ||
130 | msgcleantest 'Test old-style' 'suite arch variable' | |
131 | echo 'deb http://ftp.tlh.debian.org/universe unstable/binary-$(ARCH)/' > $LISTS | |
132 | testsuccessequal --nomsg "'http://ftp.tlh.debian.org/universe/unstable/binary-i386/InRelease' ftp.tlh.debian.org_universe_unstable_binary-i386_InRelease 0 | |
133 | 'http://ftp.tlh.debian.org/universe/unstable/binary-i386/Packages.xz' ftp.tlh.debian.org_universe_unstable_binary-i386_Packages 0 | |
134 | '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 | |
135 | ||
136 | msgcleantest 'Test deb822' 'suite arch variable' | |
137 | echo 'Types: deb | |
138 | URIs: http://ftp.tlh.debian.org/universe | |
139 | Suites: stable/binary-$(ARCH)/' > $SOURCES | |
140 | testsuccessequal --nomsg "'http://ftp.tlh.debian.org/universe/stable/binary-i386/InRelease' ftp.tlh.debian.org_universe_stable_binary-i386_InRelease 0 | |
141 | 'http://ftp.tlh.debian.org/universe/stable/binary-i386/Packages.xz' ftp.tlh.debian.org_universe_stable_binary-i386_Packages 0 | |
142 | '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 | |
143 | ||
144 | msgcleantest 'Test old-style sources.list file which has' 'malformed dist' | |
145 | echo "deb http://ftp.debian.org" > $LISTS | |
146 | testfailureequal --nomsg "E: Malformed entry 1 in list file $TMPWORKINGDIRECTORY/$LISTS (Suite) | |
147 | E: The list of sources could not be read." aptget update --print-uris | |
148 | ||
149 | msgcleantest 'Test deb822 sources.list file which has' 'malformed URI' | |
150 | echo "Types: deb | |
151 | Suites: stable | |
152 | " > $SOURCES | |
153 | testfailureequal --nomsg "E: Malformed entry 1 in sources file $TMPWORKINGDIRECTORY/$SOURCES (URI) | |
154 | E: The list of sources could not be read." aptget update --print-uris | |
155 | ||
156 | # with Enabled: false | |
157 | echo "$BASE" > $SOURCES | |
158 | echo "Enabled: no" >> $SOURCES | |
159 | testempty aptget update --print-uris | |
160 | ||
161 | # multiple URIs | |
162 | msgcleantest 'Test deb822 sources.list file which has' 'Multiple URIs work' | |
163 | echo "$BASE" | sed -e 's#http://ftp.debian.org/debian#http://ftp.debian.org/debian http://ftp.de.debian.org/debian#' > $SOURCES | |
164 | testsuccessequal --nomsg "'http://ftp.de.debian.org/debian/dists/stable/InRelease' ftp.de.debian.org_debian_dists_stable_InRelease 0 | |
165 | '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 | |
166 | 'http://ftp.de.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.de.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
167 | '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 | |
168 | 'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
169 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
170 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
171 | '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 | |
172 | ||
173 | # multiple Type in one field | |
174 | msgcleantest 'Test deb822 sources.list file which has' 'Multiple Types work' | |
175 | echo "$BASE" | sed -e 's#Types: deb#Types: deb deb-src#' > $SOURCES | |
176 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
177 | 'http://ftp.debian.org/debian/dists/stable/main/source/Sources.xz' ftp.debian.org_debian_dists_stable_main_source_Sources 0 | |
178 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
179 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 | |
180 | '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 | |
181 | ||
182 | # a Suite | |
183 | msgcleantest 'Test deb822 sources.list file which has' 'an exact path and no sections' | |
184 | cat > $SOURCES <<EOF | |
185 | Types: deb | |
186 | URIs: http://emacs.naquadah.org | |
187 | Suites: stable/ | |
188 | EOF | |
189 | testsuccessequal --nomsg "'http://emacs.naquadah.org/stable/InRelease' emacs.naquadah.org_stable_InRelease 0 | |
190 | 'http://emacs.naquadah.org/stable/Packages.xz' emacs.naquadah.org_stable_Packages 0 | |
191 | 'http://emacs.naquadah.org/stable/en.xz' emacs.naquadah.org_stable_en 0 " aptget update --print-uris | |
192 | ||
193 | # multivalue -Add/-Remove | |
194 | msgcleantest 'Test deb822 sources.list file which has' '-Add/-Remove multivalues' | |
195 | echo "$BASE" > $SOURCES | |
196 | echo "Languages-Remove: en" >> $SOURCES | |
197 | echo "Architectures-Add: armel" >> $SOURCES | |
198 | testsuccessequal --nomsg "'http://ftp.debian.org/debian/dists/stable/InRelease' ftp.debian.org_debian_dists_stable_InRelease 0 | |
199 | 'http://ftp.debian.org/debian/dists/stable/main/binary-i386/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-i386_Packages 0 | |
200 | 'http://ftp.debian.org/debian/dists/stable/main/binary-armel/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-armel_Packages 0 | |
201 | 'http://ftp.debian.org/debian/dists/stable/main/binary-all/Packages.xz' ftp.debian.org_debian_dists_stable_main_binary-all_Packages 0 " aptget update --print-uris |