diff options
author | kelvinly <kelvinly@google.com> | 2014-06-26 11:26:40 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-06-26 11:26:41 -0700 |
commit | 4d1a364e391a8fd79c9e133d27957761d35068d0 (patch) | |
tree | 3797f1ae14ec0eda2457b89e19c8d8e35bb739b2 /bench | |
parent | 93fabf4847b4784ffabb8d81e722e14d88c92804 (diff) |
Make SKP bench JSON ouput better
BUG=skia:
NOTREECHECKS=true
R=bensong@google.com, jcgregorio@google.com, bsalomon@google.com, robertphillips@google.com, rmistry@google.com
Author: kelvinly@google.com
Review URL: https://codereview.chromium.org/329993008
Diffstat (limited to 'bench')
-rw-r--r-- | bench/ResultsWriter.cpp | 29 | ||||
-rw-r--r-- | bench/ResultsWriter.h | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/bench/ResultsWriter.cpp b/bench/ResultsWriter.cpp index 08f11c190f..0ab8cb1908 100644 --- a/bench/ResultsWriter.cpp +++ b/bench/ResultsWriter.cpp @@ -8,6 +8,8 @@ */ #include "ResultsWriter.h" +#include "SkString.h" +#include "SkTArray.h" Json::Value* SkFindNamedNode(Json::Value* root, const char name[]) { Json::Value* search_results = NULL; @@ -28,3 +30,30 @@ Json::Value* SkFindNamedNode(Json::Value* root, const char name[]) { } } +Json::Value SkMakeBuilderJSON(const SkString &builderName) { + static const int kNumKeys = 6; + static const char* kKeys[kNumKeys] = { + "role", "os", "model", "gpu", "arch", "configuration"}; + Json::Value builderData; + + if (!builderName.isEmpty()) { + SkTArray<SkString> splitBuilder; + SkStrSplit(builderName.c_str(), "-", &splitBuilder); + SkASSERT(splitBuilder.count() >= kNumKeys); + for (int i = 0; i < kNumKeys && i < splitBuilder.count(); ++i) { + builderData[kKeys[i]] = splitBuilder[i].c_str(); + } + builderData["builderName"] = builderName.c_str(); + if (kNumKeys < splitBuilder.count()) { + SkString extras; + for (int i = kNumKeys; i < splitBuilder.count(); ++i) { + extras.append(splitBuilder[i]); + if (i != splitBuilder.count() - 1) { + extras.append("-"); + } + } + builderData["badParams"] = extras.c_str(); + } + } + return builderData; +} diff --git a/bench/ResultsWriter.h b/bench/ResultsWriter.h index ed10afa3ca..1ee3616ceb 100644 --- a/bench/ResultsWriter.h +++ b/bench/ResultsWriter.h @@ -102,6 +102,8 @@ private: */ Json::Value* SkFindNamedNode(Json::Value* root, const char name[]); +Json::Value SkMakeBuilderJSON(const SkString &buildername); + class JSONResultsWriter : public ResultsWriter { public: explicit JSONResultsWriter(const char filename[]) |