aboutsummaryrefslogtreecommitdiff
path: root/tests/conformance/conformance_nim.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/conformance/conformance_nim.nim')
-rw-r--r--tests/conformance/conformance_nim.nim11
1 files changed, 8 insertions, 3 deletions
diff --git a/tests/conformance/conformance_nim.nim b/tests/conformance/conformance_nim.nim
index 461bc43..a440212 100644
--- a/tests/conformance/conformance_nim.nim
+++ b/tests/conformance/conformance_nim.nim
@@ -43,11 +43,16 @@ while true:
if request.messageType == "protobuf_test_messages.proto2.TestAllTypesProto2":
response.skipped = "skipping proto2 tests"
- elif hasJsonPayload(request):
- response.skipped = "dont know how to parse json"
else:
try:
- let parsed = newprotobuf_test_messages_proto3_TestAllTypesProto3(string(request.protobufPayload))
+ var parsed: protobuf_test_messages_proto3_TestAllTypesProto3
+
+ if hasProtobufPayload(request):
+ parsed = newprotobuf_test_messages_proto3_TestAllTypesProto3(string(request.protobufPayload))
+ elif hasJsonPayload(request):
+ let node = parseJson(request.jsonPayload)
+ parsed = parseprotobuf_test_messages_proto3_TestAllTypesProto3FromJson(node)
+
if request.requestedOutputFormat == conformance_WireFormat.PROTOBUF:
let ser = serialize(parsed)
response.protobufPayload = bytes(ser)