mirror of
				https://github.com/minio/minio.git
				synced 2025-10-31 08:11:19 +01:00 
			
		
		
		
	This PR improves the replication failure healing by persisting most recent failures to disk and re-queuing them until the replication is successful. While this does not eliminate the need for healing during a full scan, queuing MRF vastly improves the ETA to keeping replicated buckets in sync as it does not wait for the scanner visit to detect unreplicated object versions.
		
			
				
	
	
		
			1141 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			1141 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package cmd
 | |
| 
 | |
| // Code generated by github.com/tinylib/msgp DO NOT EDIT.
 | |
| 
 | |
| import (
 | |
| 	"bytes"
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/tinylib/msgp/msgp"
 | |
| )
 | |
| 
 | |
| func TestMarshalUnmarshalBucketReplicationResyncStatus(t *testing.T) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgBucketReplicationResyncStatus(b *testing.B) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgBucketReplicationResyncStatus(b *testing.B) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalBucketReplicationResyncStatus(b *testing.B) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeBucketReplicationResyncStatus(t *testing.T) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeBucketReplicationResyncStatus Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := BucketReplicationResyncStatus{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeBucketReplicationResyncStatus(b *testing.B) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeBucketReplicationResyncStatus(b *testing.B) {
 | |
| 	v := BucketReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalMRFReplicateEntries(t *testing.T) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgMRFReplicateEntries(b *testing.B) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgMRFReplicateEntries(b *testing.B) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalMRFReplicateEntries(b *testing.B) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeMRFReplicateEntries(t *testing.T) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeMRFReplicateEntries Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := MRFReplicateEntries{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeMRFReplicateEntries(b *testing.B) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeMRFReplicateEntries(b *testing.B) {
 | |
| 	v := MRFReplicateEntries{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalMRFReplicateEntry(t *testing.T) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgMRFReplicateEntry(b *testing.B) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgMRFReplicateEntry(b *testing.B) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalMRFReplicateEntry(b *testing.B) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeMRFReplicateEntry(t *testing.T) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeMRFReplicateEntry Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := MRFReplicateEntry{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeMRFReplicateEntry(b *testing.B) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeMRFReplicateEntry(b *testing.B) {
 | |
| 	v := MRFReplicateEntry{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalReplicateDecision(t *testing.T) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgReplicateDecision(b *testing.B) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgReplicateDecision(b *testing.B) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalReplicateDecision(b *testing.B) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeReplicateDecision(t *testing.T) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeReplicateDecision Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ReplicateDecision{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeReplicateDecision(b *testing.B) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeReplicateDecision(b *testing.B) {
 | |
| 	v := ReplicateDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalReplicationState(t *testing.T) {
 | |
| 	v := ReplicationState{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgReplicationState(b *testing.B) {
 | |
| 	v := ReplicationState{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgReplicationState(b *testing.B) {
 | |
| 	v := ReplicationState{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalReplicationState(b *testing.B) {
 | |
| 	v := ReplicationState{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeReplicationState(t *testing.T) {
 | |
| 	v := ReplicationState{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeReplicationState Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ReplicationState{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeReplicationState(b *testing.B) {
 | |
| 	v := ReplicationState{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeReplicationState(b *testing.B) {
 | |
| 	v := ReplicationState{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalResyncDecision(t *testing.T) {
 | |
| 	v := ResyncDecision{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgResyncDecision(b *testing.B) {
 | |
| 	v := ResyncDecision{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgResyncDecision(b *testing.B) {
 | |
| 	v := ResyncDecision{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalResyncDecision(b *testing.B) {
 | |
| 	v := ResyncDecision{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeResyncDecision(t *testing.T) {
 | |
| 	v := ResyncDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeResyncDecision Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ResyncDecision{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeResyncDecision(b *testing.B) {
 | |
| 	v := ResyncDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeResyncDecision(b *testing.B) {
 | |
| 	v := ResyncDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalResyncTarget(t *testing.T) {
 | |
| 	v := ResyncTarget{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgResyncTarget(b *testing.B) {
 | |
| 	v := ResyncTarget{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgResyncTarget(b *testing.B) {
 | |
| 	v := ResyncTarget{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalResyncTarget(b *testing.B) {
 | |
| 	v := ResyncTarget{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeResyncTarget(t *testing.T) {
 | |
| 	v := ResyncTarget{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeResyncTarget Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ResyncTarget{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeResyncTarget(b *testing.B) {
 | |
| 	v := ResyncTarget{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeResyncTarget(b *testing.B) {
 | |
| 	v := ResyncTarget{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalResyncTargetDecision(t *testing.T) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgResyncTargetDecision(b *testing.B) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgResyncTargetDecision(b *testing.B) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalResyncTargetDecision(b *testing.B) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeResyncTargetDecision(t *testing.T) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeResyncTargetDecision Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ResyncTargetDecision{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeResyncTargetDecision(b *testing.B) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeResyncTargetDecision(b *testing.B) {
 | |
| 	v := ResyncTargetDecision{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalResyncTargetsInfo(t *testing.T) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgResyncTargetsInfo(b *testing.B) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgResyncTargetsInfo(b *testing.B) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalResyncTargetsInfo(b *testing.B) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeResyncTargetsInfo(t *testing.T) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeResyncTargetsInfo Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := ResyncTargetsInfo{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeResyncTargetsInfo(b *testing.B) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeResyncTargetsInfo(b *testing.B) {
 | |
| 	v := ResyncTargetsInfo{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestMarshalUnmarshalTargetReplicationResyncStatus(t *testing.T) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	bts, err := v.MarshalMsg(nil)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	left, err := v.UnmarshalMsg(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after UnmarshalMsg(): %q", len(left), left)
 | |
| 	}
 | |
| 
 | |
| 	left, err = msgp.Skip(bts)
 | |
| 	if err != nil {
 | |
| 		t.Fatal(err)
 | |
| 	}
 | |
| 	if len(left) > 0 {
 | |
| 		t.Errorf("%d bytes left over after Skip(): %q", len(left), left)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkMarshalMsgTargetReplicationResyncStatus(b *testing.B) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.MarshalMsg(nil)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkAppendMsgTargetReplicationResyncStatus(b *testing.B) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	bts := make([]byte, 0, v.Msgsize())
 | |
| 	bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		bts, _ = v.MarshalMsg(bts[0:0])
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkUnmarshalTargetReplicationResyncStatus(b *testing.B) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	bts, _ := v.MarshalMsg(nil)
 | |
| 	b.ReportAllocs()
 | |
| 	b.SetBytes(int64(len(bts)))
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		_, err := v.UnmarshalMsg(bts)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestEncodeDecodeTargetReplicationResyncStatus(t *testing.T) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 
 | |
| 	m := v.Msgsize()
 | |
| 	if buf.Len() > m {
 | |
| 		t.Log("WARNING: TestEncodeDecodeTargetReplicationResyncStatus Msgsize() is inaccurate")
 | |
| 	}
 | |
| 
 | |
| 	vn := TargetReplicationResyncStatus{}
 | |
| 	err := msgp.Decode(&buf, &vn)
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| 
 | |
| 	buf.Reset()
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	err = msgp.NewReader(&buf).Skip()
 | |
| 	if err != nil {
 | |
| 		t.Error(err)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func BenchmarkEncodeTargetReplicationResyncStatus(b *testing.B) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	en := msgp.NewWriter(msgp.Nowhere)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		v.EncodeMsg(en)
 | |
| 	}
 | |
| 	en.Flush()
 | |
| }
 | |
| 
 | |
| func BenchmarkDecodeTargetReplicationResyncStatus(b *testing.B) {
 | |
| 	v := TargetReplicationResyncStatus{}
 | |
| 	var buf bytes.Buffer
 | |
| 	msgp.Encode(&buf, &v)
 | |
| 	b.SetBytes(int64(buf.Len()))
 | |
| 	rd := msgp.NewEndlessReader(buf.Bytes(), b)
 | |
| 	dc := msgp.NewReader(rd)
 | |
| 	b.ReportAllocs()
 | |
| 	b.ResetTimer()
 | |
| 	for i := 0; i < b.N; i++ {
 | |
| 		err := v.DecodeMsg(dc)
 | |
| 		if err != nil {
 | |
| 			b.Fatal(err)
 | |
| 		}
 | |
| 	}
 | |
| }
 |