errors_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package errors_test
  2. import (
  3. "io"
  4. "testing"
  5. "v2ray.com/core/common/compare"
  6. . "v2ray.com/core/common/errors"
  7. "v2ray.com/core/common/log"
  8. . "v2ray.com/ext/assert"
  9. )
  10. func TestError(t *testing.T) {
  11. assert := With(t)
  12. err := New("TestError")
  13. assert(GetSeverity(err), Equals, log.Severity_Info)
  14. err = New("TestError2").Base(io.EOF)
  15. assert(GetSeverity(err), Equals, log.Severity_Info)
  16. err = New("TestError3").Base(io.EOF).AtWarning()
  17. assert(GetSeverity(err), Equals, log.Severity_Warning)
  18. err = New("TestError4").Base(io.EOF).AtWarning()
  19. err = New("TestError5").Base(err)
  20. assert(GetSeverity(err), Equals, log.Severity_Warning)
  21. assert(err.Error(), HasSubstring, "EOF")
  22. }
  23. type e struct{}
  24. func TestErrorMessage(t *testing.T) {
  25. data := []struct {
  26. err error
  27. msg string
  28. }{
  29. {
  30. err: New("a").Base(New("b")).WithPathObj(e{}),
  31. msg: "v2ray.com/core/common/errors_test: a > b",
  32. },
  33. {
  34. err: New("a").Base(New("b").WithPathObj(e{})),
  35. msg: "a > v2ray.com/core/common/errors_test: b",
  36. },
  37. }
  38. for _, d := range data {
  39. if err := compare.StringEqualWithDetail(d.msg, d.err.Error()); err != nil {
  40. t.Fatal(err)
  41. }
  42. }
  43. }