GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_PXML/main.cpp
Date: 2025-07-29 07:00:27
Exec Total Coverage
Lines: 77 77 100.0%
Functions: 5 5 100.0%
Branches: 209 209 100.0%

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 "phoenix_check.h"
10 #include "pxml_utils.h"
11
12 ///Check the xml parsing of a file
13 /** @param fileName : file to be used
14 * @param inputXml : input xml string
15 * @param referenceOutputXml : reference output
16 * @param isSvg : true if the given xml is supposed to be svg
17 * @return true on success, false otherwise
18 */
19 2 bool checkParseXmlFile(const PPath & fileName, const PString & inputXml, const PString & referenceOutputXml, bool isSvg){
20 2 bool b(true);
21
1/1
✓ Branch 0 (2→3) taken 2 times.
2 b &= fileName.saveFileContent(inputXml);
22
1/1
✓ Branch 0 (3→4) taken 2 times.
2 PXml xml;
23
1/1
✓ Branch 0 (4→5) taken 2 times.
2 b &= pxml_parserFile(xml, fileName, isSvg);
24
25
1/1
✓ Branch 0 (5→6) taken 2 times.
2 PString convertedXml(pxml_baliseStr(xml, isSvg));
26
2/2
✓ Branch 0 (8→9) taken 2 times.
✓ Branch 2 (9→10) taken 2 times.
2 b &= phoenix_check("checkParseXmlFile", convertedXml, referenceOutputXml);
27 2 return b;
28 2 }
29
30 ///Check the xml attribute
31 1 void checkXmlAttr(){
32
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 PXmlAttr attr, attr2;
33
2/2
✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
1 attr.setName("Name");
34
1/1
✓ Branch 0 (7→8) taken 1 times.
1 attr2 = attr;
35
36
6/6
✓ Branch 0 (10→11) taken 1 times.
✓ Branch 2 (13→14) taken 1 times.
✓ Branch 4 (16→17) taken 1 times.
✓ Branch 6 (17→18) taken 1 times.
✓ Branch 8 (18→19) taken 1 times.
✓ Branch 10 (20→21) taken 1 times.
6 phoenix_assert(attr.getName() == attr2.getName());
37
6/6
✓ Branch 0 (29→30) taken 1 times.
✓ Branch 2 (32→33) taken 1 times.
✓ Branch 4 (35→36) taken 1 times.
✓ Branch 6 (36→37) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (39→40) taken 1 times.
5 phoenix_assert(attr.getValue() == attr2.getValue());
38
39
2/2
✓ Branch 0 (46→47) taken 1 times.
✓ Branch 2 (47→48) taken 1 times.
1 PXml xml, xmlChild;
40 1 std::vector<PXmlAttr> vecAttr;
41
1/1
✓ Branch 0 (49→50) taken 1 times.
1 vecAttr.push_back(attr);
42
1/1
✓ Branch 0 (50→51) taken 1 times.
1 xml.setVecAttr(vecAttr);
43
1/1
✓ Branch 0 (51→52) taken 1 times.
1 xmlChild.setVecAttr(vecAttr);
44
45 1 std::vector<PXml> vecChild;
46
1/1
✓ Branch 0 (53→54) taken 1 times.
1 vecChild.push_back(xmlChild);
47
1/1
✓ Branch 0 (54→55) taken 1 times.
1 xml.setVecChild(vecChild);
48
49
1/1
✓ Branch 0 (55→56) taken 1 times.
1 PXml xml2;
50
1/1
✓ Branch 0 (56→57) taken 1 times.
1 xml2 = xml;
51
52
5/5
✓ Branch 0 (59→60) taken 1 times.
✓ Branch 2 (62→63) taken 1 times.
✓ Branch 4 (65→66) taken 1 times.
✓ Branch 6 (66→67) taken 1 times.
✓ Branch 8 (67→68) taken 1 times.
5 phoenix_assert(!xml2.getIsText());
53 1 }
54
55 ///Check the xml parsing
56 /** @param inputXml : input xml string
57 * @param referenceOutputXml : reference output
58 * @param isSvg : true if the given xml is supposed to be svg
59 * @return true on success, false otherwise
60 */
61 12 bool checkXmlString(const PString & inputXml, const PString & referenceOutputXml, bool isSvg){
62
1/1
✓ Branch 0 (2→3) taken 12 times.
12 PXml xml;
63
3/3
✓ Branch 0 (3→4) taken 12 times.
✓ Branch 2 (4→5) taken 1 times.
✓ Branch 3 (4→10) taken 11 times.
12 if(!pxml_parserContent(xml, inputXml, isSvg)){
64
4/4
✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (6→7) taken 1 times.
✓ Branch 4 (7→8) taken 1 times.
✓ Branch 6 (8→9) taken 1 times.
1 std::cerr << "checkXmlString : cannot parse xml string '"<<inputXml<<"'" << std::endl;
65 1 return false;
66 }
67 11 bool b(true);
68
1/1
✓ Branch 0 (10→11) taken 11 times.
11 PXml child;
69
4/4
✓ Branch 0 (11→12) taken 11 times.
✓ Branch 2 (12→13) taken 11 times.
✓ Branch 4 (14→15) taken 2 times.
✓ Branch 5 (14→18) taken 9 times.
11 if(pxml_getChildIfExist(child, xml, "g")){
70
2/2
✓ Branch 0 (15→16) taken 2 times.
✓ Branch 2 (16→17) taken 2 times.
2 b &= child.getName() == "g";
71 }
72
73
1/1
✓ Branch 0 (18→19) taken 11 times.
11 PString convertedXml(pxml_baliseStr(xml, isSvg));
74
2/2
✓ Branch 0 (21→22) taken 11 times.
✓ Branch 2 (22→23) taken 11 times.
11 b &= phoenix_check("checkXmlString", convertedXml, referenceOutputXml);
75 11 return b;
76 12 }
77
78 ///Test to create the XML
79 1 void testCreateXml(){
80
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PXml xml;
81
3/3
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
✓ Branch 4 (5→6) taken 1 times.
1 pxml_setAttr(xml, "attr", "value");
82
83
7/7
✓ Branch 0 (10→11) taken 1 times.
✓ Branch 2 (13→14) taken 1 times.
✓ Branch 4 (16→17) taken 1 times.
✓ Branch 6 (17→18) taken 1 times.
✓ Branch 8 (18→19) taken 1 times.
✓ Branch 10 (19→20) taken 1 times.
✓ Branch 12 (20→21) taken 1 times.
6 phoenix_assert(!pxml_saveFile(PPath("nonExistingDir/output.xml"), xml));
84
7/7
✓ Branch 0 (31→32) taken 1 times.
✓ Branch 2 (34→35) taken 1 times.
✓ Branch 4 (37→38) taken 1 times.
✓ Branch 6 (38→39) taken 1 times.
✓ Branch 8 (39→40) taken 1 times.
✓ Branch 10 (40→41) taken 1 times.
✓ Branch 12 (41→42) taken 1 times.
5 phoenix_assert(pxml_saveFile(PPath("output.xml"), xml));
85
86
1/1
✓ Branch 0 (50→51) taken 1 times.
1 PXml balise;
87
2/2
✓ Branch 0 (51→52) taken 1 times.
✓ Branch 2 (52→53) taken 1 times.
1 balise.setName("tmp");
88
89
1/1
✓ Branch 0 (54→55) taken 1 times.
1 PXml baliseG;
90
2/2
✓ Branch 0 (55→56) taken 1 times.
✓ Branch 2 (56→57) taken 1 times.
1 baliseG.setName("tmp");
91
92
2/2
✓ Branch 0 (58→59) taken 1 times.
✓ Branch 2 (59→60) taken 1 times.
1 xml.getVecChild().push_back(balise);
93
2/2
✓ Branch 0 (60→61) taken 1 times.
✓ Branch 2 (61→62) taken 1 times.
1 xml.getVecChild().push_back(baliseG);
94
2/2
✓ Branch 0 (62→63) taken 1 times.
✓ Branch 2 (63→64) taken 1 times.
1 xml.getVecChild().push_back(balise);
95
2/2
✓ Branch 0 (64→65) taken 1 times.
✓ Branch 2 (65→66) taken 1 times.
1 xml.getVecChild().push_back(baliseG);
96
2/2
✓ Branch 0 (66→67) taken 1 times.
✓ Branch 2 (67→68) taken 1 times.
1 xml.getVecChild().push_back(balise);
97
2/2
✓ Branch 0 (68→69) taken 1 times.
✓ Branch 2 (69→70) taken 1 times.
1 xml.getVecChild().push_back(baliseG);
98
99
7/7
✓ 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.
5 phoenix_assert(pxml_saveFile(PPath("all.xml"), xml));
100
2/2
✓ Branch 0 (91→92) taken 1 times.
✓ Branch 2 (92→93) taken 1 times.
1 PXml clearXml(pxml_eraseVecChild(xml, "tmp"));
101
7/7
✓ 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.
✓ Branch 12 (106→107) taken 1 times.
5 phoenix_assert(pxml_saveFile(PPath("erase.xml"), clearXml));
102 1 }
103
104
105 1 int main(int argc, char** argv){
106
9/9
✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
✓ Branch 4 (10→11) taken 1 times.
✓ Branch 6 (11→12) taken 1 times.
✓ Branch 8 (12→13) taken 1 times.
✓ Branch 10 (13→14) taken 1 times.
✓ Branch 12 (14→15) taken 1 times.
✓ Branch 14 (15→16) taken 1 times.
✓ Branch 16 (16→17) taken 1 times.
6 phoenix_assert(checkParseXmlFile(PPath("file.xml"), "<g><b>truc</b><g>titi</g><g>toto</g></g>", "<root>\n<g>\n<b>\ntruc</b>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false));
107
9/9
✓ Branch 0 (29→30) taken 1 times.
✓ Branch 2 (32→33) taken 1 times.
✓ Branch 4 (35→36) taken 1 times.
✓ Branch 6 (36→37) taken 1 times.
✓ Branch 8 (37→38) taken 1 times.
✓ Branch 10 (38→39) taken 1 times.
✓ Branch 12 (39→40) taken 1 times.
✓ Branch 14 (40→41) taken 1 times.
✓ Branch 16 (41→42) taken 1 times.
6 phoenix_assert(checkParseXmlFile(PPath("file.svg"), "some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true));
108
109
7/7
✓ Branch 0 (54→55) taken 1 times.
✓ Branch 2 (57→58) taken 1 times.
✓ Branch 4 (60→61) taken 1 times.
✓ Branch 6 (61→62) taken 1 times.
✓ Branch 8 (62→63) taken 1 times.
✓ Branch 10 (63→64) taken 1 times.
✓ Branch 12 (64→65) taken 1 times.
6 phoenix_assert(checkXmlString("<g><b>truc</b><g>titi</g><g>toto</g></g>", "<root>\n<g>\n<b>\ntruc</b>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false));
110
7/7
✓ Branch 0 (75→76) taken 1 times.
✓ Branch 2 (78→79) taken 1 times.
✓ Branch 4 (81→82) taken 1 times.
✓ Branch 6 (82→83) taken 1 times.
✓ Branch 8 (83→84) taken 1 times.
✓ Branch 10 (84→85) taken 1 times.
✓ Branch 12 (85→86) taken 1 times.
6 phoenix_assert(checkXmlString("<g><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g>",
111 "<root>\n<g>\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</root>\n", false));
112
7/7
✓ 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.
✓ Branch 12 (106→107) taken 1 times.
6 phoenix_assert(checkXmlString("<svg><g><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g></svg>",
113 "<root>\n<svg>\n<g>\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</svg>\n</root>\n", false));
114
115
7/7
✓ Branch 0 (117→118) taken 1 times.
✓ Branch 2 (120→121) taken 1 times.
✓ Branch 4 (123→124) taken 1 times.
✓ Branch 6 (124→125) taken 1 times.
✓ Branch 8 (125→126) taken 1 times.
✓ Branch 10 (126→127) taken 1 times.
✓ Branch 12 (127→128) taken 1 times.
6 phoenix_assert(checkXmlString("<svg><g id=\"42\"><b>truc</b><g2>test</g2><g>titi</g><g>toto</g></g></svg>",
116 "<root>\n<svg>\n<g id=\"42\">\n<b>\ntruc</b>\n<g2>\ntest</g2>\n<g>\ntiti</g>\n<g>\ntoto</g>\n</g>\n</svg>\n</root>\n", false));
117
118
7/7
✓ Branch 0 (138→139) taken 1 times.
✓ Branch 2 (141→142) taken 1 times.
✓ Branch 4 (144→145) taken 1 times.
✓ Branch 6 (145→146) taken 1 times.
✓ Branch 8 (146→147) taken 1 times.
✓ Branch 10 (147→148) taken 1 times.
✓ Branch 12 (148→149) taken 1 times.
6 phoenix_assert(checkXmlString("some thing to write <b>maybe in bold</b> and some other thing", "<root>some thing to write <b>maybe in bold</b> and some other thing</root>", true));
119
7/7
✓ 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.
✓ Branch 12 (169→170) taken 1 times.
6 phoenix_assert(checkXmlString("some thing to write <b >maybe in bold</b> and some other thing", "<root>some thing to write <b>maybe in bold</b> and some other thing</root>", true));
120
7/7
✓ Branch 0 (180→181) taken 1 times.
✓ Branch 2 (183→184) taken 1 times.
✓ Branch 4 (186→187) taken 1 times.
✓ Branch 6 (187→188) taken 1 times.
✓ Branch 8 (188→189) taken 1 times.
✓ Branch 10 (189→190) taken 1 times.
✓ Branch 12 (190→191) taken 1 times.
6 phoenix_assert(checkXmlString("some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true));
121
122
7/7
✓ Branch 0 (201→202) taken 1 times.
✓ Branch 2 (204→205) taken 1 times.
✓ Branch 4 (207→208) taken 1 times.
✓ Branch 6 (208→209) taken 1 times.
✓ Branch 8 (209→210) taken 1 times.
✓ Branch 10 (210→211) taken 1 times.
✓ Branch 12 (211→212) taken 1 times.
6 phoenix_assert(checkXmlString("<?xml ?><!-- -->some thing to write <b style=\"a very important style\">maybe in bold</b> and some other thing", "<root>some thing to write <b style=\"a very important style\"\n\t>maybe in bold</b> and some other thing</root>", true));
123
124
7/7
✓ Branch 0 (222→223) taken 1 times.
✓ Branch 2 (225→226) taken 1 times.
✓ Branch 4 (228→229) taken 1 times.
✓ Branch 6 (229→230) taken 1 times.
✓ Branch 8 (230→231) taken 1 times.
✓ Branch 10 (231→232) taken 1 times.
✓ Branch 12 (232→233) taken 1 times.
6 phoenix_assert(checkXmlString("<img src=\"image.png\" />", "<root>\n<img src=\"image.png\" />\n</root>\n", false));
125
126
7/7
✓ Branch 0 (243→244) taken 1 times.
✓ Branch 2 (246→247) taken 1 times.
✓ Branch 4 (249→250) taken 1 times.
✓ Branch 6 (250→251) taken 1 times.
✓ Branch 8 (251→252) taken 1 times.
✓ Branch 10 (252→253) taken 1 times.
✓ Branch 12 (253→254) taken 1 times.
6 phoenix_assert(!checkXmlString("empty", "empty not root", true));
127
7/7
✓ Branch 0 (264→265) taken 1 times.
✓ Branch 2 (267→268) taken 1 times.
✓ Branch 4 (270→271) taken 1 times.
✓ Branch 6 (271→272) taken 1 times.
✓ Branch 8 (272→273) taken 1 times.
✓ Branch 10 (273→274) taken 1 times.
✓ Branch 12 (274→275) taken 1 times.
6 phoenix_assert(!checkXmlString("", "empty", true));
128
7/7
✓ Branch 0 (285→286) taken 1 times.
✓ Branch 2 (288→289) taken 1 times.
✓ Branch 4 (291→292) taken 1 times.
✓ Branch 6 (292→293) taken 1 times.
✓ Branch 8 (293→294) taken 1 times.
✓ Branch 10 (294→295) taken 1 times.
✓ Branch 12 (295→296) taken 1 times.
5 phoenix_assert(!checkXmlString("<b>no end", "empty", true));
129
130 1 checkXmlAttr();
131 1 testCreateXml();
132 1 return 0;
133 }
134
135
136