summaryrefslogtreecommitdiff
path: root/indra/llcommon
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llcommon')
-rw-r--r--indra/llcommon/tests/llprocess_test.cpp6
-rw-r--r--indra/llcommon/tests/wrapllerrs.h19
2 files changed, 16 insertions, 9 deletions
diff --git a/indra/llcommon/tests/llprocess_test.cpp b/indra/llcommon/tests/llprocess_test.cpp
index c07a9d3925..6103764f24 100644
--- a/indra/llcommon/tests/llprocess_test.cpp
+++ b/indra/llcommon/tests/llprocess_test.cpp
@@ -788,7 +788,6 @@ namespace tut
py.mPy = LLProcess::create(py.mParams);
ensure("should have rejected 'bogus'", ! py.mPy);
std::string message(recorder.messageWith("bogus"));
- ensure("did not log 'bogus' type", ! message.empty());
ensure_contains("did not name 'stdin'", message, "stdin");
}
@@ -820,7 +819,6 @@ namespace tut
py.mPy = LLProcess::create(py.mParams);
ensure("should have rejected 'tpipe'", ! py.mPy);
std::string message(recorder.messageWith("tpipe"));
- ensure("did not log 'tpipe' type", ! message.empty());
ensure_contains("did not name 'stdout'", message, "stdout");
}
@@ -839,7 +837,6 @@ namespace tut
py.mPy = LLProcess::create(py.mParams);
ensure("should have rejected 'npipe'", ! py.mPy);
std::string message(recorder.messageWith("npipe"));
- ensure("did not log 'npipe' type", ! message.empty());
ensure_contains("did not name 'stderr'", message, "stderr");
}
@@ -856,7 +853,6 @@ namespace tut
ensure_equals("Status.mState", py.mPy->getStatus().mState, LLProcess::EXITED);
ensure_equals("Status.mData", py.mPy->getStatus().mData, 7);
std::string message(recorder.messageWith("not yet supported"));
- ensure("did not log pipe name warning", ! message.empty());
ensure_contains("log message did not mention internal pipe name",
message, "somename");
}
@@ -905,7 +901,7 @@ namespace tut
{ \
CaptureLog recorder; \
ensure(#CODE " succeeded", ! (CODE)); \
- ensure("wrong log message", ! recorder.messageWith(EXPECT).empty()); \
+ recorder.messageWith(EXPECT); \
} while (0)
template<> template<>
diff --git a/indra/llcommon/tests/wrapllerrs.h b/indra/llcommon/tests/wrapllerrs.h
index a61f8451b3..28ffbf517f 100644
--- a/indra/llcommon/tests/wrapllerrs.h
+++ b/indra/llcommon/tests/wrapllerrs.h
@@ -29,11 +29,13 @@
#if ! defined(LL_WRAPLLERRS_H)
#define LL_WRAPLLERRS_H
+#include <tut/tut.hpp>
#include "llerrorcontrol.h"
#include <boost/bind.hpp>
#include <list>
#include <string>
#include <stdexcept>
+#include <sstream>
// statically reference the function in test.cpp... it's short, we could
// replicate, but better to reuse
@@ -117,17 +119,26 @@ public:
/// Don't assume the message we want is necessarily the LAST log message
/// emitted by the underlying code; search backwards through all messages
/// for the sought string.
- std::string messageWith(const std::string& search)
+ std::string messageWith(const std::string& search, bool required=true)
{
- for (std::list<std::string>::const_reverse_iterator rmi(mMessages.rbegin()),
- rmend(mMessages.rend());
+ for (MessageList::const_reverse_iterator rmi(mMessages.rbegin()), rmend(mMessages.rend());
rmi != rmend; ++rmi)
{
if (rmi->find(search) != std::string::npos)
return *rmi;
}
// failed to find any such message
- return std::string();
+ if (! required)
+ return std::string();
+
+ std::ostringstream out;
+ out << "failed to find '" << search << "' in captured log messages:";
+ for (MessageList::const_iterator mi(mMessages.begin()), mend(mMessages.end());
+ mi != mend; ++mi)
+ {
+ out << '\n' << *mi;
+ }
+ throw tut::failure(out.str());
}
typedef std::list<std::string> MessageList;