| Index: dm/DMJsonWriter.cpp
|
| diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp
|
| index f86264715bcd65367eb9c1430e798fa33f495a1a..a2de38bb31033ba39d58dbe1f36156870b72260c 100644
|
| --- a/dm/DMJsonWriter.cpp
|
| +++ b/dm/DMJsonWriter.cpp
|
| @@ -24,6 +24,14 @@ void JsonWriter::AddBitmapResult(const BitmapResult& result) {
|
| gBitmapResults.push_back(result);
|
| }
|
|
|
| +SkTArray<skiatest::Failure> gFailures;
|
| +SK_DECLARE_STATIC_MUTEX(gFailureLock);
|
| +
|
| +void JsonWriter::AddTestFailure(const skiatest::Failure& failure) {
|
| + SkAutoMutexAcquire lock(gFailureLock);
|
| + gFailures.push_back(failure);
|
| +}
|
| +
|
| void JsonWriter::DumpJson() {
|
| if (FLAGS_writePath.isEmpty()) {
|
| return;
|
| @@ -52,6 +60,19 @@ void JsonWriter::DumpJson() {
|
| }
|
| }
|
|
|
| + {
|
| + SkAutoMutexAcquire lock(gFailureLock);
|
| + for (int i = 0; i < gFailures.count(); i++) {
|
| + Json::Value result;
|
| + result["file_name"] = gFailures[i].fileName;
|
| + result["line_no"] = gFailures[i].lineNo;
|
| + result["condition"] = gFailures[i].condition;
|
| + result["message"] = gFailures[i].message.c_str();
|
| +
|
| + root["test_results"]["failures"].append(result);
|
| + }
|
| + }
|
| +
|
| SkString path = SkOSPath::Join(FLAGS_writePath[0], "dm.json");
|
| SkFILEWStream stream(path.c_str());
|
| stream.writeText(Json::StyledWriter().write(root).c_str());
|
|
|