(b *testing.B, v interface{})
| 465 | } |
| 466 | |
| 467 | func benchmarkDec(b *testing.B, v interface{}) { |
| 468 | var ( |
| 469 | r []byte |
| 470 | err error |
| 471 | |
| 472 | h = &codec.MsgpackHandle{ |
| 473 | WriteExt: true, |
| 474 | } |
| 475 | enc = codec.NewEncoderBytes(&r, h) |
| 476 | recvt = reflect.ValueOf(v).Elem().Type() |
| 477 | recvs = make([]interface{}, b.N) |
| 478 | ) |
| 479 | // Encode v and make receivers |
| 480 | if err = enc.Encode(v); err != nil { |
| 481 | b.Error(err) |
| 482 | } |
| 483 | for i := range recvs { |
| 484 | recvs[i] = reflect.New(recvt).Interface() |
| 485 | } |
| 486 | b.ResetTimer() |
| 487 | // Start benchmark |
| 488 | for i := 0; i < b.N; i++ { |
| 489 | var dec = codec.NewDecoder(bytes.NewReader(r), h) |
| 490 | if err = dec.Decode(recvs[i]); err != nil { |
| 491 | b.Error(err) |
| 492 | } |
| 493 | } |
| 494 | } |
| 495 | |
| 496 | type ver interface { |
| 497 | Verify() error |
no test coverage detected