Tested cgr-engine flags

This commit is contained in:
porosnicuadrian
2021-06-08 10:21:02 +03:00
committed by Dan Christian Bogos
parent 9d099348f2
commit 7bc479096c
4 changed files with 121 additions and 49 deletions

View File

@@ -56,7 +56,7 @@ var (
httpPprofPath = cgrEngineFlags.String(utils.HttpPrfPthCgr, utils.EmptyString, "http address used for program profiling")
cpuProfDir = cgrEngineFlags.String(utils.CpuProfDirCgr, utils.EmptyString, "write cpu profile to files")
memProfDir = cgrEngineFlags.String(utils.MemProfDirCgr, utils.EmptyString, "write memory profile to file")
memProfInterval = cgrEngineFlags.Duration(utils.MemProfIntervalCgr, 5*time.Second, "Time betwen memory profile saves")
memProfInterval = cgrEngineFlags.Duration(utils.MemProfIntervalCgr, 5*time.Second, "Time between memory profile saves")
memProfNrFiles = cgrEngineFlags.Int(utils.MemProfNrFilesCgr, 1, "Number of memory profile to write")
scheduledShutdown = cgrEngineFlags.String(utils.ScheduledShutdownCgr, utils.EmptyString, "shutdown the engine after this duration")
singlecpu = cgrEngineFlags.Bool(utils.SingleCpuCgr, false, "Run on single CPU core")

View File

@@ -0,0 +1,119 @@
/*
Real-time Online/Offline Charging System (OerS) for Telecom & ISP environments
Copyright (C) ITsysCOM GmbH
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
*/
package main
import (
"path"
"testing"
"time"
)
// if the flag change this should fail
// do not use constants in this test
func TestCgrEngineFlags(t *testing.T) {
if err := cgrEngineFlags.Parse([]string{"-config_path", path.Join("/conf", "samples", "tutorial")}); err != nil {
t.Fatal(err)
} else if *cfgPath != "/conf/samples/tutorial" {
t.Errorf("Expected /conf/samples/tutorial, received %+v", *cfgPath)
}
if err := cgrEngineFlags.Parse([]string{"-version", "true"}); err != nil {
t.Fatal(err)
} else if *version != true {
t.Errorf("Expected true, received %+v", *version)
}
if err := cgrEngineFlags.Parse([]string{"-check_config", "true"}); err != nil {
t.Fatal(err)
} else if *checkConfig != true {
t.Errorf("Expected true, received %+v", *checkConfig)
}
if err := cgrEngineFlags.Parse([]string{"-pid", "usr/share/cgrates/cgrates.json"}); err != nil {
t.Fatal(err)
} else if *pidFile != "usr/share/cgrates/cgrates.json" {
t.Errorf("Expected usr/share/cgrates/cgrates.json, received %+v", *pidFile)
}
if err := cgrEngineFlags.Parse([]string{"-httprof_path", "http://example.com/"}); err != nil {
t.Fatal(err)
} else if *httpPprofPath!= "http://example.com/" {
t.Errorf("Expected http://example.com/, received %+v", *httpPprofPath)
}
if err := cgrEngineFlags.Parse([]string{"-cpuprof_dir", "1"}); err != nil {
t.Fatal(err)
} else if *cpuProfDir != "1" {
t.Errorf("Expected 1, received %+v", *httpPprofPath)
}
if err := cgrEngineFlags.Parse([]string{"-memprof_dir", "true"}); err != nil {
t.Fatal(err)
} else if *memProfDir != "true" {
t.Errorf("Expected true received %+v", *memProfDir)
}
if err := cgrEngineFlags.Parse([]string{"-memprof_interval", "1s"}); err != nil {
t.Fatal(err)
} else if *memProfInterval != time.Second {
t.Errorf("Expected 1s, received %+v", *memProfInterval)
}
if err := cgrEngineFlags.Parse([]string{"-memprof_nrfiles", "3"}); err != nil {
t.Fatal(err)
} else if *memProfNrFiles!= 3 {
t.Errorf("Expected 3, received %+v", *memProfNrFiles)
}
if err := cgrEngineFlags.Parse([]string{"-scheduled_shutdown", "1h"}); err != nil {
t.Fatal(err)
} else if *scheduledShutdown != "1h" {
t.Errorf("Expected 1h, received %+v", *scheduledShutdown)
}
if err := cgrEngineFlags.Parse([]string{"-singlecpu"}); err != nil {
t.Fatal(err)
} else if *singlecpu != true {
t.Errorf("Expected true, received %+v", *singlecpu)
}
if err := cgrEngineFlags.Parse([]string{"-logger", "*stdout"}); err != nil {
t.Fatal(err)
} else if *syslogger != "*stdout" {
t.Errorf("Expected *stdout, received %+v", *syslogger)
}
if err := cgrEngineFlags.Parse([]string{"-node_id", "CGRates.org"}); err != nil {
t.Fatal(err)
} else if *nodeID != "CGRates.org" {
t.Errorf("Expected CGRates.org, received %+v", *nodeID)
}
if err := cgrEngineFlags.Parse([]string{"-log_level", "7"}); err != nil {
t.Fatal(err)
} else if *logLevel != 7 {
t.Errorf("Expected 7, received %+v", *logLevel)
}
if err := cgrEngineFlags.Parse([]string{"-preload", "TestPreloadID"}); err != nil {
t.Fatal(err)
} else if *preload != "TestPreloadID" {
t.Errorf("Expected 7, received %+v", *preload)
}
}

View File

@@ -28,7 +28,7 @@ func TestFlags(t *testing.T) {
if err := cgrMigratorFlags.Parse([]string{"-config_path", "true"}); err != nil {
t.Fatal(err)
} else if *cfgPath != "true" {
t.Errorf("Expected true received:%v ", *cfgPath)
t.Errorf( "Expected true received:%v ", *cfgPath)
}
if err := cgrMigratorFlags.Parse([]string{"-exec", "true"}); err != nil {
t.Fatal(err)

View File

@@ -1,47 +0,0 @@
{
// Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
// Copyright (C) ITsysCOM GmbH
"general": {
"default_request_type": "*pseudoprepaid", // default request type to consider when missing from requests: <""|*prepaid|*postpaid|*pseudoprepaid|*rated>
},
"cdrs": {
"enabled": true, // start the CDR Server service: <true|false>
},
"rals": {
"enabled": true, // enable Rater service: <true|false>
},
"sessions": {
"enabled": true, // enable Rater service: <true|false>
},
"freeswitch_agent": {
"enabled": true, // starts SessionManager service: <true|false>
"event_socket_conns":[ // instantiate connections to multiple FreeSWITCH servers
{"address": "1.2.3.4:8021", "password": "ClueCon", "reconnects": 5},
{"address": "2.3.4.5:8021", "password": "ClueCon", "reconnects": 5},
],
},
"resources": {
"enabled": true,
},
"routes": {
"enabled": true,
},
"attributes": {
"enabled": true,
},
"chargers": {
"enabled": true,
},
}