aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/cloud.google.com/go/errors/stack_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/cloud.google.com/go/errors/stack_test.go')
-rw-r--r--vendor/cloud.google.com/go/errors/stack_test.go118
1 files changed, 118 insertions, 0 deletions
diff --git a/vendor/cloud.google.com/go/errors/stack_test.go b/vendor/cloud.google.com/go/errors/stack_test.go
new file mode 100644
index 000000000..25cd4c60b
--- /dev/null
+++ b/vendor/cloud.google.com/go/errors/stack_test.go
@@ -0,0 +1,118 @@
+// Copyright 2016 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package errors
+
+import "testing"
+
+func TestChopStack(t *testing.T) {
+ for _, test := range []struct {
+ name string
+ in []byte
+ expected string
+ isPanic bool
+ }{
+ {
+ name: "Catch",
+ in: []byte(`goroutine 20 [running]:
+runtime/debug.Stack()
+ /gopath/src/runtime/debug/stack.go:24 +0x79
+cloud.google.com/go/errors.(*Client).logInternal()
+ /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b
+cloud.google.com/go/errors.(*Client).Catch()
+ /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed
+panic()
+ /gopath/src/runtime/panic.go:458 +0x243
+cloud.google.com/go/errors_test.TestCatchPanic()
+ /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171
+testing.tRunner()
+ /gopath/src/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/src/testing/testing.go:646 +0x2ec
+`),
+ expected: `goroutine 20 [running]:
+cloud.google.com/go/errors_test.TestCatchPanic()
+ /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171
+testing.tRunner()
+ /gopath/src/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/src/testing/testing.go:646 +0x2ec
+`,
+ isPanic: true,
+ },
+ {
+ name: "function not found",
+ in: []byte(`goroutine 20 [running]:
+runtime/debug.Stack()
+ /gopath/src/runtime/debug/stack.go:24 +0x79
+cloud.google.com/go/errors.(*Client).logInternal()
+ /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b
+cloud.google.com/go/errors.(*Client).Catch()
+ /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed
+cloud.google.com/go/errors_test.TestCatchPanic()
+ /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171
+testing.tRunner()
+ /gopath/src/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/src/testing/testing.go:646 +0x2ec
+`),
+ expected: `goroutine 20 [running]:
+runtime/debug.Stack()
+ /gopath/src/runtime/debug/stack.go:24 +0x79
+cloud.google.com/go/errors.(*Client).logInternal()
+ /gopath/src/cloud.google.com/go/errors/errors.go:259 +0x18b
+cloud.google.com/go/errors.(*Client).Catch()
+ /gopath/src/cloud.google.com/go/errors/errors.go:219 +0x6ed
+cloud.google.com/go/errors_test.TestCatchPanic()
+ /gopath/src/cloud.google.com/go/errors/errors_test.go:93 +0x171
+testing.tRunner()
+ /gopath/src/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/src/testing/testing.go:646 +0x2ec
+`,
+ isPanic: true,
+ },
+ {
+ name: "Report",
+ in: []byte(` goroutine 39 [running]:
+runtime/debug.Stack()
+ /gopath/runtime/debug/stack.go:24 +0x79
+cloud.google.com/go/errors.(*Client).logInternal()
+ /gopath/cloud.google.com/go/errors/errors.go:259 +0x18b
+cloud.google.com/go/errors.(*Client).Report()
+ /gopath/cloud.google.com/go/errors/errors.go:248 +0x4ed
+cloud.google.com/go/errors_test.TestReport()
+ /gopath/cloud.google.com/go/errors/errors_test.go:137 +0x2a1
+testing.tRunner()
+ /gopath/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/testing/testing.go:646 +0x2ec
+`),
+ expected: ` goroutine 39 [running]:
+cloud.google.com/go/errors_test.TestReport()
+ /gopath/cloud.google.com/go/errors/errors_test.go:137 +0x2a1
+testing.tRunner()
+ /gopath/testing/testing.go:610 +0x81
+created by testing.(*T).Run
+ /gopath/testing/testing.go:646 +0x2ec
+`,
+ isPanic: false,
+ },
+ } {
+ out := chopStack(test.in, test.isPanic)
+ if out != test.expected {
+ t.Errorf("case %q: chopStack(%q, %t): got %q want %q", test.name, test.in, test.isPanic, out, test.expected)
+ }
+ }
+}