1
0
Fork 0
apt/test/integration/test-snapshot-upgrades
Daniel Baumann 6810ba718b
Adding upstream version 3.0.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-20 21:10:43 +02:00

156 lines
5 KiB
Bash
Executable file

#!/bin/sh
set -e
TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'
for T in T1 T2; do
mkdir "aptarchive/${T}"
ln -s ../../incoming "aptarchive/${T}/pool"
done
buildsimplenativepackage 'awesome' 'amd64' '2' 'stable' 'Depends: libfoo (>= 2)'
buildsimplenativepackage 'libfoo' 'amd64' '2' 'stable'
setupaptarchive --no-update
mv aptarchive/dists aptarchive/T1
rm incoming/stable.main.pkglist incoming/stable.main.srclist
buildsimplenativepackage 'awesome' 'amd64' '3' 'stable' 'Depends: libfoo (>= 2)'
setupaptarchive --no-update
mv aptarchive/dists aptarchive/T2
rm incoming/stable.main.pkglist incoming/stable.main.srclist
buildsimplenativepackage 'libfoo' 'amd64' '42' 'stable'
buildsimplenativepackage 'awesome' 'amd64' '42' 'stable'
setupaptarchive --no-update
changetowebserver
sed -i 's/http:/[snapshot=enable] http:/' rootdir/etc/apt/sources.list.d/*
echo "Acquire::Snapshots::URI::Host::localhost \"http://localhost:${APTHTTPPORT}/@SNAPSHOTID@/\";" > rootdir/etc/apt/apt.conf.d/snapshot.conf
testsuccess aptget update --snapshot T1
testsuccess aptget update --snapshot T2 --no-list-cleanup
insertinstalledpackage 'awesome' 'amd64' '1' 'Depends: libfoo (>= 1)'
insertinstalledpackage 'libfoo' 'amd64' '1'
msgmsg 'Snapshotting policy'
testsuccessequal "libfoo:
Installed: 1
Candidate: 42
Version table:
42 500
500 http://localhost:${APTHTTPPORT} stable/main amd64 Packages
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status
awesome:
Installed: 1
Candidate: 42
Version table:
42 500
500 http://localhost:${APTHTTPPORT} stable/main amd64 Packages
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status" apt policy libfoo awesome
testsuccessequal "libfoo:
Installed: 1
Candidate: 2
Version table:
2 500
500 http://localhost:${APTHTTPPORT}/T1 stable/main amd64 Packages
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status
awesome:
Installed: 1
Candidate: 2
Version table:
2 500
500 http://localhost:${APTHTTPPORT}/T1 stable/main amd64 Packages
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status" apt policy libfoo awesome -S T1
testsuccessequal "libfoo:
Installed: 1
Candidate: 1
Version table:
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status
awesome:
Installed: 1
Candidate: 3
Version table:
3 500
500 http://localhost:${APTHTTPPORT}/T2 stable/main amd64 Packages
*** 1 100
100 ${TMPWORKINGDIRECTORY}/rootdir/var/lib/dpkg/status" apt policy libfoo awesome -S T2
msgmsg 'Snapshotting show'
testsuccessequalgrep() {
local CMP="$1"
local GREP="$2"
shift 2
testsuccess "$@"
mv rootdir/tmp/testsuccess.output base.output
testsuccessequal "$CMP" grep "$GREP" base.output
}
testsuccessequalgrep 'Version: 42
Version: 1
Version: 42
Version: 1' '^Version: ' aptcache show libfoo awesome
testsuccessequalgrep 'Version: 2
Version: 1
Version: 2
Version: 1' '^Version: ' aptcache show libfoo awesome -S T1
testsuccessequalgrep 'Version: 1
Version: 3
Version: 1' '^Version: ' aptcache show libfoo awesome -S T2
msgmsg 'Snapshotting list'
testsuccessequal 'Listing...
awesome/stable 42 amd64 [upgradable from: 1]
libfoo/stable 42 amd64 [upgradable from: 1]' apt list --upgradeable
testsuccessequal 'Listing...
awesome/stable 2 amd64 [upgradable from: 1]
libfoo/stable 2 amd64 [upgradable from: 1]' apt list --upgradeable -S T1
testsuccessequal "Listing...
awesome/stable 3 amd64 [upgradable from: 1]
N: There is 1 additional version. Please use the '-a' switch to see it" apt list --upgradeable -S T2
msgmsg 'Snapshotting upgrade'
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be upgraded:
awesome libfoo
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst awesome [1] (42 stable [amd64])
Inst libfoo [1] (42 stable [amd64])
Conf awesome (42 stable [amd64])
Conf libfoo (42 stable [amd64])' apt upgrade -s
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages will be upgraded:
awesome libfoo
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst libfoo [1] (2 stable [amd64])
Inst awesome [1] (2 stable [amd64])
Conf libfoo (2 stable [amd64])
Conf awesome (2 stable [amd64])' apt upgrade -s -S T1
testsuccessequal 'Reading package lists...
Building dependency tree...
Calculating upgrade...
The following packages have been kept back:
awesome
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.' apt upgrade -s -S T2
msgmsg 'Snapshotting real installs'
testsuccessequalgrep 'Version: 1' '^Version: ' apt show libfoo/now
testsuccess apt install libfoo -S T1 -y
testsuccessequalgrep 'Version: 2' '^Version: ' apt show libfoo/now
testsuccessequalgrep 'Version: 1' '^Version: ' apt show awesome/now
testsuccess apt upgrade -S T2 -y
testsuccessequalgrep 'Version: 3' '^Version: ' apt show awesome/now