allow formatted messages

This commit is contained in:
Konstantin Käfer
2014-07-11 16:25:20 -07:00
parent 2dc9133006
commit fbec72cd47
14 changed files with 133 additions and 92 deletions

View File

@@ -4,6 +4,10 @@
namespace llmr {
FixtureLogBackend::~FixtureLogBackend() {
std::cerr << unchecked();
}
size_t FixtureLogBackend::count(const LogMessage &message) const {
size_t count = 0;
for (const LogMessage &msg : messages) {

View File

@@ -36,12 +36,24 @@ public:
mutable bool checked = false;
};
inline ~FixtureLogBackend() = default;
~FixtureLogBackend();
void record(EventSeverity severity, Event event, const std::string &msg) {
messages.emplace_back(severity, event, msg);
}
void record(EventSeverity severity, Event event, const char* format, ...) {
va_list args;
va_start(args, format);
const int len = vsnprintf(NULL, 0, format, args);
va_end(args);
std::unique_ptr<char[]> buffer(new char[len + 1]);
va_start(args, format);
vsnprintf(buffer.get(), len + 1, format, args);
va_end(args);
messages.emplace_back(severity, event, std::string { buffer.get(), len });
}
void record(EventSeverity severity, Event event, int64_t code) {
messages.emplace_back(severity, event, code);
}

View File

@@ -54,7 +54,7 @@ platform::request_http(const std::string &url,
if (err < 0) {
req->res->code = err;
req->res->error_message = uv_strerror(err);
fprintf(stderr, "[WARNING] fixture request: %s\n", uv_strerror(err));
Log::Warning(Event::HttpRequest, err, url + ": " + uv_strerror(err));
req->complete();
return req;
}
@@ -72,7 +72,7 @@ platform::request_http(const std::string &url,
if (err < 0) {
req->res->code = err;
req->res->error_message = uv_strerror(err);
fprintf(stderr, "[WARNING] fixture request: %s\n", uv_strerror(err));
Log::Warning(Event::HttpRequest, err, url + ": " + uv_strerror(err));
req->complete();
return req;
}
@@ -84,14 +84,13 @@ platform::request_http(const std::string &url,
if (err < 0) {
req->res->code = err;
req->res->error_message = uv_strerror(err);
fprintf(stderr, "[WARNING] fixture request: %s\n", uv_strerror(err));
Log::Warning(Event::HttpRequest, err, url + ": " + uv_strerror(err));
req->complete();
return req;
}
req->res->body.swap(body);
req->res->code = 200;
// fprintf(stderr, "[INFO] fixture request completed: %s\n", clean_url.c_str());
Log::Info(Event::HttpRequest, 200, url);
req->complete();

View File

@@ -35,6 +35,8 @@ TEST_P(HeadlessTest, render) {
ASSERT_EQ(false, doc.HasParseError());
ASSERT_EQ(true, doc.IsObject());
Log::Set<FixtureLogBackend>();
// Setup OpenGL
HeadlessView view;
Map map(view);