diff options
author | David Kalnischkies <david@kalnischkies.de> | 2016-05-08 18:03:48 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2016-05-08 18:15:28 +0200 |
commit | 39c724b4848ef8d85c8c425f982dda85f0df1277 (patch) | |
tree | 613d716bad39d93e47c058e49db07e1af3087570 /test | |
parent | 7f2d1eef183dbebaaabe07a296d9a97e9cfd0f4a (diff) | |
download | apt-39c724b4848ef8d85c8c425f982dda85f0df1277.tar.gz |
implement Identifier field for IndexTargets
A frontend like apt-file is only interested in a specific set of files
and selects those easily via "Created-By". If it supports two locations
for those files through it would need to select both and a user would
need to know that implementation detail for sources.list configuration.
The "Identifier" field is hence introduced which by default has the same
value as "Created-By", but can be freely configured – especially it can
be used to give two indexes the same identifier.
Diffstat (limited to 'test')
3 files changed, 50 insertions, 40 deletions
diff --git a/test/integration/test-apt-acquire-additional-files b/test/integration/test-apt-acquire-additional-files index 0b81845af..ff04b6346 100755 --- a/test/integration/test-apt-acquire-additional-files +++ b/test/integration/test-apt-acquire-additional-files @@ -51,15 +51,15 @@ readfile() { done } -testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --no-release-info --format '$(FILENAME)' 'Created-By: Contents' -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --no-release-info --format '$(FILENAME)' 'Identifier: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' # lets fake the existence of a compressed Contents file touch "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" chmod 644 "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" -testequal "$(readfile Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64.gz)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' touch "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" chmod 644 "./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" -testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 @@ -72,7 +72,7 @@ testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost: # apt believes the Contents files we faked are good testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Reading package lists..." aptget update -testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' find rootdir/var/lib/apt/lists -name '*Contents*' -delete @@ -91,13 +91,13 @@ Reading package lists..." aptget update testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" find rootdir/var/lib/apt/lists -name '*Contents-all*' -testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64 Contents-all)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" 'aptarchive/dists/unstable/main/Contents-amd64' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" 'aptarchive/dists/unstable/main/Contents-all' rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 \ ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' # if we asked for keeping it compressed, keep it msgmsg "Normal Contents file with KeepCompressed" @@ -109,13 +109,13 @@ Reading package lists..." aptget update testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.$LOWCOSTEXT" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.$LOWCOSTEXT" find rootdir/var/lib/apt/lists -name '*Contents-all*' -testequal "$(readfile Contents-amd64.$LOWCOSTEXT Contents-all.$LOWCOSTEXT)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testequal "$(readfile Contents-amd64.$LOWCOSTEXT Contents-all.$LOWCOSTEXT)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testequal "$(apthelper cat-file rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.$LOWCOSTEXT)" apthelper cat-file 'aptarchive/dists/unstable/main/Contents-amd64.gz' testequal "$(apthelper cat-file rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.$LOWCOSTEXT)" apthelper cat-file 'aptarchive/dists/unstable/main/Contents-all.gz' rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.$LOWCOSTEXT rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.$LOWCOSTEXT -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' msgmsg "Compressed Contents file" # and no automatic uncompress based on the name please, @@ -145,7 +145,7 @@ Reading package lists..." aptget update testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" find rootdir/var/lib/apt/lists -name '*Contents-amd64*' testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" find rootdir/var/lib/apt/lists -name '*Contents-all*' - testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' + testequal "$(readfile Contents-amd64.gz Contents-all.gz)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz" 'aptarchive/dists/unstable/main/Contents-amd64.gz' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz" 'aptarchive/dists/unstable/main/Contents-all.gz' } @@ -155,19 +155,20 @@ msgmsg "Compressed Contents file from native architecture" echo 'Acquire::IndexTargets::deb::Contents::MetaKey "$(COMPONENT)/Contents-$(NATIVE_ARCHITECTURE).gz";' >> rootdir/etc/apt/apt.conf.d/content-target.conf rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' runthistest msgmsg "Contents with 3 MetaKeys, first match" rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64.gz rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all.gz -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' cat > rootdir/etc/apt/apt.conf.d/content-target.conf <<EOF Acquire::IndexTargets::deb::Contents3 { MetaKey "main/Contents-all"; ShortDescription "Contents3"; Description "\$(RELEASE) all Contents3"; Fallback-Of "Contents2"; + Identifier "Contents"; }; Acquire::IndexTargets::deb::Contents { MetaKey "\$(COMPONENT)/Contents-amd64"; @@ -179,6 +180,7 @@ Acquire::IndexTargets::deb::Contents2 { ShortDescription "Contents2"; Description "\$(RELEASE) all Contents2"; Fallback-Of "Contents"; + Identifier "Contents"; }; EOF testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 @@ -191,14 +193,12 @@ testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Get:2 http://localhost:${APTHTTPPORT} unstable/main amd64 Contents [$(stat -c%s aptarchive/dists/unstable/main/Contents-amd64.gz) B] Reading package lists..." aptget update testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" find rootdir/var/lib/apt/lists -name '*Contents*' -testequal "$(readfile Contents-amd64)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents2' -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents3' +testequal "$(readfile Contents-amd64)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64" 'aptarchive/dists/unstable/main/Contents-amd64' msgmsg "Contents with 3 MetaKeys, third match" rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-amd64 -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' +testempty aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' echo 'Acquire::IndexTargets::deb::Contents::MetaKey "$(COMPONENT)/Contents-i386";' >> rootdir/etc/apt/apt.conf.d/content-target.conf testequal "'http://localhost:${APTHTTPPORT}/dists/unstable/InRelease' localhost:${APTHTTPPORT}_dists_unstable_InRelease 0 'http://localhost:${APTHTTPPORT}/dists/unstable/main/source/Sources.xz' localhost:${APTHTTPPORT}_dists_unstable_main_source_Sources 0 @@ -210,9 +210,7 @@ testsuccessequal "Hit:1 http://localhost:${APTHTTPPORT} unstable InRelease Get:2 http://localhost:${APTHTTPPORT} unstable all Contents3 [$(stat -c%s aptarchive/dists/unstable/main/Contents-all.gz) B] Reading package lists..." aptget update testequal "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" find rootdir/var/lib/apt/lists -name '*Contents*' -testequal "$(readfile Contents-all)" aptget indextargets --format '$(FILENAME)' 'Created-By: Contents3' -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents' -testempty aptget indextargets --format '$(FILENAME)' 'Created-By: Contents2' +testequal "$(readfile Contents-all)" aptget indextargets --format '$(FILENAME)' 'Identifier: Contents' testsuccess cmp "rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all" 'aptarchive/dists/unstable/main/Contents-all' rm ./rootdir/var/lib/apt/lists/localhost:${APTHTTPPORT}_dists_unstable_main_Contents-all diff --git a/test/integration/test-sourceslist-lang-plusminus-options b/test/integration/test-sourceslist-lang-plusminus-options index 3f4ea953a..abdb64793 100755 --- a/test/integration/test-sourceslist-lang-plusminus-options +++ b/test/integration/test-sourceslist-lang-plusminus-options @@ -11,7 +11,7 @@ testlangs() { local LANGS="$2" shift 2 rm -f gotlangs.list - aptget indextargets --no-release-info 'Created-By: Translations' "$@" --format '$(LANGUAGE)' | sort -u > gotlangs.list + aptget indextargets --no-release-info 'Identifier: Translations' "$@" --format '$(LANGUAGE)' | sort -u > gotlangs.list if [ -z "$LANGS" ]; then echo -n | tr ',' '\n' | sort | checkdiff - gotlangs.list && msgpass || msgfail else @@ -45,7 +45,7 @@ testlangs 'lang=de_DE' 'de_DE' echo 'deb [lang=none] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testlangs 'lang=none' '' testequal 'amd64 -all' aptget indextargets --no-release-info 'Created-By: Packages' --format '$(ARCHITECTURE)' +all' aptget indextargets --no-release-info 'Identifier: Packages' --format '$(ARCHITECTURE)' echo 'deb [lang+=pt] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testlangs 'lang+=pt' 'en,de,de_DE,pt' diff --git a/test/integration/test-sourceslist-target-plusminus-options b/test/integration/test-sourceslist-target-plusminus-options index 8197f068d..e4ce8e282 100755 --- a/test/integration/test-sourceslist-target-plusminus-options +++ b/test/integration/test-sourceslist-target-plusminus-options @@ -27,10 +27,17 @@ Acquire::IndexTargets::deb::Contents { ShortDescription "Contents"; Description "\$(RELEASE)/\$(COMPONENT) \$(ARCHITECTURE) Contents"; }; +Acquire::IndexTargets::deb::Contents2 { + MetaKey "Contents-\$(ARCHITECTURE)"; + ShortDescription "Contents2"; + Description "\$(RELEASE) \$(ARCHITECTURE) Contents2"; + Fallback-Of "Contents"; + Identifier "Contents"; +}; EOF echo 'deb http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'default + Contents' 'Packages' 'Translations' 'Contents' +testtargets 'default + Contents' 'Packages' 'Translations' 'Contents' 'Contents2' echo 'deb [target=Packages] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testtargets 'force Packages target' 'Packages' @@ -42,38 +49,40 @@ echo 'deb [target=Translations,Contents] http://example.org/debian stable rocks' testtargets 'force two targets' 'Contents' 'Translations' echo 'deb [target+=Translations,Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'add existing' 'Packages' 'Contents' 'Translations' +testtargets 'add existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [target+=AppStream] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'add non-existing' 'Packages' 'Contents' 'Translations' +testtargets 'add non-existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [target-=Translations,Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'remove existing' 'Packages' +testtargets 'remove existing' 'Packages' 'Contents2' echo 'deb [target-=AppStream] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'remove non-existing' 'Packages' 'Contents' 'Translations' +testtargets 'remove non-existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [AppStream=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'activate non-existing' 'Packages' 'Contents' 'Translations' +testtargets 'activate non-existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [AppStream=no] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'deactivate non-existing' 'Packages' 'Contents' 'Translations' +testtargets 'deactivate non-existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [Contents=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'activate existing' 'Packages' 'Contents' 'Translations' +testtargets 'activate existing' 'Packages' 'Contents' 'Contents2' 'Translations' echo 'deb [Contents=no] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testtargets 'deactivate existing' 'Packages' 'Translations' echo 'deb [target=Packages Contents=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'explicit + activate' 'Packages' 'Contents' +testtargets 'explicit + activate' 'Packages' 'Contents' 'Contents2' +echo 'deb [Contents=yes,target+=Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list +testtargets 'duplications are okay' 'Packages' 'Translations' 'Contents' 'Contents2' -msgmsg 'Contents NOT as a default target' +msgmsg 'Contents NOT as a default target (but Contents2)' echo 'Acquire::IndexTargets::deb::Contents::DefaultEnabled "no";' > rootdir/etc/apt/apt.conf.d/content-target-notdefault.conf echo 'deb http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'default + Contents' 'Packages' 'Translations' +testtargets 'default + Contents' 'Packages' 'Translations' 'Contents2' echo 'deb [target=Packages] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testtargets 'force Packages target' 'Packages' @@ -85,28 +94,31 @@ echo 'deb [target=Translations,Contents] http://example.org/debian stable rocks' testtargets 'force two targets' 'Contents' 'Translations' echo 'deb [target+=Translations,Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'add existing' 'Packages' 'Contents' 'Translations' +testtargets 'add existing' 'Packages' 'Contents' 'Translations' 'Contents2' echo 'deb [target+=AppStream] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'add non-existing' 'Packages' 'Translations' +testtargets 'add non-existing' 'Packages' 'Translations' 'Contents2' echo 'deb [target-=Translations,Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'remove existing' 'Packages' +testtargets 'remove existing' 'Packages' 'Contents2' echo 'deb [target-=AppStream] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'remove non-existing' 'Packages' 'Translations' +testtargets 'remove non-existing' 'Packages' 'Translations' 'Contents2' echo 'deb [AppStream=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'activate non-existing' 'Packages' 'Translations' +testtargets 'activate non-existing' 'Packages' 'Translations' 'Contents2' echo 'deb [AppStream=no] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'deactivate non-existing' 'Packages' 'Translations' +testtargets 'deactivate non-existing' 'Packages' 'Translations' 'Contents2' echo 'deb [Contents=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'activate existing' 'Packages' 'Contents' 'Translations' +testtargets 'activate existing' 'Packages' 'Contents' 'Contents2' 'Translations' echo 'deb [Contents=no] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list testtargets 'deactivate existing' 'Packages' 'Translations' echo 'deb [target=Packages Contents=yes] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list -testtargets 'explicit + activate' 'Packages' 'Contents' +testtargets 'explicit + activate' 'Packages' 'Contents' 'Contents2' + +echo 'deb [Contents=yes,target+=Contents] http://example.org/debian stable rocks' > rootdir/etc/apt/sources.list +testtargets 'duplications are okay' 'Packages' 'Translations' 'Contents' 'Contents2' |