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

Side by Side Diff: appengine/cmd/dm/mutate/add_deps_test.go

Issue 1537883002: Initial distributor implementation (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-go@master
Patch Set: fix imports and make dummy.go a real file Created 4 years, 6 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 unified diff | Download patch
« no previous file with comments | « appengine/cmd/dm/mutate/add_deps.go ('k') | appengine/cmd/dm/mutate/add_finished_deps.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The LUCI Authors. All rights reserved. 1 // Copyright 2015 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package mutate 5 package mutate
6 6
7 import ( 7 import (
8 "testing" 8 "testing"
9 9
10 "github.com/luci/gae/impl/memory" 10 "github.com/luci/gae/impl/memory"
11 "github.com/luci/gae/service/datastore" 11 "github.com/luci/gae/service/datastore"
12 "github.com/luci/luci-go/appengine/cmd/dm/distributor"
12 "github.com/luci/luci-go/appengine/cmd/dm/model" 13 "github.com/luci/luci-go/appengine/cmd/dm/model"
13 "github.com/luci/luci-go/common/api/dm/service/v1" 14 "github.com/luci/luci-go/common/api/dm/service/v1"
14 . "github.com/luci/luci-go/common/testing/assertions" 15 . "github.com/luci/luci-go/common/testing/assertions"
15 . "github.com/smartystreets/goconvey/convey" 16 . "github.com/smartystreets/goconvey/convey"
16 "golang.org/x/net/context" 17 "golang.org/x/net/context"
17 ) 18 )
18 19
19 func TestAddDeps(t *testing.T) { 20 func TestAddDeps(t *testing.T) {
20 t.Parallel() 21 t.Parallel()
21 22
(...skipping 29 matching lines...) Expand all
51 }) 52 })
52 53
53 Convey("RollForward", func() { 54 Convey("RollForward", func() {
54 55
55 Convey("Bad", func() { 56 Convey("Bad", func() {
56 Convey("Bad ExecutionKey", func() { 57 Convey("Bad ExecutionKey", func() {
57 So(ds.Put(a, ex), ShouldBeNil) 58 So(ds.Put(a, ex), ShouldBeNil)
58 59
59 ad.Auth.Token = []byte("nerp") 60 ad.Auth.Token = []byte("nerp")
60 muts, err := ad.RollForward(c) 61 muts, err := ad.RollForward(c)
61 » » » » » So(err, ShouldBeRPCUnauthenticated, "exe cution Auth") 62 » » » » » So(err, ShouldBeRPCPermissionDenied, "ex ecution Auth")
62 So(muts, ShouldBeEmpty) 63 So(muts, ShouldBeEmpty)
63 }) 64 })
64 }) 65 })
65 66
66 Convey("Good", func() { 67 Convey("Good", func() {
67 So(ds.Put(a, ex), ShouldBeNil) 68 So(ds.Put(a, ex), ShouldBeNil)
68 69
69 Convey("All added already", func() { 70 Convey("All added already", func() {
70 So(ds.Put(fds), ShouldBeNil) 71 So(ds.Put(fds), ShouldBeNil)
71 72
72 muts, err := ad.RollForward(c) 73 muts, err := ad.RollForward(c)
73 So(err, ShouldBeNil) 74 So(err, ShouldBeNil)
74 So(muts, ShouldBeEmpty) 75 So(muts, ShouldBeEmpty)
75 }) 76 })
76 77
77 Convey("None added already", func() { 78 Convey("None added already", func() {
78 muts, err := ad.RollForward(c) 79 muts, err := ad.RollForward(c)
79 So(err, ShouldBeNil) 80 So(err, ShouldBeNil)
80 So(len(muts), ShouldEqual, len(fds)) 81 So(len(muts), ShouldEqual, len(fds))
81 82
82 So(muts[0], ShouldResemble, &AddBackDep{ 83 So(muts[0], ShouldResemble, &AddBackDep{
83 Dep: fds[0].Edge(), NeedsAck: tr ue}) 84 Dep: fds[0].Edge(), NeedsAck: tr ue})
84 85
85 So(ds.Get(a, fds), ShouldBeNil) 86 So(ds.Get(a, fds), ShouldBeNil)
86 » » » » » So(a.AddingDepsBitmap.Size(), ShouldEqua l, len(fds)) 87 » » » » » So(a.DepMap.Size(), ShouldEqual, len(fds ))
87 » » » » » So(a.WaitingDepBitmap.Size(), ShouldEqua l, len(fds)) 88 » » » » » So(a.State, ShouldEqual, dm.Attempt_EXEC UTING)
88 » » » » » So(a.State, ShouldEqual, dm.Attempt_ADDI NG_DEPS)
89 So(fds[0].ForExecution, ShouldEqual, 1) 89 So(fds[0].ForExecution, ShouldEqual, 1)
90
91 muts, err = (&FinishExecution{
92 ad.Auth.Id, &distributor.TaskRes ult{PersistentState: []byte("hi")},
93 }).RollForward(c)
94 So(err, ShouldBeNil)
95 So(muts, ShouldBeNil)
96
97 So(ds.Get(a), ShouldBeNil)
98 So(a.State, ShouldEqual, dm.Attempt_WAIT ING)
90 }) 99 })
91 100
92 Convey("adding new Attempts at the same time", f unc() { 101 Convey("adding new Attempts at the same time", f unc() {
93 » » » » » ad.Atmpts = dm.NewAttemptList(map[string ][]uint32{ 102 » » » » » ad.Attempts = dm.NewAttemptList(map[stri ng][]uint32{
94 "to": {2, 3}, 103 "to": {2, 3},
95 "tp": {1}, 104 "tp": {1},
96 }) 105 })
97 106
98 muts, err := ad.RollForward(c) 107 muts, err := ad.RollForward(c)
99 So(err, ShouldBeNil) 108 So(err, ShouldBeNil)
100 So(len(muts), ShouldEqual, len(fds)+3) 109 So(len(muts), ShouldEqual, len(fds)+3)
101 110
102 So(muts[0], ShouldResemble, &EnsureAttem pt{dm.NewAttemptID("to", 3)}) 111 So(muts[0], ShouldResemble, &EnsureAttem pt{dm.NewAttemptID("to", 3)})
103 So(muts[1], ShouldResemble, &AddBackDep{ 112 So(muts[1], ShouldResemble, &AddBackDep{
104 Dep: fds[0].Edge(), NeedsAck: tr ue}) 113 Dep: fds[0].Edge(), NeedsAck: tr ue})
105 114
106 So(ds.Get(a, fds), ShouldBeNil) 115 So(ds.Get(a, fds), ShouldBeNil)
107 » » » » » So(a.AddingDepsBitmap.Size(), ShouldEqua l, len(fds)) 116 » » » » » So(a.DepMap.Size(), ShouldEqual, len(fds ))
108 » » » » » So(a.WaitingDepBitmap.Size(), ShouldEqua l, len(fds)) 117 » » » » » So(a.State, ShouldEqual, dm.Attempt_EXEC UTING)
109 » » » » » So(a.State, ShouldEqual, dm.Attempt_ADDI NG_DEPS)
110 So(fds[0].ForExecution, ShouldEqual, 1) 118 So(fds[0].ForExecution, ShouldEqual, 1)
119
120 muts, err = (&FinishExecution{
121 ad.Auth.Id, &distributor.TaskRes ult{PersistentState: []byte("hi")},
122 }).RollForward(c)
123 So(err, ShouldBeNil)
124 So(muts, ShouldBeNil)
125
126 So(ds.Get(a), ShouldBeNil)
127 So(a.State, ShouldEqual, dm.Attempt_WAIT ING)
111 }) 128 })
112 }) 129 })
113 }) 130 })
114 }) 131 })
115 } 132 }
OLDNEW
« no previous file with comments | « appengine/cmd/dm/mutate/add_deps.go ('k') | appengine/cmd/dm/mutate/add_finished_deps.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698