Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 32 additions & 12 deletions indra/llcommon/tests/llprocess_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,29 @@ std::string apr_strerror_helper(apr_status_t rv)
*****************************************************************************/

#define ensure_equals_(left, right) \
ensure_equals(STRINGIZE(#left << " != " << #right), (left), (right))
do { \
auto _left_val = (left); \
auto _right_val = (right); \
if (_left_val != _right_val) { \
std::string _msg = std::string(#left) + " != " + std::string(#right); \
tut::ensure_equals(_msg, _left_val, _right_val); \
} else { \
tut::ensure_equals("", _left_val, _right_val); \
} \
} while(0)

#define aprchk(expr) aprchk_(#expr, (expr))
static void aprchk_(const char* call, apr_status_t rv, apr_status_t expected=APR_SUCCESS)
{
tut::ensure_equals(STRINGIZE(call << " => " << rv << ": " << apr_strerror_helper
(rv)),
rv, expected);
if (rv != expected)
{
std::string msg = std::string(call) + " => " + std::to_string(rv) + ": " + apr_strerror_helper(rv);
tut::ensure_equals(msg, rv, expected);
}
else
{
tut::ensure_equals("", rv, expected);
}
}

/**
Expand All @@ -78,11 +93,14 @@ static std::string readfile(const std::string& pathname, const std::string& desc
std::string use_desc(desc);
if (use_desc.empty())
{
use_desc = STRINGIZE("in " << pathname);
use_desc = "in " + pathname;
}
std::ifstream inf(pathname.c_str());
std::string output;
tut::ensure(STRINGIZE("No output " << use_desc), bool(std::getline(inf, output)));
if (!std::getline(inf, output))
{
tut::ensure("No output " + use_desc, false);
}
std::string more;
while (std::getline(inf, more))
{
Expand All @@ -108,8 +126,8 @@ void waitfor(LLProcess& proc, int timeout=60)
{
yield();
}
tut::ensure(STRINGIZE("process took longer than " << timeout << " seconds to terminate"),
i < timeout);
std::string msg = "process took longer than " + std::to_string(timeout) + " seconds to terminate";
tut::ensure(msg, i < timeout);
}

void waitfor(LLProcess::handle h, const std::string& desc, int timeout=60)
Expand All @@ -119,8 +137,8 @@ void waitfor(LLProcess::handle h, const std::string& desc, int timeout=60)
{
yield();
}
tut::ensure(STRINGIZE("process took longer than " << timeout << " seconds to terminate"),
i < timeout);
std::string msg = "process took longer than " + std::to_string(timeout) + " seconds to terminate";
tut::ensure(msg, i < timeout);
}

/**
Expand Down Expand Up @@ -153,7 +171,8 @@ struct PythonProcessLauncher
try
{
mPy = LLProcess::create(mParams);
tut::ensure(STRINGIZE("Couldn't launch " << mDesc << " script"), bool(mPy));
std::string msg = "Couldn't launch " + mDesc + " script";
tut::ensure(msg, bool(mPy));
}
catch (const tut::failure&)
{
Expand Down Expand Up @@ -214,7 +233,8 @@ struct PythonProcessLauncher
mParams.args.add(out.getName());
run();
// assuming the script wrote to that file, read it
return readfile(out.getName(), STRINGIZE("from " << mDesc << " script"));
std::string desc = "from " + mDesc + " script";
return readfile(out.getName(), desc);
}

LLProcess::Params mParams;
Expand Down