GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_CLASS_CONFIG/main.cpp
Date: 2025-04-25 19:10:50
Exec Total Coverage
Lines: 115 115 100.0%
Branches: 206 206 100.0%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7
8 #include <iostream>
9 #include "class_attribute_utils.h"
10
11 #include "saveClassConfig.h"
12 #include "saveClassConfigTest.h"
13
14 ///Print PClassAttribute
15 /** @param[out] attr : PClassAttribute to be printed
16 */
17 3 void printPClassAttribute(PClassAttribute & attr){
18 3 std::cout << "PClassAttribute(type = '" << attr.getType() << "', name = '"<<attr.getName()<<"', isPointer = " << attr.getIsPointer() << ", isReference = " << attr.getIsReference() << ", doc = '"<<attr.getDocumentation()<<"'" << std::endl;
19 3 }
20
21 ///Print PClassAttribute
22 /** @param[out] attr : PClassAttribute to be printed
23 */
24 3 void printPClassAttributeConst(const PClassAttribute & attr){
25 3 std::cout << "const PClassAttribute(type = '" << attr.getType() << "', name = '"<<attr.getName()<<"', isPointer = " << attr.getIsPointer() << ", isReference = " << attr.getIsReference() << ", doc = '"<<attr.getDocumentation()<<"'" << std::endl;
26 3 }
27
28 ///Test the PClassConfig
29 /** @return true on success, false otherwise
30 */
31 1 bool testClassConfig(){
32 1 bool b(true);
33
34
1/1
✓ Branch 1 taken 1 times.
1 PClassConfig conf;
35
36
7/7
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 15 taken 1 times.
✓ Branch 18 taken 1 times.
✓ Branch 21 taken 1 times.
2 PClassAttribute attrA(createClassAttribute("int", "attr1", "///some attribute doc")), attrB, attrC, attrD;
37
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrB = createClassAttribute("int&", "attr2", false, true, "///some attribute doc");
38
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrC = createClassAttribute("double*", "attr3", true, false, "///some attribute doc");
39
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrD = createClassAttribute("float*&", "attr4", true, true, "///some attribute doc");
40
41
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttribute(attrA);
42
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttributeConst(attrA);
43
44
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setClassDocumentation("///Some documentation of the class");
45
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setName("Shadok");
46
47 1 std::vector<PClassAttribute> listAttribute1, listAttribute2;
48
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA);
49
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrB);
50
1/1
✓ Branch 1 taken 1 times.
1 listAttribute2.push_back(attrD);
51
52
1/1
✓ Branch 1 taken 1 times.
1 conf.setListAttribute(listAttribute1);
53
1/1
✓ Branch 1 taken 1 times.
1 conf.addAttribute(attrC);
54
1/1
✓ Branch 1 taken 1 times.
1 conf.addListAttribute(listAttribute2);
55
56 1 std::vector<PClassConfig> listClassConfig;
57
1/1
✓ Branch 1 taken 1 times.
1 listClassConfig.push_back(conf);
58
59
3/3
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
✓ Branch 8 taken 1 times.
1 b &= saveClassImplDecl(listClassConfig, PPath("Shadok"));
60
6/6
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 b &= saveClassTest(PPath("./TESTS/"), "", listClassConfig, PPath("Shadok"));
61
62 1 return b;
63 1 }
64
65 ///Test the PClassConfig
66 /** @return true on success, false otherwise
67 */
68 1 bool testClassConfigInheritance(){
69 1 bool b(true);
70
71
1/1
✓ Branch 1 taken 1 times.
1 PClassConfig conf;
72
73
7/7
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 15 taken 1 times.
✓ Branch 18 taken 1 times.
✓ Branch 21 taken 1 times.
2 PClassAttribute attrA(createClassAttribute("int", "attr1", false, false, "///some attribute doc")), attrB, attrC, attrD;
74
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrB = createClassAttribute("int&", "attr2", false, true, "///some attribute doc");
75
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrC = createClassAttribute("double*", "attr3", true, false, "///some attribute doc");
76
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrD = createClassAttribute("float*&", "attr4", true, true, "///some attribute doc");
77
78
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttribute(attrA);
79
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttributeConst(attrA);
80
81
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setClassDocumentation("///Some documentation of the class");
82
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setName("ShadokParent");
83
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.addParentClass("SomeParent");
84
85 1 PVecString listParentClass;
86
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 listParentClass.push_back("OtherParent");
87
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 listParentClass.push_back("OtherParent2");
88
1/1
✓ Branch 1 taken 1 times.
1 conf.addListParentClass(listParentClass);
89
90 1 std::vector<PClassAttribute> listAttribute1, listAttribute2;
91
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA);
92
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrB);
93
1/1
✓ Branch 1 taken 1 times.
1 listAttribute2.push_back(attrD);
94
95
1/1
✓ Branch 1 taken 1 times.
1 conf.setListAttribute(listAttribute1);
96
1/1
✓ Branch 1 taken 1 times.
1 conf.addAttribute(attrC);
97
1/1
✓ Branch 1 taken 1 times.
1 conf.addListAttribute(listAttribute2);
98
99 1 std::vector<PClassConfig> listClassConfig;
100
1/1
✓ Branch 1 taken 1 times.
1 listClassConfig.push_back(conf);
101
102 1 PVecPath listInclude;
103
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 listInclude.push_back(PPath("<SomeParent.h>"));
104
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 listInclude.push_back(PPath("\"OtherParent.h\""));
105
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 listInclude.push_back(PPath("\"OtherParent2.h\""));
106
107
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 b &= saveClassImplDecl(listClassConfig, PPath("ShadokParent"), listInclude);
108
6/6
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 b &= saveClassTest(PPath("./TESTS/"), "", listClassConfig, PPath("ShadokParent"));
109
110 1 return b;
111 1 }
112
113 ///Test the PClassConfig
114 /** @return true on success, false otherwise
115 */
116 1 bool testClassConfigDataStream(){
117 1 bool b(true);
118
119
1/1
✓ Branch 1 taken 1 times.
1 PClassConfig conf;
120
121
7/7
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 15 taken 1 times.
✓ Branch 18 taken 1 times.
✓ Branch 21 taken 1 times.
2 PClassAttribute attrA(createClassAttribute("int", "attr1", "///some attribute doc")), attrB, attrC, attrD;
122
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA2(createClassAttribute("float", "attr11", "///some attribute doc"));
123
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA3(createClassAttribute("double", "attr12", "///some attribute doc"));
124
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA4(createClassAttribute("unsigned int", "attr13", "///some attribute doc"));
125
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA5(createClassAttribute("long", "attr14", "///some attribute doc"));
126
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA6(createClassAttribute("long unsigned int", "attr15", "///some attribute doc"));
127
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA7(createClassAttribute("bool", "attr16", "///some attribute doc"));
128
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA8(createClassAttribute("char", "attr17", "///some attribute doc"));
129
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA9(createClassAttribute("short", "attr18", "///some attribute doc"));
130
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA10(createClassAttribute("unsigned short", "attr19", "///some attribute doc"));
131
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA11(createClassAttribute("unsigned char", "attr110", "///some attribute doc"));
132
4/4
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
2 PClassAttribute attrA12(createClassAttribute("PString", "attr111", "///some attribute doc"));
133
134
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrB = createClassAttribute("int&", "attr2", false, true, "///some attribute doc");
135
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrC = createClassAttribute("double*", "attr3", true, false, "///some attribute doc");
136
5/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
1 attrD = createClassAttribute("float*&", "attr4", true, true, "///some attribute doc");
137
138
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttribute(attrA);
139
1/1
✓ Branch 1 taken 1 times.
1 printPClassAttributeConst(attrA);
140
141
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setClassDocumentation("///Some documentation of the class");
142
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 conf.setName("ShadokDS");
143
144 1 std::vector<PClassAttribute> listAttribute1, listAttribute2;
145
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA);
146
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA2);
147
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA3);
148
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA4);
149
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA5);
150
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA6);
151
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA7);
152
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA8);
153
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA9);
154
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA10);
155
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA11);
156
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrA12);
157
1/1
✓ Branch 1 taken 1 times.
1 listAttribute1.push_back(attrB);
158
1/1
✓ Branch 1 taken 1 times.
1 listAttribute2.push_back(attrD);
159
160
1/1
✓ Branch 1 taken 1 times.
1 conf.setListAttribute(listAttribute1);
161
1/1
✓ Branch 1 taken 1 times.
1 conf.addAttribute(attrC);
162
1/1
✓ Branch 1 taken 1 times.
1 conf.addListAttribute(listAttribute2);
163
164 1 std::vector<PClassConfig> listClassConfig;
165
1/1
✓ Branch 1 taken 1 times.
1 listClassConfig.push_back(conf);
166
167 1 PVecPath listInclude;
168
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 b &= saveClassImplDecl(listClassConfig, PPath("ShadokDS"), listInclude, true, true);
169
6/6
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
✓ Branch 10 taken 1 times.
✓ Branch 13 taken 1 times.
✓ Branch 16 taken 1 times.
1 b &= saveClassTest(PPath("./TESTS/"), "", listClassConfig, PPath("ShadokDS"), true, true);
170
171 1 return b;
172 1 }
173
174 1 int main(int argc, char ** argv){
175 1 bool b(testClassConfig());
176 1 b &= testClassConfigInheritance();
177 1 b &= testClassConfigDataStream();
178 1 return b - 1;
179 }
180
181
182