mod_serv_http_test.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package mod_serv_http
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
  7. . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  8. "gitp78su.ipnodns.ru/svi/kern/v4/lev1/mock_env"
  9. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx"
  10. "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kspec"
  11. "gitp78su.ipnodns.ru/svi/kern/v4/lev3/mod_spec"
  12. )
  13. const (
  14. baseUrl = "http://localhost:18390/"
  15. pathStore = "/store/store_mod_serv_http"
  16. )
  17. type tester struct {
  18. t *testing.T
  19. me *mock_env.MockEnv
  20. ctx kspec.IKernelCtx
  21. mod mod_spec.IKernelModule
  22. }
  23. func TestModServHttp(t *testing.T) {
  24. sf := &tester{
  25. t: t,
  26. me: mock_env.MakeEnv(),
  27. ctx: kctx.GetKernelCtx(),
  28. }
  29. err := os.Unsetenv("LOCAL_STORE_PATH")
  30. Hassert(err == nil, "err=%v", err)
  31. err = os.Setenv("LOCAL_STORE_PATH", pathStore)
  32. Hassert(err == nil, "err=%v", err)
  33. err = os.Unsetenv("LOCAL_HTTP_URL")
  34. Hassert(err == nil, "err=%v", err)
  35. err = os.Setenv("LOCAL_HTTP_URL", baseUrl)
  36. Hassert(err == nil, "err=%v", err)
  37. fnClear := func() {
  38. pwd := sf.me.Pwd().String() + pathStore
  39. _ = os.RemoveAll(pwd)
  40. }
  41. fnClear()
  42. defer fnClear()
  43. sf.ctx.Set(defs.Txt("monolitName"), "test_monolit", "test")
  44. sf.new()
  45. sf.done()
  46. }
  47. // Завершение работы.
  48. func (sf *tester) done() {
  49. sf.t.Log("done")
  50. sf.ctx.Cancel()
  51. sf.ctx.Wg().Wait()
  52. if isWork := sf.mod.IsWork(); isWork.IsOk() {
  53. sf.t.Fatalf("newGood1(): isWork==true")
  54. }
  55. }
  56. // Создание нового модуля HTTP-сервера.
  57. func (sf *tester) new() {
  58. sf.t.Log("new")
  59. // sf.newBad1()
  60. sf.newGood1()
  61. }
  62. func (sf *tester) newGood1() {
  63. sf.t.Log("newGood1")
  64. _ = mock_env.MakeEnv()
  65. err := os.Unsetenv("LOCAL_HTTP_URL")
  66. Hassert(err == nil, "newGood1(): err=%v", err)
  67. err = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18301/")
  68. Hassert(err == nil, "newGood1(): err=%v", err)
  69. sf.mod = GetModuleServHttp()
  70. _ = GetModuleServHttp()
  71. if sf.mod == nil {
  72. sf.t.Fatalf("newGood1(): mod==nil")
  73. }
  74. go sf.mod.Run()
  75. for {
  76. time.Sleep(time.Millisecond * 1)
  77. if sf.mod.IsWork().IsOk() {
  78. return
  79. }
  80. }
  81. }
  82. // нет ничего для создания модуля
  83. // func (sf *tester) newBad1() {
  84. // sf.t.Log("newBad1")
  85. // defer func() {
  86. // if _panic := recover(); _panic == nil {
  87. // sf.t.Fatalf("newBad1(): panic==nil")
  88. // }
  89. // }()
  90. // _ = GetModuleServHttp()
  91. // }