From b41e96b421acda1761e9ba2ee17da16efad436cd Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 13 Jun 2017 20:23:21 +0200 Subject: vendor: switch from dep to godep dep tool vendored too much code (100MB) including tests and unused packages. godep vendored significantly less (12MB) without tests and unused packages. The main advantage is that pre-Go1.9 toolchain does not run tests of all vendor packages now. --- vendor/github.com/googleapis/gax-go/call_option.go | 10 +- .../googleapis/gax-go/call_option_test.go | 88 --------- vendor/github.com/googleapis/gax-go/header_test.go | 19 -- vendor/github.com/googleapis/gax-go/invoke_test.go | 156 --------------- .../googleapis/gax-go/path_template_test.go | 211 --------------------- 5 files changed, 1 insertion(+), 483 deletions(-) delete mode 100644 vendor/github.com/googleapis/gax-go/call_option_test.go delete mode 100644 vendor/github.com/googleapis/gax-go/header_test.go delete mode 100644 vendor/github.com/googleapis/gax-go/invoke_test.go delete mode 100644 vendor/github.com/googleapis/gax-go/path_template_test.go (limited to 'vendor/github.com/googleapis') diff --git a/vendor/github.com/googleapis/gax-go/call_option.go b/vendor/github.com/googleapis/gax-go/call_option.go index 7b621643e..536cb8ce3 100644 --- a/vendor/github.com/googleapis/gax-go/call_option.go +++ b/vendor/github.com/googleapis/gax-go/call_option.go @@ -35,7 +35,6 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" ) // CallOption is an option used by Invoke to control behaviors of RPC calls. @@ -81,11 +80,7 @@ type boRetryer struct { } func (r *boRetryer) Retry(err error) (time.Duration, bool) { - st, ok := status.FromError(err) - if !ok { - return 0, false - } - c := st.Code() + c := grpc.Code(err) for _, rc := range r.codes { if c == rc { return r.backoff.Pause(), true @@ -126,9 +121,6 @@ func (bo *Backoff) Pause() time.Duration { if bo.Multiplier < 1 { bo.Multiplier = 2 } - // Select a duration between zero and the current max. It might seem counterintuitive to - // have so much jitter, but https://www.awsarchitectureblog.com/2015/03/backoff.html - // argues that that is the best strategy. d := time.Duration(rand.Int63n(int64(bo.cur))) bo.cur = time.Duration(float64(bo.cur) * bo.Multiplier) if bo.cur > bo.Max { diff --git a/vendor/github.com/googleapis/gax-go/call_option_test.go b/vendor/github.com/googleapis/gax-go/call_option_test.go deleted file mode 100644 index 6f81305ff..000000000 --- a/vendor/github.com/googleapis/gax-go/call_option_test.go +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2016, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package gax - -import ( - "testing" - "time" - - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -var _ Retryer = &boRetryer{} - -func TestBackofDefault(t *testing.T) { - backoff := Backoff{} - - max := []time.Duration{1, 2, 4, 8, 16, 30, 30, 30, 30, 30} - for i, m := range max { - max[i] = m * time.Second - } - - for i, w := range max { - if d := backoff.Pause(); d > w { - t.Errorf("Backoff duration should be at most %s, got %s", w, d) - } else if i < len(max)-1 && backoff.cur != max[i+1] { - t.Errorf("current envelope is %s, want %s", backoff.cur, max[i+1]) - } - } -} - -func TestBackoffExponential(t *testing.T) { - backoff := Backoff{Initial: 1, Max: 20, Multiplier: 2} - want := []time.Duration{1, 2, 4, 8, 16, 20, 20, 20, 20, 20} - for _, w := range want { - if d := backoff.Pause(); d > w { - t.Errorf("Backoff duration should be at most %s, got %s", w, d) - } - } -} - -func TestOnCodes(t *testing.T) { - // Lint errors grpc.Errorf in 1.6. It mistakenly expects the first arg to Errorf to be a string. - errf := status.Errorf - apiErr := errf(codes.Unavailable, "") - tests := []struct { - c []codes.Code - retry bool - }{ - {nil, false}, - {[]codes.Code{codes.DeadlineExceeded}, false}, - {[]codes.Code{codes.DeadlineExceeded, codes.Unavailable}, true}, - {[]codes.Code{codes.Unavailable}, true}, - } - for _, tst := range tests { - b := OnCodes(tst.c, Backoff{}) - if _, retry := b.Retry(apiErr); retry != tst.retry { - t.Errorf("retriable codes: %v, error: %s, retry: %t, want %t", tst.c, apiErr, retry, tst.retry) - } - } -} diff --git a/vendor/github.com/googleapis/gax-go/header_test.go b/vendor/github.com/googleapis/gax-go/header_test.go deleted file mode 100644 index 05d8de6fc..000000000 --- a/vendor/github.com/googleapis/gax-go/header_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package gax - -import "testing" - -func TestXGoogHeader(t *testing.T) { - for _, tst := range []struct { - kv []string - want string - }{ - {nil, ""}, - {[]string{"abc", "def"}, "abc/def"}, - {[]string{"abc", "def", "xyz", "123", "foo", ""}, "abc/def xyz/123 foo/"}, - } { - got := XGoogHeader(tst.kv...) - if got != tst.want { - t.Errorf("Header(%q) = %q, want %q", tst.kv, got, tst.want) - } - } -} diff --git a/vendor/github.com/googleapis/gax-go/invoke_test.go b/vendor/github.com/googleapis/gax-go/invoke_test.go deleted file mode 100644 index 3d12e6093..000000000 --- a/vendor/github.com/googleapis/gax-go/invoke_test.go +++ /dev/null @@ -1,156 +0,0 @@ -// Copyright 2016, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package gax - -import ( - "errors" - "testing" - "time" - - "golang.org/x/net/context" -) - -var canceledContext context.Context - -func init() { - ctx, cancel := context.WithCancel(context.Background()) - cancel() - canceledContext = ctx -} - -// recordSleeper is a test implementation of sleeper. -type recordSleeper int - -func (s *recordSleeper) sleep(ctx context.Context, _ time.Duration) error { - *s++ - return ctx.Err() -} - -type boolRetryer bool - -func (r boolRetryer) Retry(err error) (time.Duration, bool) { return 0, bool(r) } - -func TestInvokeSuccess(t *testing.T) { - apiCall := func(context.Context, CallSettings) error { return nil } - var sp recordSleeper - err := invoke(context.Background(), apiCall, CallSettings{}, sp.sleep) - - if err != nil { - t.Errorf("found error %s, want nil", err) - } - if sp != 0 { - t.Errorf("slept %d times, should not have slept since the call succeeded", int(sp)) - } -} - -func TestInvokeNoRetry(t *testing.T) { - apiErr := errors.New("foo error") - apiCall := func(context.Context, CallSettings) error { return apiErr } - var sp recordSleeper - err := invoke(context.Background(), apiCall, CallSettings{}, sp.sleep) - - if err != apiErr { - t.Errorf("found error %s, want %s", err, apiErr) - } - if sp != 0 { - t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) - } -} - -func TestInvokeNilRetry(t *testing.T) { - apiErr := errors.New("foo error") - apiCall := func(context.Context, CallSettings) error { return apiErr } - var settings CallSettings - WithRetry(func() Retryer { return nil }).Resolve(&settings) - var sp recordSleeper - err := invoke(context.Background(), apiCall, settings, sp.sleep) - - if err != apiErr { - t.Errorf("found error %s, want %s", err, apiErr) - } - if sp != 0 { - t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) - } -} - -func TestInvokeNeverRetry(t *testing.T) { - apiErr := errors.New("foo error") - apiCall := func(context.Context, CallSettings) error { return apiErr } - var settings CallSettings - WithRetry(func() Retryer { return boolRetryer(false) }).Resolve(&settings) - var sp recordSleeper - err := invoke(context.Background(), apiCall, settings, sp.sleep) - - if err != apiErr { - t.Errorf("found error %s, want %s", err, apiErr) - } - if sp != 0 { - t.Errorf("slept %d times, should not have slept since retry is not specified", int(sp)) - } -} - -func TestInvokeRetry(t *testing.T) { - const target = 3 - - retryNum := 0 - apiErr := errors.New("foo error") - apiCall := func(context.Context, CallSettings) error { - retryNum++ - if retryNum < target { - return apiErr - } - return nil - } - var settings CallSettings - WithRetry(func() Retryer { return boolRetryer(true) }).Resolve(&settings) - var sp recordSleeper - err := invoke(context.Background(), apiCall, settings, sp.sleep) - - if err != nil { - t.Errorf("found error %s, want nil, call should have succeeded after %d tries", err, target) - } - if sp != target-1 { - t.Errorf("retried %d times, want %d", int(sp), int(target-1)) - } -} - -func TestInvokeRetryTimeout(t *testing.T) { - apiErr := errors.New("foo error") - apiCall := func(context.Context, CallSettings) error { return apiErr } - var settings CallSettings - WithRetry(func() Retryer { return boolRetryer(true) }).Resolve(&settings) - var sp recordSleeper - - err := invoke(canceledContext, apiCall, settings, sp.sleep) - - if err != context.Canceled { - t.Errorf("found error %s, want %s", err, context.Canceled) - } -} diff --git a/vendor/github.com/googleapis/gax-go/path_template_test.go b/vendor/github.com/googleapis/gax-go/path_template_test.go deleted file mode 100644 index 49dea47d5..000000000 --- a/vendor/github.com/googleapis/gax-go/path_template_test.go +++ /dev/null @@ -1,211 +0,0 @@ -// Copyright 2016, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -package gax - -import "testing" - -func TestPathTemplateMatchRender(t *testing.T) { - testCases := []struct { - message string - template string - path string - values map[string]string - }{ - { - "base", - "buckets/*/*/objects/*", - "buckets/f/o/objects/bar", - map[string]string{"$0": "f", "$1": "o", "$2": "bar"}, - }, - { - "path wildcards", - "bar/**/foo/*", - "bar/foo/foo/foo/bar", - map[string]string{"$0": "foo/foo", "$1": "bar"}, - }, - { - "named binding", - "buckets/{foo}/objects/*", - "buckets/foo/objects/bar", - map[string]string{"$0": "bar", "foo": "foo"}, - }, - { - "named binding with colon", - "buckets/{foo}/objects/*", - "buckets/foo:boo/objects/bar", - map[string]string{"$0": "bar", "foo": "foo:boo"}, - }, - { - "named binding with complex patterns", - "buckets/{foo=x/*/y/**}/objects/*", - "buckets/x/foo/y/bar/baz/objects/quox", - map[string]string{"$0": "quox", "foo": "x/foo/y/bar/baz"}, - }, - { - "starts with slash", - "/foo/*", - "/foo/bar", - map[string]string{"$0": "bar"}, - }, - } - for _, testCase := range testCases { - pt, err := NewPathTemplate(testCase.template) - if err != nil { - t.Errorf("[%s] Failed to parse template %s: %v", testCase.message, testCase.template, err) - continue - } - values, err := pt.Match(testCase.path) - if err != nil { - t.Errorf("[%s] PathTemplate '%s' failed to match with '%s', %v", testCase.message, testCase.template, testCase.path, err) - continue - } - for key, expected := range testCase.values { - actual, ok := values[key] - if !ok { - t.Errorf("[%s] The matched data misses the value for %s", testCase.message, key) - continue - } - delete(values, key) - if actual != expected { - t.Errorf("[%s] Failed to match: value for '%s' is expected '%s' but is actually '%s'", testCase.message, key, expected, actual) - } - } - if len(values) != 0 { - t.Errorf("[%s] The matched data has unexpected keys: %v", testCase.message, values) - } - built, err := pt.Render(testCase.values) - if err != nil || built != testCase.path { - t.Errorf("[%s] Built path '%s' is different from the expected '%s', %v", testCase.message, built, testCase.path, err) - } - } -} - -func TestPathTemplateMatchFailure(t *testing.T) { - testCases := []struct { - message string - template string - path string - }{ - { - "too many paths", - "buckets/*/*/objects/*", - "buckets/f/o/o/objects/bar", - }, - { - "missing last path", - "buckets/*/*/objects/*", - "buckets/f/o/objects", - }, - { - "too many paths at end", - "buckets/*/*/objects/*", - "buckets/f/o/objects/too/long", - }, - } - for _, testCase := range testCases { - pt, err := NewPathTemplate(testCase.template) - if err != nil { - t.Errorf("[%s] Failed to parse path %s: %v", testCase.message, testCase.template, err) - continue - } - if values, err := pt.Match(testCase.path); err == nil { - t.Errorf("[%s] PathTemplate %s doesn't expect to match %s, but succeeded somehow. Match result: %v", testCase.message, testCase.template, testCase.path, values) - - } - } -} - -func TestPathTemplateRenderTooManyValues(t *testing.T) { - // Test cases where Render() succeeds but Match() doesn't return the same map. - testCases := []struct { - message string - template string - values map[string]string - expected string - }{ - { - "too many", - "bar/*/foo/*", - map[string]string{"$0": "_1", "$1": "_2", "$2": "_3"}, - "bar/_1/foo/_2", - }, - } - for _, testCase := range testCases { - pt, err := NewPathTemplate(testCase.template) - if err != nil { - t.Errorf("[%s] Failed to parse template %s (error %v)", testCase.message, testCase.template, err) - continue - } - if result, err := pt.Render(testCase.values); err != nil || result != testCase.expected { - t.Errorf("[%s] Failed to build the path (expected '%s' but returned '%s'", testCase.message, testCase.expected, result) - } - } -} - -func TestPathTemplateParseErrors(t *testing.T) { - testCases := []struct { - message string - template string - }{ - { - "multiple path wildcards", - "foo/**/bar/**", - }, - { - "recursive named bindings", - "foo/{foo=foo/{bar}/baz/*}/baz/*", - }, - { - "complicated multiple path wildcards patterns", - "foo/{foo=foo/**/bar/*}/baz/**", - }, - { - "consective slashes", - "foo//bar", - }, - { - "invalid variable pattern", - "foo/{foo=foo/*/}bar", - }, - { - "same name multiple times", - "foo/{foo}/bar/{foo}", - }, - { - "empty string after '='", - "foo/{foo=}/bar", - }, - } - for _, testCase := range testCases { - if pt, err := NewPathTemplate(testCase.template); err == nil { - t.Errorf("[%s] Template '%s' should fail to be parsed, but succeeded and returned %+v", testCase.message, testCase.template, pt) - } - } -} -- cgit mrf-deployment