You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
3.8 KiB
106 lines
3.8 KiB
#!/bin/sh
|
|
set -e
|
|
|
|
TESTDIR=$(readlink -f $(dirname $0))
|
|
. $TESTDIR/framework
|
|
setupenvironment
|
|
configarchitecture 'amd64' 'i386'
|
|
|
|
aptconfig dump --no-empty --format '%v%n' APT::Never-MarkAuto-Sections > nevermarkauto.sections
|
|
testsuccess grep '^metapackages$' nevermarkauto.sections
|
|
|
|
# this is a very crude regression test, not a "this is how it should be" test:
|
|
# In theory mydesktop-core and texteditor should be marked as manual, but
|
|
# texteditor is installed as a dependency of bad-texteditor, not of
|
|
# mydesktop-core and mydesktop-core is removed while bad-texteditor is
|
|
# installed losing the manual bit as the problem resolver will later decide to
|
|
# drop bad-texteditor and re-instate mydesktop-core which is considered an
|
|
# auto-install at that point (in theory the never-auto handling should be
|
|
# copied to this place – as to the many other places dependencies are resolved
|
|
# 'by hand' instead of via MarkInstall AutoInst…
|
|
#
|
|
# Both could be fixed if apt would figure out early that installing
|
|
# bad-texteditor is a bad idea and eventually it should (as mydesktop-core is
|
|
# a direct descendant of mydesktop which was a user-request mydesktop-core should
|
|
# be as protected from removal as mydesktop is), but this is hard in the general case
|
|
# as with more or-groups and provides you can produce 'legal' examples for this.
|
|
|
|
buildsimplenativepackage 'mydesktop' 'all' '1' 'unstable' 'Depends: mydesktop-core, foreignpkg
|
|
Recommends: notavailable' '' 'metapackages'
|
|
buildsimplenativepackage 'mydesktop-core' 'amd64' '1' 'unstable' 'Depends: bad-texteditor | texteditor, browser (>= 42), nosection, foreignpkg
|
|
Recommends: notavailable
|
|
Multi-Arch: foreign' '' 'metapackages'
|
|
buildsimplenativepackage 'browser' 'amd64' '41' 'stable'
|
|
buildsimplenativepackage 'browser' 'amd64' '42' 'unstable'
|
|
buildsimplenativepackage 'texteditor' 'amd64' '1' 'stable'
|
|
buildsimplenativepackage 'bad-texteditor' 'amd64' '1' 'stable' 'Depends: texteditor
|
|
Conflicts: mydesktop-core'
|
|
buildsimplenativepackage 'nosection' 'amd64' '1' 'stable' '' '' '<none>'
|
|
buildsimplenativepackage 'foreignpkg' 'i386' '1' 'stable' 'Multi-Arch: foreign'
|
|
setupaptarchive
|
|
|
|
testsuccess aptcache show nosection
|
|
testfailure grep 'Section' rootdir/tmp/testsuccess.output
|
|
testequal 'dpkg' aptmark showmanual
|
|
|
|
testsuccess aptget install mydesktop -y -o Debug::pkgProblemResolver=1 -o Debug::pkgDepCache::Marker=1
|
|
|
|
testequal 'browser
|
|
dpkg
|
|
foreignpkg:i386
|
|
mydesktop
|
|
nosection' aptmark showmanual
|
|
testmarkedauto 'mydesktop-core' 'texteditor'
|
|
|
|
testequal 'Reading package lists...
|
|
Building dependency tree...
|
|
Reading state information...
|
|
The following packages will be REMOVED:
|
|
mydesktop mydesktop-core texteditor
|
|
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
|
|
Remv mydesktop [1]
|
|
Remv mydesktop-core [1]
|
|
Remv texteditor [1]' aptget autoremove mydesktop -s
|
|
|
|
testequal 'Reading package lists...
|
|
Building dependency tree...
|
|
Reading state information...
|
|
The following packages will be REMOVED:
|
|
mydesktop mydesktop-core texteditor
|
|
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
|
|
Remv mydesktop [1]
|
|
Remv mydesktop-core [1]
|
|
Remv texteditor [1]' aptget autoremove texteditor -s
|
|
testsuccess aptget autoremove texteditor -y
|
|
|
|
testdpkgnotinstalled mydesktop mydesktop-core texteditor
|
|
testdpkginstalled browser
|
|
|
|
testequal 'browser
|
|
dpkg
|
|
foreignpkg:i386
|
|
nosection' aptmark showmanual
|
|
testmarkedauto
|
|
|
|
# test that installed/upgraded auto-pkgs are not set to manual
|
|
|
|
testsuccess aptget install browser=41 -y --force-yes
|
|
|
|
testequal 'browser
|
|
dpkg
|
|
foreignpkg:i386
|
|
nosection' aptmark showmanual
|
|
testmarkedauto
|
|
testsuccess aptmark auto browser
|
|
testmarkedauto 'browser'
|
|
testsuccess aptmark auto nosection
|
|
testmarkedauto 'browser' 'nosection'
|
|
testequal 'dpkg
|
|
foreignpkg:i386' aptmark showmanual
|
|
|
|
testsuccess aptget install mydesktop -y
|
|
|
|
testequal 'dpkg
|
|
foreignpkg:i386
|
|
mydesktop' aptmark showmanual
|
|
testmarkedauto 'browser' 'nosection' 'mydesktop-core' 'texteditor'
|
|
|