diff options
author | Cary Clark <caryclark@skia.org> | 2018-07-18 15:10:08 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-18 19:42:52 +0000 |
commit | d789550da4bf666ca11487ddcb5dd6b9b13ec3d7 (patch) | |
tree | bf58fd88ff28d0ecb52a4b34d2e1a8739f403f59 /tools/bookmaker/bookmaker.h | |
parent | 5ed4df358318161edf7e50b7f04ed972651af913 (diff) |
add more fiddle hash checks
Convert some of bookmaker to use real json instead
of rolling its own. Also check to see if all
hashes are read.
TBR=jcgregario@google.com
Docs-Preview: https://skia.org/?cl=142166
Bug: skia:8151
Change-Id: Ib35ecd69648faec3522903e0b552d37b04b73f8b
Reviewed-on: https://skia-review.googlesource.com/142166
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'tools/bookmaker/bookmaker.h')
-rw-r--r-- | tools/bookmaker/bookmaker.h | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h index c695cff0e8..19ea86b68d 100644 --- a/tools/bookmaker/bookmaker.h +++ b/tools/bookmaker/bookmaker.h @@ -1328,19 +1328,29 @@ struct JsonStatus { string fName; }; -class StatusIter : public ParserCommon { +class JsonCommon : public ParserCommon { +public: + bool empty() { return fStack.empty(); } + bool parseFromFile(const char* path) override; + + void reset() override { + fStack.clear(); + INHERITED::resetCommon(); + } + + vector<JsonStatus> fStack; + Json::Value fRoot; +private: + typedef ParserCommon INHERITED; +}; + +class StatusIter : public JsonCommon { public: StatusIter(const char* statusFile, const char* suffix, StatusFilter); ~StatusIter() override {} string baseDir(); - bool empty() { return fStack.empty(); } bool next(string* file); -protected: - bool parseFromFile(const char* path) override; - void reset() override; private: - vector<JsonStatus> fStack; - Json::Value fRoot; const char* fSuffix; StatusFilter fFilter; }; @@ -1415,6 +1425,7 @@ public: bool checkParamReturn(const Definition* definition) const; bool dumpExamples(FILE* fiddleOut, Definition& def, bool* continuation) const; bool dumpExamples(const char* fiddleJsonFileName) const; + bool checkExampleHashes() const; bool childOf(MarkType markType) const; string className(MarkType markType); bool collectExternals(); @@ -1441,6 +1452,7 @@ public: bool popParentStack(Definition* definition); void reportDuplicates(const Definition& def, string dup) const; + void resetExampleHashes(); void reset() override { INHERITED::resetCommon(); @@ -2084,10 +2096,10 @@ private: typedef IncludeParser INHERITED; }; -class FiddleBase : public ParserCommon { +class FiddleBase : public JsonCommon { protected: - FiddleBase(BmhParser* bmh) : ParserCommon() - , fBmhParser(bmh) + FiddleBase(BmhParser* bmh) + : fBmhParser(bmh) , fContinuation(false) , fTextOut(false) , fPngOut(false) @@ -2096,7 +2108,7 @@ protected: } void reset() override { - INHERITED::resetCommon(); + INHERITED::reset(); } Definition* findExample(string name) const { return fBmhParser->findExample(name); } @@ -2111,7 +2123,7 @@ protected: bool fTextOut; bool fPngOut; private: - typedef ParserCommon INHERITED; + typedef JsonCommon INHERITED; }; class FiddleParser : public FiddleBase { @@ -2121,10 +2133,14 @@ public: } bool parseFromFile(const char* path) override { - if (!INHERITED::parseSetup(path)) { + if (!INHERITED::parseFromFile(path)) { + return false; + } + fBmhParser->resetExampleHashes(); + if (!INHERITED::parseFiddles()) { return false; } - return parseFiddles(); + return fBmhParser->checkExampleHashes(); } private: |