OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package memory | 5 package memory |
6 | 6 |
7 import ( | 7 import ( |
8 "bytes" | 8 "bytes" |
9 "testing" | 9 "testing" |
10 | 10 |
(...skipping 16 matching lines...) Expand all Loading... |
27 ret, _, err := cmpbin.ReadInt(bytes.NewBuffer(data)) | 27 ret, _, err := cmpbin.ReadInt(bytes.NewBuffer(data)) |
28 memoryCorruption(err) | 28 memoryCorruption(err) |
29 | 29 |
30 return ret | 30 return ret |
31 } | 31 } |
32 | 32 |
33 func TestIterator(t *testing.T) { | 33 func TestIterator(t *testing.T) { |
34 t.Parallel() | 34 t.Parallel() |
35 | 35 |
36 s := newMemStore() | 36 s := newMemStore() |
37 » c := s.SetCollection("zup", nil) | 37 » c := s.GetOrCreateCollection("zup") |
38 prev := []byte{} | 38 prev := []byte{} |
39 for i := 5; i < 100; i++ { | 39 for i := 5; i < 100; i++ { |
40 data := mkNum(int64(i)) | 40 data := mkNum(int64(i)) |
41 c.Set(data, prev) | 41 c.Set(data, prev) |
42 prev = data | 42 prev = data |
43 } | 43 } |
| 44 c = s.Snapshot().GetCollection("zup") |
44 | 45 |
45 get := func(c C, t *iterator) interface{} { | 46 get := func(c C, t *iterator) interface{} { |
46 ret := interface{}(nil) | 47 ret := interface{}(nil) |
47 t.next(nil, func(i *gkvlite.Item) { | 48 t.next(nil, func(i *gkvlite.Item) { |
48 if i != nil { | 49 if i != nil { |
49 ret = readNum(i.Key) | 50 ret = readNum(i.Key) |
50 } | 51 } |
51 }) | 52 }) |
52 return ret | 53 return ret |
53 } | 54 } |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 for i, nms := range otherVals { | 185 for i, nms := range otherVals { |
185 numbs := make([][]byte, len(nms)) | 186 numbs := make([][]byte, len(nms)) |
186 for i, n := range nms { | 187 for i, n := range nms { |
187 numbs[i] = mkNum(n) | 188 numbs[i] = mkNum(n) |
188 } | 189 } |
189 otherValBytes[i] = serialize.Join(numbs...) | 190 otherValBytes[i] = serialize.Join(numbs...) |
190 } | 191 } |
191 | 192 |
192 Convey("Test MultiIterator", t, func() { | 193 Convey("Test MultiIterator", t, func() { |
193 s := newMemStore() | 194 s := newMemStore() |
194 » » c := s.SetCollection("zup1", nil) | 195 » » c := s.GetOrCreateCollection("zup1") |
195 for _, row := range valBytes { | 196 for _, row := range valBytes { |
196 c.Set(row, []byte{}) | 197 c.Set(row, []byte{}) |
197 } | 198 } |
198 » » c2 := s.SetCollection("zup2", nil) | 199 » » c2 := s.GetOrCreateCollection("zup2") |
199 for _, row := range otherValBytes { | 200 for _, row := range otherValBytes { |
200 c2.Set(row, []byte{}) | 201 c2.Set(row, []byte{}) |
201 } | 202 } |
| 203 c = s.Snapshot().GetCollection("zup1") |
| 204 c2 = s.Snapshot().GetCollection("zup2") |
202 | 205 |
203 Convey("can join the same collection twice", func() { | 206 Convey("can join the same collection twice", func() { |
204 // get just the (1, *) | 207 // get just the (1, *) |
205 // starting at (1, 2) (i.e. >= 2) | 208 // starting at (1, 2) (i.e. >= 2) |
206 // ending at (1, 4) (i.e. < 7) | 209 // ending at (1, 4) (i.e. < 7) |
207 defs := []*iterDefinition{ | 210 defs := []*iterDefinition{ |
208 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, | 211 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, |
209 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, | 212 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, |
210 } | 213 } |
211 | 214 |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 So(readNum(suffix), ShouldEqual, vals[i][1]) | 274 So(readNum(suffix), ShouldEqual, vals[i][1]) |
272 i++ | 275 i++ |
273 return datastore.Stop | 276 return datastore.Stop |
274 }), shouldBeSuccessful) | 277 }), shouldBeSuccessful) |
275 So(i, ShouldEqual, 1) | 278 So(i, ShouldEqual, 1) |
276 }) | 279 }) |
277 | 280 |
278 }) | 281 }) |
279 | 282 |
280 } | 283 } |
OLD | NEW |