From 7bc479096c32dd0c05db771b28aa4bbcb47e188b Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Tue, 8 Jun 2021 10:21:02 +0300 Subject: [PATCH] Tested cgr-engine flags --- cmd/cgr-engine/cgr-engine.go | 2 +- cmd/cgr-engine/cgr-engine_flags_test.go | 119 ++++++++++++++++++++++++ cmd/cgr-migrator/cgr-migrator_test.go | 2 +- config/cfg_data.json | 47 ---------- 4 files changed, 121 insertions(+), 49 deletions(-) create mode 100644 cmd/cgr-engine/cgr-engine_flags_test.go delete mode 100644 config/cfg_data.json diff --git a/cmd/cgr-engine/cgr-engine.go b/cmd/cgr-engine/cgr-engine.go index d06a5769c..2d7a527c0 100644 --- a/cmd/cgr-engine/cgr-engine.go +++ b/cmd/cgr-engine/cgr-engine.go @@ -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") diff --git a/cmd/cgr-engine/cgr-engine_flags_test.go b/cmd/cgr-engine/cgr-engine_flags_test.go new file mode 100644 index 000000000..1f60b84d6 --- /dev/null +++ b/cmd/cgr-engine/cgr-engine_flags_test.go @@ -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 +*/ + +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) + } +} \ No newline at end of file diff --git a/cmd/cgr-migrator/cgr-migrator_test.go b/cmd/cgr-migrator/cgr-migrator_test.go index 9ffc11ade..013465bf0 100644 --- a/cmd/cgr-migrator/cgr-migrator_test.go +++ b/cmd/cgr-migrator/cgr-migrator_test.go @@ -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) diff --git a/config/cfg_data.json b/config/cfg_data.json deleted file mode 100644 index 31fa0aaa3..000000000 --- a/config/cfg_data.json +++ /dev/null @@ -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: -}, - -"rals": { - "enabled": true, // enable Rater service: -}, - - -"sessions": { - "enabled": true, // enable Rater service: -}, - -"freeswitch_agent": { - "enabled": true, // starts SessionManager service: - "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, -}, - -}