Browse Source

Merge pull request #990 from coreos/fix_node_test

Fix node test
Xiang Li 11 years ago
parent
commit
25ee66c6c7
2 changed files with 12 additions and 17 deletions
  1. 1 0
      raft/node.go
  2. 11 17
      raft/node_test.go

+ 1 - 0
raft/node.go

@@ -71,6 +71,7 @@ func (n *Node) run(r *raft) {
 
 	var lead int64
 	var prev Ready
+	prev.Vote = none
 	for {
 		if lead != r.lead {
 			log.Printf("raft: leader changed from %#x to %#x", lead, r.lead)

+ 11 - 17
raft/node_test.go

@@ -12,17 +12,7 @@ func TestNode(t *testing.T) {
 	ctx, cancel := context.WithCancel(context.Background())
 	defer cancel()
 
-	n := Start(1, []int64{1}, 0, 0)
-	ch := make(chan Ready)
-	go func() {
-		for {
-			ch <- <-n.Ready()
-		}
-	}()
-	n.Campaign(ctx)
-	n.Propose(ctx, []byte("foo"))
-
-	want := []Ready{
+	wants := []Ready{
 		{
 			State:            raftpb.State{Term: 1, Vote: -1, Commit: 1, LastIndex: 1},
 			Entries:          []raftpb.Entry{{Term: 1, Index: 1}},
@@ -35,16 +25,20 @@ func TestNode(t *testing.T) {
 		},
 	}
 
-	for i, w := range want {
-		if g := <-ch; !reflect.DeepEqual(g, w) {
-			t.Errorf("#%d: g = %+v,\n             w   %+v", i, g, w)
-		}
+	n := Start(1, []int64{1}, 0, 0)
+	n.Campaign(ctx)
+	if g := <-n.Ready(); !reflect.DeepEqual(g, wants[0]) {
+		t.Errorf("#%d: g = %+v,\n             w   %+v", 1, g, wants[0])
+	}
+
+	n.Propose(ctx, []byte("foo"))
+	if g := <-n.Ready(); !reflect.DeepEqual(g, wants[1]) {
+		t.Errorf("#%d: g = %+v,\n             w   %+v", 2, g, wants[1])
 	}
 
 	select {
-	case rd := <-ch:
+	case rd := <-n.Ready():
 		t.Errorf("unexpected Ready: %+v", rd)
 	default:
 	}
-
 }