| 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 "sort" | 8 "sort" |
| 9 "testing" | 9 "testing" |
| 10 "time" | 10 "time" |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 t.Parallel() | 236 t.Parallel() |
| 237 | 237 |
| 238 Convey("Test indexEntriesWithBuiltins", t, func() { | 238 Convey("Test indexEntriesWithBuiltins", t, func() { |
| 239 for _, tc := range rowGenTestCases { | 239 for _, tc := range rowGenTestCases { |
| 240 if tc.collections == nil { | 240 if tc.collections == nil { |
| 241 Convey(tc.name, nil) // shows up as 'skipped' | 241 Convey(tc.name, nil) // shows up as 'skipped' |
| 242 continue | 242 continue |
| 243 } | 243 } |
| 244 | 244 |
| 245 Convey(tc.name, func() { | 245 Convey(tc.name, func() { |
| 246 » » » » store := (*memStore)(nil) | 246 » » » » store := (memStore)(nil) |
| 247 if tc.withBuiltin { | 247 if tc.withBuiltin { |
| 248 store = indexEntriesWithBuiltins(fakeKey
, tc.pmap, tc.idxs) | 248 store = indexEntriesWithBuiltins(fakeKey
, tc.pmap, tc.idxs) |
| 249 } else { | 249 } else { |
| 250 sip := serialize.PropertyMapPartially(fa
keKey, tc.pmap) | 250 sip := serialize.PropertyMapPartially(fa
keKey, tc.pmap) |
| 251 store = indexEntries(sip, fakeKey.Namesp
ace(), tc.idxs) | 251 store = indexEntries(sip, fakeKey.Namesp
ace(), tc.idxs) |
| 252 } | 252 } |
| 253 for colName, vals := range tc.collections { | 253 for colName, vals := range tc.collections { |
| 254 i := 0 | 254 i := 0 |
| 255 » » » » » coll := store.GetCollection(colName) | 255 » » » » » coll := store.Snapshot().GetCollection(c
olName) |
| 256 numItems, _ := coll.GetTotals() | 256 numItems, _ := coll.GetTotals() |
| 257 So(numItems, ShouldEqual, len(tc.collect
ions[colName])) | 257 So(numItems, ShouldEqual, len(tc.collect
ions[colName])) |
| 258 coll.VisitItemsAscend(nil, true, func(it
m *gkvlite.Item) bool { | 258 coll.VisitItemsAscend(nil, true, func(it
m *gkvlite.Item) bool { |
| 259 So(itm.Key, ShouldResemble, vals
[i]) | 259 So(itm.Key, ShouldResemble, vals
[i]) |
| 260 i++ | 260 i++ |
| 261 return true | 261 return true |
| 262 }) | 262 }) |
| 263 So(i, ShouldEqual, len(vals)) | 263 So(i, ShouldEqual, len(vals)) |
| 264 } | 264 } |
| 265 }) | 265 }) |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 }, | 347 }, |
| 348 } | 348 } |
| 349 | 349 |
| 350 func TestUpdateIndexes(t *testing.T) { | 350 func TestUpdateIndexes(t *testing.T) { |
| 351 t.Parallel() | 351 t.Parallel() |
| 352 | 352 |
| 353 Convey("Test updateIndexes", t, func() { | 353 Convey("Test updateIndexes", t, func() { |
| 354 for _, tc := range updateIndexesTests { | 354 for _, tc := range updateIndexesTests { |
| 355 Convey(tc.name, func() { | 355 Convey(tc.name, func() { |
| 356 store := newMemStore() | 356 store := newMemStore() |
| 357 » » » » idxColl := store.SetCollection("idx", nil) | 357 » » » » idxColl := store.GetOrCreateCollection("idx") |
| 358 for _, i := range tc.idxs { | 358 for _, i := range tc.idxs { |
| 359 idxColl.Set(cat(i.PrepForIdxTable()), []
byte{}) | 359 idxColl.Set(cat(i.PrepForIdxTable()), []
byte{}) |
| 360 } | 360 } |
| 361 | 361 |
| 362 tmpLoader := map[string]ds.PropertyMap{} | 362 tmpLoader := map[string]ds.PropertyMap{} |
| 363 for _, itm := range tc.data { | 363 for _, itm := range tc.data { |
| 364 ks := itm.key.String() | 364 ks := itm.key.String() |
| 365 prev := tmpLoader[ks] | 365 prev := tmpLoader[ks] |
| 366 updateIndexes(store, itm.key, prev, itm.
props) | 366 updateIndexes(store, itm.key, prev, itm.
props) |
| 367 tmpLoader[ks] = itm.props | 367 tmpLoader[ks] = itm.props |
| 368 } | 368 } |
| 369 tmpLoader = nil | 369 tmpLoader = nil |
| 370 | 370 |
| 371 for colName, data := range tc.expected { | 371 for colName, data := range tc.expected { |
| 372 » » » » » coll := store.GetCollection(colName) | 372 » » » » » coll := store.Snapshot().GetCollection(c
olName) |
| 373 So(coll, ShouldNotBeNil) | 373 So(coll, ShouldNotBeNil) |
| 374 i := 0 | 374 i := 0 |
| 375 coll.VisitItemsAscend(nil, false, func(i
tm *gkvlite.Item) bool { | 375 coll.VisitItemsAscend(nil, false, func(i
tm *gkvlite.Item) bool { |
| 376 So(data[i], ShouldResemble, itm.
Key) | 376 So(data[i], ShouldResemble, itm.
Key) |
| 377 i++ | 377 i++ |
| 378 return true | 378 return true |
| 379 }) | 379 }) |
| 380 So(i, ShouldEqual, len(data)) | 380 So(i, ShouldEqual, len(data)) |
| 381 } | 381 } |
| 382 }) | 382 }) |
| 383 } | 383 } |
| 384 }) | 384 }) |
| 385 } | 385 } |
| OLD | NEW |