...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package rafttest
16
17 import (
18 "fmt"
19 "math"
20 "testing"
21
22 "github.com/cockroachdb/datadriven"
23 "go.etcd.io/etcd/raft/v3"
24 )
25
26 func (env *InteractionEnv) handleRaftLog(t *testing.T, d datadriven.TestData) error {
27 idx := firstAsNodeIdx(t, d)
28 return env.RaftLog(idx)
29 }
30
31
32 func (env *InteractionEnv) RaftLog(idx int) error {
33 s := env.Nodes[idx].Storage
34 fi, err := s.FirstIndex()
35 if err != nil {
36 return err
37 }
38 li, err := s.LastIndex()
39 if err != nil {
40 return err
41 }
42 if li < fi {
43
44
45 fmt.Fprintf(env.Output, "log is empty: first index=%d, last index=%d", fi, li)
46 return nil
47 }
48 ents, err := s.Entries(fi, li+1, math.MaxUint64)
49 if err != nil {
50 return err
51 }
52 env.Output.WriteString(raft.DescribeEntries(ents, defaultEntryFormatter))
53 return err
54 }
55
View as plain text