summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/edsp.cc8
-rwxr-xr-xtest/integration/test-external-dependency-solver-protocol11
2 files changed, 16 insertions, 3 deletions
diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc
index b80b9a456..a2520441b 100644
--- a/apt-pkg/edsp.cc
+++ b/apt-pkg/edsp.cc
@@ -931,14 +931,18 @@ bool EDSP::WriteProgress(unsigned short const percent, const char* const message
}
/*}}}*/
// EDSP::WriteError - format an error message to be send to file descriptor /*{{{*/
+static std::string formatMessage(std::string const &msg)
+{
+ return SubstVar(SubstVar(APT::String::Strip(msg), "\n\n", "\n.\n"), "\n", "\n ");
+}
bool EDSP::WriteError(char const * const uuid, std::string const &message, FILE* output) {
fprintf(output, "Error: %s\n", uuid);
- fprintf(output, "Message: %s\n\n", SubstVar(SubstVar(message, "\n\n", "\n.\n"), "\n", "\n ").c_str());
+ fprintf(output, "Message: %s\n\n", formatMessage(message).c_str());
return true;
}
bool EDSP::WriteError(char const * const uuid, std::string const &message, FileFd &output) {
return WriteOkay(output, "Error: ", uuid, "\n",
- "Message: ", SubstVar(SubstVar(message, "\n\n", "\n.\n"), "\n", "\n "),
+ "Message: ", formatMessage(message),
"\n\n");
}
/*}}}*/
diff --git a/test/integration/test-external-dependency-solver-protocol b/test/integration/test-external-dependency-solver-protocol
index d126cd84b..2c451d5f9 100755
--- a/test/integration/test-external-dependency-solver-protocol
+++ b/test/integration/test-external-dependency-solver-protocol
@@ -148,7 +148,16 @@ testsuccess aptget upgrade -s --solver apt
testfailure aptget install awesome badstuff -s
testfailure aptget install awesome badstuff -s --solver apt
testsuccess grep 'ERR_UNSOLVABLE' rootdir/tmp/testfailure.output
-
+msgtest 'A resolving error is format as' 'valid parseable EDSP error'
+if dpkg-checkbuilddeps -d 'dctrl-tools' /dev/null >/dev/null 2>&1; then
+ if apthelper cat-file rootdir/var/log/apt/edsp.last.xz | aptinternalsolver > solver.result 2>&1; then
+ testsuccess --nomsg grep-dctrl -FError ERR -- solver.result
+ else
+ msgfail
+ fi
+else
+ msgskip 'dctrl-tools not installed'
+fi
configarchitecture 'armel'
testfailure aptget install --solver apt awesomecoolstuff:i386 -s
msgtest 'An invalid EDSP file generates a' 'hard error'