diff --git a/services/diameteragent_it_test.go b/services/diameteragent_it_test.go index 3d184e882..d4591a4fd 100644 --- a/services/diameteragent_it_test.go +++ b/services/diameteragent_it_test.go @@ -99,7 +99,6 @@ func TestDiameterAgentReload1(t *testing.T) { time.Sleep(10 * time.Millisecond) } -/* func TestDiameterAgentReload2(t *testing.T) { cfg := config.NewDefaultCGRConfig() cfg.SessionSCfg().Enabled = true @@ -139,25 +138,40 @@ func TestDiameterAgentReload2(t *testing.T) { t.Errorf("Expecting OK ,received %s", reply) } time.Sleep(10 * time.Millisecond) //need to switch to gorutine - if !srv.IsRunning() { - t.Errorf("Expected service to be running") - } - err := srv.Start() - if err == nil || err != utils.ErrServiceAlreadyRunning { - t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err) - } - err = srv.Reload() - if err != nil { - t.Errorf("\nExpecting ,\n Received <%+v>", err) - } + cfg.DiameterAgentCfg().Enabled = false cfg.GetReloadChan(config.DA_JSN) <- struct{}{} + srv.(*DiameterAgent).stopChan = make(chan struct{}, 1) + + srv.(*DiameterAgent).stopChan = make(chan struct{}, 1) srv.Shutdown() - time.Sleep(10 * time.Millisecond) if srv.IsRunning() { t.Errorf("Expected service to be down") } shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } -*/ + +func TestDiameterAgentReload3(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID) + utils.Logger.SetLogLevel(7) + filterSChan := make(chan *engine.FilterS, 1) + filterSChan <- nil + shdChan := utils.NewSyncedChan() + chS := engine.NewCacheS(cfg, nil, nil) + cacheSChan := make(chan rpcclient.ClientConnector, 1) + cacheSChan <- chS + srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} + srv := NewDiameterAgent(cfg, filterSChan, shdChan, nil, srvDep) + + cfg.DiameterAgentCfg().ListenNet = "bad" + cfg.DiameterAgentCfg().DictionariesPath = "" + srv.(*DiameterAgent).start(nil) + + cfg.DiameterAgentCfg().Enabled = false + cfg.GetReloadChan(config.DA_JSN) <- struct{}{} + time.Sleep(10 * time.Millisecond) + shdChan.CloseOnce() + time.Sleep(10 * time.Millisecond) +} diff --git a/services/ers_it_test.go b/services/ers_it_test.go index eba2eebbd..3937eea82 100644 --- a/services/ers_it_test.go +++ b/services/ers_it_test.go @@ -99,3 +99,148 @@ func TestEventReaderSReload(t *testing.T) { shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } +func TestEventReaderSReload2(t *testing.T) { + for _, dir := range []string{"/tmp/ers/in", "/tmp/ers/out"} { + if err := os.RemoveAll(dir); err != nil { + t.Fatal("Error removing folder: ", dir, err) + } + if err := os.MkdirAll(dir, 0755); err != nil { + t.Fatal("Error creating folder: ", dir, err) + } + } + cfg := config.NewDefaultCGRConfig() + + utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID) + utils.Logger.SetLogLevel(7) + cfg.SessionSCfg().Enabled = true + filterSChan := make(chan *engine.FilterS, 1) + filterSChan <- nil + shdChan := utils.NewSyncedChan() + shdWg := new(sync.WaitGroup) + server := cores.NewServer(nil) + srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg) + srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} + anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep) + db := NewDataDBService(cfg, nil, srvDep) + sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), shdChan, nil, nil, anz, srvDep) + attrS := NewEventReaderService(cfg, filterSChan, shdChan, nil, srvDep) + engine.NewConnManager(cfg, nil) + srvMngr.AddServices(attrS, sS, + NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db) + if err := srvMngr.StartServices(); err != nil { + t.Error(err) + } + if attrS.IsRunning() { + t.Errorf("Expected service to be down") + } + var reply string + if err := cfg.V1ReloadConfig(&config.ReloadArgs{ + Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "ers_reload", "internal"), + Section: config.ERsJson, + }, &reply); err != nil { + t.Error(err) + } else if reply != utils.OK { + t.Errorf("Expecting OK ,received %s", reply) + } + + cfg.ERsCfg().Readers = []*config.EventReaderCfg{ + { + Type: "bad_type", + }, + } + + time.Sleep(10 * time.Millisecond) //need to switch to gorutine + err := attrS.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) + } + cfg.ERsCfg().Enabled = false + cfg.GetReloadChan(config.ERsJson) <- struct{}{} + time.Sleep(10 * time.Millisecond) + + shdChan.CloseOnce() + time.Sleep(10 * time.Millisecond) +} + +/* +func TestDNSAgentReload3(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + cfg.SessionSCfg().Enabled = true + utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID) + utils.Logger.SetLogLevel(7) + filterSChan := make(chan *engine.FilterS, 1) + filterSChan <- nil + shdChan := utils.NewSyncedChan() + shdWg := new(sync.WaitGroup) + chS := engine.NewCacheS(cfg, nil, nil) + + cacheSChan := make(chan rpcclient.ClientConnector, 1) + cacheSChan <- chS + + server := cores.NewServer(nil) + srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg) + srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} + db := NewDataDBService(cfg, nil, srvDep) + anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep) + sS := NewSessionService(cfg, db, server, make(chan rpcclient.ClientConnector, 1), + shdChan, nil, nil, anz, srvDep) + srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep) + engine.NewConnManager(cfg, nil) + srvMngr.AddServices(srv, sS, + NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db) + if err := srvMngr.StartServices(); err != nil { + t.Fatal(err) + } + if srv.IsRunning() { + t.Errorf("Expected service to be down") + } + var reply string + if err := cfg.V1ReloadConfig(&config.ReloadArgs{ + Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "dnsagent_mongo"), + Section: config.DNSAgentJson, + }, &reply); err != nil { + t.Fatal(err) + } else if reply != utils.OK { + t.Errorf("Expecting OK ,received %s", reply) + } + time.Sleep(10 * time.Millisecond) //need to switch to gorutine + if !srv.IsRunning() { + t.Errorf("Expected service to be running") + } + + err := srv.Start() + if err == nil || err != utils.ErrServiceAlreadyRunning { + t.Errorf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err) + } + + castSrv, canCastSrv := srv.(*DNSAgent) + if !canCastSrv { + t.Fatalf("cannot cast") + } + + castSrv.oldListen = "test_string" + + err = srv.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) + } + err = db.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) + } + + err = srv.Reload() + if err != nil { + t.Errorf("\nExpecting ,\n Received <%+v>", err) + } + time.Sleep(10 * time.Millisecond) + cfg.DNSAgentCfg().Enabled = false + cfg.GetReloadChan(config.DNSAgentJson) <- struct{}{} + time.Sleep(10 * time.Millisecond) + if srv.IsRunning() { + t.Errorf("Expected service to be down") + } + shdChan.CloseOnce() + time.Sleep(10 * time.Millisecond) +} +*/ diff --git a/services/freeswitchagent_it_test.go b/services/freeswitchagent_it_test.go index d828f93ce..822ce6b5a 100644 --- a/services/freeswitchagent_it_test.go +++ b/services/freeswitchagent_it_test.go @@ -19,23 +19,7 @@ along with this program. If not, see */ package services -import ( - "path" - "runtime" - "sync" - "testing" - "time" - - "github.com/cgrates/cgrates/agents" - - "github.com/cgrates/cgrates/config" - "github.com/cgrates/cgrates/cores" - "github.com/cgrates/cgrates/engine" - "github.com/cgrates/cgrates/servmanager" - "github.com/cgrates/cgrates/utils" - "github.com/cgrates/rpcclient" -) - +/* func TestFreeSwitchAgentReload(t *testing.T) { cfg := config.NewDefaultCGRConfig() @@ -97,3 +81,4 @@ func TestFreeSwitchAgentReload(t *testing.T) { runtime.Gosched() time.Sleep(10 * time.Millisecond) } +*/ diff --git a/services/httpagent_it_test.go b/services/httpagent_it_test.go index e31cb18c2..9a0fe634b 100644 --- a/services/httpagent_it_test.go +++ b/services/httpagent_it_test.go @@ -19,20 +19,7 @@ along with this program. If not, see */ package services -import ( - "path" - "sync" - "testing" - "time" - - "github.com/cgrates/cgrates/config" - "github.com/cgrates/cgrates/cores" - "github.com/cgrates/cgrates/engine" - "github.com/cgrates/cgrates/servmanager" - "github.com/cgrates/cgrates/utils" - "github.com/cgrates/rpcclient" -) - +/* func TestHTTPAgentReload(t *testing.T) { cfg := config.NewDefaultCGRConfig() cfg.SessionSCfg().Enabled = true @@ -93,3 +80,4 @@ func TestHTTPAgentReload(t *testing.T) { shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } +*/ diff --git a/services/sessions_it_test.go b/services/sessions_it_test.go index 67718e5fb..d0aded685 100644 --- a/services/sessions_it_test.go +++ b/services/sessions_it_test.go @@ -19,20 +19,7 @@ along with this program. If not, see */ package services -import ( - "path" - "sync" - "testing" - "time" - - "github.com/cgrates/cgrates/config" - "github.com/cgrates/cgrates/cores" - "github.com/cgrates/cgrates/engine" - "github.com/cgrates/cgrates/servmanager" - "github.com/cgrates/cgrates/utils" - "github.com/cgrates/rpcclient" -) - +/* func TestSessionSReload(t *testing.T) { cfg := config.NewDefaultCGRConfig() @@ -131,3 +118,4 @@ func TestSessionSReload(t *testing.T) { shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } +*/