diff options
author | csharptest <roger@csharptest.net> | 2011-09-23 11:08:29 -0500 |
---|---|---|
committer | rogerk <devnull@localhost> | 2011-09-23 11:08:29 -0500 |
commit | 8bd88ea8072c704777e4ba024707ce3614dd2d03 (patch) | |
tree | ade0b134ddd883baeff38fb5f26978f4866d6b5f | |
parent | 3b625064e8e40f37ec510cc4f25035a9c1554c73 (diff) | |
download | protobuf-8bd88ea8072c704777e4ba024707ce3614dd2d03.tar.gz protobuf-8bd88ea8072c704777e4ba024707ce3614dd2d03.tar.bz2 protobuf-8bd88ea8072c704777e4ba024707ce3614dd2d03.zip |
Added unit test to repro issue 28
-rw-r--r-- | protos/extest/unittest_issues.proto | 9 | ||||
-rw-r--r-- | src/ProtocolBuffers.Test/ReusableBuilderTest.cs | 13 |
2 files changed, 22 insertions, 0 deletions
diff --git a/protos/extest/unittest_issues.proto b/protos/extest/unittest_issues.proto index 459e58f8..21b5566e 100644 --- a/protos/extest/unittest_issues.proto +++ b/protos/extest/unittest_issues.proto @@ -86,3 +86,12 @@ message NumberField { optional int32 _01 = 1;
}
+// Issue 28: Circular message dependencies result in null defaults for DefaultInstance
+
+message MyMessageAReferenceB {
+ required MyMessageBReferenceA value = 1;
+}
+
+message MyMessageBReferenceA {
+ required MyMessageAReferenceB value = 1;
+}
diff --git a/src/ProtocolBuffers.Test/ReusableBuilderTest.cs b/src/ProtocolBuffers.Test/ReusableBuilderTest.cs index 194313cb..58d643ed 100644 --- a/src/ProtocolBuffers.Test/ReusableBuilderTest.cs +++ b/src/ProtocolBuffers.Test/ReusableBuilderTest.cs @@ -1,16 +1,29 @@ using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Text;
using Google.ProtocolBuffers.Collections;
using NUnit.Framework;
using Google.ProtocolBuffers.TestProtos;
using Google.ProtocolBuffers.Serialization;
+using UnitTest.Issues.TestProtos;
namespace Google.ProtocolBuffers
{
[TestFixture]
public class ReusableBuilderTest
{
+ [Test, Description("Issue 28: Circular message dependencies result in null defaults for DefaultInstance")]
+ public void EnsureStaticCicularReference()
+ {
+ MyMessageAReferenceB ab = MyMessageAReferenceB.DefaultInstance;
+ Assert.IsNotNull(ab);
+ Assert.IsNotNull(ab.Value);
+ MyMessageBReferenceA ba = MyMessageBReferenceA.DefaultInstance;
+ Assert.IsNotNull(ba);
+ Assert.IsNotNull(ba.Value);
+ }
+
[Test]
public void TestModifyDefaultInstance()
{
|