MCPcopy Create free account
hub / github.com/Kitware/VTK / CheckParent

Method CheckParent

Testing/Core/HeaderTesting.py:301–349  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

299 self.Error("Guard does not match the filename")
300
301 def CheckParent(self):
302 if not self.HasClass:
303 return
304
305 classre = "^class(\\s+VTK_DEPRECATED)?(\\s+[^\\s]*_EXPORT)?\\s+(vtkm?[A-Z0-9_][^ :\n]*)\\s*<?[^\n\\{]*>?\\s*:\\s*public\\s+(vtk[^ \n\\{<>]*)<?[^\n\\{]*>?"
306 cname = ""
307 pname = ""
308 classlines = []
309 regx = re.compile(classre)
310 cc = 0
311 lastline = ""
312 for a in self.FileLines:
313 line = a.strip()
314 rm = regx.match(line)
315 if not rm and not cname:
316 rm = regx.match(lastline + line)
317 if rm:
318 export = rm.group(2)
319 if export:
320 export = export.strip()
321 cname = rm.group(3)
322 pname = rm.group(4)
323 classlines.append(" %4d: %s" % (cc, line))
324 if not export:
325 self.Print("File: %s defines 1 class with no export macro:" % self.FileName)
326 self.Print(" %4d: %s" % (cc, line))
327 self.Error("No export macro")
328 elif self.Export and self.Export != export:
329 self.Print("File: %s defines 1 class with wrong export macro:" % self.FileName)
330 self.Print(" %4d: %s" % (cc, line))
331 self.Print(" The export macro should be: %s" % (self.Export))
332 self.Error("Wrong export macro")
333 cc = cc + 1
334 lastline = a
335 if len(classlines) > 1:
336 self.Print()
337 self.Print( "File: %s defines %d classes: " %
338 (self.FileName, len(classlines)) )
339 for a in classlines:
340 self.Print( a )
341 self.Error("Multiple classes defined")
342 if len(classlines) < 1:
343 self.Print()
344 self.Print( "File: %s does not define any classes" % self.FileName )
345 self.Error("No class defined")
346 return
347 #self.Print( "Classname: %s ParentName: %s" % (cname, pname)
348 self.ClassName = cname
349 self.ParentName = pname
350
351 def CheckTypeMacro(self):
352 if not self.HasClass or not self.ExcludeTypeMacro:

Callers 1

HeaderTesting.pyFile · 0.80

Calls 6

PrintMethod · 0.95
ErrorMethod · 0.95
compileMethod · 0.80
matchMethod · 0.45
groupMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected