From 75454f58f53fcd52dad64147dcb688d45ad04895 Mon Sep 17 00:00:00 2001 From: Hal Canary Date: Wed, 31 Jan 2018 13:28:19 -0500 Subject: SkQP: report formatting, junit classname Change-Id: Ibc5b55c98242c50b62b16134e0a504c04a458f6c Reviewed-on: https://skia-review.googlesource.com/102320 Reviewed-by: Hal Canary Reviewed-by: Derek Sollenberger Commit-Queue: Hal Canary --- .../skqp/src/main/java/org/skia/skqp/SkQP.java | 4 +- tools/skqp/gm_knowledge.cpp | 45 +++++++++++++++++++++- 2 files changed, 45 insertions(+), 4 deletions(-) diff --git a/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java b/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java index 039abb54b8..58e09ec982 100644 --- a/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java +++ b/platform_tools/android/apps/skqp/src/main/java/org/skia/skqp/SkQP.java @@ -23,8 +23,8 @@ public class SkQP { protected String[] mBackends; protected String[] mUnitTests; - protected static final String kSkiaGM = "SkiaGM_"; - protected static final String kSkiaUnitTests = "Skia_UnitTests"; + protected static final String kSkiaGM = "skqp_"; + protected static final String kSkiaUnitTests = "skqp_unitTest"; protected static final String LOG_PREFIX = "org.skia.skqp"; static { diff --git a/tools/skqp/gm_knowledge.cpp b/tools/skqp/gm_knowledge.cpp index 0bdb8303b0..9e4496ac0e 100644 --- a/tools/skqp/gm_knowledge.cpp +++ b/tools/skqp/gm_knowledge.cpp @@ -310,16 +310,24 @@ static constexpr char kDocHead[] = " ac(b, ct(\" | \"));\n" " ac(b, ma(t + \"/min.png\", ct(\"min\")));\n" " ac(b, ce(\"hr\"));\n" + " b.id = backend + \":\" + gm;\n" " ac(document.body, b);\n" + " l = ce(\"li\");\n" + " ac(l, ma(\"#\" + backend +\":\"+ gm , ct(t)));\n" + " ac(document.getElementById(\"toc\"), l);\n" "}\n" "function main() {\n"; -static constexpr char kDocTail[] = +static constexpr char kDocMiddle[] = "}\n" "\n" "\n" "\n" - "

SkQP Report

\n" + "

SkQP Report

\n"; + +static constexpr char kDocTail[] = + "
    \n" + "
    \n" "

    Left image: test result
    \n" "Right image: errors (white = no error, black = smallest error, red = biggest error)

    \n" "
    \n" @@ -330,7 +338,25 @@ static void write(SkWStream* wStream, const SkString& text) { wStream->write(text.c_str(), text.size()); } +enum class Backend { + kUnknown, + kGLES, + kVulkan, +}; + +static Backend get_backend(const SkString& s) { + if (s.equals("gles")) { + return Backend::kGLES; + } else if (s.equals("vk")) { + return Backend::kVulkan; + } + return Backend::kUnknown; +} + + bool MakeReport(const char* report_directory_path) { + int glesErrorCount = 0, vkErrorCount = 0, gles = 0, vk = 0; + SkASSERT_RELEASE(sk_isdir(report_directory_path)); std::lock_guard lock(gMutex); SkFILEWStream csvOut(SkOSPath::Join(report_directory_path, PATH_CSV).c_str()); @@ -341,6 +367,12 @@ bool MakeReport(const char* report_directory_path) { } htmOut.writeText(kDocHead); for (const Run& run : gErrors) { + auto backend = get_backend(run.fBackend); + switch (backend) { + case Backend::kGLES: ++gles; break; + case Backend::kVulkan: ++vk; break; + default: break; + } write(&csvOut, SkStringPrintf("\"%s\",\"%s\",%d,%d\n", run.fBackend.c_str(), run.fGM.c_str(), run.fMaxerror, run.fBadpixels)); @@ -350,7 +382,16 @@ bool MakeReport(const char* report_directory_path) { write(&htmOut, SkStringPrintf(" f(\"%s\", \"%s\", %d, %d);\n", run.fBackend.c_str(), run.fGM.c_str(), run.fMaxerror, run.fBadpixels)); + switch (backend) { + case Backend::kGLES: ++glesErrorCount; break; + case Backend::kVulkan: ++vkErrorCount; break; + default: break; + } } + htmOut.writeText(kDocMiddle); + write(&htmOut, SkStringPrintf("

    gles errors: %d (of %d)
    \n" + "vk errors: %d (of %d)

    \n", + glesErrorCount, gles, vkErrorCount, vk)); htmOut.writeText(kDocTail); return true; } -- cgit v1.2.3