format_test.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package errors
  2. import (
  3. "fmt"
  4. "io"
  5. "testing"
  6. )
  7. func TestFormat(t *testing.T) {
  8. tests := []struct {
  9. error
  10. format string
  11. want string
  12. }{{
  13. New("error"),
  14. "%s",
  15. "error",
  16. }, {
  17. New("error"),
  18. "%v",
  19. "error",
  20. }, {
  21. New("error"),
  22. "%+v",
  23. "github.com/pkg/errors/format_test.go:24: error",
  24. }, {
  25. Errorf("%s", "error"),
  26. "%s",
  27. "error",
  28. }, {
  29. Errorf("%s", "error"),
  30. "%v",
  31. "error",
  32. }, {
  33. Errorf("%s", "error"),
  34. "%+v",
  35. "github.com/pkg/errors/format_test.go:36: error",
  36. }, {
  37. Wrap(New("error"), "error2"),
  38. "%s",
  39. "error2: error",
  40. }, {
  41. Wrap(New("error"), "error2"),
  42. "%v",
  43. "error2: error",
  44. }, {
  45. Wrap(New("error"), "error2"),
  46. "%+v",
  47. "github.com/pkg/errors/format_test.go:48: error\n" +
  48. "github.com/pkg/errors/format_test.go:48: error2",
  49. }, {
  50. Wrap(io.EOF, "error"),
  51. "%s",
  52. "error: EOF",
  53. }, {
  54. Wrapf(New("error"), "error%d", 2),
  55. "%s",
  56. "error2: error",
  57. }, {
  58. Wrap(io.EOF, "error"),
  59. "%v",
  60. "error: EOF",
  61. }, {
  62. Wrap(io.EOF, "error"),
  63. "%+v",
  64. "EOF\n" +
  65. "github.com/pkg/errors/format_test.go:65: error",
  66. }, {
  67. Wrapf(New("error"), "error%d", 2),
  68. "%v",
  69. "error2: error",
  70. }, {
  71. Wrapf(New("error"), "error%d", 2),
  72. "%+v",
  73. "github.com/pkg/errors/format_test.go:74: error\n" +
  74. "github.com/pkg/errors/format_test.go:74: error2",
  75. }}
  76. for _, tt := range tests {
  77. got := fmt.Sprintf(tt.format, tt.error)
  78. if got != tt.want {
  79. t.Errorf("fmt.Sprintf(%q, err): got: %q, want: %q", tt.format, got, tt.want)
  80. }
  81. }
  82. }