errors_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package errors_test
  2. import (
  3. "io"
  4. "os"
  5. "strings"
  6. "testing"
  7. "github.com/google/go-cmp/cmp"
  8. "github.com/v2fly/v2ray-core/v4/common"
  9. . "github.com/v2fly/v2ray-core/v4/common/errors"
  10. "github.com/v2fly/v2ray-core/v4/common/log"
  11. )
  12. func TestError(t *testing.T) {
  13. err := New("TestError")
  14. if v := GetSeverity(err); v != log.Severity_Info {
  15. t.Error("severity: ", v)
  16. }
  17. err = New("TestError2").Base(io.EOF)
  18. if v := GetSeverity(err); v != log.Severity_Info {
  19. t.Error("severity: ", v)
  20. }
  21. err = New("TestError3").Base(io.EOF).AtWarning()
  22. if v := GetSeverity(err); v != log.Severity_Warning {
  23. t.Error("severity: ", v)
  24. }
  25. err = New("TestError4").Base(io.EOF).AtWarning()
  26. err = New("TestError5").Base(err)
  27. if v := GetSeverity(err); v != log.Severity_Warning {
  28. t.Error("severity: ", v)
  29. }
  30. if v := err.Error(); !strings.Contains(v, "EOF") {
  31. t.Error("error: ", v)
  32. }
  33. }
  34. type e struct{}
  35. func TestErrorMessage(t *testing.T) {
  36. pwd, err := os.Getwd()
  37. if err != nil {
  38. t.Error(err)
  39. }
  40. moduleName, gmnErr := common.GetModuleName(pwd)
  41. if gmnErr != nil {
  42. t.Error(gmnErr)
  43. }
  44. data := []struct {
  45. err error
  46. msg string
  47. }{
  48. {
  49. err: New("a").Base(New("b")).WithPathObj(e{}),
  50. msg: moduleName + "/common/errors_test: a > b",
  51. },
  52. {
  53. err: New("a").Base(New("b").WithPathObj(e{})),
  54. msg: "a > " + moduleName + "/common/errors_test: b",
  55. },
  56. }
  57. for _, d := range data {
  58. if diff := cmp.Diff(d.msg, d.err.Error()); diff != "" {
  59. t.Error(diff)
  60. }
  61. }
  62. }