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

Unified Diff: go/src/infra/gae/libs/gae/memory/raw_datstore_test.go

Issue 1227183003: Change RawDatastore to do less reflection. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@move_dummy
Patch Set: fix No/ShouldIndex Created 5 years, 5 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/gae/memory/raw_datstore_test.go
diff --git a/go/src/infra/gae/libs/gae/memory/raw_datstore_test.go b/go/src/infra/gae/libs/gae/memory/raw_datstore_test.go
index d0c5100c806bc9aaf304cbcb88d3dbe232ae2339..620f0a61bbd55969b4c79117a28ae6f3fa5bc63b 100644
--- a/go/src/infra/gae/libs/gae/memory/raw_datstore_test.go
+++ b/go/src/infra/gae/libs/gae/memory/raw_datstore_test.go
@@ -46,10 +46,12 @@ func testGetMeta(c context.Context, k gae.DSKey) int64 {
rds := gae.GetRDS(c)
k = rds.NewKey("__entity_group__", "", 1, helper.DSKeyRoot(k))
pmap := gae.DSPropertyMap{}
- rds.Get(k, &pmap)
+ rds.Get(k, pmap)
return pmap["__version__"][0].Value().(int64)
}
+var pls = helper.GetPLS
+
func TestDatastoreSingleReadWriter(t *testing.T) {
t.Parallel()
@@ -67,7 +69,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
k := rds.NewKey("Foo", "", 0, nil)
So(rds.Get(k, nil), ShouldEqual, gae.ErrDSInvalidKey)
- _, err := rds.Put(rds.NewKey("Foo", "", 0, k), &Foo{})
+ _, err := rds.Put(rds.NewKey("Foo", "", 0, k), pls(&Foo{}))
So(err, ShouldEqual, gae.ErrDSInvalidKey)
})
@@ -80,13 +82,13 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
// with an incomplete key!
k := rds.NewKey("Foo", "", 0, nil)
f := &Foo{Val: 10}
- k, err := rds.Put(k, f)
+ k, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,1")
Convey("and Get it back", func() {
newFoo := &Foo{}
- err := rds.Get(k, newFoo)
+ err := rds.Get(k, pls(newFoo))
So(err, ShouldBeNil)
So(newFoo, ShouldResemble, f)
@@ -94,7 +96,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
err := rds.Delete(k)
So(err, ShouldBeNil)
- err = rds.Get(k, newFoo)
+ err = rds.Get(k, pls(newFoo))
So(err, ShouldEqual, gae.ErrDSNoSuchEntity)
})
})
@@ -107,24 +109,13 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err, ShouldBeNil)
})
- Convey("serialization breaks in the normal ways", func() {
- type BadFoo struct {
- Val uint8
- }
- _, err := rds.Put(k, &BadFoo{})
- So(err.Error(), ShouldContainSubstring, "invalid type: uint8")
-
- err = rds.Get(k, &BadFoo{})
- So(err.Error(), ShouldContainSubstring, "invalid type: uint8")
- })
-
Convey("check that metadata works", func() {
So(testGetMeta(c, k), ShouldEqual, 1)
pkey := k
for i := 0; i < 10; i++ {
k := rds.NewKey("Foo", "", 0, pkey)
- _, err = rds.Put(k, &Foo{Val: 10})
+ _, err = rds.Put(k, pls(&Foo{Val: 10}))
So(err, ShouldBeNil)
}
So(testGetMeta(c, k), ShouldEqual, 11)
@@ -146,7 +137,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err, ShouldBeNil)
So(version, ShouldEqual, 22)
- k, err := rds.Put(k, f)
+ k, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
So(testGetMeta(c, k), ShouldEqual, 23)
})
@@ -161,7 +152,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
Convey("Put", func() {
k := rds.NewKey("Foo", "", 0, nil)
f := &Foo{Val: 10}
- k, err := rds.Put(k, f)
+ k, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,1")
@@ -171,12 +162,12 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(rds, ShouldNotBeNil)
f1 := &Foo{Val: 100}
- k, err := rds.Put(rds.NewKey("Foo", "", 0, nil), f1)
+ k, err := rds.Put(rds.NewKey("Foo", "", 0, nil), pls(f1))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,2")
f2 := &Foo{Val: 200}
- k, err = rds.Put(rds.NewKey("Foo", "", 0, nil), f2)
+ k, err = rds.Put(rds.NewKey("Foo", "", 0, nil), pls(f2))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,3")
@@ -185,11 +176,11 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err, ShouldBeNil)
f := &Foo{}
- So(rds.Get(rds.NewKey("Foo", "", 2, nil), f), ShouldBeNil)
+ So(rds.Get(rds.NewKey("Foo", "", 2, nil), pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 100)
f = &Foo{}
- So(rds.Get(rds.NewKey("Foo", "", 3, nil), f), ShouldBeNil)
+ So(rds.Get(rds.NewKey("Foo", "", 3, nil), pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 200)
})
@@ -201,12 +192,12 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
par := k
f1 := &Foo{Val: 100}
- k, err := rds.Put(rds.NewKey("Foo", "", 0, par), f1)
+ k, err := rds.Put(rds.NewKey("Foo", "", 0, par), pls(f1))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,1/Foo,1")
f2 := &Foo{Val: 200}
- k, err = rds.Put(rds.NewKey("Foo", "", 0, par), f2)
+ k, err = rds.Put(rds.NewKey("Foo", "", 0, par), pls(f2))
So(err, ShouldBeNil)
So(k.String(), ShouldEqual, "/Foo,1/Foo,2")
@@ -215,11 +206,11 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err, ShouldBeNil)
f1 := &Foo{}
- So(rds.Get(rds.NewKey("Foo", "", 1, k), f1), ShouldBeNil)
+ So(rds.Get(rds.NewKey("Foo", "", 1, k), pls(f1)), ShouldBeNil)
So(f1.Val, ShouldEqual, 100)
f2 := &Foo{}
- So(rds.Get(rds.NewKey("Foo", "", 2, k), f2), ShouldBeNil)
+ So(rds.Get(rds.NewKey("Foo", "", 2, k), pls(f2)), ShouldBeNil)
So(f2.Val, ShouldEqual, 200)
})
@@ -231,16 +222,14 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
return nil
}, nil)
So(err, ShouldBeNil)
- So(rds.Get(k, f), ShouldEqual, gae.ErrDSNoSuchEntity)
+ So(rds.Get(k, nil), ShouldEqual, gae.ErrDSNoSuchEntity)
})
Convey("A Get counts against your group count", func() {
err := rds.RunInTransaction(func(c context.Context) error {
rds := gae.GetRDS(c)
- f := &Foo{}
- So(rds.Get(rds.NewKey("Foo", "", 20, nil), f), ShouldEqual, gae.ErrDSNoSuchEntity)
-
- So(rds.Get(k, f).Error(), ShouldContainSubstring, "cross-group")
+ So(rds.Get(rds.NewKey("Foo", "", 20, nil), nil), ShouldEqual, gae.ErrDSNoSuchEntity)
+ So(rds.Get(k, nil).Error(), ShouldContainSubstring, "cross-group")
return nil
}, nil)
So(err, ShouldBeNil)
@@ -251,16 +240,16 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
txnDS := gae.GetRDS(c)
So(txnDS, ShouldNotBeNil)
- So(txnDS.Get(k, f), ShouldBeNil)
+ So(txnDS.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
// Don't ever do this in a real program unless you want to guarantee
// a failed transaction :)
f.Val = 11
- _, err := rds.Put(k, f)
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
- So(txnDS.Get(k, f), ShouldBeNil)
+ So(txnDS.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
return nil
@@ -268,7 +257,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err, ShouldBeNil)
f := &Foo{}
- So(rds.Get(k, f), ShouldBeNil)
+ So(rds.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 11)
})
@@ -278,23 +267,24 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(txnDS, ShouldNotBeNil)
f := &Foo{}
- So(txnDS.Get(k, f), ShouldBeNil)
+ So(txnDS.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
// Don't ever do this in a real program unless you want to guarantee
// a failed transaction :)
f.Val = 11
- _, err := rds.Put(k, f)
+
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
- So(txnDS.Get(k, f), ShouldBeNil)
+ So(txnDS.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
f.Val = 20
- _, err = txnDS.Put(k, f)
+ _, err = txnDS.Put(k, pls(f))
So(err, ShouldBeNil)
- So(txnDS.Get(k, f), ShouldBeNil)
+ So(txnDS.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10) // still gets 10
return nil
@@ -302,7 +292,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err.Error(), ShouldContainSubstring, "concurrent")
f := &Foo{}
- So(rds.Get(k, f), ShouldBeNil)
+ So(rds.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 11)
})
@@ -311,11 +301,11 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
txnDS := gae.RawDatastore(nil)
err := rds.RunInTransaction(func(c context.Context) error {
txnDS = gae.GetRDS(c)
- So(txnDS.Get(k, &Foo{}), ShouldBeNil)
+ So(txnDS.Get(k, gae.DSPropertyMap{}), ShouldBeNil)
return nil
}, nil)
So(err, ShouldBeNil)
- So(txnDS.Get(k, &Foo{}).Error(), ShouldContainSubstring, "expired")
+ So(txnDS.Get(k, gae.DSPropertyMap{}).Error(), ShouldContainSubstring, "expired")
})
Convey("Nested transactions are rejected", func() {
@@ -340,13 +330,13 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
err := rds.RunInTransaction(func(c context.Context) error {
txnDS := gae.GetRDS(c)
f := &Foo{Val: 21}
- _, err = txnDS.Put(k, f)
+ _, err = txnDS.Put(k, pls(f))
So(err, ShouldBeNil)
err := rds.RunInTransaction(func(c context.Context) error {
txnDS := gae.GetRDS(c)
f := &Foo{Val: 27}
- _, err := txnDS.Put(k, f)
+ _, err := txnDS.Put(k, pls(f))
So(err, ShouldBeNil)
return nil
}, nil)
@@ -357,7 +347,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err.Error(), ShouldContainSubstring, "concurrent")
f := &Foo{}
- So(rds.Get(k, f), ShouldBeNil)
+ So(rds.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 27)
})
@@ -366,10 +356,10 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
err := rds.RunInTransaction(func(c context.Context) error {
rds := gae.GetRDS(c)
f := &Foo{Val: 200}
- _, err := rds.Put(k, f)
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
- _, err = rds.Put(rds.NewKey("Foo", "", 2, nil), f)
+ _, err = rds.Put(rds.NewKey("Foo", "", 2, nil), pls(f))
So(err.Error(), ShouldContainSubstring, "cross-group")
return err
}, nil)
@@ -382,11 +372,11 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
for i := int64(1); i < 26; i++ {
k := rds.NewKey("Foo", "", i, nil)
f := &Foo{Val: 200}
- _, err := rds.Put(k, f)
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
}
f := &Foo{Val: 200}
- _, err := rds.Put(rds.NewKey("Foo", "", 27, nil), f)
+ _, err := rds.Put(rds.NewKey("Foo", "", 27, nil), pls(f))
So(err.Error(), ShouldContainSubstring, "too many entity groups")
return err
}, &gae.DSTransactionOptions{XG: true})
@@ -399,7 +389,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
err := rds.RunInTransaction(func(c context.Context) error {
rds := gae.GetRDS(c)
f := &Foo{Val: 200}
- _, err := rds.Put(k, f)
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
return fmt.Errorf("thingy")
@@ -407,7 +397,7 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
So(err.Error(), ShouldEqual, "thingy")
f := &Foo{}
- So(rds.Get(k, f), ShouldBeNil)
+ So(rds.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
})
@@ -416,14 +406,14 @@ func TestDatastoreSingleReadWriter(t *testing.T) {
rds.RunInTransaction(func(c context.Context) error {
rds := gae.GetRDS(c)
f := &Foo{Val: 200}
- _, err := rds.Put(k, f)
+ _, err := rds.Put(k, pls(f))
So(err, ShouldBeNil)
panic("wheeeeee")
}, nil)
}, ShouldPanic)
f := &Foo{}
- So(rds.Get(k, f), ShouldBeNil)
+ So(rds.Get(k, pls(f)), ShouldBeNil)
So(f.Val, ShouldEqual, 10)
})
})
« no previous file with comments | « go/src/infra/gae/libs/gae/memory/raw_datstore_data.go ('k') | go/src/infra/gae/libs/gae/memory/testing_utils_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698