| 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 defs := []*iterDefinition{ | 207 defs := []*iterDefinition{ |
| 208 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, | 208 {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)}, | 209 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
), start: mkNum(2), end: mkNum(7)}, |
| 210 } | 210 } |
| 211 | 211 |
| 212 i := 1 | 212 i := 1 |
| 213 So(multiIterate(defs, func(suffix []byte) error { | 213 So(multiIterate(defs, func(suffix []byte) error { |
| 214 So(readNum(suffix), ShouldEqual, vals[i][1]) | 214 So(readNum(suffix), ShouldEqual, vals[i][1]) |
| 215 i++ | 215 i++ |
| 216 return nil | 216 return nil |
| 217 » » » }), ShouldBeNil) | 217 » » » }), shouldBeSuccessful) |
| 218 | 218 |
| 219 So(i, ShouldEqual, 3) | 219 So(i, ShouldEqual, 3) |
| 220 }) | 220 }) |
| 221 | 221 |
| 222 Convey("can make empty iteration", func() { | 222 Convey("can make empty iteration", func() { |
| 223 // get just the (20, *) (doesn't exist) | 223 // get just the (20, *) (doesn't exist) |
| 224 defs := []*iterDefinition{ | 224 defs := []*iterDefinition{ |
| 225 {c: c, prefix: mkNum(20)}, | 225 {c: c, prefix: mkNum(20)}, |
| 226 {c: c, prefix: mkNum(20)}, | 226 {c: c, prefix: mkNum(20)}, |
| 227 } | 227 } |
| 228 | 228 |
| 229 i := 0 | 229 i := 0 |
| 230 So(multiIterate(defs, func(suffix []byte) error { | 230 So(multiIterate(defs, func(suffix []byte) error { |
| 231 panic("never") | 231 panic("never") |
| 232 » » » }), ShouldBeNil) | 232 » » » }), shouldBeSuccessful) |
| 233 | 233 |
| 234 So(i, ShouldEqual, 0) | 234 So(i, ShouldEqual, 0) |
| 235 }) | 235 }) |
| 236 | 236 |
| 237 Convey("can join (other, val, val)", func() { | 237 Convey("can join (other, val, val)", func() { |
| 238 // 'other' must start with 20, 'vals' must start with 1 | 238 // 'other' must start with 20, 'vals' must start with 1 |
| 239 // no range constraints | 239 // no range constraints |
| 240 defs := []*iterDefinition{ | 240 defs := []*iterDefinition{ |
| 241 {c: c2, prefix: mkNum(20)}, | 241 {c: c2, prefix: mkNum(20)}, |
| 242 {c: c, prefix: mkNum(1)}, | 242 {c: c, prefix: mkNum(1)}, |
| 243 {c: c, prefix: mkNum(1)}, | 243 {c: c, prefix: mkNum(1)}, |
| 244 } | 244 } |
| 245 | 245 |
| 246 expect := []int64{2, 4} | 246 expect := []int64{2, 4} |
| 247 i := 0 | 247 i := 0 |
| 248 So(multiIterate(defs, func(suffix []byte) error { | 248 So(multiIterate(defs, func(suffix []byte) error { |
| 249 So(readNum(suffix), ShouldEqual, expect[i]) | 249 So(readNum(suffix), ShouldEqual, expect[i]) |
| 250 i++ | 250 i++ |
| 251 return nil | 251 return nil |
| 252 » » » }), ShouldBeNil) | 252 » » » }), shouldBeSuccessful) |
| 253 }) | 253 }) |
| 254 | 254 |
| 255 Convey("Can stop early", func() { | 255 Convey("Can stop early", func() { |
| 256 defs := []*iterDefinition{ | 256 defs := []*iterDefinition{ |
| 257 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
)}, | 257 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
)}, |
| 258 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
)}, | 258 {c: c, prefix: mkNum(1), prefixLen: len(mkNum(1)
)}, |
| 259 } | 259 } |
| 260 | 260 |
| 261 i := 0 | 261 i := 0 |
| 262 So(multiIterate(defs, func(suffix []byte) error { | 262 So(multiIterate(defs, func(suffix []byte) error { |
| 263 So(readNum(suffix), ShouldEqual, vals[i][1]) | 263 So(readNum(suffix), ShouldEqual, vals[i][1]) |
| 264 i++ | 264 i++ |
| 265 return nil | 265 return nil |
| 266 » » » }), ShouldBeNil) | 266 » » » }), shouldBeSuccessful) |
| 267 So(i, ShouldEqual, 5) | 267 So(i, ShouldEqual, 5) |
| 268 | 268 |
| 269 i = 0 | 269 i = 0 |
| 270 So(multiIterate(defs, func(suffix []byte) error { | 270 So(multiIterate(defs, func(suffix []byte) error { |
| 271 So(readNum(suffix), ShouldEqual, vals[i][1]) | 271 So(readNum(suffix), ShouldEqual, vals[i][1]) |
| 272 i++ | 272 i++ |
| 273 return datastore.Stop | 273 return datastore.Stop |
| 274 » » » }), ShouldBeNil) | 274 » » » }), shouldBeSuccessful) |
| 275 So(i, ShouldEqual, 1) | 275 So(i, ShouldEqual, 1) |
| 276 }) | 276 }) |
| 277 | 277 |
| 278 }) | 278 }) |
| 279 | 279 |
| 280 } | 280 } |
| OLD | NEW |