GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_PARSER_TOML/main.cpp
Date: 2025-08-06 12:50:11
Exec Total Coverage
Lines: 189 189 100.0%
Functions: 14 14 100.0%
Branches: 491 493 99.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 "phoenix_assert.h"
9 #include "parser_toml.h"
10
11 ///Check the value of a DicoValue
12 /** @param mapKey : DicoValue to be checked
13 * @param expectedValue : expected value
14 * @return true if the value matches the expectedValue, false otherwise
15 */
16 18 bool checkKeyMapValue(const DicoValue * mapKey, const PString & expectedValue){
17
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 1 (2→9) taken 17 times.
18 if(mapKey == NULL){
18 1 std::cout << "checkKeyMapValue : map NULL for expectedValue = '"<<expectedValue<<"'" << std::endl;
19 1 return expectedValue == "";
20 }
21 // std::cout << "checkKeyMapValue : map '"<<mapKey->getKey()<<"' => '"<<mapKey->getValue()<<"', expectedValue = '"<<expectedValue<<"'" << std::endl;
22 17 bool b(mapKey->getValue() == expectedValue);
23 // std::cout << "checkKeyMapValue : b = " << b << std::endl;
24 17 return b;
25 }
26
27 ///Check the value of a DicoValue
28 /** @param mapKey : DicoValue to be checked
29 * @param expectedValue : expected value
30 * @return true if the value matches the expectedValue, false otherwise
31 */
32 3 bool checkKeyMapVecValue(const DicoValue * mapKey, const PVecString & vecExpectedValue){
33
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 1 (2→7) taken 2 times.
3 if(mapKey == NULL){
34
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 std::cout << "checkKeyMapVecValue : map NULL for vecExpectedValue = " << std::endl;
35 // phoenix_print(vecExpectedValue);
36 1 return vecExpectedValue.size() == 0lu;
37 }
38 // std::cout << "checkKeyMapVecValue : map '"<<mapKey->getKey()<<"' => '"<<mapKey->getValue()<<"', vecExpectedValue = " << std::endl;
39 // phoenix_print(vecExpectedValue);
40 2 bool b(true);
41
1/1
✓ Branch 0 (7→8) taken 2 times.
2 const VecDicoValue & vecValue = mapKey->getVecChild();
42 2 b &= vecValue.size() == vecExpectedValue.size();
43 // std::cout << "checkKeyMapVecValue : vecValue.size() = " << vecValue.size() << ", vecExpectedValue.size() = "<< vecExpectedValue.size() << ", isOk = " << b << std::endl;
44 2 VecDicoValue::const_iterator it(vecValue.begin());
45 2 PVecString::const_iterator itRef(vecExpectedValue.begin());
46
6/8
✓ Branch 0 (36→37) taken 9 times.
✗ Branch 1 (36→54) not taken.
✓ Branch 2 (44→45) taken 7 times.
✓ Branch 3 (44→54) taken 2 times.
✓ Branch 4 (52→53) taken 7 times.
✗ Branch 5 (52→54) not taken.
✓ Branch 6 (55→13) taken 7 times.
✓ Branch 7 (55→56) taken 2 times.
25 while(b && it != vecValue.end() && itRef != vecExpectedValue.end()){
47
1/1
✓ Branch 0 (17→18) taken 7 times.
14 b &= it->getValue() == *itRef;
48
8/8
✓ Branch 0 (19→20) taken 7 times.
✓ Branch 2 (22→23) taken 7 times.
✓ Branch 4 (23→24) taken 7 times.
✓ Branch 6 (24→25) taken 7 times.
✓ Branch 8 (27→28) taken 7 times.
✓ Branch 10 (28→29) taken 7 times.
✓ Branch 12 (29→30) taken 7 times.
✓ Branch 14 (30→31) taken 7 times.
21 std::cout << "\tvalue = '" << it->getValue() << "', reference = '"<< *itRef << "', isOk = " << b << std::endl;
49 ++it;
50 ++itRef;
51 }
52 // std::cout << "checkKeyMapVecValue : b = " << b << std::endl;
53 2 return b;
54 }
55
56 ///Call the check value with NULL pointers
57 1 void testCheckValue(){
58
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 checkKeyMapValue(NULL, "");
59 1 PVecString vecNoValue;
60
1/1
✓ Branch 0 (6→7) taken 1 times.
1 checkKeyMapVecValue(NULL, vecNoValue);
61 1 }
62
63 ///Check the YML parser
64 1 void checkParserToml(){
65
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[package]\nname = \"hello_hdf5\"\ndescription = \"some string in double quotes\"\nenable_option = true\ndisable_option = false\n\n");
66
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test.toml");
67
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
68
69
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
70
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
71 // std::cout << "checkParserToml : output DicoValue :" << std::endl;
72 // dico.print();
73
74
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapPackage = dico.getMap("package");
75 // bool isKeyExist = mapPackage != NULL;
76 // std::cout << "checkParserToml : isKeyExist = " << isKeyExist << std::endl;
77
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 DicoValue * mapPackageName = mapPackage->getMap("name");
78
6/6
✓ Branch 0 (49→50) taken 1 times.
✓ Branch 2 (52→53) taken 1 times.
✓ Branch 4 (55→56) taken 1 times.
✓ Branch 6 (56→57) taken 1 times.
✓ Branch 8 (57→58) taken 1 times.
✓ Branch 10 (58→59) taken 1 times.
6 phoenix_assert(checkKeyMapValue(mapPackageName, "\"hello_hdf5\""));
79
80
9/9
✓ Branch 0 (68→69) taken 1 times.
✓ Branch 2 (71→72) taken 1 times.
✓ Branch 4 (74→75) taken 1 times.
✓ Branch 6 (75→76) taken 1 times.
✓ Branch 8 (76→77) taken 1 times.
✓ Branch 10 (77→78) taken 1 times.
✓ Branch 12 (78→79) taken 1 times.
✓ Branch 14 (79→80) taken 1 times.
✓ Branch 16 (80→81) taken 1 times.
6 phoenix_assert(phoenix_get_string(*mapPackage, "name", "SomeVar", "") == "hello_hdf5");
81
9/9
✓ Branch 0 (93→94) taken 1 times.
✓ Branch 2 (96→97) taken 1 times.
✓ Branch 4 (99→100) taken 1 times.
✓ Branch 6 (100→101) taken 1 times.
✓ Branch 8 (101→102) taken 1 times.
✓ Branch 10 (102→103) taken 1 times.
✓ Branch 12 (103→104) taken 1 times.
✓ Branch 14 (104→105) taken 1 times.
✓ Branch 16 (105→106) taken 1 times.
6 phoenix_assert(phoenix_get_string(*mapPackage, "undefined_var", "SomeVar", "") == "SomeVar");
82
9/9
✓ Branch 0 (118→119) taken 1 times.
✓ Branch 2 (121→122) taken 1 times.
✓ Branch 4 (124→125) taken 1 times.
✓ Branch 6 (125→126) taken 1 times.
✓ Branch 8 (126→127) taken 1 times.
✓ Branch 10 (127→128) taken 1 times.
✓ Branch 12 (128→129) taken 1 times.
✓ Branch 14 (129→130) taken 1 times.
✓ Branch 16 (130→131) taken 1 times.
6 phoenix_assert(phoenix_get_string(*mapPackage, "undefined_var", "", "SomeVar") == "SomeVar");
83
8/8
✓ Branch 0 (143→144) taken 1 times.
✓ Branch 2 (146→147) taken 1 times.
✓ Branch 4 (149→150) taken 1 times.
✓ Branch 6 (150→151) taken 1 times.
✓ Branch 8 (151→152) taken 1 times.
✓ Branch 10 (152→153) taken 1 times.
✓ Branch 12 (153→154) taken 1 times.
✓ Branch 14 (154→155) taken 1 times.
5 phoenix_assert(phoenix_get_string(*mapPackage, "undefined_var", "SomeVar") == "SomeVar");
84
85
2/2
✓ Branch 0 (164→165) taken 1 times.
✓ Branch 2 (165→166) taken 1 times.
1 DicoValue * mapPackageEnableOption = mapPackage->getMap("enable_option");
86
6/6
✓ Branch 0 (169→170) taken 1 times.
✓ Branch 2 (172→173) taken 1 times.
✓ Branch 4 (175→176) taken 1 times.
✓ Branch 6 (176→177) taken 1 times.
✓ Branch 8 (177→178) taken 1 times.
✓ Branch 10 (178→179) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapPackageEnableOption, "true"));
87
88
2/2
✓ Branch 0 (186→187) taken 1 times.
✓ Branch 2 (187→188) taken 1 times.
1 DicoValue * mapPackageDisableOption = mapPackage->getMap("disable_option");
89
6/6
✓ Branch 0 (191→192) taken 1 times.
✓ Branch 2 (194→195) taken 1 times.
✓ Branch 4 (197→198) taken 1 times.
✓ Branch 6 (198→199) taken 1 times.
✓ Branch 8 (199→200) taken 1 times.
✓ Branch 10 (200→201) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapPackageDisableOption, "false"));
90 1 }
91
92 ///Check the embeded dico
93 1 void checkTomlList(){
94
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[package]\nname = \"hello_hdf5\"\ndescription = 'some string in simple quotes'\nsome_list = [\"one\", \"two\", \"three\"]\nlist_value = [1, 2, 3, 4]\n\n[dependencies]\nhdf5 = \"0.8.1\"\nndarray = '0.15.6'\n\n");
95
96
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_list.toml");
97
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
98
99
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
100
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
101 // std::cout << "checkTomlList : output DicoValue :" << std::endl;
102 // dico.print();
103
104
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapPackage = dico.getMap("package");
105 // bool isKeyExist = mapPackage != NULL;
106 // std::cout << "checkTomlList : isKeyExist = " << isKeyExist << std::endl;
107
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 DicoValue * mapPackageName = mapPackage->getMap("name");
108
6/6
✓ Branch 0 (49→50) taken 1 times.
✓ Branch 2 (52→53) taken 1 times.
✓ Branch 4 (55→56) taken 1 times.
✓ Branch 6 (56→57) taken 1 times.
✓ Branch 8 (57→58) taken 1 times.
✓ Branch 10 (58→59) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapPackageName, "\"hello_hdf5\""));
109
2/2
✓ Branch 0 (66→67) taken 1 times.
✓ Branch 2 (67→68) taken 1 times.
1 DicoValue * mapPackageDescription = mapPackage->getMap("description");
110
6/6
✓ Branch 0 (71→72) taken 1 times.
✓ Branch 2 (74→75) taken 1 times.
✓ Branch 4 (77→78) taken 1 times.
✓ Branch 6 (78→79) taken 1 times.
✓ Branch 8 (79→80) taken 1 times.
✓ Branch 10 (80→81) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapPackageDescription, "'some string in simple quotes'"));
111
112
2/2
✓ Branch 0 (88→89) taken 1 times.
✓ Branch 2 (89→90) taken 1 times.
1 DicoValue * mapSomeListKey = mapPackage->getMap("some_list");
113 // bool isSomeListExist = mapSomeListKey != NULL;
114 // std::cout << "checkTomlList : isSomeListExist = " << isSomeListExist << std::endl;
115
116 1 PVecString vecExpectedValue;
117
2/2
✓ Branch 0 (92→93) taken 1 times.
✓ Branch 2 (93→94) taken 1 times.
1 vecExpectedValue.push_back("\"one\"");
118
2/2
✓ Branch 0 (95→96) taken 1 times.
✓ Branch 2 (96→97) taken 1 times.
1 vecExpectedValue.push_back("\"two\"");
119
2/2
✓ Branch 0 (98→99) taken 1 times.
✓ Branch 2 (99→100) taken 1 times.
1 vecExpectedValue.push_back("\"three\"");
120
5/5
✓ Branch 0 (103→104) taken 1 times.
✓ Branch 2 (106→107) taken 1 times.
✓ Branch 4 (109→110) taken 1 times.
✓ Branch 6 (110→111) taken 1 times.
✓ Branch 8 (111→112) taken 1 times.
5 phoenix_assert(checkKeyMapVecValue(mapSomeListKey, vecExpectedValue));
121
122
2/2
✓ Branch 0 (118→119) taken 1 times.
✓ Branch 2 (119→120) taken 1 times.
1 DicoValue * mapOtherListKey = mapPackage->getMap("list_value");
123 // bool isOtherListExist = mapOtherListKey != NULL;
124 // std::cout << "checkTomlList : isOtherListExist = " << isOtherListExist << std::endl;
125
126 1 PVecString vecOtherExpectedValue;
127
2/2
✓ Branch 0 (122→123) taken 1 times.
✓ Branch 2 (123→124) taken 1 times.
1 vecOtherExpectedValue.push_back("1");
128
2/2
✓ Branch 0 (125→126) taken 1 times.
✓ Branch 2 (126→127) taken 1 times.
1 vecOtherExpectedValue.push_back("2");
129
2/2
✓ Branch 0 (128→129) taken 1 times.
✓ Branch 2 (129→130) taken 1 times.
1 vecOtherExpectedValue.push_back("3");
130
2/2
✓ Branch 0 (131→132) taken 1 times.
✓ Branch 2 (132→133) taken 1 times.
1 vecOtherExpectedValue.push_back("4");
131
5/5
✓ Branch 0 (136→137) taken 1 times.
✓ Branch 2 (139→140) taken 1 times.
✓ Branch 4 (142→143) taken 1 times.
✓ Branch 6 (143→144) taken 1 times.
✓ Branch 8 (144→145) taken 1 times.
5 phoenix_assert(checkKeyMapVecValue(mapOtherListKey, vecOtherExpectedValue));
132
133
2/2
✓ Branch 0 (151→152) taken 1 times.
✓ Branch 2 (152→153) taken 1 times.
1 DicoValue * mapDependencies = dico.getMap("dependencies");
134
2/2
✓ Branch 0 (154→155) taken 1 times.
✓ Branch 2 (155→156) taken 1 times.
1 DicoValue * mapDependenciesHdf5 = mapDependencies->getMap("hdf5");
135
6/6
✓ Branch 0 (159→160) taken 1 times.
✓ Branch 2 (162→163) taken 1 times.
✓ Branch 4 (165→166) taken 1 times.
✓ Branch 6 (166→167) taken 1 times.
✓ Branch 8 (167→168) taken 1 times.
✓ Branch 10 (168→169) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapDependenciesHdf5, "\"0.8.1\""));
136
2/2
✓ Branch 0 (176→177) taken 1 times.
✓ Branch 2 (177→178) taken 1 times.
1 DicoValue * mapDependenciesNdarray = mapDependencies->getMap("ndarray");
137
6/6
✓ Branch 0 (181→182) taken 1 times.
✓ Branch 2 (184→185) taken 1 times.
✓ Branch 4 (187→188) taken 1 times.
✓ Branch 6 (188→189) taken 1 times.
✓ Branch 8 (189→190) taken 1 times.
✓ Branch 10 (190→191) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapDependenciesNdarray, "'0.15.6'"));
138 1 }
139
140 ///Check the embeded dico
141 1 void checkTomlEmptyList(){
142
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[package]\nsome_list = []\n\n");
143
144
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_empty_list.toml");
145
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
146
147
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
148
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
149 // std::cout << "checkTomlEmptyList : output DicoValue :" << std::endl;
150 // dico.print();
151
152
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapPackage = dico.getMap("package");
153 // bool isKeyExist = mapPackage != NULL;
154 // std::cout << "checkTomlEmptyList : isKeyExist = " << isKeyExist << std::endl;
155
156
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 DicoValue * mapSomeListKey = mapPackage->getMap("some_list");
157 // bool isSomeListExist = mapSomeListKey != NULL;
158 // std::cout << "checkTomlEmptyList : isSomeListExist = " << isSomeListExist << std::endl;
159
5/5
✓ Branch 0 (49→50) taken 1 times.
✓ Branch 2 (52→53) taken 1 times.
✓ Branch 4 (55→56) taken 1 times.
✓ Branch 6 (56→57) taken 1 times.
✓ Branch 8 (58→59) taken 1 times.
5 phoenix_assert(mapSomeListKey->getVecChild().size() == 0lu);
160 1 }
161
162
163 ///Check the embeded dico
164 1 void checkTomNestedlList(){
165
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[package]\nsome_nested_list = [1, 2, [3, 4]]\n\n");
166
167
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_nested_list.toml");
168
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
169
170
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
171
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
172 // std::cout << "checkTomlNestedList : output DicoValue :" << std::endl;
173 // dico.print();
174
175
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapPackage = dico.getMap("package");
176 // bool isKeyExist = mapPackage != NULL;
177 // std::cout << "checkTomlNestedList : isKeyExist = " << isKeyExist << std::endl;
178
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 DicoValue * mapOtherListKey = mapPackage->getMap("some_nested_list");
179 // bool isOtherListExist = mapOtherListKey != NULL;
180 // std::cout << "checkTomlNestedList : isOtherListExist = " << isOtherListExist << std::endl;
181
182
1/1
✓ Branch 0 (47→48) taken 1 times.
1 const VecDicoValue & vecValue = mapOtherListKey->getVecChild();
183
4/4
✓ Branch 0 (50→51) taken 1 times.
✓ Branch 2 (53→54) taken 1 times.
✓ Branch 4 (56→57) taken 1 times.
✓ Branch 6 (58→59) taken 1 times.
6 phoenix_assert(vecValue.size() == 3lu);
184
6/6
✓ Branch 0 (67→68) taken 1 times.
✓ Branch 2 (70→71) taken 1 times.
✓ Branch 4 (73→74) taken 1 times.
✓ Branch 6 (75→76) taken 1 times.
✓ Branch 8 (76→77) taken 1 times.
✓ Branch 10 (77→78) taken 1 times.
6 phoenix_assert(vecValue[0].getValue() == "1");
185
6/6
✓ Branch 0 (86→87) taken 1 times.
✓ Branch 2 (89→90) taken 1 times.
✓ Branch 4 (92→93) taken 1 times.
✓ Branch 6 (94→95) taken 1 times.
✓ Branch 8 (95→96) taken 1 times.
✓ Branch 10 (96→97) taken 1 times.
5 phoenix_assert(vecValue[1].getValue() == "2");
186
187 1 const DicoValue & subList = vecValue[2];
188
1/1
✓ Branch 0 (104→105) taken 1 times.
1 const VecDicoValue & vecSubValue = subList.getVecChild();
189
4/4
✓ Branch 0 (107→108) taken 1 times.
✓ Branch 2 (110→111) taken 1 times.
✓ Branch 4 (113→114) taken 1 times.
✓ Branch 6 (115→116) taken 1 times.
6 phoenix_assert(vecSubValue.size() == 2lu);
190
6/6
✓ Branch 0 (124→125) taken 1 times.
✓ Branch 2 (127→128) taken 1 times.
✓ Branch 4 (130→131) taken 1 times.
✓ Branch 6 (132→133) taken 1 times.
✓ Branch 8 (133→134) taken 1 times.
✓ Branch 10 (134→135) taken 1 times.
6 phoenix_assert(vecSubValue[0].getValue() == "3");
191
6/6
✓ Branch 0 (143→144) taken 1 times.
✓ Branch 2 (146→147) taken 1 times.
✓ Branch 4 (149→150) taken 1 times.
✓ Branch 6 (151→152) taken 1 times.
✓ Branch 8 (152→153) taken 1 times.
✓ Branch 10 (153→154) taken 1 times.
5 phoenix_assert(vecSubValue[1].getValue() == "4");
192 1 }
193
194
195 ///Check the embeded dico
196 1 void checkTomNestedlMap(){
197
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[first.second]\nsome_value = 42\n\n");
198
199
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_nested_map.toml");
200
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
201
202
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
203
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
204 // std::cout << "checkTomNestedlMap : output DicoValue :" << std::endl;
205 // dico.print();
206
207
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapFirst = dico.getMap("first");
208 // bool isKeyExist = mapFirst != NULL;
209 // std::cout << "checkTomNestedlMap : isKeyExist = " << isKeyExist << std::endl;
210
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 DicoValue * mapSecond = mapFirst->getMap("second");
211
2/2
✓ Branch 0 (47→48) taken 1 times.
✓ Branch 2 (48→49) taken 1 times.
1 DicoValue * mapOtherListKey = mapSecond->getMap("some_value");
212
6/6
✓ Branch 0 (52→53) taken 1 times.
✓ Branch 2 (55→56) taken 1 times.
✓ Branch 4 (58→59) taken 1 times.
✓ Branch 6 (59→60) taken 1 times.
✓ Branch 8 (60→61) taken 1 times.
✓ Branch 10 (61→62) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapOtherListKey, "42"));
213 1 }
214
215 ///Check the embeded dico
216 1 void checkTomTable(){
217
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[[program]]\nname = \"shadok\"\nage = 42\n\n[[program]]\nname = \"gibi\"\nage = 23\n\n");
218
219
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_table.toml");
220
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
221
222
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
223
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
224 // std::cout << "checkTomTable : output DicoValue :" << std::endl;
225 // dico.print();
226
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapProgram = dico.getMap("program");
227 // bool isKeyExist = mapProgram != NULL;
228 // std::cout << "checkTomTable : isKeyExist = " << isKeyExist << std::endl;
229
1/1
✓ Branch 0 (44→45) taken 1 times.
1 const VecDicoValue & vecProgramValue = mapProgram->getVecChild();
230
4/4
✓ Branch 0 (47→48) taken 1 times.
✓ Branch 2 (50→51) taken 1 times.
✓ Branch 4 (53→54) taken 1 times.
✓ Branch 6 (55→56) taken 1 times.
5 phoenix_assert(vecProgramValue.size() == 2lu);
231
2/2
✓ Branch 0 (63→64) taken 1 times.
✓ Branch 2 (64→65) taken 1 times.
1 const DicoValue * mapProgram0Name = vecProgramValue[0].getMap("name");
232
6/6
✓ Branch 0 (68→69) taken 1 times.
✓ Branch 2 (71→72) taken 1 times.
✓ Branch 4 (74→75) taken 1 times.
✓ Branch 6 (75→76) taken 1 times.
✓ Branch 8 (76→77) taken 1 times.
✓ Branch 10 (77→78) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapProgram0Name, "\"shadok\""));
233
2/2
✓ Branch 0 (86→87) taken 1 times.
✓ Branch 2 (87→88) taken 1 times.
1 const DicoValue * mapProgram0Age = vecProgramValue[0].getMap("age");
234
6/6
✓ Branch 0 (91→92) taken 1 times.
✓ Branch 2 (94→95) taken 1 times.
✓ Branch 4 (97→98) taken 1 times.
✓ Branch 6 (98→99) taken 1 times.
✓ Branch 8 (99→100) taken 1 times.
✓ Branch 10 (100→101) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapProgram0Age, "42"));
235
236
2/2
✓ Branch 0 (109→110) taken 1 times.
✓ Branch 2 (110→111) taken 1 times.
1 const DicoValue * mapProgram1Name = vecProgramValue[1].getMap("name");
237
6/6
✓ Branch 0 (114→115) taken 1 times.
✓ Branch 2 (117→118) taken 1 times.
✓ Branch 4 (120→121) taken 1 times.
✓ Branch 6 (121→122) taken 1 times.
✓ Branch 8 (122→123) taken 1 times.
✓ Branch 10 (123→124) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapProgram1Name, "\"gibi\""));
238
2/2
✓ Branch 0 (132→133) taken 1 times.
✓ Branch 2 (133→134) taken 1 times.
1 const DicoValue * mapProgram1Age = vecProgramValue[1].getMap("age");
239
6/6
✓ Branch 0 (137→138) taken 1 times.
✓ Branch 2 (140→141) taken 1 times.
✓ Branch 4 (143→144) taken 1 times.
✓ Branch 6 (144→145) taken 1 times.
✓ Branch 8 (145→146) taken 1 times.
✓ Branch 10 (146→147) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapProgram1Age, "23"));
240 1 }
241
242 ///Check the compact dico
243 1 void checkTomlCompactDico(){
244
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[program]\nname = {url = \"someUrl\"}\nage = 42\n\n");
245
246
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_compact_dico.toml");
247
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
248
249
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
250
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
251 // std::cout << "checkTomlCompactDico : output DicoValue :" << std::endl;
252 // dico.print();
253
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapProgram = dico.getMap("program");
254 // bool isKeyExist = mapProgram != NULL;
255 // std::cout << "checkTomlCompactDico : isKeyExist = " << isKeyExist << std::endl;
256
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 const DicoValue * mapName = mapProgram->getMap("name");
257
2/2
✓ Branch 0 (47→48) taken 1 times.
✓ Branch 2 (48→49) taken 1 times.
1 const DicoValue * mapNameUrl = mapName->getMap("url");
258
6/6
✓ Branch 0 (52→53) taken 1 times.
✓ Branch 2 (55→56) taken 1 times.
✓ Branch 4 (58→59) taken 1 times.
✓ Branch 6 (59→60) taken 1 times.
✓ Branch 8 (60→61) taken 1 times.
✓ Branch 10 (61→62) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapNameUrl, "\"someUrl\""));
259
2/2
✓ Branch 0 (69→70) taken 1 times.
✓ Branch 2 (70→71) taken 1 times.
1 const DicoValue * mapAge = mapProgram->getMap("age");
260
6/6
✓ Branch 0 (74→75) taken 1 times.
✓ Branch 2 (77→78) taken 1 times.
✓ Branch 4 (80→81) taken 1 times.
✓ Branch 6 (81→82) taken 1 times.
✓ Branch 8 (82→83) taken 1 times.
✓ Branch 10 (83→84) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapAge, "42"));
261 1 }
262
263 ///Check the compact dico
264 1 void checkTomlCompactDico2(){
265
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PString fileContent("[program]\nname = {url = \"someUrl\",\n#Some comment\n version = \"1.0.0\"}\n# Some Comment\nage = 42\nemptyDico = {}\n\n");
266
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 PPath tomlFile("test_toml_compact_dico.toml");
267
5/5
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
✓ Branch 4 (14→15) taken 1 times.
✓ Branch 6 (15→16) taken 1 times.
✓ Branch 8 (16→17) taken 1 times.
5 phoenix_assert(tomlFile.saveFileContent(fileContent));
268
1/1
✓ Branch 0 (23→24) taken 1 times.
1 DicoValue dico;
269
5/5
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
5 phoenix_assert(parser_toml(dico, tomlFile));
270 // std::cout << "checkTomlCompactDico : output DicoValue :" << std::endl;
271 // dico.print();
272
2/2
✓ Branch 0 (41→42) taken 1 times.
✓ Branch 2 (42→43) taken 1 times.
1 DicoValue * mapProgram = dico.getMap("program");
273 // bool isKeyExist = mapProgram != NULL;
274 // std::cout << "checkTomlCompactDico : isKeyExist = " << isKeyExist << std::endl;
275
2/2
✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
1 const DicoValue * mapName = mapProgram->getMap("name");
276
2/2
✓ Branch 0 (47→48) taken 1 times.
✓ Branch 2 (48→49) taken 1 times.
1 const DicoValue * mapNameUrl = mapName->getMap("url");
277
6/6
✓ Branch 0 (52→53) taken 1 times.
✓ Branch 2 (55→56) taken 1 times.
✓ Branch 4 (58→59) taken 1 times.
✓ Branch 6 (59→60) taken 1 times.
✓ Branch 8 (60→61) taken 1 times.
✓ Branch 10 (61→62) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapNameUrl, "\"someUrl\""));
278
2/2
✓ Branch 0 (69→70) taken 1 times.
✓ Branch 2 (70→71) taken 1 times.
1 const DicoValue * mapNameVersion = mapName->getMap("version");
279
6/6
✓ Branch 0 (74→75) taken 1 times.
✓ Branch 2 (77→78) taken 1 times.
✓ Branch 4 (80→81) taken 1 times.
✓ Branch 6 (81→82) taken 1 times.
✓ Branch 8 (82→83) taken 1 times.
✓ Branch 10 (83→84) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapNameVersion, "\"1.0.0\""));
280
2/2
✓ Branch 0 (91→92) taken 1 times.
✓ Branch 2 (92→93) taken 1 times.
1 const DicoValue * mapAge = mapProgram->getMap("age");
281
6/6
✓ Branch 0 (96→97) taken 1 times.
✓ Branch 2 (99→100) taken 1 times.
✓ Branch 4 (102→103) taken 1 times.
✓ Branch 6 (103→104) taken 1 times.
✓ Branch 8 (104→105) taken 1 times.
✓ Branch 10 (105→106) taken 1 times.
5 phoenix_assert(checkKeyMapValue(mapAge, "42"));
282 1 }
283
284 ///Check if the parsing of a file is OK
285 /** @param fileName : name of the file to be created
286 * @param fileContent : content of the file
287 * @return true on success, false otherwise
288 */
289 9 bool checkIsParserOk(const PPath & fileName, const PString & fileContent){
290 9 bool b(true);
291
1/1
✓ Branch 0 (2→3) taken 9 times.
9 b &= fileName.saveFileContent(fileContent);
292
1/1
✓ Branch 0 (3→4) taken 9 times.
9 DicoValue dico;
293
1/1
✓ Branch 0 (4→5) taken 9 times.
9 b &= parser_toml(dico, fileName);
294 9 return b;
295 9 }
296
297 ///Check the YML parser
298 1 void checkParserTomlFail(){
299
1/1
✓ Branch 0 (2→3) taken 1 times.
1 DicoValue dico;
300
7/7
✓ 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.
✓ Branch 12 (15→16) taken 1 times.
6 phoenix_assert(!parser_toml(dico, PString("UnexsitingFileName.toml")));
301
8/8
✓ Branch 0 (26→27) taken 1 times.
✓ Branch 2 (29→30) taken 1 times.
✓ Branch 4 (32→33) taken 1 times.
✓ Branch 6 (33→34) taken 1 times.
✓ Branch 8 (34→35) taken 1 times.
✓ Branch 10 (35→36) taken 1 times.
✓ Branch 12 (36→37) taken 1 times.
✓ Branch 14 (37→38) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("unextected_token.toml"), "=\n"));
302
8/8
✓ Branch 0 (49→50) taken 1 times.
✓ Branch 2 (52→53) taken 1 times.
✓ Branch 4 (55→56) taken 1 times.
✓ Branch 6 (56→57) taken 1 times.
✓ Branch 8 (57→58) taken 1 times.
✓ Branch 10 (58→59) taken 1 times.
✓ Branch 12 (59→60) taken 1 times.
✓ Branch 14 (60→61) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("missing_equal_of_variable.toml"), "[package]\nvariable value\n"));
303
8/8
✓ Branch 0 (72→73) taken 1 times.
✓ Branch 2 (75→76) taken 1 times.
✓ Branch 4 (78→79) taken 1 times.
✓ Branch 6 (79→80) taken 1 times.
✓ Branch 8 (80→81) taken 1 times.
✓ Branch 10 (81→82) taken 1 times.
✓ Branch 12 (82→83) taken 1 times.
✓ Branch 14 (83→84) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("missing_value_of_variable.toml"), "[package]\nvariable =\n"));
304
8/8
✓ Branch 0 (95→96) taken 1 times.
✓ Branch 2 (98→99) taken 1 times.
✓ Branch 4 (101→102) taken 1 times.
✓ Branch 6 (102→103) taken 1 times.
✓ Branch 8 (103→104) taken 1 times.
✓ Branch 10 (104→105) taken 1 times.
✓ Branch 12 (105→106) taken 1 times.
✓ Branch 14 (106→107) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("unclosed_list.toml"), "[package]\nlist = [42\n"));
305
8/8
✓ Branch 0 (118→119) taken 1 times.
✓ Branch 2 (121→122) taken 1 times.
✓ Branch 4 (124→125) taken 1 times.
✓ Branch 6 (125→126) taken 1 times.
✓ Branch 8 (126→127) taken 1 times.
✓ Branch 10 (127→128) taken 1 times.
✓ Branch 12 (128→129) taken 1 times.
✓ Branch 14 (129→130) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("unclosed_empty_list.toml"), "[package]\nlist = [\n"));
306
8/8
✓ Branch 0 (141→142) taken 1 times.
✓ Branch 2 (144→145) taken 1 times.
✓ Branch 4 (147→148) taken 1 times.
✓ Branch 6 (148→149) taken 1 times.
✓ Branch 8 (149→150) taken 1 times.
✓ Branch 10 (150→151) taken 1 times.
✓ Branch 12 (151→152) taken 1 times.
✓ Branch 14 (152→153) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("unclosed_dico.toml"), "[package]\ndico = {name\n"));
307
8/8
✓ Branch 0 (164→165) taken 1 times.
✓ Branch 2 (167→168) taken 1 times.
✓ Branch 4 (170→171) taken 1 times.
✓ Branch 6 (171→172) taken 1 times.
✓ Branch 8 (172→173) taken 1 times.
✓ Branch 10 (173→174) taken 1 times.
✓ Branch 12 (174→175) taken 1 times.
✓ Branch 14 (175→176) taken 1 times.
6 phoenix_assert(!checkIsParserOk(PString("unclosed_empty_dico.toml"), "[package]\ndico = {\n"));
308
8/8
✓ Branch 0 (187→188) taken 1 times.
✓ Branch 2 (190→191) taken 1 times.
✓ Branch 4 (193→194) taken 1 times.
✓ Branch 6 (194→195) taken 1 times.
✓ Branch 8 (195→196) taken 1 times.
✓ Branch 10 (196→197) taken 1 times.
✓ Branch 12 (197→198) taken 1 times.
✓ Branch 14 (198→199) taken 1 times.
6 phoenix_assert(checkIsParserOk(PString("some_comment.toml"), "# Some value\n[package]\nvalue = 42\n"));
309
8/8
✓ Branch 0 (210→211) taken 1 times.
✓ Branch 2 (213→214) taken 1 times.
✓ Branch 4 (216→217) taken 1 times.
✓ Branch 6 (217→218) taken 1 times.
✓ Branch 8 (218→219) taken 1 times.
✓ Branch 10 (219→220) taken 1 times.
✓ Branch 12 (220→221) taken 1 times.
✓ Branch 14 (221→222) taken 1 times.
5 phoenix_assert(checkIsParserOk(PString("some_triple_double_quote_string.toml"), "# Some value\n[package]\nstrvalue = \"\"\"\nsome string\n\"\"\"\n"));
310 1 }
311
312 1 int main(int argc, char** argv){
313 1 testCheckValue();
314 1 checkParserTomlFail();
315 1 checkParserToml();
316 1 checkTomlList();
317 1 checkTomlEmptyList();
318 1 checkTomNestedlList();
319 1 checkTomNestedlMap();
320 1 checkTomTable();
321 1 checkTomlCompactDico();
322 1 checkTomlCompactDico2();
323 1 return 0;
324 }
325
326
327