1// Code generated by protoc-gen-gogo. DO NOT EDIT.
2// source: issue330.proto
3
4package issue330
5
6import testing "testing"
7import math_rand "math/rand"
8import time "time"
9import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
10import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb"
11import proto "github.com/gogo/protobuf/proto"
12import fmt "fmt"
13import math "math"
14import _ "github.com/gogo/protobuf/gogoproto"
15
16// Reference imports to suppress errors if they are not otherwise used.
17var _ = proto.Marshal
18var _ = fmt.Errorf
19var _ = math.Inf
20
21func TestObjectProto(t *testing.T) {
22	seed := time.Now().UnixNano()
23	popr := math_rand.New(math_rand.NewSource(seed))
24	p := NewPopulatedObject(popr, false)
25	dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
26	if err != nil {
27		t.Fatalf("seed = %d, err = %v", seed, err)
28	}
29	msg := &Object{}
30	if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
31		t.Fatalf("seed = %d, err = %v", seed, err)
32	}
33	littlefuzz := make([]byte, len(dAtA))
34	copy(littlefuzz, dAtA)
35	for i := range dAtA {
36		dAtA[i] = byte(popr.Intn(256))
37	}
38	if !p.Equal(msg) {
39		t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
40	}
41	if len(littlefuzz) > 0 {
42		fuzzamount := 100
43		for i := 0; i < fuzzamount; i++ {
44			littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256))
45			littlefuzz = append(littlefuzz, byte(popr.Intn(256)))
46		}
47		// shouldn't panic
48		_ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg)
49	}
50}
51
52func TestObjectMarshalTo(t *testing.T) {
53	seed := time.Now().UnixNano()
54	popr := math_rand.New(math_rand.NewSource(seed))
55	p := NewPopulatedObject(popr, false)
56	size := p.Size()
57	dAtA := make([]byte, size)
58	for i := range dAtA {
59		dAtA[i] = byte(popr.Intn(256))
60	}
61	_, err := p.MarshalTo(dAtA)
62	if err != nil {
63		t.Fatalf("seed = %d, err = %v", seed, err)
64	}
65	msg := &Object{}
66	if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
67		t.Fatalf("seed = %d, err = %v", seed, err)
68	}
69	for i := range dAtA {
70		dAtA[i] = byte(popr.Intn(256))
71	}
72	if !p.Equal(msg) {
73		t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
74	}
75}
76
77func BenchmarkObjectProtoMarshal(b *testing.B) {
78	popr := math_rand.New(math_rand.NewSource(616))
79	total := 0
80	pops := make([]*Object, 10000)
81	for i := 0; i < 10000; i++ {
82		pops[i] = NewPopulatedObject(popr, false)
83	}
84	b.ResetTimer()
85	for i := 0; i < b.N; i++ {
86		dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000])
87		if err != nil {
88			panic(err)
89		}
90		total += len(dAtA)
91	}
92	b.SetBytes(int64(total / b.N))
93}
94
95func BenchmarkObjectProtoUnmarshal(b *testing.B) {
96	popr := math_rand.New(math_rand.NewSource(616))
97	total := 0
98	datas := make([][]byte, 10000)
99	for i := 0; i < 10000; i++ {
100		dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedObject(popr, false))
101		if err != nil {
102			panic(err)
103		}
104		datas[i] = dAtA
105	}
106	msg := &Object{}
107	b.ResetTimer()
108	for i := 0; i < b.N; i++ {
109		total += len(datas[i%10000])
110		if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil {
111			panic(err)
112		}
113	}
114	b.SetBytes(int64(total / b.N))
115}
116
117func TestObjectJSON(t *testing.T) {
118	seed := time.Now().UnixNano()
119	popr := math_rand.New(math_rand.NewSource(seed))
120	p := NewPopulatedObject(popr, true)
121	marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{}
122	jsondata, err := marshaler.MarshalToString(p)
123	if err != nil {
124		t.Fatalf("seed = %d, err = %v", seed, err)
125	}
126	msg := &Object{}
127	err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg)
128	if err != nil {
129		t.Fatalf("seed = %d, err = %v", seed, err)
130	}
131	if !p.Equal(msg) {
132		t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p)
133	}
134}
135func TestObjectProtoText(t *testing.T) {
136	seed := time.Now().UnixNano()
137	popr := math_rand.New(math_rand.NewSource(seed))
138	p := NewPopulatedObject(popr, true)
139	dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p)
140	msg := &Object{}
141	if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
142		t.Fatalf("seed = %d, err = %v", seed, err)
143	}
144	if !p.Equal(msg) {
145		t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
146	}
147}
148
149func TestObjectProtoCompactText(t *testing.T) {
150	seed := time.Now().UnixNano()
151	popr := math_rand.New(math_rand.NewSource(seed))
152	p := NewPopulatedObject(popr, true)
153	dAtA := github_com_gogo_protobuf_proto.CompactTextString(p)
154	msg := &Object{}
155	if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
156		t.Fatalf("seed = %d, err = %v", seed, err)
157	}
158	if !p.Equal(msg) {
159		t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
160	}
161}
162
163func TestObjectSize(t *testing.T) {
164	seed := time.Now().UnixNano()
165	popr := math_rand.New(math_rand.NewSource(seed))
166	p := NewPopulatedObject(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
185func BenchmarkObjectSize(b *testing.B) {
186	popr := math_rand.New(math_rand.NewSource(616))
187	total := 0
188	pops := make([]*Object, 1000)
189	for i := 0; i < 1000; i++ {
190		pops[i] = NewPopulatedObject(popr, false)
191	}
192	b.ResetTimer()
193	for i := 0; i < b.N; i++ {
194		total += pops[i%1000].Size()
195	}
196	b.SetBytes(int64(total / b.N))
197}
198
199//These tests are generated by github.com/gogo/protobuf/plugin/testgen
200