| 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 <iostream> | ||
| 9 | |||
| 10 | #include "OptionParser.h" | ||
| 11 | #include "header_generator.h" | ||
| 12 | #include "parserClassConfig.h" | ||
| 13 | #include "generator_class_cpp.h" | ||
| 14 | #include "simple_project_generator.h" | ||
| 15 | |||
| 16 | //C++ Trait Backend | ||
| 17 | #include "CppTraitFromString.h" | ||
| 18 | #include "CppTraitSetter.h" | ||
| 19 | #include "CppTraitGetter.h" | ||
| 20 | #include "CppTraitCopy.h" | ||
| 21 | #include "CppTraitTypeStream.h" | ||
| 22 | #include "CppTraitDataStream.h" | ||
| 23 | #include "CppTraitConfigStream.h" | ||
| 24 | #include "CppTraitCheckStream.h" | ||
| 25 | |||
| 26 | ///Create the OptionParser of this program | ||
| 27 | /** @return OptionParser of this program | ||
| 28 | */ | ||
| 29 | 13 | OptionParser createOptionParser(){ | |
| 30 |
2/2✓ Branch 0 (2→3) taken 13 times.
✓ Branch 2 (3→4) taken 13 times.
|
13 | OptionParser parser(true, __PROGRAM_VERSION__); |
| 31 |
2/2✓ Branch 0 (5→6) taken 13 times.
✓ Branch 2 (6→7) taken 13 times.
|
13 | parser.setExampleLongOption("phoenix_filegenerator class --name=some_source"); |
| 32 |
2/2✓ Branch 0 (8→9) taken 13 times.
✓ Branch 2 (9→10) taken 13 times.
|
13 | parser.setExampleShortOption("phoenix_filegenerator class -n some_source"); |
| 33 | |||
| 34 | //Class mode | ||
| 35 |
2/2✓ Branch 0 (11→12) taken 13 times.
✓ Branch 2 (12→13) taken 13 times.
|
13 | parser.addMode("class"); |
| 36 |
1/1✓ Branch 0 (14→15) taken 13 times.
|
13 | PString defaultClassName(""); |
| 37 |
5/5✓ Branch 0 (15→16) taken 13 times.
✓ Branch 2 (16→17) taken 13 times.
✓ Branch 4 (17→18) taken 13 times.
✓ Branch 6 (18→19) taken 13 times.
✓ Branch 8 (19→20) taken 13 times.
|
13 | parser.addOption("name", "n", defaultClassName, "base name of the file to be created"); |
| 38 | 13 | PVecString templateDef; | |
| 39 |
5/5✓ Branch 0 (25→26) taken 13 times.
✓ Branch 2 (26→27) taken 13 times.
✓ Branch 4 (27→28) taken 13 times.
✓ Branch 6 (28→29) taken 13 times.
✓ Branch 8 (29→30) taken 13 times.
|
13 | parser.addOption("template", "t", templateDef, "template definition of the class (ex: 'typename T' or 'typename T' 'typename U', etc)"); |
| 40 |
4/4✓ Branch 0 (34→35) taken 13 times.
✓ Branch 2 (35→36) taken 13 times.
✓ Branch 4 (36→37) taken 13 times.
✓ Branch 6 (37→38) taken 13 times.
|
13 | parser.addOption("config", "c", OptionType::FILENAME, false, "Configuration file to create a class (*.pdata)"); |
| 41 |
4/4✓ Branch 0 (41→42) taken 13 times.
✓ Branch 2 (42→43) taken 13 times.
✓ Branch 4 (43→44) taken 13 times.
✓ Branch 6 (44→45) taken 13 times.
|
13 | parser.addOption("datastream", "s", OptionType::NONE, false, "Enable PhoenixDataStream use to save/load generated class automatically"); |
| 42 |
4/4✓ Branch 0 (48→49) taken 13 times.
✓ Branch 2 (49→50) taken 13 times.
✓ Branch 4 (50→51) taken 13 times.
✓ Branch 6 (51→52) taken 13 times.
|
13 | parser.addOption("typestream", "y", OptionType::NONE, false, "Enable PhoenixTypeStream use to get the class name automatically"); |
| 43 |
4/4✓ Branch 0 (55→56) taken 13 times.
✓ Branch 2 (56→57) taken 13 times.
✓ Branch 4 (57→58) taken 13 times.
✓ Branch 6 (58→59) taken 13 times.
|
13 | parser.addOption("configstream", "f", OptionType::NONE, false, "Enable PhoenixConfigStream use to get the class name automatically"); |
| 44 |
4/4✓ Branch 0 (62→63) taken 13 times.
✓ Branch 2 (63→64) taken 13 times.
✓ Branch 4 (64→65) taken 13 times.
✓ Branch 6 (65→66) taken 13 times.
|
13 | parser.addOption("checkstream", "e", OptionType::NONE, false, "Enable PhoenixCheckStream use to get the class name automatically"); |
| 45 |
4/4✓ Branch 0 (69→70) taken 13 times.
✓ Branch 2 (70→71) taken 13 times.
✓ Branch 4 (71→72) taken 13 times.
✓ Branch 6 (72→73) taken 13 times.
|
13 | parser.addOption("tests", "u", OptionType::NONE, false, "Enable unit tests generation"); |
| 46 |
1/1✓ Branch 0 (76→77) taken 13 times.
|
13 | PString templateDir("."); |
| 47 |
5/5✓ Branch 0 (77→78) taken 13 times.
✓ Branch 2 (78→79) taken 13 times.
✓ Branch 4 (79→80) taken 13 times.
✓ Branch 6 (80→81) taken 13 times.
✓ Branch 8 (81→82) taken 13 times.
|
13 | parser.addOption("testdir", "d", templateDir, "Directory for the unit tests"); |
| 48 |
5/5✓ Branch 0 (86→87) taken 13 times.
✓ Branch 2 (87→88) taken 13 times.
✓ Branch 4 (88→89) taken 13 times.
✓ Branch 6 (89→90) taken 13 times.
✓ Branch 8 (90→91) taken 13 times.
|
13 | parser.addOption("outputpath", "o", templateDir, "Path where the generated source files will be saved"); |
| 49 |
1/1✓ Branch 0 (95→96) taken 13 times.
|
13 | PString projectName("project_name"); |
| 50 |
5/5✓ Branch 0 (96→97) taken 13 times.
✓ Branch 2 (97→98) taken 13 times.
✓ Branch 4 (98→99) taken 13 times.
✓ Branch 6 (99→100) taken 13 times.
✓ Branch 8 (100→101) taken 13 times.
|
13 | parser.addOption("projectname", "r", projectName, "Name of the project to generate class in with unit test (will be used for unit test linking)"); |
| 51 |
1/1✓ Branch 0 (105→106) taken 13 times.
|
13 | parser.closeMode(); |
| 52 | |||
| 53 | //Source mode | ||
| 54 |
2/2✓ Branch 0 (106→107) taken 13 times.
✓ Branch 2 (107→108) taken 13 times.
|
13 | parser.addMode("source"); |
| 55 |
4/4✓ Branch 0 (109→110) taken 13 times.
✓ Branch 2 (110→111) taken 13 times.
✓ Branch 4 (111→112) taken 13 times.
✓ Branch 6 (112→113) taken 13 times.
|
13 | parser.addOption("name", "n", OptionType::STRING, true, "base name of the file to be created"); |
| 56 |
1/1✓ Branch 0 (116→117) taken 13 times.
|
13 | parser.closeMode(); |
| 57 | |||
| 58 | //Project mode | ||
| 59 |
2/2✓ Branch 0 (117→118) taken 13 times.
✓ Branch 2 (118→119) taken 13 times.
|
13 | parser.addMode("project"); |
| 60 |
4/4✓ Branch 0 (120→121) taken 13 times.
✓ Branch 2 (121→122) taken 13 times.
✓ Branch 4 (122→123) taken 13 times.
✓ Branch 6 (123→124) taken 13 times.
|
13 | parser.addOption("description", "d", OptionType::FILENAME, false, "description of the full project (*.toml)"); |
| 61 |
4/4✓ Branch 0 (127→128) taken 13 times.
✓ Branch 2 (128→129) taken 13 times.
✓ Branch 4 (129→130) taken 13 times.
✓ Branch 6 (130→131) taken 13 times.
|
13 | parser.addOption("config", "c", OptionType::FILENAME, false, "Configuration file to create a class (*.pdata)"); |
| 62 |
1/1✓ Branch 0 (134→135) taken 13 times.
|
13 | PString baseProjectType("SimpleCpp"); |
| 63 |
5/5✓ Branch 0 (135→136) taken 13 times.
✓ Branch 2 (136→137) taken 13 times.
✓ Branch 4 (137→138) taken 13 times.
✓ Branch 6 (138→139) taken 13 times.
✓ Branch 8 (139→140) taken 13 times.
|
13 | parser.addOption("type", "t", baseProjectType, "Type of the project to generate"); |
| 64 |
4/4✓ Branch 0 (144→145) taken 13 times.
✓ Branch 2 (145→146) taken 13 times.
✓ Branch 4 (146→147) taken 13 times.
✓ Branch 6 (147→148) taken 13 times.
|
13 | parser.addOption("pythonwrapper", "w", OptionType::NONE, false, "Enable python wrapper generation"); |
| 65 |
4/4✓ Branch 0 (151→152) taken 13 times.
✓ Branch 2 (152→153) taken 13 times.
✓ Branch 4 (153→154) taken 13 times.
✓ Branch 6 (154→155) taken 13 times.
|
13 | parser.addOption("datastream", "s", OptionType::NONE, false, "Enable PhoenixDataStream use to save/load generated class automatically"); |
| 66 |
4/4✓ Branch 0 (158→159) taken 13 times.
✓ Branch 2 (159→160) taken 13 times.
✓ Branch 4 (160→161) taken 13 times.
✓ Branch 6 (161→162) taken 13 times.
|
13 | parser.addOption("typestream", "y", OptionType::NONE, false, "Enable PhoenixTypeStream use to get the class name automatically"); |
| 67 |
4/4✓ Branch 0 (165→166) taken 13 times.
✓ Branch 2 (166→167) taken 13 times.
✓ Branch 4 (167→168) taken 13 times.
✓ Branch 6 (168→169) taken 13 times.
|
13 | parser.addOption("configstream", "f", OptionType::NONE, false, "Enable PhoenixConfigStream use to get the class name automatically"); |
| 68 |
4/4✓ Branch 0 (172→173) taken 13 times.
✓ Branch 2 (173→174) taken 13 times.
✓ Branch 4 (174→175) taken 13 times.
✓ Branch 6 (175→176) taken 13 times.
|
13 | parser.addOption("checkstream", "e", OptionType::NONE, false, "Enable PhoenixCheckStream use to get the class name automatically"); |
| 69 |
4/4✓ Branch 0 (179→180) taken 13 times.
✓ Branch 2 (180→181) taken 13 times.
✓ Branch 4 (181→182) taken 13 times.
✓ Branch 6 (182→183) taken 13 times.
|
13 | parser.addOption("tests", "u", OptionType::NONE, false, "Enable unit tests generation"); |
| 70 |
1/1✓ Branch 0 (186→187) taken 13 times.
|
13 | parser.closeMode(); |
| 71 | 13 | return parser; | |
| 72 | 13 | } | |
| 73 | |||
| 74 | ///Class creator | ||
| 75 | /** @param classMode : set of argument passe in the class mode | ||
| 76 | * @return true on success, false otherwise | ||
| 77 | */ | ||
| 78 | 9 | bool createClass(const OptionMode & classMode){ | |
| 79 |
1/1✓ Branch 0 (2→3) taken 9 times.
|
9 | PString className; |
| 80 | 9 | PVecString templatedef; | |
| 81 | |||
| 82 |
1/1✓ Branch 0 (4→5) taken 9 times.
|
9 | ProjectParam projectParam; |
| 83 |
3/3✓ Branch 0 (5→6) taken 9 times.
✓ Branch 2 (6→7) taken 9 times.
✓ Branch 4 (7→8) taken 9 times.
|
9 | projectParam.configFile = PPath(""); |
| 84 |
3/3✓ Branch 0 (10→11) taken 9 times.
✓ Branch 2 (11→12) taken 9 times.
✓ Branch 4 (12→13) taken 9 times.
|
9 | projectParam.outputTestDir = PPath("./"); |
| 85 |
3/3✓ Branch 0 (15→16) taken 9 times.
✓ Branch 2 (16→17) taken 9 times.
✓ Branch 4 (17→18) taken 9 times.
|
9 | projectParam.outputSourceDir = PPath("./"); |
| 86 |
2/2✓ Branch 0 (20→21) taken 9 times.
✓ Branch 2 (21→22) taken 9 times.
|
9 | classMode.getValue(className, "name"); |
| 87 |
2/2✓ Branch 0 (23→24) taken 9 times.
✓ Branch 2 (24→25) taken 9 times.
|
9 | classMode.getValue(projectParam.configFile, "config"); |
| 88 |
2/2✓ Branch 0 (26→27) taken 9 times.
✓ Branch 2 (27→28) taken 9 times.
|
9 | classMode.getValue(templatedef, "template"); |
| 89 |
2/2✓ Branch 0 (29→30) taken 9 times.
✓ Branch 2 (30→31) taken 9 times.
|
9 | classMode.getValue(projectParam.outputTestDir, "testdir"); |
| 90 |
2/2✓ Branch 0 (32→33) taken 9 times.
✓ Branch 2 (33→34) taken 9 times.
|
9 | classMode.getValue(projectParam.outputSourceDir, "outputpath"); |
| 91 | |||
| 92 | 9 | GeneratorMode & mode = projectParam.mode; | |
| 93 | 9 | mode.enableSetter = true; | |
| 94 | 9 | mode.enableGetter = true; | |
| 95 | 9 | mode.enableCopy = true; | |
| 96 | 9 | mode.enableFromString = true; | |
| 97 |
2/2✓ Branch 0 (35→36) taken 9 times.
✓ Branch 2 (36→37) taken 9 times.
|
9 | mode.enableDataStream = classMode.isOptionExist("datastream"); |
| 98 |
2/2✓ Branch 0 (38→39) taken 9 times.
✓ Branch 2 (39→40) taken 9 times.
|
9 | mode.enableTypeStream = classMode.isOptionExist("typestream"); |
| 99 |
2/2✓ Branch 0 (41→42) taken 9 times.
✓ Branch 2 (42→43) taken 9 times.
|
9 | mode.enableConfigStream = classMode.isOptionExist("configstream"); |
| 100 |
2/2✓ Branch 0 (44→45) taken 9 times.
✓ Branch 2 (45→46) taken 9 times.
|
9 | mode.enableCheckStream = classMode.isOptionExist("checkstream"); |
| 101 |
2/2✓ Branch 0 (47→48) taken 9 times.
✓ Branch 2 (48→49) taken 9 times.
|
9 | mode.enableUnitTest = classMode.isOptionExist("tests"); |
| 102 | |||
| 103 |
1/1✓ Branch 0 (50→51) taken 9 times.
|
9 | PTraitBackendManager manager; |
| 104 |
1/1✓ Branch 0 (51→52) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitFromString>(); |
| 105 |
1/1✓ Branch 0 (52→53) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitCopy>(); |
| 106 |
1/1✓ Branch 0 (53→54) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitSetter>(); |
| 107 |
1/1✓ Branch 0 (54→55) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitGetter>(); |
| 108 |
1/1✓ Branch 0 (55→56) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitTypeStream>(); |
| 109 |
1/1✓ Branch 0 (56→57) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitDataStream>(); |
| 110 |
1/1✓ Branch 0 (57→58) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitConfigStream>(); |
| 111 |
1/1✓ Branch 0 (58→59) taken 9 times.
|
9 | manager.addTraitBackend<CppTraitCheckStream>(); |
| 112 |
3/3✓ Branch 0 (59→60) taken 9 times.
✓ Branch 2 (60→61) taken 5 times.
✓ Branch 3 (60→98) taken 4 times.
|
9 | if(projectParam.configFile != ""){ |
| 113 |
3/3✓ Branch 0 (61→62) taken 5 times.
✓ Branch 2 (62→63) taken 3 times.
✓ Branch 3 (62→68) taken 2 times.
|
5 | if(className == ""){ |
| 114 |
3/3✓ Branch 0 (63→64) taken 3 times.
✓ Branch 2 (64→65) taken 3 times.
✓ Branch 4 (65→66) taken 3 times.
|
3 | className = projectParam.configFile.getFileName().eraseExtension(); |
| 115 | } | ||
| 116 |
2/2✓ Branch 0 (68→69) taken 5 times.
✓ Branch 2 (69→70) taken 5 times.
|
5 | classMode.getValue(projectParam.name, "projectname"); |
| 117 | |||
| 118 |
1/1✓ Branch 0 (71→72) taken 5 times.
|
5 | PDataConfig dataConfig; |
| 119 |
1/1✓ Branch 0 (72→73) taken 5 times.
|
5 | dataConfig.setFileName(projectParam.configFile); |
| 120 |
5/5✓ Branch 0 (73→74) taken 5 times.
✓ Branch 2 (74→75) taken 5 times.
✓ Branch 4 (75→76) taken 5 times.
✓ Branch 6 (76→77) taken 1 times.
✓ Branch 7 (76→82) taken 4 times.
|
5 | if(!parserClassConfig(dataConfig.getVecClassConfig(), dataConfig.getVecInclude(), projectParam.configFile)){ |
| 121 |
4/4✓ Branch 0 (77→78) taken 1 times.
✓ Branch 2 (78→79) taken 1 times.
✓ Branch 4 (79→80) taken 1 times.
✓ Branch 6 (80→81) taken 1 times.
|
1 | std::cerr << "createClass : unexisting configuration file '"<<projectParam.configFile<<"'" << std::endl; |
| 122 | 1 | return false; | |
| 123 | } | ||
| 124 |
1/1✓ Branch 0 (82→83) taken 4 times.
|
4 | projectParam.vecDataConfig.push_back(dataConfig); |
| 125 |
2/3✓ Branch 0 (83→84) taken 4 times.
✗ Branch 2 (84→85) not taken.
✓ Branch 3 (84→92) taken 4 times.
|
4 | if(!generator_class_full(manager, projectParam)){ |
| 126 | ✗ | std::cerr << "createClass : can't save file '"<<className<<"'[.h or .cpp] with configuration file '"<<projectParam.configFile<<"'" << std::endl; | |
| 127 | ✗ | return false; | |
| 128 | } | ||
| 129 |
2/2✓ Branch 0 (94→95) taken 4 times.
✓ Branch 1 (94→97) taken 1 times.
|
5 | }else{ |
| 130 |
3/3✓ Branch 0 (98→99) taken 4 times.
✓ Branch 2 (99→100) taken 1 times.
✓ Branch 3 (99→103) taken 3 times.
|
4 | if(className == ""){ |
| 131 |
2/2✓ Branch 0 (100→101) taken 1 times.
✓ Branch 2 (101→102) taken 1 times.
|
1 | std::cerr << "createClass : cannot create class with empty name" << std::endl; |
| 132 | 1 | return false; | |
| 133 | } | ||
| 134 | 3 | PVecClassConfig vecClassConfig; | |
| 135 |
1/1✓ Branch 0 (104→105) taken 3 times.
|
3 | PClassConfig classConfig; |
| 136 |
1/1✓ Branch 0 (105→106) taken 3 times.
|
3 | classConfig.setName(className); |
| 137 | |||
| 138 |
1/1✓ Branch 0 (106→107) taken 3 times.
|
3 | classConfig.setListTemplate(templatedef); |
| 139 | |||
| 140 |
1/1✓ Branch 0 (107→108) taken 3 times.
|
3 | vecClassConfig.push_back(classConfig); |
| 141 |
3/4✓ Branch 0 (109→110) taken 3 times.
✓ Branch 2 (110→111) taken 3 times.
✗ Branch 4 (113→114) not taken.
✓ Branch 5 (113→119) taken 3 times.
|
3 | if(!generator_class_cpp(manager, vecClassConfig, projectParam.outputSourceDir, className, projectParam.mode, PVecPath())){ |
| 142 | ✗ | std::cerr << "createClass : can't save file '"<<className<<"'[.h or .cpp]" << std::endl; | |
| 143 | ✗ | return false; | |
| 144 | } | ||
| 145 | 3 | } | |
| 146 | 7 | return true; | |
| 147 | 9 | } | |
| 148 | |||
| 149 | ///Create header and source file name | ||
| 150 | /** @param sourceMode : arguments passed in the source mode | ||
| 151 | * @return true on success, false otherwise | ||
| 152 | */ | ||
| 153 | 2 | bool createHeaderSource(const OptionMode & sourceMode){ | |
| 154 |
2/2✓ Branch 0 (2→3) taken 2 times.
✓ Branch 2 (3→4) taken 2 times.
|
2 | PPath headerName("header"); |
| 155 |
2/2✓ Branch 0 (5→6) taken 2 times.
✓ Branch 2 (6→7) taken 2 times.
|
2 | sourceMode.getValue(headerName, "name"); |
| 156 |
2/2✓ Branch 0 (8→9) taken 2 times.
✓ Branch 2 (9→10) taken 2 times.
|
2 | PPath baseHeaderName(headerName.eraseExtension()); |
| 157 |
7/7✓ Branch 0 (10→11) taken 2 times.
✓ Branch 2 (11→12) taken 2 times.
✓ Branch 4 (12→13) taken 2 times.
✓ Branch 6 (13→14) taken 2 times.
✓ Branch 8 (14→15) taken 2 times.
✓ Branch 10 (15→16) taken 2 times.
✓ Branch 12 (16→17) taken 2 times.
|
2 | saveHeaderSourceFile(PPath(baseHeaderName + ".h"), PPath(baseHeaderName + ".cpp")); |
| 158 | 2 | return true; | |
| 159 | 2 | } | |
| 160 | |||
| 161 | ///Create project | ||
| 162 | /** @param projectMode : arguments passed in the project mode | ||
| 163 | * @return true on success, false otherwise | ||
| 164 | */ | ||
| 165 | 2 | bool createProjectSource(const OptionMode & projectMode){ | |
| 166 |
1/1✓ Branch 0 (2→3) taken 2 times.
|
2 | PPath descriptionFile; |
| 167 | 2 | PVecPath vecConfigFile; | |
| 168 |
1/1✓ Branch 0 (4→5) taken 2 times.
|
2 | PString projectType; |
| 169 |
2/2✓ Branch 0 (5→6) taken 2 times.
✓ Branch 2 (6→7) taken 2 times.
|
2 | projectMode.getValue(vecConfigFile, "config"); |
| 170 |
2/2✓ Branch 0 (8→9) taken 2 times.
✓ Branch 2 (9→10) taken 2 times.
|
2 | projectMode.getValue(descriptionFile, "description"); |
| 171 |
2/2✓ Branch 0 (11→12) taken 2 times.
✓ Branch 2 (12→13) taken 2 times.
|
2 | projectMode.getValue(projectType, "type"); |
| 172 | |||
| 173 |
1/1✓ Branch 0 (14→15) taken 2 times.
|
2 | GeneratorMode mode; |
| 174 |
2/2✓ Branch 0 (15→16) taken 2 times.
✓ Branch 2 (16→17) taken 2 times.
|
2 | mode.enableDataStream = projectMode.isOptionExist("datastream"); |
| 175 |
2/2✓ Branch 0 (18→19) taken 2 times.
✓ Branch 2 (19→20) taken 2 times.
|
2 | mode.enableTypeStream = projectMode.isOptionExist("typestream"); |
| 176 |
2/2✓ Branch 0 (21→22) taken 2 times.
✓ Branch 2 (22→23) taken 2 times.
|
2 | mode.enableConfigStream = projectMode.isOptionExist("configstream"); |
| 177 |
2/2✓ Branch 0 (24→25) taken 2 times.
✓ Branch 2 (25→26) taken 2 times.
|
2 | mode.enableCheckStream = projectMode.isOptionExist("checkstream"); |
| 178 |
2/2✓ Branch 0 (27→28) taken 2 times.
✓ Branch 2 (28→29) taken 2 times.
|
2 | mode.enableUnitTest = projectMode.isOptionExist("tests"); |
| 179 | |||
| 180 |
1/1✓ Branch 0 (30→31) taken 2 times.
|
4 | return simple_project_generator(descriptionFile, vecConfigFile, projectType, mode); |
| 181 | 2 | } | |
| 182 | |||
| 183 | 13 | int main(int argc, char** argv){ | |
| 184 |
1/1✓ Branch 0 (2→3) taken 13 times.
|
13 | OptionParser parser = createOptionParser(); |
| 185 |
1/1✓ Branch 0 (3→4) taken 13 times.
|
13 | parser.parseArgument(argc, argv); |
| 186 | |||
| 187 |
2/2✓ Branch 0 (4→5) taken 13 times.
✓ Branch 2 (5→6) taken 13 times.
|
13 | const OptionMode & classMode = parser.getMode("class"); |
| 188 |
2/2✓ Branch 0 (7→8) taken 13 times.
✓ Branch 2 (8→9) taken 13 times.
|
13 | const OptionMode & sourceMode = parser.getMode("source"); |
| 189 |
2/2✓ Branch 0 (10→11) taken 13 times.
✓ Branch 2 (11→12) taken 13 times.
|
13 | const OptionMode & projectMode = parser.getMode("project"); |
| 190 | 13 | bool b(true); | |
| 191 |
3/3✓ Branch 0 (13→14) taken 13 times.
✓ Branch 2 (14→15) taken 9 times.
✓ Branch 3 (14→17) taken 4 times.
|
13 | if(classMode.isParsed()){ //We are using the class mode |
| 192 |
1/1✓ Branch 0 (15→16) taken 9 times.
|
9 | b &= createClass(classMode); |
| 193 | } | ||
| 194 |
3/3✓ Branch 0 (17→18) taken 13 times.
✓ Branch 2 (18→19) taken 2 times.
✓ Branch 3 (18→21) taken 11 times.
|
13 | if(sourceMode.isParsed()){ //We are using the source mode |
| 195 |
1/1✓ Branch 0 (19→20) taken 2 times.
|
2 | b &= createHeaderSource(sourceMode); |
| 196 | } | ||
| 197 |
3/3✓ Branch 0 (21→22) taken 13 times.
✓ Branch 2 (22→23) taken 2 times.
✓ Branch 3 (22→25) taken 11 times.
|
13 | if(projectMode.isParsed()){ //We are using the project mode |
| 198 |
1/1✓ Branch 0 (23→24) taken 2 times.
|
2 | b &= createProjectSource(projectMode); |
| 199 | } | ||
| 200 | 13 | return b - 1; | |
| 201 | 13 | } | |
| 202 | |||
| 203 | |||
| 204 | |||
| 205 |