package mod_serv_http import ( "os" "testing" "time" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers" . "gitp78su.ipnodns.ru/svi/kern/v4/lev0/ktypes" "gitp78su.ipnodns.ru/svi/kern/v4/lev1/mock_env" "gitp78su.ipnodns.ru/svi/kern/v4/lev2/kctx" ) const ( baseUrl = "http://localhost:18390/" pathStore = "/store/store_mod_serv_http" ) type tester struct { t *testing.T me *mock_env.MockEnv ctx IKernelCtx mod IKernelModule } func TestModServHttp(t *testing.T) { sf := &tester{ t: t, me: mock_env.MakeEnv(), ctx: kctx.GetKernelCtx(), } err := os.Unsetenv("LOCAL_STORE_PATH") Hassert(err == nil, "err=%v", err) err = os.Setenv("LOCAL_STORE_PATH", pathStore) Hassert(err == nil, "err=%v", err) err = os.Unsetenv("LOCAL_HTTP_URL") Hassert(err == nil, "err=%v", err) err = os.Setenv("LOCAL_HTTP_URL", baseUrl) Hassert(err == nil, "err=%v", err) fnClear := func() { pwd := sf.me.Pwd() + pathStore _ = os.RemoveAll(pwd) } fnClear() defer fnClear() sf.ctx.Set("monolitName", "test_monolit", "test") sf.new() sf.done() } // Завершение работы. func (sf *tester) done() { sf.t.Log("done") sf.ctx.Cancel() sf.ctx.Wg().Wait() if isWork := sf.mod.IsWork(); isWork { sf.t.Fatalf("newGood1(): isWork==true") } } // Создание нового модуля HTTP-сервера. func (sf *tester) new() { sf.t.Log("new") // sf.newBad1() sf.newGood1() } func (sf *tester) newGood1() { sf.t.Log("newGood1") _ = mock_env.MakeEnv() err := os.Unsetenv("LOCAL_HTTP_URL") Hassert(err == nil, "newGood1(): err=%v", err) err = os.Setenv("LOCAL_HTTP_URL", "http://localhost:18301/") Hassert(err == nil, "newGood1(): err=%v", err) sf.mod = GetModuleServHttp() _ = GetModuleServHttp() if sf.mod == nil { sf.t.Fatalf("newGood1(): mod==nil") } go sf.mod.Run() for { time.Sleep(time.Millisecond * 1) if sf.mod.IsWork() { return } } } // нет ничего для создания модуля // func (sf *tester) newBad1() { // sf.t.Log("newBad1") // defer func() { // if _panic := recover(); _panic == nil { // sf.t.Fatalf("newBad1(): panic==nil") // } // }() // _ = GetModuleServHttp() // }