1
2
3
4 package test
5
6 import (
7 fmt "fmt"
8 _ "github.com/gogo/protobuf/gogoproto"
9 github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb"
10 github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
11 proto "github.com/gogo/protobuf/proto"
12 go_parser "go/parser"
13 math "math"
14 math_rand "math/rand"
15 testing "testing"
16 time "time"
17 )
18
19
20 var _ = proto.Marshal
21 var _ = fmt.Errorf
22 var _ = math.Inf
23
24 func TestOneofTestProto(t *testing.T) {
25 seed := time.Now().UnixNano()
26 popr := math_rand.New(math_rand.NewSource(seed))
27 p := NewPopulatedOneofTest(popr, false)
28 dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
29 if err != nil {
30 t.Fatalf("seed = %d, err = %v", seed, err)
31 }
32 msg := &OneofTest{}
33 if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
34 t.Fatalf("seed = %d, err = %v", seed, err)
35 }
36 littlefuzz := make([]byte, len(dAtA))
37 copy(littlefuzz, dAtA)
38 for i := range dAtA {
39 dAtA[i] = byte(popr.Intn(256))
40 }
41 if !p.Equal(msg) {
42 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
43 }
44 if len(littlefuzz) > 0 {
45 fuzzamount := 100
46 for i := 0; i < fuzzamount; i++ {
47 littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256))
48 littlefuzz = append(littlefuzz, byte(popr.Intn(256)))
49 }
50
51 _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg)
52 }
53 }
54
55 func TestOneofTestMarshalTo(t *testing.T) {
56 seed := time.Now().UnixNano()
57 popr := math_rand.New(math_rand.NewSource(seed))
58 p := NewPopulatedOneofTest(popr, false)
59 size := p.Size()
60 dAtA := make([]byte, size)
61 for i := range dAtA {
62 dAtA[i] = byte(popr.Intn(256))
63 }
64 _, err := p.MarshalTo(dAtA)
65 if err != nil {
66 t.Fatalf("seed = %d, err = %v", seed, err)
67 }
68 msg := &OneofTest{}
69 if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
70 t.Fatalf("seed = %d, err = %v", seed, err)
71 }
72 for i := range dAtA {
73 dAtA[i] = byte(popr.Intn(256))
74 }
75 if !p.Equal(msg) {
76 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
77 }
78 }
79
80 func TestOneofTestJSON(t *testing.T) {
81 seed := time.Now().UnixNano()
82 popr := math_rand.New(math_rand.NewSource(seed))
83 p := NewPopulatedOneofTest(popr, true)
84 marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{}
85 jsondata, err := marshaler.MarshalToString(p)
86 if err != nil {
87 t.Fatalf("seed = %d, err = %v", seed, err)
88 }
89 msg := &OneofTest{}
90 err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg)
91 if err != nil {
92 t.Fatalf("seed = %d, err = %v", seed, err)
93 }
94 if !p.Equal(msg) {
95 t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p)
96 }
97 }
98 func TestOneofTestProtoText(t *testing.T) {
99 seed := time.Now().UnixNano()
100 popr := math_rand.New(math_rand.NewSource(seed))
101 p := NewPopulatedOneofTest(popr, true)
102 dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p)
103 msg := &OneofTest{}
104 if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
105 t.Fatalf("seed = %d, err = %v", seed, err)
106 }
107 if !p.Equal(msg) {
108 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
109 }
110 }
111
112 func TestOneofTestProtoCompactText(t *testing.T) {
113 seed := time.Now().UnixNano()
114 popr := math_rand.New(math_rand.NewSource(seed))
115 p := NewPopulatedOneofTest(popr, true)
116 dAtA := github_com_gogo_protobuf_proto.CompactTextString(p)
117 msg := &OneofTest{}
118 if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
119 t.Fatalf("seed = %d, err = %v", seed, err)
120 }
121 if !p.Equal(msg) {
122 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
123 }
124 }
125
126 func TestOneofTestCompare(t *testing.T) {
127 popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
128 p := NewPopulatedOneofTest(popr, false)
129 dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
130 if err != nil {
131 panic(err)
132 }
133 msg := &OneofTest{}
134 if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
135 panic(err)
136 }
137 if c := p.Compare(msg); c != 0 {
138 t.Fatalf("%#v !Compare %#v, since %d", msg, p, c)
139 }
140 p2 := NewPopulatedOneofTest(popr, false)
141 c := p.Compare(p2)
142 c2 := p2.Compare(p)
143 if c != (-1 * c2) {
144 t.Errorf("p.Compare(p2) = %d", c)
145 t.Errorf("p2.Compare(p) = %d", c2)
146 t.Errorf("p = %#v", p)
147 t.Errorf("p2 = %#v", p2)
148 }
149 }
150 func TestOneofTestGoString(t *testing.T) {
151 popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
152 p := NewPopulatedOneofTest(popr, false)
153 s1 := p.GoString()
154 s2 := fmt.Sprintf("%#v", p)
155 if s1 != s2 {
156 t.Fatalf("GoString want %v got %v", s1, s2)
157 }
158 _, err := go_parser.ParseExpr(s1)
159 if err != nil {
160 t.Fatal(err)
161 }
162 }
163 func TestOneofTestSize(t *testing.T) {
164 seed := time.Now().UnixNano()
165 popr := math_rand.New(math_rand.NewSource(seed))
166 p := NewPopulatedOneofTest(popr, true)
167 size2 := github_com_gogo_protobuf_proto.Size(p)
168 dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
169 if err != nil {
170 t.Fatalf("seed = %d, err = %v", seed, err)
171 }
172 size := p.Size()
173 if len(dAtA) != size {
174 t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA))
175 }
176 if size2 != size {
177 t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2)
178 }
179 size3 := github_com_gogo_protobuf_proto.Size(p)
180 if size3 != size {
181 t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3)
182 }
183 }
184
185
186
View as plain text