diff options
| -rw-r--r-- | apt-pkg/depcache.cc | 2 | ||||
| -rwxr-xr-x | test/integration/test-bug-992993-marked-cycles | 30 |
2 files changed, 31 insertions, 1 deletions
diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 76e8f5357..7c14d0e05 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -2240,7 +2240,7 @@ static bool MarkPackage(pkgCache::PkgIterator const &Pkg, std::unique_ptr<APT::CacheFilter::Matcher> &IsAVersionedKernelPackage, std::unique_ptr<APT::CacheFilter::Matcher> &IsProtectedKernelPackage) { - if (Ver.end() || (fullyExplored[Pkg->ID] && PkgState[Pkg->ID].Marked)) + if (Ver.end() || PkgState[Pkg->ID].Marked) return true; if (IsPkgInBoringState(Pkg, PkgState)) diff --git a/test/integration/test-bug-992993-marked-cycles b/test/integration/test-bug-992993-marked-cycles new file mode 100755 index 000000000..a569040cf --- /dev/null +++ b/test/integration/test-bug-992993-marked-cycles @@ -0,0 +1,30 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'amd64' + +insertinstalledpackage 'librust-nom-4-dev' 'all' '4.2.3-3' 'Provides: librust-nom-dev (= 4.2.3-3)' +insertinstalledpackage 'librust-nom-dev' 'all' '5.0.1-4' 'Depends: librust-nom+default-dev (= 5.0.1-4)' +insertinstalledpackage 'librust-nom+default-dev ' 'all' '5.0.1-4' 'Depends: librust-nom-dev (= 5.0.1-4)' +insertinstalledpackage 'librust-nom-4+std-dev' 'all' '4.2.3-3' 'Provides: librust-nom+default-dev (= 4.2.3-3)' + +insertinstalledpackage 'foo' 'all' '1' 'Depends: librust-nom-4-dev, librust-nom-dev, librust-nom-4+std-dev' + +for AUTO in '' 'librust-nom-4-dev' 'librust*' 'foo' '.*'; do + msgmsg 'Running test with these packages marked auto:' "$AUTO" + testsuccess aptmark manual '.*' + if [ -n "$AUTO" ]; then + testsuccess aptmark auto "$AUTO" + fi + + testsuccess aptget check + testsuccess aptget autoremove -s + + testsuccess aptget upgrade + testsuccess aptget full-upgrade + + testsuccess apt show foo +done |
