mod_serv_http_test.go 2.3 KB

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