From 87b5143b153c0de1626243ec6145284eba2a4fcf Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Thu, 17 Sep 2015 19:03:31 -0700 Subject: [PATCH] storage: fix missing continue in keyIndex.since It should continue to skip following operations. The test from rev14 to rev0 fails if it doesn't call continue and append all revisions of the same main rev to the list. --- storage/key_index.go | 1 + storage/key_index_test.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/storage/key_index.go b/storage/key_index.go index 961ff5b3a..2463a9810 100644 --- a/storage/key_index.go +++ b/storage/key_index.go @@ -177,6 +177,7 @@ func (ki *keyIndex) since(rev int64) []revision { // replace the revision with a new one that has higher sub value, // because the original one should not be seen by external revs[len(revs)-1] = r + continue } revs = append(revs, r) last = r.main diff --git a/storage/key_index_test.go b/storage/key_index_test.go index c611327a1..01d903315 100644 --- a/storage/key_index_test.go +++ b/storage/key_index_test.go @@ -97,6 +97,21 @@ func TestKeyIndexSince(t *testing.T) { {17, nil}, {16, allRevs[6:]}, {15, allRevs[6:]}, + {14, allRevs[5:]}, + {13, allRevs[5:]}, + {12, allRevs[4:]}, + {11, allRevs[4:]}, + {10, allRevs[3:]}, + {9, allRevs[3:]}, + {8, allRevs[2:]}, + {7, allRevs[2:]}, + {6, allRevs[1:]}, + {5, allRevs[1:]}, + {4, allRevs}, + {3, allRevs}, + {2, allRevs}, + {1, allRevs}, + {0, allRevs}, } for i, tt := range tests {