GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_TRAIT/TEST_CPP_TRAIT_TEST/main.cpp
Date: 2025-12-15 11:32:44
Exec Total Coverage
Lines: 45 45 100.0%
Functions: 2 2 100.0%
Branches: 70 70 100.0%

Line Branch Exec Source
1 /***************************************
2 Author : Thibaut Oprinsen
3 Mail : thibaut.oprinsen@lapp.in2p3.fr
4 License : CeCILL-C
5 ****************************************/
6
7 #include <iostream>
8 #include <fstream>
9 #include "phoenix_assert.h"
10
11 #include "CppTraitFromString.h"
12 #include "CppTraitSetter.h"
13 #include "CppTraitGetter.h"
14 #include "CppTraitCopy.h"
15 #include "CppTraitTypeStream.h"
16 #include "CppTraitDataStream.h"
17 #include "CppTraitConfigStream.h"
18 #include "CppTraitCheckStream.h"
19
20 #include "generator_class_cpp.h"
21
22 ///Test the C++ Trait
23 1 void testCppTraitTest(){
24
1/1
✓ Branch 0 (2→3) taken 1 times.
1 ProjectParam projectParam;
25
1/1
✓ Branch 0 (3→4) taken 1 times.
1 projectParam.name = "TestShadok";
26
3/3
✓ Branch 0 (4→5) taken 1 times.
✓ Branch 2 (5→6) taken 1 times.
✓ Branch 4 (6→7) taken 1 times.
1 projectParam.outputSourceDir = PPath(".");
27
6/6
✓ Branch 0 (9→10) taken 1 times.
✓ Branch 2 (10→11) 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.
1 projectParam.outputTestDir = PPath(".") / PPath("TESTS");
28
29
1/1
✓ Branch 0 (20→21) taken 1 times.
1 PDataConfig config;
30
3/3
✓ Branch 0 (21→22) taken 1 times.
✓ Branch 2 (22→23) taken 1 times.
✓ Branch 4 (23→24) taken 1 times.
1 config.setFileName(PPath("ShadokConfig.pdata"));
31
1/1
✓ Branch 0 (26→27) taken 1 times.
1 PClassConfig enumConfig;
32
2/2
✓ Branch 0 (27→28) taken 1 times.
✓ Branch 2 (28→29) taken 1 times.
1 enumConfig.setClassDocumentation("///@brief Type of Shadok");
33
1/1
✓ Branch 0 (30→31) taken 1 times.
1 enumConfig.setIsEnum(true);
34
2/2
✓ Branch 0 (31→32) taken 1 times.
✓ Branch 2 (32→33) taken 1 times.
1 enumConfig.setName("ShadokType");
35
5/5
✓ Branch 0 (34→35) taken 1 times.
✓ Branch 2 (35→36) taken 1 times.
✓ Branch 4 (36→37) taken 1 times.
✓ Branch 6 (37→38) taken 1 times.
✓ Branch 8 (38→39) taken 1 times.
1 enumConfig.addAttribute(createClassAttribute("", "HAUT"));
36
5/5
✓ Branch 0 (43→44) taken 1 times.
✓ Branch 2 (44→45) taken 1 times.
✓ Branch 4 (45→46) taken 1 times.
✓ Branch 6 (46→47) taken 1 times.
✓ Branch 8 (47→48) taken 1 times.
1 enumConfig.addAttribute(createClassAttribute("", "BAS"));
37
2/2
✓ Branch 0 (52→53) taken 1 times.
✓ Branch 2 (53→54) taken 1 times.
1 config.getVecClassConfig().push_back(enumConfig);
38
39
1/1
✓ Branch 0 (54→55) taken 1 times.
1 PClassConfig classConfig;
40
2/2
✓ Branch 0 (55→56) taken 1 times.
✓ Branch 2 (56→57) taken 1 times.
1 classConfig.setClassDocumentation("///@brief Test class Shadok");
41
2/2
✓ Branch 0 (58→59) taken 1 times.
✓ Branch 2 (59→60) taken 1 times.
1 classConfig.setName("Shadok");
42
5/5
✓ Branch 0 (61→62) taken 1 times.
✓ Branch 2 (62→63) taken 1 times.
✓ Branch 4 (63→64) taken 1 times.
✓ Branch 6 (64→65) taken 1 times.
✓ Branch 8 (65→66) taken 1 times.
1 classConfig.addAttribute(createClassAttribute("int", "age", "///Age of the Shadok"));
43
5/5
✓ Branch 0 (70→71) taken 1 times.
✓ Branch 2 (71→72) taken 1 times.
✓ Branch 4 (72→73) taken 1 times.
✓ Branch 6 (73→74) taken 1 times.
✓ Branch 8 (74→75) taken 1 times.
1 classConfig.addAttribute(createClassAttribute("float", "value", "///Value of the Shadok"));
44
5/5
✓ Branch 0 (79→80) taken 1 times.
✓ Branch 2 (80→81) taken 1 times.
✓ Branch 4 (81→82) taken 1 times.
✓ Branch 6 (82→83) taken 1 times.
✓ Branch 8 (83→84) taken 1 times.
1 classConfig.addAttribute(createClassAttribute("std::string", "name", "///Name of the Shadok"));
45
2/2
✓ Branch 0 (88→89) taken 1 times.
✓ Branch 2 (89→90) taken 1 times.
1 config.getVecClassConfig().push_back(classConfig);
46
47
1/1
✓ Branch 0 (90→91) taken 1 times.
1 projectParam.vecDataConfig.push_back(config);
48
49 1 GeneratorMode & mode = projectParam.mode;
50 1 mode.enableSetter = true;
51 1 mode.enableGetter = true;
52 1 mode.enableCopy = true;
53 1 mode.enableTypeStream = true;
54 1 mode.enableDataStream = true;
55 1 mode.enableConfigStream = true;
56 1 mode.enableCheckStream = true;
57 1 mode.enableFromString = true;
58
59
1/1
✓ Branch 0 (91→92) taken 1 times.
1 PTraitBackendManager manager;
60
1/1
✓ Branch 0 (92→93) taken 1 times.
1 manager.addTraitBackend<CppTraitFromString>();
61
1/1
✓ Branch 0 (93→94) taken 1 times.
1 manager.addTraitBackend<CppTraitCopy>();
62
1/1
✓ Branch 0 (94→95) taken 1 times.
1 manager.addTraitBackend<CppTraitSetter>();
63
1/1
✓ Branch 0 (95→96) taken 1 times.
1 manager.addTraitBackend<CppTraitGetter>();
64
1/1
✓ Branch 0 (96→97) taken 1 times.
1 manager.addTraitBackend<CppTraitTypeStream>();
65
1/1
✓ Branch 0 (97→98) taken 1 times.
1 manager.addTraitBackend<CppTraitDataStream>();
66
1/1
✓ Branch 0 (98→99) taken 1 times.
1 manager.addTraitBackend<CppTraitConfigStream>();
67
1/1
✓ Branch 0 (99→100) taken 1 times.
1 manager.addTraitBackend<CppTraitCheckStream>();
68
69
5/5
✓ Branch 0 (102→103) taken 1 times.
✓ Branch 2 (105→106) taken 1 times.
✓ Branch 4 (108→109) taken 1 times.
✓ Branch 6 (109→110) taken 1 times.
✓ Branch 8 (110→111) taken 1 times.
5 phoenix_assert(generator_class_full(manager, projectParam));
70 1 }
71
72
73 1 int main(int argc, char ** argv){
74 1 testCppTraitTest();
75 1 return 0;
76 }
77