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