CTestCustom.cmake
Go to the documentation of this file.
1 set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 1000)
2 set(CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 1000)
3 
4 list(APPEND CTEST_CUSTOM_MEMCHECK_IGNORE
5  # Issues in third party glut library
6  VTK::RenderingExternalCxx-TestGLUTRenderWindow
7  VTK::IOVPICCxx-TestVPICReader
8  VTK::RenderingFreeTypeFontConfigCxx-TestSystemFontRendering
9  VTK::GeovisGDALCxx-TestRasterReprojectionFilter
10 
11  # The PLY code does out of range ops but that is just how
12  # it is architected currently. It stores every value into
13  # uint, int, and double but typically only uses the
14  # value that makes sense for the type read in. Code needs
15  # to be reworked eventually but the out of range values
16  # are likely not being used.
17  VTK::IOPLYCxx-TestPLYWriter
18  VTK::IOPLYCxx-TestPLYWriterString
19  VTK::IOPLYCxx-TestPLYReaderTextureUVPoints
20  VTK::IOPLYCxx-TestPLYReaderTextureUVFaces
21 
22  # TestLinePlotDouble intentionally uses very large doubles
23  # even though the implementation of the class is largely
24  # float. Fixing this requires reworking a few classes to
25  # use doubles everywhere (which they generally should)
26  # when that is done this can be removed.
27  # The key classes impacted are vtkPlotPoints and the
28  # Draw calls in Context2D
29  VTK::ChartsCoreCxx-TestLinePlotDouble
30 
31  # loguru looks like it leaks the thread name but apparently
32  # it eventually does free the memory. See
33  # https://github.com/emilk/loguru/issues/132
34  # for some reason only this test seems to report it
35  VTK::FiltersParallelDIY2Cxx-TestRedistributeDataSetFilter
36 )
37 
38 list(APPEND CTEST_CUSTOM_WARNING_MATCH
39  "{standard input}:[0-9][0-9]*: Warning: ")
40 
41 list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
42  # classes that have been marked deprecated
43  # and will be removed in the future
44  # To be remove din VTK 9.0
45  "vtkTemporalStreamTracer"
46 
47  # Java compilation warnings that don't matter.
48  "^1 warning$"
49  "bootstrap class path not set in conjunction with -source"
50 
51  # OSX has deprecated openGL but we still use it
52  # and probably will not update the code but replace it
53  # with vulklan/moltenVK in the future
54  "Cocoa.*deprecated"
55  "NSOpenGL.*deprecated"
56 
57  # C4275 carries with it a note that we don't care about. std::exception is
58  # the main culprit here.
59  "vcruntime_exception.h.*: note: see declaration of 'std::exception'"
60 
61  # C4702 warning (unreachable code) caused by intentional abort() used
62  # in test which prevents the return statement from being called.
63  "TestLoggerDisableSignalHandler.*unreachable code"
64 
65  # GetVersion is deprecated, but its use is OK.
66  "sysinfoapi.h.*: note: see declaration of 'GetVersion'"
67 
68  # Suppress notes from template instantiation backtraces.
69  "note: see reference to (class|function) template instantiation"
70  "note: while compiling class template member function"
71 
72  # This is secondary output from clang, not indicating the warning per se.
73  "[0-9]* warnings? generated"
74  "note: \\(skipping [0-9]* expansions in backtrace"
75  "note: expanded from (here|macro)"
76 
77  # This is secondary output from MSVC, not indicate the warning per se.
78  "note: see declaration of"
79  "note: see previous definition of"
80 
81  # function cast in vtkLogger/loguru
82  "vtkLogger.cxx.*: warning: cast between incompatible function types"
83 
84  # Qt headers cause C4127 warnings with MSVC. Nothing we can do to fix them.
85  "[Qq]t([Cc]ore|[Gg]ui|[Tt]est|[Ww]idgets).*(warning|note)"
86  # Qt has some functions marked as `__forceinline` which MSVC refuses to inline.
87  "[Qq]t.*warning C4714"
88  "[Qq]t.*note: see declaration of"
89 
90  # Python notes triggered from MPI4Py Cython-generated code.
91  "include/python3.*: note:"
92 
93  # macOS warnings about dependencies htat are newer than the CI target
94  # version.
95  "ld: warning: dylib \\(/Applications/Xcode.*\\.app/Contents/Developer/Library/Frameworks/.*\\) was built for newer macOS version \\(.*\\) than being linked \\(.*\\)"
96 
97  # Warning notes from Xcode.
98  "/Applications/Xcode.*: note:"
99 
100  # Ignore moc-generated code (and rcc and uic).
101  "\\.dir[/\\\\][^/\\\\]*_autogen"
102 
103  # Intel compilers warn about large functions, but we don't usually care.
104  "remark #11074: Inlining inhibited by limit (max-total-size|max-size)"
105  # Ignore the suggestion line for more information too.
106  "remark #11076: To get full report use"
107 
108  # clang-tidy ignores
109  "vtkParse.tab.c.*bugprone-sizeof-expression"
110  "vtkParse.tab.c.*bugprone-suspicious-include"
111  "mocs_compilation.cpp.*bugprone-suspicious-include"
112 
113  # Ignore some tidy warnings from wrapper code.
114  "vtk[^\\.]+(Java|Python).cxx:.*\\[(readability-redundant-string-init)\\]"
115 
116  # Ignore some doxygen warnings
117  "warning: documented symbol 'template class .*' was not declared or defined."
118  "vtkContext2D.h:.*: warning: argument '.*' of command @param is not found in the argument list of vtkContext2D::DrawMarkers"
119  "vtkMultiThreshold.h:.*: warning: argument '.*' of command @param is not found in the argument list of vtkMultiThreshold::AddIntervalSet"
120  )
121 
122 set(cdash_show_third_party_warnings "")
123 if (NOT cdash_show_third_party_warnings)
124  list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
125  # issue with exodus but exodus is not included in the note
126  # should these issues get fixed in exodus then remove this
127  # suppression
128  "note: '__builtin___snprintf_chk'"
129 
130  # HDF5 lex/yacc sources compilation lacks the "ThirdParty" part of the path.
131  "hl/src/H5LT(parse|analyze)"
132 
133  # Suppress ThirdParty source code from displaying warnings.
134  "[Tt]hird[Pp]arty"
135 
136  # clang will often give multiline warnings from macro expansions,
137  # where the first part has "warning:" and subsequent parts have "note:"
138  # and those will sometimes expand into systems headers. When this occurs
139  # for ThirdParty code, we want it suppressed too. Do so here for headers within Xcode.
140  "Xcode\\.app/Contents/Developer.+note:"
141 
142  # Suppress Remote module source code from displaying warnings.
143  # Suppress modules individually as just "Remote" is a common pattern
144  "[Rr]emote.[Mm]oment[Ii]nvariants"
145  "[Rr]emote.[Pp]oisson[Rr]econstruction"
146  "[Rr]emote.[Pp]owercrust"
147 
148  # sometimes we use system third party headers with issues
149  # in this case liblas
150  "include/liblas"
151 
152  # in this case a redefinition of strndup between netcdf and
153  # /usr/include/x86_64-linux-gnu/bits/string2.h but the warning
154  # does not include ThirdParty in the line
155  "bits/string2\\.h"
156 
157  # some windows link warnings related to hdf5 that do not include
158  # ThirdParty in the message
159  "H5.*\\.c\\.obj : warning LNK4221"
160 
161  # ThirdParty xdmf2 uses sbrk which has been marked deprecated but
162  # produces a warning without ThirdParty ala
163  # /usr/include/unistd.h:587:7: note: 'sbrk' has been explicitly marked deprecated here
164  "note: 'sbrk' has been explicitly marked deprecated here"
165 
166  # libproj source code includes the line
167  # return 0; /* suppresses a warning */
168  # which is listed as context for another warning
169  # and causes a match due to the work warning in it
170  "return 0; /\\* suppresses a warning \\*/"
171 
172  # boost graph lib causes a warning on gcc with code that
173  # boost uses internally. An example for you template fans is
174  # /source/Infovis/BoostGraphAlgorithms/Testing/Cxx/TestBoostAdapter.cxx:221:47: warning: '*((void*)(& ei)+32).__gnu_cxx::__normal_iterator<boost::detail::stored_edge_property<long unsigned int, boost::property<boost::edge_index_t, unsigned int> >*, std::vector<boost::detail::stored_edge_property<long unsigned int, boost::property<boost::edge_index_t, unsigned int> >, std::allocator<boost::detail::stored_edge_property<long unsigned int, boost::property<boost::edge_index_t, unsigned int> > > > >::_M_current' may be used uninitialized in this function [-Wmaybe-uninitialized]
175  "[Bb]oost[Gg]raph.*edge_property.*may be used uninitialized"
176 
177  # Boost.Graph uses deprecated Boost headers internally.
178  "define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior"
179 
180  # Warnings due to DIY
181  "xmemory.*: warning C4996:.*Default Bounds constructor"
182 
183  # vtkm uses deprecated TBB headers
184  "TBB Warning: tbb/task.h is deprecated"
185 
186  # vtkm related warnings, someone working on vtkm shoudl fix these and once fixed
187  # remove these suppressions
188  "struct VTKM_DEPRECATED"
189  "vtkm::filter"
190 
191  # eigen uses this internal header from CUDA that should not be used.
192  # [-Wcpp]
193  "host_defines.h is an internal header file and must not be used directly. This file will be removed in a future CUDA release. Please use cuda_runtime_api.h or cuda_runtime.h instead"
194 
195  # warnings from moc generated code such as
196  # GUISupport/Qt/GUISupportQt_autogen/EWIEGA46WW/moc_QVTKInteractorInternal.cpp:73:55: warning: redundant parentheses surrounding declarator [-Wredundant-parens]
197  "autogen.*moc.*redundant parentheses"
198 
199  # third party hdf5
200  # if(NULL == (*full_name = (char *)H5MM_malloc(path1_len + path2_len + 2 + 2))) /* Extra "+2" to quiet GCC warning - 2019/07/05, QAK */
201  "H5MM.*quiet GCC warning"
202 
203  # Ignore diy2 warnings
204  "vtkdiy2"
205 
206  # missing overrides may be suppressed, but the superclass shows up as a match on some systems
207  # it makes no sense to suppress the offending class but report the superclass
208  # vtkPolyDataAlgorithm.h:91:3: note: overridden virtual function is here
209  "note: overridden virtual function is here"
210 
211  # Warnings from template instantiations. Remove once cmake/cmake!4766 is releasted.
212  "x(memory0|utility)\\([0-9]+\\): warning C4244"
213 
214  # Timeout errors of SCCACHE are common cases for long builds such as VTK+VTKm+CUDA
215  "sccache: warning: The server looks like it shut down unexpectedly, compiling locally instead"
216  )
217 endif ()
218 
219 list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
220  "vtk[^\\.]+(Java|Python).cxx"
221  ".*Testing.Cxx.*cxx"
222  ".*Testing.Cxx.*h"
223  ".*moc_.*cxx"
224 
225  # Exclude files from the Utilities directories
226  ".*/Utilities/.*"
227  ".*/ThirdParty/.*")
version