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

Side by Side Diff: logdog/server/collector/coordinator/cache_test.go

Issue 2951393002: [errors] de-specialize Transient in favor of Tags. (Closed)
Patch Set: more refactor Created 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The LUCI Authors. All rights reserved. 1 // Copyright 2016 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 coordinator 5 package coordinator
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "sync" 9 "sync"
10 "sync/atomic" 10 "sync/atomic"
11 "testing" 11 "testing"
12 "time" 12 "time"
13 13
14 "github.com/luci/luci-go/common/clock/testclock" 14 "github.com/luci/luci-go/common/clock/testclock"
15 "github.com/luci/luci-go/common/errors" 15 "github.com/luci/luci-go/common/errors"
16 "github.com/luci/luci-go/common/retry/transient"
16 "github.com/luci/luci-go/logdog/common/types" 17 "github.com/luci/luci-go/logdog/common/types"
17 "github.com/luci/luci-go/luci_config/common/cfgtypes" 18 "github.com/luci/luci-go/luci_config/common/cfgtypes"
18 19
19 "golang.org/x/net/context" 20 "golang.org/x/net/context"
20 21
21 . "github.com/smartystreets/goconvey/convey" 22 . "github.com/smartystreets/goconvey/convey"
22 ) 23 )
23 24
24 // testCoordinator is an implementation of Coordinator that can be used for 25 // testCoordinator is an implementation of Coordinator that can be used for
25 // testing. 26 // testing.
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 r2 := <-resultC 239 r2 := <-resultC
239 240
240 So(r1.ProtoVersion, ShouldEqual, "remote") 241 So(r1.ProtoVersion, ShouldEqual, "remote")
241 So(r2.ProtoVersion, ShouldEqual, "remote") 242 So(r2.ProtoVersion, ShouldEqual, "remote")
242 So(tcc.calls, ShouldEqual, 2) 243 So(tcc.calls, ShouldEqual, 2)
243 }) 244 })
244 245
245 Convey(`RegisterStream`, func() { 246 Convey(`RegisterStream`, func() {
246 Convey(`A transient registration error will resu lt in a RegisterStream error.`, func() { 247 Convey(`A transient registration error will resu lt in a RegisterStream error.`, func() {
247 tcc.errC = make(chan error, 1) 248 tcc.errC = make(chan error, 1)
248 » » » » » tcc.errC <- errors.WrapTransient(errors. New("test error")) 249 » » » » » tcc.errC <- errors.New("test error", tra nsient.Tag)
249 250
250 _, err := ssc.RegisterStream(c, &st, nil ) 251 _, err := ssc.RegisterStream(c, &st, nil )
251 So(err, ShouldNotBeNil) 252 So(err, ShouldNotBeNil)
252 So(tcc.calls, ShouldEqual, 1) 253 So(tcc.calls, ShouldEqual, 1)
253 254
254 Convey(`A second request will call throu gh, try again, and succeed.`, func() { 255 Convey(`A second request will call throu gh, try again, and succeed.`, func() {
255 tcc.errC = nil 256 tcc.errC = nil
256 257
257 _, err := ssc.RegisterStream(c, &st, nil) 258 _, err := ssc.RegisterStream(c, &st, nil)
258 So(err, ShouldBeNil) 259 So(err, ShouldBeNil)
(...skipping 21 matching lines...) Expand all
280 281
281 Convey(`TerminateStream`, func() { 282 Convey(`TerminateStream`, func() {
282 tr := TerminateRequest{ 283 tr := TerminateRequest{
283 Project: st.Project, 284 Project: st.Project,
284 ID: st.ID, 285 ID: st.ID,
285 TerminalIndex: 1337, 286 TerminalIndex: 1337,
286 } 287 }
287 288
288 Convey(`The termination endpoint returns a trans ient error, it will propagate.`, func() { 289 Convey(`The termination endpoint returns a trans ient error, it will propagate.`, func() {
289 tcc.errC = make(chan error, 1) 290 tcc.errC = make(chan error, 1)
290 » » » » » tcc.errC <- errors.WrapTransient(errors. New("test error")) 291 » » » » » tcc.errC <- errors.New("test error", tra nsient.Tag)
291 292
292 err := ssc.TerminateStream(c, &tr) 293 err := ssc.TerminateStream(c, &tr)
293 » » » » » So(errors.IsTransient(err), ShouldBeTrue ) 294 » » » » » So(transient.Tag.In(err), ShouldBeTrue)
294 So(tcc.calls, ShouldEqual, 1) 295 So(tcc.calls, ShouldEqual, 1)
295 296
296 Convey(`A second attempt will call throu gh, try again, and succeed.`, func() { 297 Convey(`A second attempt will call throu gh, try again, and succeed.`, func() {
297 tcc.errC = nil 298 tcc.errC = nil
298 299
299 err := ssc.TerminateStream(c, &t r) 300 err := ssc.TerminateStream(c, &t r)
300 So(err, ShouldBeNil) 301 So(err, ShouldBeNil)
301 So(tcc.calls, ShouldEqual, 2) 302 So(tcc.calls, ShouldEqual, 2)
302 }) 303 })
303 }) 304 })
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 remotes := 0 389 remotes := 0
389 for i := 0; i < count; i++ { 390 for i := 0; i < count; i++ {
390 if state[i].ProtoVersion == "remote" { 391 if state[i].ProtoVersion == "remote" {
391 remotes++ 392 remotes++
392 } 393 }
393 } 394 }
394 So(remotes, ShouldEqual, count) 395 So(remotes, ShouldEqual, count)
395 }) 396 })
396 }) 397 })
397 } 398 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698