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