slog_file_test.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package slog_file
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "wartank/pkg/mock/mockenv"
  7. "wartank/pkg/mock/mockkernel"
  8. )
  9. /*
  10. Тест для интерфейса логгера в файл
  11. */
  12. type tester struct {
  13. t *testing.T
  14. err error
  15. me *mockenv.MockEnv
  16. kern *mockkernel.MockKernel
  17. sf *SlogFile
  18. }
  19. func TestSlogFile(t *testing.T) {
  20. _ = os.RemoveAll("./log")
  21. test := &tester{
  22. t: t,
  23. me: mockenv.NewMockEnv(),
  24. }
  25. test.create()
  26. test.write()
  27. test.close()
  28. test.writeBad1()
  29. test.cancel()
  30. _ = os.RemoveAll("./log")
  31. }
  32. // файл уже закрыт
  33. func (sf *tester) writeBad1() {
  34. if err := sf.sf.write([]byte{}); err == nil {
  35. sf.t.Errorf("write(): err==nil")
  36. }
  37. }
  38. // закрытие логгера
  39. func (sf *tester) close() {
  40. sf.t.Logf("=close=")
  41. sf.kern.CancelApp()
  42. sf.kern.Wg().Wait()
  43. sf.sf.Write("")
  44. }
  45. // отмена работы
  46. func (sf *tester) cancel() {
  47. sf.t.Logf("=cancal=")
  48. sf.createGood1()
  49. sf.kern.CancelApp()
  50. sf.kern.Wg().Wait()
  51. }
  52. // запись сообщения
  53. func (sf *tester) write() {
  54. sf.t.Logf("=write=")
  55. sf.sf.Write("test msg")
  56. time.Sleep(time.Millisecond * 150)
  57. }
  58. // Создание файлового логгера
  59. func (sf *tester) create() {
  60. sf.t.Logf("=create=")
  61. sf.createBad1()
  62. sf.createBad2()
  63. sf.createGood1()
  64. }
  65. func (sf *tester) createGood1() {
  66. sf.t.Logf("=createGood1=")
  67. sf.sf, sf.err = NewSlogFile(sf.kern, "test")
  68. if sf.err != nil {
  69. sf.t.Errorf("createGood1(): err=%v", sf.err)
  70. }
  71. if sf.sf == nil {
  72. sf.t.Errorf("createGood1(): SlogFile == nil")
  73. }
  74. }
  75. // Нет верси сборки
  76. func (sf *tester) createBad2() {
  77. sf.t.Logf("=createBad2=")
  78. sf.kern = mockkernel.NewMockKernel()
  79. sf.sf, sf.err = NewSlogFile(sf.kern, "")
  80. if sf.err == nil {
  81. sf.t.Errorf("createBad2(): err == nil")
  82. }
  83. if sf.sf != nil {
  84. sf.t.Errorf("createBad2(): SlogFile != nil")
  85. }
  86. }
  87. // Нет объекта ядра
  88. func (sf *tester) createBad1() {
  89. sf.t.Logf("=createBad1=")
  90. sf.sf, sf.err = NewSlogFile(nil, "test")
  91. if sf.err == nil {
  92. sf.t.Errorf("createBad1(): err == nil")
  93. }
  94. if sf.sf != nil {
  95. sf.t.Errorf("createBad1(): SlogFile != nil")
  96. }
  97. }