diff options
Diffstat (limited to 'dm/DMJsonWriter.cpp')
-rw-r--r-- | dm/DMJsonWriter.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp index f86264715b..a2de38bb31 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()); |