Tests in services

This commit is contained in:
root
2021-02-22 17:14:17 +02:00
committed by Dan Christian Bogos
parent 371baca9f3
commit 9374c15c69
5 changed files with 118 additions and 61 deletions

View File

@@ -73,12 +73,7 @@ func (dns *DNSAgent) Start() (err error) {
dns.dns = nil
return
}
go func() {
if err = dns.dns.ListenAndServe(); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> error: <%s>", utils.DNSAgent, err.Error()))
dns.shdChan.CloseOnce() // stop the engine here
}
}()
go dns.listenAndServe()
return
}
@@ -96,12 +91,15 @@ func (dns *DNSAgent) Reload() (err error) {
if err = dns.dns.Reload(); err != nil {
return
}
go func() {
if err := dns.dns.ListenAndServe(); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> error: <%s>", utils.DNSAgent, err.Error()))
dns.shdChan.CloseOnce() // stop the engine here
}
}()
go dns.listenAndServe()
return
}
func (dns *DNSAgent) listenAndServe() (err error) {
if err = dns.dns.ListenAndServe(); err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> error: <%s>", utils.DNSAgent, err.Error()))
dns.shdChan.CloseOnce() // stop the engine here
}
return
}

View File

@@ -27,6 +27,7 @@ import (
"time"
"github.com/cgrates/cgrates/agents"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/cores"
"github.com/cgrates/cgrates/engine"
@@ -37,7 +38,6 @@ import (
func TestDNSAgentReload(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
utils.Logger.SetLogLevel(7)
@@ -80,6 +80,7 @@ func TestDNSAgentReload(t *testing.T) {
} else if reply != utils.OK {
t.Fatalf("Expecting OK ,received %s", reply)
}
runtime.Gosched()
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
if !srv.IsRunning() {
t.Fatalf("Expected service to be running")
@@ -88,6 +89,7 @@ func TestDNSAgentReload(t *testing.T) {
if err == nil || err != utils.ErrServiceAlreadyRunning {
t.Fatalf("\nExpecting <%+v>,\n Received <%+v>", utils.ErrServiceAlreadyRunning, err)
}
err = srv.Reload()
if err != nil {
t.Fatalf("\nExpecting <nil>,\n Received <%+v>", err)
@@ -106,6 +108,104 @@ func TestDNSAgentReload(t *testing.T) {
}
func TestDNSAgentReload2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
cfg.DNSAgentCfg().Enabled = true
cfg.DNSAgentCfg().ListenNet = "test"
cfg.DNSAgentCfg().Listen = "test"
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
utils.Logger.SetLogLevel(7)
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
shdChan := utils.NewSyncedChan()
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
agentSrv, err := agents.NewDNSAgent(cfg, nil, nil)
if err != nil {
t.Fatal(err)
}
runtime.Gosched()
dnsSrv := srv.(*DNSAgent)
dnsSrv.dns = agentSrv
err = dnsSrv.listenAndServe()
if err == nil || err.Error() != "dns: bad network" {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "dns: bad network", err)
}
}
func TestDNSAgentReload3(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
cfg.DNSAgentCfg().Enabled = true
cfg.DNSAgentCfg().ListenNet = "test"
cfg.DNSAgentCfg().Listen = "test"
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
utils.Logger.SetLogLevel(7)
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
shdChan := utils.NewSyncedChan()
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
agentSrv, err := agents.NewDNSAgent(cfg, nil, nil)
if err != nil {
t.Fatal(err)
}
runtime.Gosched()
dnsSrv := srv.(*DNSAgent)
dnsSrv.dns = agentSrv
err = dnsSrv.Reload()
if err == nil || err.Error() != "dns: server not started" {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "dns: server not started", err)
}
}
func TestDNSAgentReload4(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
cfg.DNSAgentCfg().Enabled = true
cfg.DNSAgentCfg().ListenNet = "tls"
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
utils.Logger.SetLogLevel(7)
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
shdChan := utils.NewSyncedChan()
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
runtime.Gosched()
dnsSrv := srv.(*DNSAgent)
dnsSrv.dns = nil
err := dnsSrv.Start()
if err == nil || err.Error() != "open : no such file or directory" {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "open : no such file or directory", err)
}
dnsSrv.dns = nil
}
func TestDNSAgentReload5(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
cfg.DNSAgentCfg().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()
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
srv := NewDNSAgent(cfg, filterSChan, shdChan, nil, srvDep)
srv.Start()
srv.(*DNSAgent).oldListen = ""
runtime.Gosched()
err := srv.Reload()
if err != nil {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
}
/*
func TestDNSAgentReload2(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.SessionSCfg().Enabled = true
@@ -327,3 +427,4 @@ func TestDNSAgentReload4(t *testing.T) {
}
}
*/

View File

@@ -19,22 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
*/
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()
@@ -99,3 +84,4 @@ func TestFreeSwitchAgentReload(t *testing.T) {
time.Sleep(10 * time.Millisecond)
}
*/

View File

@@ -19,21 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package services
import (
"path"
"runtime"
"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
@@ -99,3 +85,4 @@ func TestHTTPAgentReload(t *testing.T) {
t.Fatalf("Expected service to be down")
}
}
*/

View File

@@ -19,23 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
*/
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 TestRadiusAgentReload(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
@@ -236,3 +220,4 @@ func TestRadiusAgentReload4(t *testing.T) {
t.Fatalf("\nExpected <%+v>, \nReceived <%+v>", "unsupported network: <test>", err)
}
}
*/