...

Source file src/go.etcd.io/etcd/server/v3/wal/walpb/record_test.go

Documentation: go.etcd.io/etcd/server/v3/wal/walpb

     1  package walpb
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/golang/protobuf/descriptor"
     7  	"go.etcd.io/etcd/raft/v3/raftpb"
     8  )
     9  
    10  func TestSnapshotMetadataCompatibility(t *testing.T) {
    11  	_, snapshotMetadataMd := descriptor.ForMessage(&raftpb.SnapshotMetadata{})
    12  	_, snapshotMd := descriptor.ForMessage(&Snapshot{})
    13  	if len(snapshotMetadataMd.GetField()) != len(snapshotMd.GetField()) {
    14  		t.Errorf("Different number of fields in raftpb.SnapshotMetadata vs. walpb.Snapshot. " +
    15  			"They are supposed to be in sync.")
    16  	}
    17  }
    18  
    19  func TestValidateSnapshot(t *testing.T) {
    20  	tests := []struct {
    21  		name    string
    22  		snap    *Snapshot
    23  		wantErr bool
    24  	}{
    25  		{name: "empty", snap: &Snapshot{}, wantErr: false},
    26  		{name: "invalid", snap: &Snapshot{Index: 5, Term: 3}, wantErr: true},
    27  		{name: "valid", snap: &Snapshot{Index: 5, Term: 3, ConfState: &raftpb.ConfState{Voters: []uint64{0x00cad1}}}, wantErr: false},
    28  	}
    29  	for _, tt := range tests {
    30  		t.Run(tt.name, func(t *testing.T) {
    31  			if err := ValidateSnapshotForWrite(tt.snap); (err != nil) != tt.wantErr {
    32  				t.Errorf("ValidateSnapshotForWrite() error = %v, wantErr %v", err, tt.wantErr)
    33  			}
    34  		})
    35  	}
    36  }
    37  

View as plain text