GCC Code Coverage Report


Directory: ./
File: tmp_project/PhoenixXml/TESTS/TEST_PXML/main.cpp
Date: 2025-03-14 12:04:36
Exec Total Coverage
Lines: 77 77 100.0%
Branches: 208 208 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 1 taken 2 times.
2 b &= fileName.saveFileContent(inputXml);
22
1/1
✓ Branch 1 taken 2 times.
2 PXml xml;
23
1/1
✓ Branch 1 taken 2 times.
2 b &= pxml_parserFile(xml, fileName, isSvg);
24
25
1/1
✓ Branch 1 taken 2 times.
2 PString convertedXml(pxml_baliseStr(xml, isSvg));
26
2/2
✓ Branch 2 taken 2 times.
✓ Branch 5 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 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 PXmlAttr attr, attr2;
33
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 attr.setName("Name");
34
1/1
✓ Branch 1 taken 1 times.
1 attr2 = attr;
35
36
6/6
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 20 taken 1 times.
1 phoenix_assert(attr.getName() == attr2.getName());
37
6/6
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 20 taken 1 times.
1 phoenix_assert(attr.getValue() == attr2.getValue());
38
39
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 PXml xml, xmlChild;
40 1 std::vector<PXmlAttr> vecAttr;
41
1/1
✓ Branch 1 taken 1 times.
1 vecAttr.push_back(attr);
42
1/1
✓ Branch 1 taken 1 times.
1 xml.setVecAttr(vecAttr);
43
1/1
✓ Branch 1 taken 1 times.
1 xmlChild.setVecAttr(vecAttr);
44
45 1 std::vector<PXml> vecChild;
46
1/1
✓ Branch 1 taken 1 times.
1 vecChild.push_back(xmlChild);
47
1/1
✓ Branch 1 taken 1 times.
1 xml.setVecChild(vecChild);
48
49
1/1
✓ Branch 1 taken 1 times.
1 PXml xml2;
50
1/1
✓ Branch 1 taken 1 times.
1 xml2 = xml;
51
52
5/5
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 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 1 taken 12 times.
12 PXml xml;
63
3/3
✓ Branch 1 taken 12 times.
✓ Branch 3 taken 1 times.
✓ Branch 4 taken 11 times.
12 if(!pxml_parserContent(xml, inputXml, isSvg)){
64
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 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 1 taken 11 times.
11 PXml child;
69
4/4
✓ Branch 1 taken 11 times.
✓ Branch 4 taken 11 times.
✓ Branch 7 taken 2 times.
✓ Branch 8 taken 9 times.
11 if(pxml_getChildIfExist(child, xml, "g")){
70
1/1
✓ Branch 1 taken 2 times.
2 b &= child.getName() == "g";
71 }
72
73
1/1
✓ Branch 1 taken 11 times.
11 PString convertedXml(pxml_baliseStr(xml, isSvg));
74
2/2
✓ Branch 2 taken 11 times.
✓ Branch 5 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 1 taken 1 times.
1 PXml xml;
81
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 pxml_setAttr(xml, "attr", "value");
82
83
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(!pxml_saveFile(PPath("nonExistingDir/output.xml"), xml));
84
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(pxml_saveFile(PPath("output.xml"), xml));
85
86
1/1
✓ Branch 1 taken 1 times.
1 PXml balise;
87
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 balise.setName("tmp");
88
89
1/1
✓ Branch 1 taken 1 times.
1 PXml baliseG;
90
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 baliseG.setName("tmp");
91
92
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(balise);
93
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(baliseG);
94
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(balise);
95
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(baliseG);
96
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(balise);
97
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 xml.getVecChild().push_back(baliseG);
98
99
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(pxml_saveFile(PPath("all.xml"), xml));
100
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 PXml clearXml(pxml_eraseVecChild(xml, "tmp"));
101
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(pxml_saveFile(PPath("erase.xml"), clearXml));
102 1 }
103
104
105 1 int main(int argc, char** argv){
106
9/9
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✓ Branch 25 taken 1 times.
✓ Branch 28 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
✓ Branch 25 taken 1 times.
✓ Branch 28 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 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 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(checkXmlString("<img src=\"image.png\" />", "<root>\n<img src=\"image.png\" />\n</root>\n", false));
125
126
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(!checkXmlString("empty", "empty not root", true));
127
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(!checkXmlString("", "empty", true));
128
7/7
✓ Branch 2 taken 1 times.
✓ Branch 6 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
✓ Branch 19 taken 1 times.
✓ Branch 22 taken 1 times.
1 phoenix_assert(!checkXmlString("<b>no end", "empty", true));
129
130 1 checkXmlAttr();
131 1 testCreateXml();
132 1 return 0;
133 }
134
135
136