github.com/gogo/protobuf@v1.3.2/test/int64support/objectpb_test.go (about) 1 // Code generated by protoc-gen-gogo. DO NOT EDIT. 2 // source: object.proto 3 4 package int64support 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 // Reference imports to suppress errors if they are not otherwise used. 20 var _ = proto.Marshal 21 var _ = fmt.Errorf 22 var _ = math.Inf 23 24 func TestObjectProto(t *testing.T) { 25 seed := time.Now().UnixNano() 26 popr := math_rand.New(math_rand.NewSource(seed)) 27 p := NewPopulatedObject(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 := &Object{} 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 err := p.VerboseEqual(msg); err != nil { 42 t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) 43 } 44 if !p.Equal(msg) { 45 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) 46 } 47 if len(littlefuzz) > 0 { 48 fuzzamount := 100 49 for i := 0; i < fuzzamount; i++ { 50 littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256)) 51 littlefuzz = append(littlefuzz, byte(popr.Intn(256))) 52 } 53 // shouldn't panic 54 _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg) 55 } 56 } 57 58 func TestObjectMarshalTo(t *testing.T) { 59 seed := time.Now().UnixNano() 60 popr := math_rand.New(math_rand.NewSource(seed)) 61 p := NewPopulatedObject(popr, false) 62 size := p.Size() 63 dAtA := make([]byte, size) 64 for i := range dAtA { 65 dAtA[i] = byte(popr.Intn(256)) 66 } 67 _, err := p.MarshalTo(dAtA) 68 if err != nil { 69 t.Fatalf("seed = %d, err = %v", seed, err) 70 } 71 msg := &Object{} 72 if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { 73 t.Fatalf("seed = %d, err = %v", seed, err) 74 } 75 for i := range dAtA { 76 dAtA[i] = byte(popr.Intn(256)) 77 } 78 if err := p.VerboseEqual(msg); err != nil { 79 t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) 80 } 81 if !p.Equal(msg) { 82 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) 83 } 84 } 85 86 func BenchmarkObjectProtoMarshal(b *testing.B) { 87 popr := math_rand.New(math_rand.NewSource(616)) 88 total := 0 89 pops := make([]*Object, 10000) 90 for i := 0; i < 10000; i++ { 91 pops[i] = NewPopulatedObject(popr, false) 92 } 93 b.ResetTimer() 94 for i := 0; i < b.N; i++ { 95 dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000]) 96 if err != nil { 97 panic(err) 98 } 99 total += len(dAtA) 100 } 101 b.SetBytes(int64(total / b.N)) 102 } 103 104 func BenchmarkObjectProtoUnmarshal(b *testing.B) { 105 popr := math_rand.New(math_rand.NewSource(616)) 106 total := 0 107 datas := make([][]byte, 10000) 108 for i := 0; i < 10000; i++ { 109 dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedObject(popr, false)) 110 if err != nil { 111 panic(err) 112 } 113 datas[i] = dAtA 114 } 115 msg := &Object{} 116 b.ResetTimer() 117 for i := 0; i < b.N; i++ { 118 total += len(datas[i%10000]) 119 if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil { 120 panic(err) 121 } 122 } 123 b.SetBytes(int64(total / b.N)) 124 } 125 126 func TestObjectJSON(t *testing.T) { 127 seed := time.Now().UnixNano() 128 popr := math_rand.New(math_rand.NewSource(seed)) 129 p := NewPopulatedObject(popr, true) 130 marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{} 131 jsondata, err := marshaler.MarshalToString(p) 132 if err != nil { 133 t.Fatalf("seed = %d, err = %v", seed, err) 134 } 135 msg := &Object{} 136 err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg) 137 if err != nil { 138 t.Fatalf("seed = %d, err = %v", seed, err) 139 } 140 if err := p.VerboseEqual(msg); err != nil { 141 t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) 142 } 143 if !p.Equal(msg) { 144 t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p) 145 } 146 } 147 func TestObjectProtoText(t *testing.T) { 148 seed := time.Now().UnixNano() 149 popr := math_rand.New(math_rand.NewSource(seed)) 150 p := NewPopulatedObject(popr, true) 151 dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p) 152 msg := &Object{} 153 if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { 154 t.Fatalf("seed = %d, err = %v", seed, err) 155 } 156 if err := p.VerboseEqual(msg); err != nil { 157 t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) 158 } 159 if !p.Equal(msg) { 160 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) 161 } 162 } 163 164 func TestObjectProtoCompactText(t *testing.T) { 165 seed := time.Now().UnixNano() 166 popr := math_rand.New(math_rand.NewSource(seed)) 167 p := NewPopulatedObject(popr, true) 168 dAtA := github_com_gogo_protobuf_proto.CompactTextString(p) 169 msg := &Object{} 170 if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil { 171 t.Fatalf("seed = %d, err = %v", seed, err) 172 } 173 if err := p.VerboseEqual(msg); err != nil { 174 t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err) 175 } 176 if !p.Equal(msg) { 177 t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p) 178 } 179 } 180 181 func TestObjectVerboseEqual(t *testing.T) { 182 popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) 183 p := NewPopulatedObject(popr, false) 184 dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) 185 if err != nil { 186 panic(err) 187 } 188 msg := &Object{} 189 if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil { 190 panic(err) 191 } 192 if err := p.VerboseEqual(msg); err != nil { 193 t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err) 194 } 195 } 196 func TestObjectGoString(t *testing.T) { 197 popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) 198 p := NewPopulatedObject(popr, false) 199 s1 := p.GoString() 200 s2 := fmt.Sprintf("%#v", p) 201 if s1 != s2 { 202 t.Fatalf("GoString want %v got %v", s1, s2) 203 } 204 _, err := go_parser.ParseExpr(s1) 205 if err != nil { 206 t.Fatal(err) 207 } 208 } 209 func TestObjectSize(t *testing.T) { 210 seed := time.Now().UnixNano() 211 popr := math_rand.New(math_rand.NewSource(seed)) 212 p := NewPopulatedObject(popr, true) 213 size2 := github_com_gogo_protobuf_proto.Size(p) 214 dAtA, err := github_com_gogo_protobuf_proto.Marshal(p) 215 if err != nil { 216 t.Fatalf("seed = %d, err = %v", seed, err) 217 } 218 size := p.Size() 219 if len(dAtA) != size { 220 t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA)) 221 } 222 if size2 != size { 223 t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2) 224 } 225 size3 := github_com_gogo_protobuf_proto.Size(p) 226 if size3 != size { 227 t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3) 228 } 229 } 230 231 func BenchmarkObjectSize(b *testing.B) { 232 popr := math_rand.New(math_rand.NewSource(616)) 233 total := 0 234 pops := make([]*Object, 1000) 235 for i := 0; i < 1000; i++ { 236 pops[i] = NewPopulatedObject(popr, false) 237 } 238 b.ResetTimer() 239 for i := 0; i < b.N; i++ { 240 total += pops[i%1000].Size() 241 } 242 b.SetBytes(int64(total / b.N)) 243 } 244 245 func TestObjectStringer(t *testing.T) { 246 popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano())) 247 p := NewPopulatedObject(popr, false) 248 s1 := p.String() 249 s2 := fmt.Sprintf("%v", p) 250 if s1 != s2 { 251 t.Fatalf("String want %v got %v", s1, s2) 252 } 253 } 254 255 //These tests are generated by github.com/gogo/protobuf/plugin/testgen