queue := newBuildQueue()
queue.AddLeaf(4)
queue.AddLeaf(5)
- queue.AddMerge(nodeKey{1, 2})
- queue.AddMerge(nodeKey{1, 1})
+ queue.AddMerge(NodeKey{1, 2})
+ queue.AddMerge(NodeKey{1, 1})
+
+ var order []NodeKey
- var order []nodeKey
for {
key, ready := queue.Next()
if !ready {
order = append(order, key)
}
- require.Equal(t, []nodeKey{{1, 1}, {0, 4}, {0, 5}, {1, 2}}, order)
+ require.Equal(t, []NodeKey{{1, 1}, {0, 4}, {0, 5}, {1, 2}}, order)
}
func TestQueueRetriesAFailedMergeAtTheNextMessage(t *testing.T) {
queue := newBuildQueue()
- queue.AddMerge(nodeKey{1, 0})
+ queue.AddMerge(NodeKey{1, 0})
key, ready := queue.Next()
require.True(t, ready)
queue.Fail(key)
+
_, ready = queue.Next()
require.False(t, ready)
queue.Retry()
+
key, ready = queue.Next()
require.True(t, ready)
- require.Equal(t, nodeKey{1, 0}, key)
+ require.Equal(t, NodeKey{1, 0}, key)
queue.Done(key)
- queue.AddMerge(nodeKey{1, 0})
+ queue.AddMerge(NodeKey{1, 0})
+
_, ready = queue.Next()
require.True(t, ready)
}