errors_test.go 1.2 KB

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