Fixed crash in iterator Clone(), added test

This commit is contained in:
panamafrancis 2014-12-18 11:39:32 +00:00
parent a5aca090c1
commit 1ddc94c2e5
2 changed files with 14 additions and 1 deletions

View file

@ -190,7 +190,10 @@ func (it *Iterator) Clone() graph.Iterator {
m.tags.CopyFrom(it)
return m
}
m := NewIterator(it.qs, it.kind, it.dir, it.hash)
// Create a token, the tokens kind is ignored in creation of the iterator
t := &Token{nodeKind, it.hash}
m := NewIterator(it.qs, it.kind, it.dir, t)
m.tags.CopyFrom(it)
return m
}

View file

@ -254,6 +254,16 @@ func TestIterators(t *testing.T) {
if !it.Contains(token) {
t.Error("Contains failed")
}
// Test cloning an iterator
var it2 graph.Iterator
it2 = it.Clone()
x := it2.Describe()
y := it.Describe()
if x.Name != y.Name {
t.Errorf("Iterator Clone was not successful got: %v, expected: %v", x.Name, y.Name)
}
}
func TestIteratorsAndNextResultOrderA(t *testing.T) {