datapb_test.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. // Code generated by protoc-gen-gogo. DO NOT EDIT.
  2. // source: data.proto
  3. /*
  4. Package data is a generated protocol buffer package.
  5. It is generated from these files:
  6. data.proto
  7. It has these top-level messages:
  8. MyMessage
  9. */
  10. package data
  11. import testing "testing"
  12. import math_rand "math/rand"
  13. import time "time"
  14. import github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
  15. import github_com_gogo_protobuf_jsonpb "github.com/gogo/protobuf/jsonpb"
  16. import fmt "fmt"
  17. import go_parser "go/parser"
  18. import proto "github.com/gogo/protobuf/proto"
  19. import math "math"
  20. import _ "github.com/gogo/protobuf/gogoproto"
  21. // Reference imports to suppress errors if they are not otherwise used.
  22. var _ = proto.Marshal
  23. var _ = fmt.Errorf
  24. var _ = math.Inf
  25. func TestMyMessageProto(t *testing.T) {
  26. seed := time.Now().UnixNano()
  27. popr := math_rand.New(math_rand.NewSource(seed))
  28. p := NewPopulatedMyMessage(popr, false)
  29. dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
  30. if err != nil {
  31. t.Fatalf("seed = %d, err = %v", seed, err)
  32. }
  33. msg := &MyMessage{}
  34. if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
  35. t.Fatalf("seed = %d, err = %v", seed, err)
  36. }
  37. littlefuzz := make([]byte, len(dAtA))
  38. copy(littlefuzz, dAtA)
  39. for i := range dAtA {
  40. dAtA[i] = byte(popr.Intn(256))
  41. }
  42. if err := p.VerboseEqual(msg); err != nil {
  43. t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)
  44. }
  45. if !p.Equal(msg) {
  46. t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
  47. }
  48. if len(littlefuzz) > 0 {
  49. fuzzamount := 100
  50. for i := 0; i < fuzzamount; i++ {
  51. littlefuzz[popr.Intn(len(littlefuzz))] = byte(popr.Intn(256))
  52. littlefuzz = append(littlefuzz, byte(popr.Intn(256)))
  53. }
  54. // shouldn't panic
  55. _ = github_com_gogo_protobuf_proto.Unmarshal(littlefuzz, msg)
  56. }
  57. }
  58. func TestMyMessageMarshalTo(t *testing.T) {
  59. seed := time.Now().UnixNano()
  60. popr := math_rand.New(math_rand.NewSource(seed))
  61. p := NewPopulatedMyMessage(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 := &MyMessage{}
  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. func BenchmarkMyMessageProtoMarshal(b *testing.B) {
  86. popr := math_rand.New(math_rand.NewSource(616))
  87. total := 0
  88. pops := make([]*MyMessage, 10000)
  89. for i := 0; i < 10000; i++ {
  90. pops[i] = NewPopulatedMyMessage(popr, false)
  91. }
  92. b.ResetTimer()
  93. for i := 0; i < b.N; i++ {
  94. dAtA, err := github_com_gogo_protobuf_proto.Marshal(pops[i%10000])
  95. if err != nil {
  96. panic(err)
  97. }
  98. total += len(dAtA)
  99. }
  100. b.SetBytes(int64(total / b.N))
  101. }
  102. func BenchmarkMyMessageProtoUnmarshal(b *testing.B) {
  103. popr := math_rand.New(math_rand.NewSource(616))
  104. total := 0
  105. datas := make([][]byte, 10000)
  106. for i := 0; i < 10000; i++ {
  107. dAtA, err := github_com_gogo_protobuf_proto.Marshal(NewPopulatedMyMessage(popr, false))
  108. if err != nil {
  109. panic(err)
  110. }
  111. datas[i] = dAtA
  112. }
  113. msg := &MyMessage{}
  114. b.ResetTimer()
  115. for i := 0; i < b.N; i++ {
  116. total += len(datas[i%10000])
  117. if err := github_com_gogo_protobuf_proto.Unmarshal(datas[i%10000], msg); err != nil {
  118. panic(err)
  119. }
  120. }
  121. b.SetBytes(int64(total / b.N))
  122. }
  123. func TestMyMessageJSON(t *testing.T) {
  124. seed := time.Now().UnixNano()
  125. popr := math_rand.New(math_rand.NewSource(seed))
  126. p := NewPopulatedMyMessage(popr, true)
  127. marshaler := github_com_gogo_protobuf_jsonpb.Marshaler{}
  128. jsondata, err := marshaler.MarshalToString(p)
  129. if err != nil {
  130. t.Fatalf("seed = %d, err = %v", seed, err)
  131. }
  132. msg := &MyMessage{}
  133. err = github_com_gogo_protobuf_jsonpb.UnmarshalString(jsondata, msg)
  134. if err != nil {
  135. t.Fatalf("seed = %d, err = %v", seed, err)
  136. }
  137. if err := p.VerboseEqual(msg); err != nil {
  138. t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)
  139. }
  140. if !p.Equal(msg) {
  141. t.Fatalf("seed = %d, %#v !Json Equal %#v", seed, msg, p)
  142. }
  143. }
  144. func TestMyMessageProtoText(t *testing.T) {
  145. seed := time.Now().UnixNano()
  146. popr := math_rand.New(math_rand.NewSource(seed))
  147. p := NewPopulatedMyMessage(popr, true)
  148. dAtA := github_com_gogo_protobuf_proto.MarshalTextString(p)
  149. msg := &MyMessage{}
  150. if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
  151. t.Fatalf("seed = %d, err = %v", seed, err)
  152. }
  153. if err := p.VerboseEqual(msg); err != nil {
  154. t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)
  155. }
  156. if !p.Equal(msg) {
  157. t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
  158. }
  159. }
  160. func TestMyMessageProtoCompactText(t *testing.T) {
  161. seed := time.Now().UnixNano()
  162. popr := math_rand.New(math_rand.NewSource(seed))
  163. p := NewPopulatedMyMessage(popr, true)
  164. dAtA := github_com_gogo_protobuf_proto.CompactTextString(p)
  165. msg := &MyMessage{}
  166. if err := github_com_gogo_protobuf_proto.UnmarshalText(dAtA, msg); err != nil {
  167. t.Fatalf("seed = %d, err = %v", seed, err)
  168. }
  169. if err := p.VerboseEqual(msg); err != nil {
  170. t.Fatalf("seed = %d, %#v !VerboseProto %#v, since %v", seed, msg, p, err)
  171. }
  172. if !p.Equal(msg) {
  173. t.Fatalf("seed = %d, %#v !Proto %#v", seed, msg, p)
  174. }
  175. }
  176. func TestMyMessageVerboseEqual(t *testing.T) {
  177. popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
  178. p := NewPopulatedMyMessage(popr, false)
  179. dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
  180. if err != nil {
  181. panic(err)
  182. }
  183. msg := &MyMessage{}
  184. if err := github_com_gogo_protobuf_proto.Unmarshal(dAtA, msg); err != nil {
  185. panic(err)
  186. }
  187. if err := p.VerboseEqual(msg); err != nil {
  188. t.Fatalf("%#v !VerboseEqual %#v, since %v", msg, p, err)
  189. }
  190. }
  191. func TestMyMessageGoString(t *testing.T) {
  192. popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
  193. p := NewPopulatedMyMessage(popr, false)
  194. s1 := p.GoString()
  195. s2 := fmt.Sprintf("%#v", p)
  196. if s1 != s2 {
  197. t.Fatalf("GoString want %v got %v", s1, s2)
  198. }
  199. _, err := go_parser.ParseExpr(s1)
  200. if err != nil {
  201. t.Fatal(err)
  202. }
  203. }
  204. func TestMyMessageSize(t *testing.T) {
  205. seed := time.Now().UnixNano()
  206. popr := math_rand.New(math_rand.NewSource(seed))
  207. p := NewPopulatedMyMessage(popr, true)
  208. size2 := github_com_gogo_protobuf_proto.Size(p)
  209. dAtA, err := github_com_gogo_protobuf_proto.Marshal(p)
  210. if err != nil {
  211. t.Fatalf("seed = %d, err = %v", seed, err)
  212. }
  213. size := p.Size()
  214. if len(dAtA) != size {
  215. t.Errorf("seed = %d, size %v != marshalled size %v", seed, size, len(dAtA))
  216. }
  217. if size2 != size {
  218. t.Errorf("seed = %d, size %v != before marshal proto.Size %v", seed, size, size2)
  219. }
  220. size3 := github_com_gogo_protobuf_proto.Size(p)
  221. if size3 != size {
  222. t.Errorf("seed = %d, size %v != after marshal proto.Size %v", seed, size, size3)
  223. }
  224. }
  225. func BenchmarkMyMessageSize(b *testing.B) {
  226. popr := math_rand.New(math_rand.NewSource(616))
  227. total := 0
  228. pops := make([]*MyMessage, 1000)
  229. for i := 0; i < 1000; i++ {
  230. pops[i] = NewPopulatedMyMessage(popr, false)
  231. }
  232. b.ResetTimer()
  233. for i := 0; i < b.N; i++ {
  234. total += pops[i%1000].Size()
  235. }
  236. b.SetBytes(int64(total / b.N))
  237. }
  238. func TestMyMessageStringer(t *testing.T) {
  239. popr := math_rand.New(math_rand.NewSource(time.Now().UnixNano()))
  240. p := NewPopulatedMyMessage(popr, false)
  241. s1 := p.String()
  242. s2 := fmt.Sprintf("%v", p)
  243. if s1 != s2 {
  244. t.Fatalf("String want %v got %v", s1, s2)
  245. }
  246. }
  247. //These tests are generated by github.com/gogo/protobuf/plugin/testgen