| OLD | NEW |
| 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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), ShouldBeNil) | 86 So(ds.Get(a), ShouldBeNil) |
| 86 So(ds.GetMulti(fds), ShouldBeNil) | 87 So(ds.GetMulti(fds), ShouldBeNil) |
| 87 » » » » » So(a.AddingDepsBitmap.Size(), ShouldEqua
l, len(fds)) | 88 » » » » » So(a.DepMap.Size(), ShouldEqual, len(fds
)) |
| 88 » » » » » So(a.WaitingDepBitmap.Size(), ShouldEqua
l, len(fds)) | 89 » » » » » So(a.State, ShouldEqual, dm.Attempt_EXEC
UTING) |
| 89 » » » » » So(a.State, ShouldEqual, dm.Attempt_ADDI
NG_DEPS) | |
| 90 So(fds[0].ForExecution, ShouldEqual, 1) | 90 So(fds[0].ForExecution, ShouldEqual, 1) |
| 91 |
| 92 muts, err = (&FinishExecution{ |
| 93 ad.Auth.Id, &distributor.TaskRes
ult{PersistentState: "hi"}, |
| 94 }).RollForward(c) |
| 95 So(err, ShouldBeNil) |
| 96 So(muts, ShouldBeNil) |
| 97 |
| 98 So(ds.Get(a), ShouldBeNil) |
| 99 So(a.State, ShouldEqual, dm.Attempt_WAIT
ING) |
| 91 }) | 100 }) |
| 92 | 101 |
| 93 Convey("adding new Attempts at the same time", f
unc() { | 102 Convey("adding new Attempts at the same time", f
unc() { |
| 94 » » » » » ad.Atmpts = dm.NewAttemptList(map[string
][]uint32{ | 103 » » » » » ad.Attempts = dm.NewAttemptList(map[stri
ng][]uint32{ |
| 95 "to": {2, 3}, | 104 "to": {2, 3}, |
| 96 "tp": {1}, | 105 "tp": {1}, |
| 97 }) | 106 }) |
| 98 | 107 |
| 99 muts, err := ad.RollForward(c) | 108 muts, err := ad.RollForward(c) |
| 100 So(err, ShouldBeNil) | 109 So(err, ShouldBeNil) |
| 101 So(len(muts), ShouldEqual, len(fds)+3) | 110 So(len(muts), ShouldEqual, len(fds)+3) |
| 102 | 111 |
| 103 So(muts[0], ShouldResemble, &EnsureAttem
pt{dm.NewAttemptID("to", 3)}) | 112 So(muts[0], ShouldResemble, &EnsureAttem
pt{dm.NewAttemptID("to", 3)}) |
| 104 So(muts[1], ShouldResemble, &AddBackDep{ | 113 So(muts[1], ShouldResemble, &AddBackDep{ |
| 105 Dep: fds[0].Edge(), NeedsAck: tr
ue}) | 114 Dep: fds[0].Edge(), NeedsAck: tr
ue}) |
| 106 | 115 |
| 107 So(ds.Get(a), ShouldBeNil) | 116 So(ds.Get(a), ShouldBeNil) |
| 108 So(ds.GetMulti(fds), ShouldBeNil) | 117 So(ds.GetMulti(fds), ShouldBeNil) |
| 109 » » » » » So(a.AddingDepsBitmap.Size(), ShouldEqua
l, len(fds)) | 118 » » » » » So(a.DepMap.Size(), ShouldEqual, len(fds
)) |
| 110 » » » » » So(a.WaitingDepBitmap.Size(), ShouldEqua
l, len(fds)) | 119 » » » » » So(a.State, ShouldEqual, dm.Attempt_EXEC
UTING) |
| 111 » » » » » So(a.State, ShouldEqual, dm.Attempt_ADDI
NG_DEPS) | |
| 112 So(fds[0].ForExecution, ShouldEqual, 1) | 120 So(fds[0].ForExecution, ShouldEqual, 1) |
| 121 |
| 122 muts, err = (&FinishExecution{ |
| 123 ad.Auth.Id, &distributor.TaskRes
ult{PersistentState: "hi"}, |
| 124 }).RollForward(c) |
| 125 So(err, ShouldBeNil) |
| 126 So(muts, ShouldBeNil) |
| 127 |
| 128 So(ds.Get(a), ShouldBeNil) |
| 129 So(a.State, ShouldEqual, dm.Attempt_WAIT
ING) |
| 113 }) | 130 }) |
| 114 }) | 131 }) |
| 115 }) | 132 }) |
| 116 }) | 133 }) |
| 117 } | 134 } |
| OLD | NEW |