Test part: upb CopyFrom the default empty message should just clear instead of deep copy

from memory

fix https://github.com/protocolbuffers/protobuf/issues/13485

PiperOrigin-RevId: 559888172
pull/13679/head
Jie Luo 2 years ago committed by Copybara-Service
parent 06c25f5e2b
commit 836fb65bb7
  1. 4
      protobuf_deps.bzl
  2. 16
      python/google/protobuf/internal/message_test.py

@ -150,6 +150,6 @@ def protobuf_deps():
_github_archive(
name = "upb",
repo = "https://github.com/protocolbuffers/upb",
commit = "823a12e80934f9c8fb9178191d69f06a1bbfd604",
sha256 = "165f425714d32018a1a856b1935cfa24206878f8a469384808d2dce1d7c4003a",
commit = "57636ce03ac1e2aab3a362a61a6664981e21cda5",
sha256 = "75da534db927e165cb550d232c35e2dec4b5153b3b47989b250d75febbfc1710",
)

@ -422,6 +422,22 @@ class MessageTest(unittest.TestCase):
empty.ParseFromString(populated.SerializeToString())
self.assertEqual(str(empty), '')
def testCopyFromEmpty(self, message_module):
msg = message_module.NestedTestAllTypes()
test_msg = message_module.NestedTestAllTypes()
test_util.SetAllFields(test_msg.payload)
self.assertTrue(test_msg.HasField('payload'))
# Copy from empty message
test_msg.CopyFrom(msg)
self.assertEqual(0, len(test_msg.ListFields()))
test_util.SetAllFields(test_msg.payload)
self.assertTrue(test_msg.HasField('payload'))
# Copy from a non exist message
test_msg.CopyFrom(msg.child)
self.assertFalse(test_msg.HasField('payload'))
self.assertEqual(0, len(test_msg.ListFields()))
def testAppendRepeatedCompositeField(self, message_module):
msg = message_module.TestAllTypes()
msg.repeated_nested_message.append(

Loading…
Cancel
Save