Support non-zero minutes in the timestamp offset for JSON.
diff --git a/tests/bindings/lua/BUILD b/tests/bindings/lua/BUILD index a065b1d..94d4929 100644 --- a/tests/bindings/lua/BUILD +++ b/tests/bindings/lua/BUILD
@@ -37,6 +37,7 @@ name = "test_proto", testonly = 1, srcs = ["test.proto"], + deps = ["@com_google_protobuf//:timestamp_proto"], ) lua_proto_library(
diff --git a/tests/bindings/lua/test.proto b/tests/bindings/lua/test.proto index 6b45350..4c3b64e 100644 --- a/tests/bindings/lua/test.proto +++ b/tests/bindings/lua/test.proto
@@ -1,6 +1,8 @@ syntax = "proto2"; +import "google/protobuf/timestamp.proto"; + package upb_test; message MapTest { @@ -26,3 +28,7 @@ message TestLargeFieldNumber { optional int32 i32 = 456214797; } + +message TestTimestamp { + optional google.protobuf.Timestamp ts = 1; +}
diff --git a/tests/bindings/lua/test_upb.lua b/tests/bindings/lua/test_upb.lua index e2d5345..2529aa8 100644 --- a/tests/bindings/lua/test_upb.lua +++ b/tests/bindings/lua/test_upb.lua
@@ -714,6 +714,11 @@ assert_equal(msg.i32, msg2.i32) end +function test_timestamp_minutes() + local msg = upb.json_decode(upb_test.TestTimestamp, '{"ts": "2000-01-01T00:00:00-06:59"}') + assert_equal(msg.ts.seconds, 946684800 + ((6 * 60) + 59) * 60) +end + function test_gc() local top = test_messages_proto3.TestAllTypesProto3() local n = 100