summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/edsp.cc4
-rwxr-xr-xtest/integration/test-external-dependency-solver-protocol37
2 files changed, 41 insertions, 0 deletions
diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc
index 196f9d307..88569d3c4 100644
--- a/apt-pkg/edsp.cc
+++ b/apt-pkg/edsp.cc
@@ -373,8 +373,12 @@ bool EDSP::WriteRequest(pkgDepCache &Cache, FileFd &output,
}
if (flags & Request::FORBID_NEW_INSTALL)
WriteOkay(Okay, output, "Forbid-New-Install: yes\n");
+ else if (flags & Request::FORBID_REMOVE)
+ WriteOkay(Okay, output, "Forbid-New-Install: no\n");
if (flags & Request::FORBID_REMOVE)
WriteOkay(Okay, output, "Forbid-Remove: yes\n");
+ else if (flags & Request::FORBID_NEW_INSTALL)
+ WriteOkay(Okay, output, "Forbid-Remove: no\n");
auto const solver = _config->Find("APT::Solver", "internal");
WriteOkay(Okay, output, "Solver: ", solver, "\n");
if (_config->FindB("APT::Solver::Strict-Pinning", true) == false)
diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol
index bc32886c5..cbfd7b739 100755
--- a/test/integration/test-external-dependency-solver-protocol
+++ b/test/integration/test-external-dependency-solver-protocol
@@ -136,6 +136,43 @@ testsuccess test -s "$APT_EDSP_DUMP_FILENAME"
testequal 'Install: awesomecoolstuff:i386' grep :i386 "$APT_EDSP_DUMP_FILENAME"
testfailure grep -e ':amd64' -e 'Architecture: any' "$APT_EDSP_DUMP_FILENAME"
+rm -f "$APT_EDSP_DUMP_FILENAME"
+testfailure apt upgrade --solver dump
+testsuccess test -s "$APT_EDSP_DUMP_FILENAME"
+testsuccessequal "Request: EDSP 0.5
+Architecture: amd64
+Architectures: amd64 i386
+Machine-ID: 912e43bd1c1d4ba481f9f8ccab25f9ee
+Upgrade-All: yes
+Upgrade: yes
+Forbid-New-Install: no
+Forbid-Remove: yes
+Solver: dump" awk '/^$/ {exit} {print}' "$APT_EDSP_DUMP_FILENAME"
+
+rm -f "$APT_EDSP_DUMP_FILENAME"
+testfailure aptget upgrade --solver dump
+testsuccess test -s "$APT_EDSP_DUMP_FILENAME"
+testsuccessequal "Request: EDSP 0.5
+Architecture: amd64
+Architectures: amd64 i386
+Machine-ID: 912e43bd1c1d4ba481f9f8ccab25f9ee
+Upgrade-All: yes
+Upgrade: yes
+Forbid-New-Install: yes
+Forbid-Remove: yes
+Solver: dump" awk '/^$/ {exit} {print}' "$APT_EDSP_DUMP_FILENAME"
+
+rm -f "$APT_EDSP_DUMP_FILENAME"
+testfailure aptget dist-upgrade --solver dump
+testsuccess test -s "$APT_EDSP_DUMP_FILENAME"
+testsuccessequal "Request: EDSP 0.5
+Architecture: amd64
+Architectures: amd64 i386
+Machine-ID: 912e43bd1c1d4ba481f9f8ccab25f9ee
+Upgrade-All: yes
+Dist-Upgrade: yes
+Solver: dump" awk '/^$/ {exit} {print}' "$APT_EDSP_DUMP_FILENAME"
+
testsuccess aptget dist-upgrade -s
testsuccess aptget dist-upgrade -s --solver apt