diff options
| author | David Kalnischkies <david@kalnischkies.de> | 2023-01-28 22:17:44 +0100 |
|---|---|---|
| committer | David Kalnischkies <david@kalnischkies.de> | 2023-03-03 17:51:05 +0100 |
| commit | acbfdf0533602a05de066aa86d1f756b5fe0f4a3 (patch) | |
| tree | 508ceccdaff78234a7e8c3f5be93b0f6d0494a28 /test | |
| parent | edcdc251c527141bddb502e799d9a3911a73841b (diff) | |
Detect trimmed changelogs and pick online instead
We only check the start of these lines to avoid hard coding the exact
command and we pick 150 as maximum line length as the longest package
name on my system is apparently 75 characters long. We could choose
longer or shorter without much issue as over-length just means we
mishandle the rest of the line as a new line and it should be really
unlikely that a) lines are that long in this file and b) that such long
lines contain one of our trigger sequences – but even if, all we do is
start a download of an online file. Could be worse.
This auto-detection can be avoided by setting
Acquire::Changelogs::AlwaysOnline (or Origin specific sub options)
to "true" if you always want the changelog from an online source.
The reverse – setting it to "false" in the hope it would not get the
changelog from an online source – was not and is still not possible.
Closes: #1024457
Diffstat (limited to 'test')
| -rwxr-xr-x | test/integration/test-apt-get-changelog | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/test/integration/test-apt-get-changelog b/test/integration/test-apt-get-changelog index b216f6f9a..c0eecba8b 100755 --- a/test/integration/test-apt-get-changelog +++ b/test/integration/test-apt-get-changelog @@ -127,6 +127,13 @@ testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/a/awesome/awesome_4 testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/a/awesome/awesome_42/changelog' awesome.changelog" apt changelog awesome --print-uris -o Acquire::Changelogs::AlwaysOnline=false -o Acquire::Changelogs::AlwaysOnline::Origin::Ubuntu=true testsuccessequal "'copy://${TMPWORKINGDIRECTORY}/rootdir/usr/share/doc/awesome/changelog' awesome.changelog" apt changelog awesome --print-uris -o Acquire::Changelogs::AlwaysOnline=false -o Acquire::Changelogs::AlwaysOnline::Origin::Debian=true +printf '\n# Older entries have been removed from this changelog.' >> rootdir/usr/share/doc/awesome/changelog +testsuccessequal "'copy://${TMPWORKINGDIRECTORY}/rootdir/usr/share/doc/awesome/changelog' awesome.changelog" apt changelog awesome --print-uris -o Acquire::Changelogs::AlwaysOnline=false +printf '\n# To read the complete changelog use `apt changelog awesome`.' >> rootdir/usr/share/doc/awesome/changelog +testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/a/awesome/awesome_42/changelog' awesome.changelog" apt changelog awesome --print-uris -o Acquire::Changelogs::AlwaysOnline=false +printf '\n# No guarantees the trigger is the last line' >> rootdir/usr/share/doc/awesome/changelog +testsuccessequal "'http://localhost:${APTHTTPPORT}/pool/main/a/awesome/awesome_42/changelog' awesome.changelog" apt changelog awesome --print-uris -o Acquire::Changelogs::AlwaysOnline=false + testsuccess apt changelog awesome -d testfilestats 'awesome.changelog' '%U:%G:%a' '=' "${TEST_DEFAULT_USER}:${TEST_DEFAULT_GROUP}:644" head -n 3 awesome.changelog > awesome.change |
