(conf,directive)
| 166 | reportNamingError(mockToken,msg) |
| 167 | |
| 168 | def check_include_guard_name(conf,directive): |
| 169 | parts = directive.str.split() |
| 170 | if len(parts) != 2: |
| 171 | msg = 'syntax error' |
| 172 | reportNamingError(directive,msg,'syntax') |
| 173 | return None,None |
| 174 | guard_name = parts[1] |
| 175 | guard_column = 1+directive.str.find(guard_name) |
| 176 | |
| 177 | filename = directive.file |
| 178 | if conf.include_guard.get('input','path') == 'basename': |
| 179 | filename = os.path.basename(filename) |
| 180 | use_case = conf.include_guard.get('case','upper') |
| 181 | if use_case == 'upper': |
| 182 | filename = filename.upper() |
| 183 | elif use_case == 'lower': |
| 184 | filename = filename.lower() |
| 185 | elif use_case == 'keep': |
| 186 | pass # keep filename case as-is |
| 187 | else: |
| 188 | print("invalid config value for 'case': '%s'"%use_case,file=sys.stderr) |
| 189 | sys.exit(1) |
| 190 | |
| 191 | barename = re.sub('[^A-Za-z0-9]','_',filename).strip('_') |
| 192 | expect_guard_name = conf.include_guard.get('prefix','') + barename + conf.include_guard.get('suffix','') |
| 193 | if expect_guard_name != guard_name: |
| 194 | msg = 'include guard naming violation; %s != %s'%(guard_name,expect_guard_name) |
| 195 | reportNamingError(directive,msg,'includeGuardName',column=guard_column) |
| 196 | |
| 197 | return guard_name,guard_column |
| 198 | |
| 199 | def check_include_guards(conf,cfg,unguarded_include_files): |
| 200 | # Scan for '#ifndef FILE_H' as the first directive, in the first N lines. |
no test coverage detected