raft: fix node test

This commit is contained in:
Xiang Li
2014-09-04 11:18:09 -07:00
parent d7a289ee41
commit e30505d33b

View File

@@ -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:
}
}