Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Unified Diff: go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go

Issue 1152383003: Simple memory testing for gae/wrapper (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@better_context_lite
Patch Set: final fixes? Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go
diff --git a/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go b/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go
new file mode 100644
index 0000000000000000000000000000000000000000..83f6225510e50d934e1159aa2d687da82cb101b7
--- /dev/null
+++ b/go/src/infra/gae/libs/wrapper/memory/gkvlite_utils.go
@@ -0,0 +1,94 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package memory
+
+import (
+ "github.com/luci/gkvlite"
+)
+
+// memStore is a gkvlite.Store which will panic for anything which might
+// otherwise return an error.
+//
+// This is reasonable for in-memory Store objects, since the only errors that
+// should occur happen with file IO on the underlying file (which of course
+// doesn't exist).
+type memStore gkvlite.Store
+
+func newMemStore() *memStore {
+ ret, err := gkvlite.NewStore(nil)
+ if err != nil {
+ panic(err)
+ }
+ return (*memStore)(ret)
+}
+
+func (bs *memStore) Snapshot() *memStore {
M-A Ruel 2015/05/29 16:16:18 From what I understand, these functions are export
+ return (*memStore)((*gkvlite.Store)(bs).Snapshot())
+}
+
+func (bs *memStore) MakePrivateCollection(cmp gkvlite.KeyCompare) *memCollection {
+ return (*memCollection)((*gkvlite.Store)(bs).MakePrivateCollection(cmp))
+}
+
+func (bs *memStore) GetCollection(name string) *memCollection {
+ return (*memCollection)((*gkvlite.Store)(bs).GetCollection(name))
+}
+
+func (bs *memStore) SetCollection(name string, cmp gkvlite.KeyCompare) *memCollection {
+ return (*memCollection)((*gkvlite.Store)(bs).SetCollection(name, cmp))
+}
+
+// memCollection is a gkvlite.Collection which will panic for anything which
+// might otherwise return an error.
+//
+// This is reasonable for in-memory Store objects, since the only errors that
+// should occur happen with file IO on the underlying file (which of course
+// doesn't exist.
+type memCollection gkvlite.Collection
+
+func (bc *memCollection) Get(k []byte) []byte {
+ ret, err := (*gkvlite.Collection)(bc).Get(k)
+ if err != nil {
+ panic(err)
+ }
+ return ret
+}
+
+func (bc *memCollection) Set(k, v []byte) {
+ err := (*gkvlite.Collection)(bc).Set(k, v)
M-A Ruel 2015/05/29 02:01:23 combine lines
iannucci 2015/05/29 02:42:28 done
+ if err != nil {
+ panic(err)
+ }
+}
+
+func (bc *memCollection) Delete(k []byte) bool {
+ ret, err := (*gkvlite.Collection)(bc).Delete(k)
+ if err != nil {
+ panic(err)
+ }
+ return ret
+}
+
+func (bc *memCollection) VisitItemsAscend(target []byte, withValue bool, visitor gkvlite.ItemVisitor) {
+ err := (*gkvlite.Collection)(bc).VisitItemsAscend(target, withValue, visitor)
M-A Ruel 2015/05/29 02:01:23 here too, and 82
iannucci 2015/05/29 02:42:28 done
+ if err != nil {
+ panic(err)
+ }
+}
+
+func (bc *memCollection) VisitItemsDescend(target []byte, withValue bool, visitor gkvlite.ItemVisitor) {
+ err := (*gkvlite.Collection)(bc).VisitItemsDescend(target, withValue, visitor)
+ if err != nil {
+ panic(err)
+ }
+}
+
+func (bc *memCollection) GetTotals() (numItems, numBytes uint64) {
+ numItems, numBytes, err := (*gkvlite.Collection)(bc).GetTotals()
M-A Ruel 2015/05/29 02:01:23 This code doesn't do what you think it does. Look
iannucci 2015/05/29 02:42:28 What do you think I think it does?
M-A Ruel 2015/05/29 16:16:18 I thought it aliased the variables but it looks li
+ if err != nil {
+ panic(err)
+ }
+ return
+}

Powered by Google App Engine
This is Rietveld 408576698