diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2018-07-09 14:29:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-09 14:29:23 -0700 |
commit | 26eeec93e44024ee10c0b8c536ea2410e4bfa7f3 (patch) | |
tree | bd19449d12e795014250315982c9e9eefae1fb02 /conformance/conformance_test.h | |
parent | 96833b8f4b1897ae2a4ddf21ec9d1c5e6eabc8c7 (diff) | |
download | protobuf-26eeec93e44024ee10c0b8c536ea2410e4bfa7f3.tar.gz protobuf-26eeec93e44024ee10c0b8c536ea2410e4bfa7f3.tar.bz2 protobuf-26eeec93e44024ee10c0b8c536ea2410e4bfa7f3.zip |
Enable ignoring unknown in json parsing in php (#4839)
* Enable ignoring unknown in json parsing in php
* Update generated descriptor files
* Update failure list for other languages.
* Remove unnecessary php files
Diffstat (limited to 'conformance/conformance_test.h')
-rw-r--r-- | conformance/conformance_test.h | 59 |
1 files changed, 44 insertions, 15 deletions
diff --git a/conformance/conformance_test.h b/conformance/conformance_test.h index 2649f8b2..685f67fb 100644 --- a/conformance/conformance_test.h +++ b/conformance/conformance_test.h @@ -44,6 +44,7 @@ #include <google/protobuf/util/type_resolver.h> #include <google/protobuf/wire_format_lite.h> +#include "conformance.pb.h" #include "third_party/jsoncpp/json.h" namespace conformance { @@ -146,7 +147,42 @@ class ConformanceTestSuite { REQUIRED = 0, RECOMMENDED = 1, }; - string ConformanceLevelToString(ConformanceLevel level); + + class ConformanceRequestSetting { + public: + ConformanceRequestSetting( + ConformanceLevel level, conformance::WireFormat input_format, + conformance::WireFormat output_format, bool is_proto3, + const string& test_name, const string& input); + + Message* GetTestMessage() const; + + const string& GetTestName() const { + return test_name_; + } + + const conformance::ConformanceRequest& GetRequest() const { + return request_; + } + + const ConformanceLevel GetLevel() const { + return level_; + } + + void SetIgnoreUnknownJson(bool ignore_unknown_json) { + request_.set_ignore_unknown_json(ignore_unknown_json); + } + + private: + ConformanceLevel level_; + conformance::WireFormat input_format_; + conformance::WireFormat output_format_; + bool is_proto3_; + string test_name_; + conformance::ConformanceRequest request_; + }; + + static string ConformanceLevelToString(ConformanceLevel level); void ReportSuccess(const std::string& test_name); void ReportFailure(const string& test_name, @@ -160,24 +196,17 @@ class ConformanceTestSuite { void RunTest(const std::string& test_name, const conformance::ConformanceRequest& request, conformance::ConformanceResponse* response); - void RunValidInputTest(const string& test_name, - ConformanceLevel level, - const string& input, - conformance::WireFormat input_format, - const string& equivalent_text_format, - conformance::WireFormat requested_output, - bool isProto3); - void RunValidBinaryInputTest(const string& test_name, - ConformanceLevel level, - const string& input, - conformance::WireFormat input_format, - const string& equivalent_wire_format, - conformance::WireFormat requested_output, - bool isProto3); + void RunValidInputTest(const ConformanceRequestSetting& setting, + const string& equivalent_text_format); + void RunValidBinaryInputTest(const ConformanceRequestSetting& setting, + const string& equivalent_wire_format); void RunValidJsonTest(const string& test_name, ConformanceLevel level, const string& input_json, const string& equivalent_text_format); + void RunValidJsonIgnoreUnknownTest( + const string& test_name, ConformanceLevel level, const string& input_json, + const string& equivalent_text_format); void RunValidJsonTestWithProtobufInput( const string& test_name, ConformanceLevel level, |