mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 10:06:24 +05:00
Improved error verification on dsp + tests
This commit is contained in:
@@ -229,8 +229,8 @@ func (sd *singleResultDispatcher) Dispatch(dm *engine.DataManager, flts *engine.
|
||||
}
|
||||
if err = callDHwithID(tnt, hostID, routeID, dRh, dm,
|
||||
serviceMethod, args, reply); err == nil ||
|
||||
err != utils.ErrDSPHostNotFound ||
|
||||
!rpcclient.IsNetworkError(err) { // successful dispatch with normal errors
|
||||
(err != utils.ErrDSPHostNotFound &&
|
||||
!rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
@@ -315,7 +315,8 @@ func (ld *loadDispatcher) Dispatch(dm *engine.DataManager, flts *engine.FilterS,
|
||||
serviceMethod, args, reply)
|
||||
lM.decrementLoad(dR.HostID, ld.tntID) // call ended
|
||||
if err == nil ||
|
||||
(err != utils.ErrNotFound && !rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors
|
||||
(err != utils.ErrDSPHostNotFound &&
|
||||
!rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors
|
||||
return
|
||||
}
|
||||
// not found or network errors will continue with standard dispatching
|
||||
@@ -342,7 +343,8 @@ func (ld *loadDispatcher) Dispatch(dm *engine.DataManager, flts *engine.FilterS,
|
||||
serviceMethod, args, reply)
|
||||
lM.decrementLoad(hostID, ld.tntID) // call ended
|
||||
if err == nil ||
|
||||
(err != utils.ErrNotFound && !rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors
|
||||
(err != utils.ErrDSPHostNotFound &&
|
||||
!rpcclient.IsNetworkError(err)) { // successful dispatch with normal errors
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
|
||||
@@ -456,7 +456,7 @@ func TestLibDispatcherLoadDispatcherDispatchHostsID(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestLibDispatcherLoadStrategyDispatchCaseCallError(t *testing.T) {
|
||||
func TestLibDispatcherLoadStrategyDispatchCaseCallError2(t *testing.T) {
|
||||
wgDsp := &loadDispatcher{
|
||||
hosts: engine.DispatcherHostProfiles{
|
||||
{
|
||||
@@ -661,7 +661,7 @@ func TestLibDispatcherLoadDispatcherCacheError(t *testing.T) {
|
||||
engine.Cache = cacheInit
|
||||
}
|
||||
|
||||
func TestLibDispatcherLoadDispatcherCacheError4(t *testing.T) {
|
||||
func TestLibDispatcherLoadDispatcherCacheError7(t *testing.T) {
|
||||
cacheInit := engine.Cache
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.CacheCfg().ReplicationConns = []string{"con"}
|
||||
@@ -911,42 +911,6 @@ func TestLibDispatcherSingleResultDispatcherCase3(t *testing.T) {
|
||||
engine.IntRPC = tmp
|
||||
}
|
||||
|
||||
func TestLibDispatcherDispatchFilterError(t *testing.T) {
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
flts := engine.NewFilterS(cfg, nil, nil)
|
||||
var dsp Dispatcher = &singleResultDispatcher{
|
||||
sorter: new(noSort),
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
}
|
||||
expErrMsg := "inline parse error for string: <*wrongType>"
|
||||
if err := dsp.Dispatch(nil, flts, nil, "", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
dsp = &loadDispatcher{
|
||||
sorter: new(noSort),
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID2",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
defaultRatio: 1,
|
||||
}
|
||||
if err := dsp.Dispatch(nil, flts, nil, "", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
dsp = &broadcastDispatcher{
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
}
|
||||
if err := dsp.Dispatch(nil, flts, nil, "", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLibDispatcherRandomSort(t *testing.T) {
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
flts := engine.NewFilterS(cfg, nil, nil)
|
||||
@@ -988,3 +952,58 @@ func TestLibDispatcherRoundRobinSort(t *testing.T) {
|
||||
t.Errorf("Expected: %q, received: %q", expHostIDs2, hostIDs)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLibDispatcherLoadStrategyDispatchCaseCallError(t *testing.T) {
|
||||
wgDsp := &loadDispatcher{
|
||||
hosts: engine.DispatcherHostProfiles{
|
||||
{
|
||||
ID: "hostID",
|
||||
},
|
||||
},
|
||||
defaultRatio: 1,
|
||||
sorter: new(noSort),
|
||||
}
|
||||
err := wgDsp.Dispatch(nil, nil, nil, "cgrates.org", "", &DispatcherRoute{}, utils.AttributeSv1Ping, &utils.CGREvent{}, &wgDsp)
|
||||
expected := "NO_DATABASE_CONNECTION"
|
||||
if err == nil || err.Error() != expected {
|
||||
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLibDispatcherDispatchFilterError(t *testing.T) {
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
flts := engine.NewFilterS(cfg, nil, nil)
|
||||
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
|
||||
dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
|
||||
var dsp Dispatcher = &singleResultDispatcher{
|
||||
sorter: new(noSort),
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
}
|
||||
expErrMsg := "inline parse error for string: <*wrongType>"
|
||||
if err := dsp.Dispatch(dm, flts, nil, "cgrates.org", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
dsp = &loadDispatcher{
|
||||
sorter: new(noSort),
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID2",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
defaultRatio: 1,
|
||||
}
|
||||
if err := dsp.Dispatch(dm, flts, nil, "cgrates.org", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
dsp = &broadcastDispatcher{
|
||||
hosts: engine.DispatcherHostProfiles{{
|
||||
ID: "testID",
|
||||
FilterIDs: []string{"*wrongType"},
|
||||
}},
|
||||
}
|
||||
if err := dsp.Dispatch(dm, flts, nil, "cgrates.org", "", &DispatcherRoute{}, "", "", ""); err == nil || err.Error() != expErrMsg {
|
||||
t.Errorf("Expected error: %s received: %v", expErrMsg, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user