GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_DAEMONS/TEST_DAEMON_LOAD_CONFIG/main.cpp
Date: 2026-01-15 15:35:36
Exec Total Coverage
Lines: 130 130 100.0%
Functions: 8 8 100.0%
Branches: 344 360 95.6%

Line Branch Exec Source
1
2 /***************************************
3 Auteur : Pierre Aubert
4 Mail : pierre.aubert@lapp.in2p3.fr
5 Licence : CeCILL-C
6 ****************************************/
7
8 #include <iostream>
9
10 #include "phoenix_assert.h"
11 #include "Daemon.h"
12 #include "DaemonEmptyBackend.h"
13
14 typedef Daemon<DaemonEmptyBackend> TestDaemon;
15
16 ///Test if the load functions for the daemons work correctly
17 1 void test_load_daemon_config(const PPath & filename){
18
1/1
✓ Branch 0 (2→3) taken 1 times.
1 TestDaemon daemon;
19
6/6
✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (13→14) taken 1 times.
✓ Branch 10 (14→15) taken 1 times.
5 phoenix_assert(daemon.load(filename, "Daemon1"));
20
1/1
✓ Branch 0 (22→23) taken 1 times.
1 DaemonConfig & config = daemon.getConfig();
21
1/1
✓ Branch 0 (23→24) taken 1 times.
1 MapDaemonConfig & mapConfig = daemon.getMapDaemonConfig();
22
1/1
✓ Branch 0 (24→25) taken 1 times.
1 DaemonMainConfig & mainConfig = daemon.getMainConfig();
23
1/1
✓ Branch 0 (25→26) taken 1 times.
1 PLog & log = daemon.getLogger();
24
25 //Generic tests for config loading
26
5/5
✓ Branch 0 (28→29) taken 1 times.
✓ Branch 2 (31→32) taken 1 times.
✓ Branch 4 (34→35) taken 1 times.
✓ Branch 6 (35→36) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
6 phoenix_assert(config.getMapTimeout().size() == 3);
27
28 //Test that the main configuration is correctly loaded
29
4/4
✓ Branch 0 (46→47) taken 1 times.
✓ Branch 2 (49→50) taken 1 times.
✓ Branch 4 (52→53) taken 1 times.
✓ Branch 6 (53→54) taken 1 times.
6 phoenix_assert(mainConfig.sendFlag == PSendFlag::NON_BLOCK);
30
4/4
✓ Branch 0 (62→63) taken 1 times.
✓ Branch 2 (65→66) taken 1 times.
✓ Branch 4 (68→69) taken 1 times.
✓ Branch 6 (69→70) taken 1 times.
6 phoenix_assert(mainConfig.sendTimeoutMs == -1);
31
4/4
✓ Branch 0 (78→79) taken 1 times.
✓ Branch 2 (81→82) taken 1 times.
✓ Branch 4 (84→85) taken 1 times.
✓ Branch 6 (85→86) taken 1 times.
6 phoenix_assert(mainConfig.recvFlag == PRecvFlag::BLOCK);
32
4/4
✓ Branch 0 (94→95) taken 1 times.
✓ Branch 2 (97→98) taken 1 times.
✓ Branch 4 (100→101) taken 1 times.
✓ Branch 6 (101→102) taken 1 times.
6 phoenix_assert(mainConfig.recvTimeoutMs == 2100);
33
34 //Test that the stat daemon is correctly named
35
6/6
✓ Branch 0 (110→111) taken 1 times.
✓ Branch 2 (113→114) taken 1 times.
✓ Branch 4 (116→117) taken 1 times.
✓ Branch 6 (117→118) taken 1 times.
✓ Branch 8 (118→119) taken 1 times.
✓ Branch 10 (119→120) taken 1 times.
6 phoenix_assert(config.getStatDaemonName() == "StatManager");
36
37 //Test that the map of timeout is correctly loaded
38
5/5
✓ Branch 0 (128→129) taken 1 times.
✓ Branch 2 (131→132) taken 1 times.
✓ Branch 4 (134→135) taken 1 times.
✓ Branch 6 (135→136) taken 1 times.
✓ Branch 8 (137→138) taken 1 times.
6 phoenix_assert(config.getMapTimeout().size() == 3);
39
7/7
✓ Branch 0 (146→147) taken 1 times.
✓ Branch 2 (149→150) taken 1 times.
✓ Branch 4 (152→153) taken 1 times.
✓ Branch 6 (153→154) taken 1 times.
✓ Branch 8 (154→155) taken 1 times.
✓ Branch 10 (155→156) taken 1 times.
✓ Branch 12 (156→157) taken 1 times.
6 phoenix_assert(config.getMapTimeout()["Daemon1"] == 2000);
40
7/7
✓ Branch 0 (166→167) taken 1 times.
✓ Branch 2 (169→170) taken 1 times.
✓ Branch 4 (172→173) taken 1 times.
✓ Branch 6 (173→174) taken 1 times.
✓ Branch 8 (174→175) taken 1 times.
✓ Branch 10 (175→176) taken 1 times.
✓ Branch 12 (176→177) taken 1 times.
6 phoenix_assert(config.getMapTimeout()["StatManager"] == 1000);
41
7/7
✓ Branch 0 (186→187) taken 1 times.
✓ Branch 2 (189→190) taken 1 times.
✓ Branch 4 (192→193) taken 1 times.
✓ Branch 6 (193→194) taken 1 times.
✓ Branch 8 (194→195) taken 1 times.
✓ Branch 10 (195→196) taken 1 times.
✓ Branch 12 (196→197) taken 1 times.
6 phoenix_assert(config.getMapTimeout()["Daemon2"] == 2001);
42
43 //Test that the Daemon1 configuration is correctly loaded
44
6/6
✓ Branch 0 (206→207) taken 1 times.
✓ Branch 2 (209→210) taken 1 times.
✓ Branch 4 (212→213) taken 1 times.
✓ Branch 6 (213→214) taken 1 times.
✓ Branch 8 (214→215) taken 1 times.
✓ Branch 10 (215→216) taken 1 times.
6 phoenix_assert(config.getName() == "Daemon1");
45
6/6
✓ Branch 0 (224→225) taken 1 times.
✓ Branch 2 (227→228) taken 1 times.
✓ Branch 4 (230→231) taken 1 times.
✓ Branch 6 (231→232) taken 1 times.
✓ Branch 8 (232→233) taken 1 times.
✓ Branch 10 (233→234) taken 1 times.
6 phoenix_assert(config.getDescription() == "First daemon of the swarm");
46
6/6
✓ Branch 0 (242→243) taken 1 times.
✓ Branch 2 (245→246) taken 1 times.
✓ Branch 4 (248→249) taken 1 times.
✓ Branch 6 (249→250) taken 1 times.
✓ Branch 8 (250→251) taken 1 times.
✓ Branch 10 (251→252) taken 1 times.
6 phoenix_assert(log.getFileName() == "daemon1_test.log");
47
5/5
✓ Branch 0 (260→261) taken 1 times.
✓ Branch 2 (263→264) taken 1 times.
✓ Branch 4 (266→267) taken 1 times.
✓ Branch 6 (267→268) taken 1 times.
✓ Branch 8 (268→269) taken 1 times.
6 phoenix_assert(log.getLogLevel() == PLog::DEBUG);
48
6/6
✓ Branch 0 (277→278) taken 1 times.
✓ Branch 2 (280→281) taken 1 times.
✓ Branch 4 (283→284) taken 1 times.
✓ Branch 6 (284→285) taken 1 times.
✓ Branch 8 (285→286) taken 1 times.
✓ Branch 10 (286→287) taken 1 times.
6 phoenix_assert(config.getHostName() == "localhost");
49
5/5
✓ Branch 0 (295→296) taken 1 times.
✓ Branch 2 (298→299) taken 1 times.
✓ Branch 4 (301→302) taken 1 times.
✓ Branch 6 (302→303) taken 1 times.
✓ Branch 8 (303→304) taken 1 times.
6 phoenix_assert(config.getReceivingPort() == 3391);
50
5/5
✓ Branch 0 (312→313) taken 1 times.
✓ Branch 2 (315→316) taken 1 times.
✓ Branch 4 (318→319) taken 1 times.
✓ Branch 6 (319→320) taken 1 times.
✓ Branch 8 (320→321) taken 1 times.
6 phoenix_assert(config.getStatNbBin() == 50);
51
5/5
✓ Branch 0 (329→330) taken 1 times.
✓ Branch 2 (332→333) taken 1 times.
✓ Branch 4 (335→336) taken 1 times.
✓ Branch 6 (336→337) taken 1 times.
✓ Branch 8 (337→338) taken 1 times.
6 phoenix_assert(config.getStatHistLowerBound() == 0.0f);
52
5/5
✓ Branch 0 (346→347) taken 1 times.
✓ Branch 2 (349→350) taken 1 times.
✓ Branch 4 (352→353) taken 1 times.
✓ Branch 6 (353→354) taken 1 times.
✓ Branch 8 (354→355) taken 1 times.
6 phoenix_assert(config.getStatHistUpperBound() == 100.0f);
53
54 //Test that the other daemon are loaded in the map of daemons (not in the current config)
55
4/4
✓ Branch 0 (363→364) taken 1 times.
✓ Branch 2 (366→367) taken 1 times.
✓ Branch 4 (369→370) taken 1 times.
✓ Branch 6 (371→372) taken 1 times.
6 phoenix_assert(mapConfig.size() == 2);
56
57
6/6
✓ Branch 0 (380→381) taken 1 times.
✓ Branch 2 (383→384) taken 1 times.
✓ Branch 4 (386→387) taken 1 times.
✓ Branch 6 (388→389) taken 1 times.
✓ Branch 8 (389→390) taken 1 times.
✓ Branch 10 (391→392) taken 1 times.
5 phoenix_assert(mapConfig.find("StatManager") != mapConfig.end());
58
2/2
✓ Branch 0 (399→400) taken 1 times.
✓ Branch 2 (400→401) taken 1 times.
1 DaemonConfig & statConfig = mapConfig["StatManager"];
59
6/6
✓ Branch 0 (404→405) taken 1 times.
✓ Branch 2 (407→408) taken 1 times.
✓ Branch 4 (410→411) taken 1 times.
✓ Branch 6 (411→412) taken 1 times.
✓ Branch 8 (412→413) taken 1 times.
✓ Branch 10 (413→414) taken 1 times.
6 phoenix_assert(statConfig.getName() == "StatManager");
60
6/6
✓ Branch 0 (422→423) taken 1 times.
✓ Branch 2 (425→426) taken 1 times.
✓ Branch 4 (428→429) taken 1 times.
✓ Branch 6 (429→430) taken 1 times.
✓ Branch 8 (430→431) taken 1 times.
✓ Branch 10 (431→432) taken 1 times.
6 phoenix_assert(statConfig.getDescription() == "One daemon of the swarm with statistics");
61
6/6
✓ Branch 0 (440→441) taken 1 times.
✓ Branch 2 (443→444) taken 1 times.
✓ Branch 4 (446→447) taken 1 times.
✓ Branch 6 (447→448) taken 1 times.
✓ Branch 8 (448→449) taken 1 times.
✓ Branch 10 (449→450) taken 1 times.
6 phoenix_assert(statConfig.getHostName() == "localhost");
62
5/5
✓ Branch 0 (458→459) taken 1 times.
✓ Branch 2 (461→462) taken 1 times.
✓ Branch 4 (464→465) taken 1 times.
✓ Branch 6 (465→466) taken 1 times.
✓ Branch 8 (466→467) taken 1 times.
6 phoenix_assert(statConfig.getReceivingPort() == 3390);
63
5/5
✓ Branch 0 (475→476) taken 1 times.
✓ Branch 2 (478→479) taken 1 times.
✓ Branch 4 (481→482) taken 1 times.
✓ Branch 6 (482→483) taken 1 times.
✓ Branch 8 (483→484) taken 1 times.
6 phoenix_assert(statConfig.getStatNbBin() == 25);
64
5/5
✓ Branch 0 (492→493) taken 1 times.
✓ Branch 2 (495→496) taken 1 times.
✓ Branch 4 (498→499) taken 1 times.
✓ Branch 6 (499→500) taken 1 times.
✓ Branch 8 (500→501) taken 1 times.
6 phoenix_assert(statConfig.getStatHistLowerBound() == 0.0f);
65
5/5
✓ Branch 0 (509→510) taken 1 times.
✓ Branch 2 (512→513) taken 1 times.
✓ Branch 4 (515→516) taken 1 times.
✓ Branch 6 (516→517) taken 1 times.
✓ Branch 8 (517→518) taken 1 times.
6 phoenix_assert(statConfig.getStatHistUpperBound() == 100.0f);
66
67
6/6
✓ Branch 0 (526→527) taken 1 times.
✓ Branch 2 (529→530) taken 1 times.
✓ Branch 4 (532→533) taken 1 times.
✓ Branch 6 (534→535) taken 1 times.
✓ Branch 8 (535→536) taken 1 times.
✓ Branch 10 (537→538) taken 1 times.
5 phoenix_assert(mapConfig.find("Daemon2") != mapConfig.end());
68
2/2
✓ Branch 0 (545→546) taken 1 times.
✓ Branch 2 (546→547) taken 1 times.
1 DaemonConfig & daemon2Config = mapConfig["Daemon2"];
69
6/6
✓ Branch 0 (550→551) taken 1 times.
✓ Branch 2 (553→554) taken 1 times.
✓ Branch 4 (556→557) taken 1 times.
✓ Branch 6 (557→558) taken 1 times.
✓ Branch 8 (558→559) taken 1 times.
✓ Branch 10 (559→560) taken 1 times.
6 phoenix_assert(daemon2Config.getName() == "Daemon2");
70
6/6
✓ Branch 0 (568→569) taken 1 times.
✓ Branch 2 (571→572) taken 1 times.
✓ Branch 4 (574→575) taken 1 times.
✓ Branch 6 (575→576) taken 1 times.
✓ Branch 8 (576→577) taken 1 times.
✓ Branch 10 (577→578) taken 1 times.
6 phoenix_assert(daemon2Config.getDescription() == "Second daemon of the swarm");
71
6/6
✓ Branch 0 (586→587) taken 1 times.
✓ Branch 2 (589→590) taken 1 times.
✓ Branch 4 (592→593) taken 1 times.
✓ Branch 6 (593→594) taken 1 times.
✓ Branch 8 (594→595) taken 1 times.
✓ Branch 10 (595→596) taken 1 times.
6 phoenix_assert(daemon2Config.getHostName() == "localhost");
72
5/5
✓ Branch 0 (604→605) taken 1 times.
✓ Branch 2 (607→608) taken 1 times.
✓ Branch 4 (610→611) taken 1 times.
✓ Branch 6 (611→612) taken 1 times.
✓ Branch 8 (612→613) taken 1 times.
6 phoenix_assert(daemon2Config.getReceivingPort() == 3395);
73
5/5
✓ Branch 0 (621→622) taken 1 times.
✓ Branch 2 (624→625) taken 1 times.
✓ Branch 4 (627→628) taken 1 times.
✓ Branch 6 (628→629) taken 1 times.
✓ Branch 8 (629→630) taken 1 times.
6 phoenix_assert(daemon2Config.getStatNbBin() == 75);
74
5/5
✓ Branch 0 (638→639) taken 1 times.
✓ Branch 2 (641→642) taken 1 times.
✓ Branch 4 (644→645) taken 1 times.
✓ Branch 6 (645→646) taken 1 times.
✓ Branch 8 (646→647) taken 1 times.
6 phoenix_assert(daemon2Config.getStatHistLowerBound() == 2.0f);
75
5/5
✓ Branch 0 (655→656) taken 1 times.
✓ Branch 2 (658→659) taken 1 times.
✓ Branch 4 (661→662) taken 1 times.
✓ Branch 6 (662→663) taken 1 times.
✓ Branch 8 (663→664) taken 1 times.
5 phoenix_assert(daemon2Config.getStatHistUpperBound() == 101.0f);
76 1 }
77
78 ///Test error cases for daemon config loading
79 1 void test_load_daemon_config_errors(){
80
1/1
✓ Branch 0 (2→3) taken 1 times.
1 TestDaemon daemon;
81
1/1
✓ Branch 0 (3→4) taken 1 times.
1 PLog log;
82
1/1
✓ Branch 0 (4→5) taken 1 times.
1 ConfigNode dico;
83
84
7/9
✓ Branch 0 (5→6) taken 1 times.
✗ Branch 2 (6→7) not taken.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (14→15) taken 1 times.
✓ Branch 8 (17→18) taken 1 times.
✓ Branch 10 (18→19) taken 1 times.
✗ Branch 12 (92→93) not taken.
✓ Branch 13 (92→94) taken 1 times.
✓ Branch 14 (95→9) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ParserException, daemon_load_config(log, dico, "", ConfigFormat::JSON));
85
7/9
✓ Branch 0 (25→26) taken 1 times.
✗ Branch 2 (26→27) not taken.
✓ Branch 4 (31→32) taken 1 times.
✓ Branch 6 (34→35) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (38→39) taken 1 times.
✗ Branch 12 (117→118) not taken.
✓ Branch 13 (117→119) taken 1 times.
✓ Branch 14 (120→29) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ParserException, daemon_load_config(log, dico, "value1", ConfigFormat::TOML));
86
7/9
✓ Branch 0 (45→46) taken 1 times.
✗ Branch 2 (46→47) not taken.
✓ Branch 4 (51→52) taken 1 times.
✓ Branch 6 (54→55) taken 1 times.
✓ Branch 8 (57→58) taken 1 times.
✓ Branch 10 (58→59) taken 1 times.
✗ Branch 12 (142→143) not taken.
✓ Branch 13 (142→144) taken 1 times.
✓ Branch 14 (145→49) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ParserException, daemon_load_config(log, dico, "key: [value", ConfigFormat::YAML));
87
7/9
✓ Branch 0 (65→66) taken 1 times.
✗ Branch 2 (66→67) not taken.
✓ Branch 4 (71→72) taken 1 times.
✓ Branch 6 (74→75) taken 1 times.
✓ Branch 8 (77→78) taken 1 times.
✓ Branch 10 (78→79) taken 1 times.
✗ Branch 12 (167→168) not taken.
✓ Branch 13 (167→169) taken 1 times.
✓ Branch 14 (170→69) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ParserException, daemon_load_config(log, dico, "test", static_cast<ConfigFormat::ConfigFormat>(999)));
88 1 }
89
90 ///Test error cases for set_daemon_config_from_node
91 1 void test_set_daemon_config_from_node_errors(){
92
1/1
✓ Branch 0 (2→3) taken 1 times.
1 ConfigNode nodeDict;
93
1/1
✓ Branch 0 (3→4) taken 1 times.
1 DaemonConfig config;
94
1/1
✓ Branch 0 (4→5) taken 1 times.
1 PLog log;
95 1 MapTimeout mapTimeout;
96
97
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 ConfigNode* nameNode = nodeDict.addChild("name");
98
2/2
✓ Branch 0 (9→10) taken 1 times.
✓ Branch 2 (10→11) taken 1 times.
1 nameNode->setValue("TestDaemon");
99
2/2
✓ Branch 0 (12→13) taken 1 times.
✓ Branch 2 (13→14) taken 1 times.
1 ConfigNode* portNode = nodeDict.addChild("receiving_port");
100
2/2
✓ Branch 0 (15→16) taken 1 times.
✓ Branch 2 (16→17) taken 1 times.
1 portNode->setValue("70000"); // Invalid port
101
102
6/8
✗ Branch 0 (18→19) not taken.
✓ Branch 2 (21→22) taken 1 times.
✓ Branch 4 (24→25) taken 1 times.
✓ Branch 6 (27→28) taken 1 times.
✓ Branch 8 (28→29) taken 1 times.
✗ Branch 10 (52→53) not taken.
✓ Branch 11 (52→54) taken 1 times.
✓ Branch 12 (55→19) taken 1 times.
6 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ConfigException, set_daemon_config_from_node(config, log, mapTimeout, nodeDict, true));
103 1 }
104
105 ///Test missing daemon section error
106 1 void test_missing_daemon_section(){
107
108 //Initialize daemonConfig
109
1/1
✓ Branch 0 (2→3) taken 1 times.
1 DaemonConfig daemonConfig;
110
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 daemonConfig.setName("TestDaemon");
111
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 daemonConfig.setHostName("localhost");
112
113 1 MapDaemonConfig mapDaemon;
114
1/1
✓ Branch 0 (10→11) taken 1 times.
1 PLog log;
115 1 MapTimeout mapTimeout;
116 1 const ConfigNode* extraConfigParam = nullptr;
117
118
1/1
✓ Branch 0 (12→13) taken 1 times.
1 ConfigNode dico;
119
120
7/9
✓ Branch 0 (13→14) taken 1 times.
✗ Branch 2 (14→15) not taken.
✓ Branch 4 (19→20) taken 1 times.
✓ Branch 6 (22→23) taken 1 times.
✓ Branch 8 (25→26) taken 1 times.
✓ Branch 10 (26→27) taken 1 times.
✗ Branch 12 (48→49) not taken.
✓ Branch 13 (48→50) taken 1 times.
✓ Branch 14 (51→17) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ConfigException, daemon_read_configNode(daemonConfig, mapDaemon, log, mapTimeout, extraConfigParam, dico, "TestDaemon"));
121 1 }
122
123 ///Test daemon not found error
124 1 void test_daemon_not_found(){
125
126 //Initialize daemonConfig
127
1/1
✓ Branch 0 (2→3) taken 1 times.
1 DaemonConfig daemonConfig;
128
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 daemonConfig.setName("TestDaemon");
129
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 daemonConfig.setHostName("localhost");
130
131 1 MapDaemonConfig mapDaemon;
132
1/1
✓ Branch 0 (10→11) taken 1 times.
1 PLog log;
133 1 MapTimeout mapTimeout;
134 1 const ConfigNode* extraConfigParam = nullptr;
135
136 // Add a daemon section but not the target daemon
137
1/1
✓ Branch 0 (12→13) taken 1 times.
1 ConfigNode dico;
138
2/2
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (14→15) taken 1 times.
1 ConfigNode* daemonSection = dico.addChild("daemon");
139
2/2
✓ Branch 0 (16→17) taken 1 times.
✓ Branch 2 (17→18) taken 1 times.
1 ConfigNode* daemon = daemonSection->addChild("");
140
2/2
✓ Branch 0 (19→20) taken 1 times.
✓ Branch 2 (20→21) taken 1 times.
1 ConfigNode * daemonName = daemon->addChild("name");
141
2/2
✓ Branch 0 (22→23) taken 1 times.
✓ Branch 2 (23→24) taken 1 times.
1 daemonName->setValue("OtherDaemon");
142
143
7/9
✓ Branch 0 (25→26) taken 1 times.
✗ Branch 2 (26→27) not taken.
✓ Branch 4 (31→32) taken 1 times.
✓ Branch 6 (34→35) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (38→39) taken 1 times.
✗ Branch 12 (72→73) not taken.
✓ Branch 13 (72→74) taken 1 times.
✓ Branch 14 (75→29) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ConfigException, daemon_read_configNode(daemonConfig, mapDaemon, log, mapTimeout, extraConfigParam, dico, "TestDaemon"));
144 1 }
145
146 ///Helper function to fill a ConfigNode with a daemon configuration
147 /// @param[out] dico : ConfigNode to be filled
148 /// @param[in] name : name of the daemon
149 /// @param[in] host: hostname of the daemon
150 /// @param[in] port : receiving port of the daemon
151 3 void fillConfigNode(ConfigNode & dico, const PString & name, const PString & host, const PString & port){
152 // Add a daemon section for current daemon
153
2/2
✓ Branch 0 (2→3) taken 3 times.
✓ Branch 2 (3→4) taken 3 times.
3 ConfigNode* daemonSection = dico.getChild("daemon");
154
2/2
✓ Branch 0 (5→6) taken 1 times.
✓ Branch 1 (5→10) taken 2 times.
3 if(daemonSection == nullptr){
155
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 daemonSection = dico.addChild("daemon");
156 }
157
2/2
✓ Branch 0 (10→11) taken 3 times.
✓ Branch 2 (11→12) taken 3 times.
3 ConfigNode* daemon = daemonSection->addChild("");
158
2/2
✓ Branch 0 (13→14) taken 3 times.
✓ Branch 2 (14→15) taken 3 times.
3 ConfigNode * daemonName = daemon->addChild("name");
159 3 daemonName->setValue(name);
160
2/2
✓ Branch 0 (17→18) taken 3 times.
✓ Branch 2 (18→19) taken 3 times.
3 ConfigNode * daemonDesc = daemon->addChild("description");
161
2/2
✓ Branch 0 (20→21) taken 3 times.
✓ Branch 2 (21→22) taken 3 times.
3 daemonDesc->setValue("Test daemon");
162
2/2
✓ Branch 0 (23→24) taken 3 times.
✓ Branch 2 (24→25) taken 3 times.
3 ConfigNode * logFile = daemon->addChild("log_file");
163
2/2
✓ Branch 0 (26→27) taken 3 times.
✓ Branch 2 (27→28) taken 3 times.
3 logFile->setValue("test.log");
164
2/2
✓ Branch 0 (29→30) taken 3 times.
✓ Branch 2 (30→31) taken 3 times.
3 ConfigNode * hostName = daemon->addChild("hostname");
165 3 hostName->setValue(host);
166
2/2
✓ Branch 0 (33→34) taken 3 times.
✓ Branch 2 (34→35) taken 3 times.
3 ConfigNode * receivingPort = daemon->addChild("receiving_port");
167 3 receivingPort->setValue(port);
168 3 }
169
170 ///Test duplicate daemon configuration
171 1 void test_duplicate_daemon_config(){
172
173 //Initialize daemonConfig
174
1/1
✓ Branch 0 (2→3) taken 1 times.
1 DaemonConfig daemonConfig;
175
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 daemonConfig.setName("TestDaemon");
176
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 daemonConfig.setHostName("localhost");
177
178 1 MapDaemonConfig mapDaemon;
179
1/1
✓ Branch 0 (10→11) taken 1 times.
1 PLog log;
180 1 MapTimeout mapTimeout;
181 1 const ConfigNode* extraConfigParam = nullptr;
182
183 // Add daemons to the config node, including duplicates
184
1/1
✓ Branch 0 (12→13) taken 1 times.
1 ConfigNode dico;
185
4/4
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (14→15) taken 1 times.
✓ Branch 4 (15→16) taken 1 times.
✓ Branch 6 (16→17) taken 1 times.
1 fillConfigNode(dico, "TestDaemon", "localhost", "3391");
186
4/4
✓ Branch 0 (20→21) taken 1 times.
✓ Branch 2 (21→22) taken 1 times.
✓ Branch 4 (22→23) taken 1 times.
✓ Branch 6 (23→24) taken 1 times.
1 fillConfigNode(dico, "TestDaemon", "localhost", "3392"); // Duplicate
187
4/4
✓ Branch 0 (27→28) taken 1 times.
✓ Branch 2 (28→29) taken 1 times.
✓ Branch 4 (29→30) taken 1 times.
✓ Branch 6 (30→31) taken 1 times.
1 fillConfigNode(dico, "OtherDaemon", "localhost", "3393");
188
189
7/9
✓ Branch 0 (34→35) taken 1 times.
✗ Branch 2 (35→36) not taken.
✓ Branch 4 (40→41) taken 1 times.
✓ Branch 6 (43→44) taken 1 times.
✓ Branch 8 (46→47) taken 1 times.
✓ Branch 10 (47→48) taken 1 times.
✗ Branch 12 (96→97) not taken.
✓ Branch 13 (96→98) taken 1 times.
✓ Branch 14 (99→38) taken 1 times.
7 PHOENIX_EXCEPTION_TYPE_ASSERT(Phoenix::ConfigException, daemon_read_configNode(daemonConfig, mapDaemon, log, mapTimeout, extraConfigParam, dico, "TestDaemon"));
190 1 }
191
192 1 int main(int argc, char** argv){
193
3/3
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
✓ Branch 4 (4→5) taken 1 times.
1 test_load_daemon_config(PPath(DAEMON_CONFIG_OK));
194 1 test_load_daemon_config_errors();
195 1 test_set_daemon_config_from_node_errors();
196 1 test_missing_daemon_section();
197 1 test_daemon_not_found();
198 1 test_duplicate_daemon_config();
199 1 return 0;
200 }
201
202
203