summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2015-12-10 09:48:21 +0100
committerJulian Andres Klode <jak@debian.org>2015-12-10 10:02:21 +0100
commit2fcd25a9e26093b8d1228107b5b0019675984114 (patch)
treed5033e8cea28e8461d9f7ce522cb5764f08a2979
parentb3c63712e4e54e3743c302416528423def4eefbb (diff)
Do not swap required and important in pkgCache::Priority()
required and important were swapped, leading to wrong output. Closes: #807523 Thanks: Manuel A. Fernandez Montecelo for discovering this
-rw-r--r--apt-pkg/orderlist.cc2
-rw-r--r--apt-pkg/pkgcache.cc2
-rw-r--r--test/libapt/priority_test.cc16
3 files changed, 18 insertions, 2 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc
index a61c2b06a..bfdc50e6c 100644
--- a/apt-pkg/orderlist.cc
+++ b/apt-pkg/orderlist.cc
@@ -328,7 +328,7 @@ int pkgOrderList::Score(PkgIterator Pkg)
break;
}
- // Important Required Standard Optional Extra
+ // Required Important Standard Optional Extra
if (Cache[Pkg].InstVerIter(Cache)->Priority <= 5)
{
signed short PrioMap[] = {0,5,4,3,1,0};
diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc
index 0750a2080..2196da03c 100644
--- a/apt-pkg/pkgcache.cc
+++ b/apt-pkg/pkgcache.cc
@@ -309,7 +309,7 @@ const char *pkgCache::DepType(unsigned char Type)
/* */
const char *pkgCache::Priority(unsigned char Prio)
{
- const char *Mapping[] = {0,_("important"),_("required"),_("standard"),
+ const char *Mapping[] = {0,_("required"),_("important"),_("standard"),
_("optional"),_("extra")};
if (Prio < _count(Mapping))
return Mapping[Prio];
diff --git a/test/libapt/priority_test.cc b/test/libapt/priority_test.cc
new file mode 100644
index 000000000..ef1941ce5
--- /dev/null
+++ b/test/libapt/priority_test.cc
@@ -0,0 +1,16 @@
+#include <config.h>
+#include <apt-pkg/pkgcache.h>
+#include <string>
+#include <gtest/gtest.h>
+
+using std::string;
+
+// Tests for Bug#807523
+TEST(PriorityTest, PriorityPrinting)
+{
+ EXPECT_EQ("required", string(pkgCache::Priority(pkgCache::State::Required)));
+ EXPECT_EQ("important", string(pkgCache::Priority(pkgCache::State::Important)));
+ EXPECT_EQ("standard", string(pkgCache::Priority(pkgCache::State::Standard)));
+ EXPECT_EQ("optional", string(pkgCache::Priority(pkgCache::State::Optional)));
+ EXPECT_EQ("extra", string(pkgCache::Priority(pkgCache::State::Extra)));
+}