increase test coverage
diff --git a/csharp/src/Google.Protobuf.Test/GeneratedMessageTest.Proto2.cs b/csharp/src/Google.Protobuf.Test/GeneratedMessageTest.Proto2.cs
index 5f90c94..1abed60 100644
--- a/csharp/src/Google.Protobuf.Test/GeneratedMessageTest.Proto2.cs
+++ b/csharp/src/Google.Protobuf.Test/GeneratedMessageTest.Proto2.cs
@@ -344,6 +344,8 @@
                 }

             };

 

+            MessageParsingHelpers.AssertWritingMessage(message);

+

             MessageParsingHelpers.AssertRoundtrip(Proto2.TestAllTypes.Parser, message);

         }

 

@@ -359,6 +361,8 @@
                 new RepeatedGroup_extension { A = 30 }

             });

 

+            MessageParsingHelpers.AssertWritingMessage(message);

+

             MessageParsingHelpers.AssertRoundtrip(

                 TestAllExtensions.Parser.WithExtensionRegistry(new ExtensionRegistry() { UnittestExtensions.OptionalGroupExtension, UnittestExtensions.RepeatedGroupExtension }),

                 message);

@@ -370,6 +374,8 @@
             var message = new TestGroupExtension();

             message.SetExtension(TestNestedExtension.Extensions.OptionalGroupExtension, new TestNestedExtension.Types.OptionalGroup_extension { A = 10 });

 

+            MessageParsingHelpers.AssertWritingMessage(message);

+            

             MessageParsingHelpers.AssertRoundtrip(

                 TestGroupExtension.Parser.WithExtensionRegistry(new ExtensionRegistry() { TestNestedExtension.Extensions.OptionalGroupExtension }),

                 message);

diff --git a/csharp/src/Google.Protobuf.Test/MessageParsingHelpers.cs b/csharp/src/Google.Protobuf.Test/MessageParsingHelpers.cs
index b2418ee..5ed6091 100644
--- a/csharp/src/Google.Protobuf.Test/MessageParsingHelpers.cs
+++ b/csharp/src/Google.Protobuf.Test/MessageParsingHelpers.cs
@@ -108,12 +108,18 @@
             // serialize using CodedOutputStream
             var bytes = message.ToByteArray();
 
-            // also serialize using IBufferWriter and check it leads to the same data
+            int messageSize = message.CalculateSize(); 
+            Assert.AreEqual(message.CalculateSize(), bytes.Length);
+
+            // serialize using IBufferWriter and check it leads to the same output
             var bufferWriter = new ArrayBufferWriter<byte>();
             message.WriteTo(bufferWriter);
-            Assert.AreEqual(bytes, bufferWriter.WrittenSpan.ToArray(), "Both serialization approaches need to result in the same data.");
+            Assert.AreEqual(bytes, bufferWriter.WrittenSpan.ToArray());
 
-            Assert.AreEqual(message.CalculateSize(), bytes.Length);
+            // serialize into a single span and check it leads to the same output
+            var singleSpan = new Span<byte>(new byte[messageSize]);
+            message.WriteTo(singleSpan);
+            Assert.AreEqual(bytes, singleSpan.ToArray());
 
             // TODO: also test different chunk sizes for IBufferWriter
         }
diff --git a/csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs b/csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs
index 47ff2a1..e1f059d 100644
--- a/csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs
+++ b/csharp/src/Google.Protobuf.Test/WellKnownTypes/WrappersTest.cs
@@ -71,6 +71,8 @@
                 Uint64Field = 4
             };
 
+            MessageParsingHelpers.AssertWritingMessage(message);
+
             MessageParsingHelpers.AssertRoundtrip(TestWellKnownTypes.Parser, message, parsed =>
             {
                 Assert.AreEqual("x", parsed.StringField);
@@ -101,6 +103,8 @@
                 Uint64Field = 0
             };
 
+            MessageParsingHelpers.AssertWritingMessage(message);
+
             MessageParsingHelpers.AssertRoundtrip(TestWellKnownTypes.Parser, message, parsed =>
             {
                 Assert.AreEqual("", parsed.StringField);
@@ -144,6 +148,8 @@
             // Just to test a single value for sanity...
             Assert.AreEqual("Second", message.StringField[1]);
 
+            MessageParsingHelpers.AssertWritingMessage(message);
+
             MessageParsingHelpers.AssertRoundtrip(RepeatedWellKnownTypes.Parser, message);
         }
 
@@ -196,6 +202,8 @@
             // Just to test a single value for sanity...
             Assert.AreEqual("Second", message.StringField[12]);
 
+            MessageParsingHelpers.AssertWritingMessage(message);
+
             MessageParsingHelpers.AssertRoundtrip(MapWellKnownTypes.Parser, message);
         }