Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / xerrors@v0.0.0-20200804184101-5ec99f83aff1 / errors_test.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1/errors_test.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/xerrors@v0.0.0-20200804184101-5ec99f83aff1/errors_test.go
new file mode 100644 (file)
index 0000000..7e0e77f
--- /dev/null
@@ -0,0 +1,67 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package xerrors_test
+
+import (
+       "fmt"
+       "regexp"
+       "testing"
+
+       "golang.org/x/xerrors"
+)
+
+func TestNewEqual(t *testing.T) {
+       // Different allocations should not be equal.
+       if xerrors.New("abc") == xerrors.New("abc") {
+               t.Errorf(`New("abc") == New("abc")`)
+       }
+       if xerrors.New("abc") == xerrors.New("xyz") {
+               t.Errorf(`New("abc") == New("xyz")`)
+       }
+
+       // Same allocation should be equal to itself (not crash).
+       err := xerrors.New("jkl")
+       if err != err {
+               t.Errorf(`err != err`)
+       }
+}
+
+func TestErrorMethod(t *testing.T) {
+       err := xerrors.New("abc")
+       if err.Error() != "abc" {
+               t.Errorf(`New("abc").Error() = %q, want %q`, err.Error(), "abc")
+       }
+}
+
+func TestNewDetail(t *testing.T) {
+       got := fmt.Sprintf("%+v", xerrors.New("error"))
+       want := `(?s)error:.+errors_test.go:\d+`
+       ok, err := regexp.MatchString(want, got)
+       if err != nil {
+               t.Fatal(err)
+       }
+       if !ok {
+               t.Errorf(`fmt.Sprintf("%%+v", New("error")) = %q, want %q"`, got, want)
+       }
+}
+
+func ExampleNew() {
+       err := xerrors.New("emit macho dwarf: elf header corrupted")
+       if err != nil {
+               fmt.Print(err)
+       }
+       // Output: emit macho dwarf: elf header corrupted
+}
+
+// The fmt package's Errorf function lets us use the package's formatting
+// features to create descriptive error messages.
+func ExampleNew_errorf() {
+       const name, id = "bimmler", 17
+       err := fmt.Errorf("user %q (id %d) not found", name, id)
+       if err != nil {
+               fmt.Print(err)
+       }
+       // Output: user "bimmler" (id 17) not found
+}