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

Method CheckABINamespace

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

Source from the content-addressed store, hash-verified

165 return exclude > 0
166
167 def CheckABINamespace(self):
168 if self.ExcludeNamespaceCheck:
169 return
170
171 if not self.HasClass and not self.HasFunction:
172 return
173
174 # Note: This check does not ensure the ABI namespace is not nested
175 # in/around anonymous namespaces or that it is inside of named
176 # namespaces. These checks may be good to add later.
177 open_namespace = 'VTK_ABI_NAMESPACE_BEGIN'
178 close_namespace = 'VTK_ABI_NAMESPACE_END'
179 is_open = False
180 has_abi_namespace = False
181 for l in self.FileLines:
182 if l.startswith(open_namespace):
183 if is_open:
184 self.Error('Nested ABI namespace is not allowed.')
185 is_open = True
186 has_abi_namespace = True
187 if l.startswith(close_namespace):
188 if not is_open:
189 self.Error('Mismatched ABI namespace macros.')
190 is_open = False
191 if not has_abi_namespace:
192 self.Print( "File: %s has no ABI namespace: " % self.FileName )
193 self.Error('Missing VTK ABI namespace macros')
194 if is_open:
195 self.Print( "File: %s does not close an ABI namespace: " % self.FileName )
196 self.Error('Missing VTK_ABI_NAMESPACE_END.')
197
198 def CheckIncludes(self):
199 if not self.HasIncludes or not self.HasClass:

Callers 1

HeaderTesting.pyFile · 0.80

Calls 2

ErrorMethod · 0.95
PrintMethod · 0.95

Tested by

no test coverage detected