mirror of
https://github.com/aphrody-labs/apt.git
synced 2026-10-17 12:46:02 +00:00
Tagnames in configuration can include spaces (and other nasties) e.g. in repository-specific configuration options due to Origin/Label potentially containing a space. The configuration file format supports parsing quoted as well as encoded spaces, but the output generated by apt-config and other places which might be feedback into apt via parsing (e.g. before calling apt-key in our gpgv method) do not quote and hence produce invalid configuration files. Changing the default to be an encoded tagname ensures that the output of dump can be used as a config file, but other users might not expect this so that is technically a backward-breaking change.
51 lines
1.9 KiB
Bash
Executable File
51 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
TESTDIR="$(readlink -f "$(dirname "$0")")"
|
|
. "$TESTDIR/framework"
|
|
|
|
setupenvironment
|
|
configarchitecture 'amd64'
|
|
|
|
testsuccess aptconfig dump
|
|
testsuccessequal 'APT::Architecture "amd64";' aptconfig dump APT::Architecture
|
|
testempty aptconfig dump config::which::does::not::exist
|
|
|
|
testsuccessequal 'APT::Architectures "";
|
|
APT::Architectures:: "amd64";' aptconfig dump APT::Architectures
|
|
testsuccessequal 'APT::Architectures:: "amd64";' aptconfig dump --no-empty APT::Architectures
|
|
testsuccessequal 'amd64' aptconfig dump --no-empty --format='%v%n' APT::Architectures
|
|
|
|
testempty aptconfig shell
|
|
testfailureequal 'E: Arguments not in pairs' aptconfig shell APT::Architecture
|
|
testempty aptconfig shell APT::Architecture ARCH # incorrect order
|
|
testsuccessequal "ARCH='amd64'" aptconfig shell ARCH APT::Architecture
|
|
|
|
ROOTDIR="$(readlink -f rootdir)"
|
|
testsuccessequal "CONFIG='apt.conf'" aptconfig shell CONFIG Dir::Etc::main
|
|
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/apt.conf'" aptconfig shell CONFIG Dir::Etc::main/f
|
|
testsuccessequal "CONFIG='etc/apt'" aptconfig shell CONFIG Dir::Etc
|
|
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/ # old style
|
|
testsuccessequal "CONFIG='${ROOTDIR}/etc/apt/'" aptconfig shell CONFIG Dir::Etc/d
|
|
|
|
testempty aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles
|
|
export DEB_BUILD_PROFILES='nodoc stage1'
|
|
testsuccessequal 'nodoc
|
|
stage1' aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles
|
|
unset DEB_BUILD_PROFILES
|
|
testempty aptconfig dump --no-empty --format='%v%n' APT::Build-Profiles
|
|
|
|
cat > spaces.conf <<EOF
|
|
Spaces::Test::"Foo Bar" "1 1";
|
|
Spaces::Test2::" Bar Baz " "B B" {
|
|
A%20B "C C";
|
|
"B C" "A A";
|
|
};
|
|
EOF
|
|
testsuccessequal 'Spaces::Test "";
|
|
Spaces::Test::Foo%20Bar "1 1";
|
|
Spaces::Test2 "";
|
|
Spaces::Test2::%20Bar%20Baz%20 "B B";
|
|
Spaces::Test2::%20Bar%20Baz%20::A%20B "C C";
|
|
Spaces::Test2::%20Bar%20Baz%20::B%20C "A A";' aptconfig dump -c spaces.conf Spaces::Test Spaces::Test2
|