Enable duplicate code detection for Python code
1 | #!/usr/bin/env python |
||
2 | # |
||
3 | # iuwandbox_pp.py |
||
4 | # |
||
5 | # Copyright (C) 2018, Takazumi Shirayanagi |
||
6 | # This software is released under the new BSD License, |
||
7 | # see LICENSE |
||
8 | # |
||
9 | |||
10 | import os |
||
11 | import sys |
||
12 | import codecs |
||
13 | import re |
||
14 | import collections |
||
15 | from iutest_pp_strip import IutestPreprocessor |
||
16 | from iutest_pp_strip import UNUSED_ |
||
17 | |||
18 | predefined_macros = { |
||
19 | '__WANDBOX__': '1', |
||
20 | 'NULL': '0', |
||
21 | 'IUTEST_USE_GTEST': None, |
||
22 | 'IUTEST_BUILD_DOXYGEN': None, |
||
23 | '_IUTEST_DEBUG': None, |
||
24 | '__CYGWIN__': None, |
||
25 | 'IUTEST_OS_CYGWIN': None, |
||
26 | '__MINGW__': None, |
||
27 | '__MINGW32__': None, |
||
28 | '__MINGW64__': None, |
||
29 | '__linux__': '1', |
||
30 | '__arm__': None, |
||
31 | '__ARMCC_VERSION': None, |
||
32 | '__AVR32__': None, |
||
33 | '__avr32__': None, |
||
34 | 'IUTEST_OS_AVR32': None, |
||
35 | 'ANDROID': None, |
||
36 | '__ANDROID__': None, |
||
37 | 'IUTEST_OS_LINUX_ANDROID': None, |
||
38 | '__APPLE__': None, |
||
39 | '__APPLE_CC__': None, |
||
40 | 'IUTEST_OS_IOS': None, |
||
41 | 'IUTEST_OS_MAC': None, |
||
42 | '__INTEL_COMPILER': None, |
||
43 | '__BORLANDC__': None, |
||
44 | '__CUDACC__': None, |
||
45 | '__IBMCPP__': None, |
||
46 | 'COMPILER_ICC': None, |
||
47 | '_MSC_VER': None, |
||
48 | '_MSC_FULL_VER': None, |
||
49 | '_MSVC_LANG': None, |
||
50 | '_WIN32': None, |
||
51 | 'WIN32': None, |
||
52 | '__WIN32__': None, |
||
53 | 'UNICODE': None, |
||
54 | 'WINAPI_FAMILY': None, |
||
55 | '__AFX_H__': None, |
||
56 | '__MWERKS__': None, |
||
57 | '__FreeBSD__': None, |
||
58 | 'sun': None, |
||
59 | '__sun': None, |
||
60 | '__MAC_OS_X_VERSION_MIN_REQUIRED': None, |
||
61 | '_STLPORT_VERSION': None, |
||
62 | '_BSD_SOURCE': None, |
||
63 | '__USE_MINGW_ANSI_STDIO': None, |
||
64 | '__GLIBCPP__': None, |
||
65 | 'MAX_PATH': None, |
||
66 | 'PATH_MAX': None, |
||
67 | 'IUTEST_OS_WINDOWS': None, |
||
68 | 'IUTEST_OS_WINDOWS_MINGW': None, |
||
69 | 'IUTEST_OS_WINDOWS_MOBILE': None, |
||
70 | 'IUTEST_OS_WINDOWS_PHONE': None, |
||
71 | 'IUTEST_OS_WINDOWS_RT': None, |
||
72 | 'IUTEST_OS_WINDOWS_WINE': None, |
||
73 | 'IUTEST_NO_UTIL_ASSERTION_GTEST_COMPATIBLE': '1', |
||
74 | 'IUTEST_NO_TWO_PHASE_NAME_LOOKUP': None, |
||
75 | 'IUTEST_NO_FUNCTION_TEMPLATE_ORDERING': None, |
||
76 | 'IUTEST_NO_INCLASS_MEMBER_INITIALIZATION': None, |
||
77 | 'IUTEST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS': None, |
||
78 | 'IUTEST_NO_SFINAE': None, |
||
79 | 'IUTEST_NO_TEMPLATE_PARTIAL_SPECIALIZATION': None, |
||
80 | 'IUTEST_NO_TEMPLATE_TEMPLATES': None, |
||
81 | 'IUTEST_NO_VOID_RETURNS': None, |
||
82 | 'IUTEST_NO_ARGUMENT_DEPENDENT_LOOKUP': None, |
||
83 | 'IUTEST_NO_PRIVATE_IN_AGGREGATE': None, |
||
84 | 'IUTEST_NO_VARIADIC_MACROS': None, |
||
85 | 'IUTEST_NO_UNITEST_AD_HOC_TEST_RESULT_ACCESSOR': None, |
||
86 | 'IUTEST_NO_TESTCASE_AD_HOC_TEST_RESULT_ACCESSOR': None, |
||
87 | 'IUTEST_NO_LAMBDA_SCOPE_RESOLUTION': None, |
||
88 | 'IUTEST_NO_GETENV': None, |
||
89 | 'IUTEST_NO_PUTENV': None, |
||
90 | 'IUTEST_NO_SETENV': None, |
||
91 | 'IUTEST_NO_GETCWD': None, |
||
92 | 'IUTEST_NOT_SUPPORT_STOPWATCH': None, |
||
93 | 'IUTEST_HAS_CXX_HDR_CHARCONV': '0', |
||
94 | 'IUTEST_HAS_WANT_SECURE_LIB': '0', |
||
95 | 'IUTEST_HAS_MS_EXTENSIONS': '0', |
||
96 | 'IUTEST_HAS_MS_CXX_MODULE': '0', |
||
97 | 'IUTEST_HAS_CATCH_SEH_EXCEPTION_ASSERTION': '0', |
||
98 | 'MS_CPP_UNITTESTFRAMEWORK': None, |
||
99 | 'IUTEST_EXPLICIT_INSTANTIATION_ACCESS_PRIVATE_MEMBER_FUNCTION': '1', |
||
100 | 'IUTEST_EXPLICIT_INSTANTIATION_ACCESS_PRIVATE_STATIC_MEMBER_FUNCTION': '1', |
||
101 | '__native_client__': None, |
||
102 | 'IUTEST_OS_NACL': None, |
||
103 | 'IUTEST_HAS_INVALID_PARAMETER_HANDLER': '0', |
||
104 | '__clang_analyzer__': None, |
||
105 | 'IUTEST_ANALYSIS_ASSUME_DELEGATE': None, |
||
106 | 'IUTEST_MBS_CODE': '0', |
||
107 | 'IUTEST_USE_EXTERNAL_STD_TUPLE': '0', |
||
108 | 'IUTEST_USE_EXTERNAL_TR1_TUPLE': '0', |
||
109 | 'IUTEST_USE_CXX_FILESYSTEM': '0', |
||
110 | 'IUTEST_HAS_TESTSUITE': '1', |
||
111 | 'IUTEST_HAS_TESTCASE': '1', |
||
112 | 'IUTEST_CXX_NOEXCEPT': UNUSED_, |
||
113 | 'IUTEST_CXX_NOEXCEPT_AS': UNUSED_, |
||
114 | 'IUTEST_CXX_NOTHROW': UNUSED_, |
||
115 | 'IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY': UNUSED_, |
||
116 | 'IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL': UNUSED_, |
||
117 | 'IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST': UNUSED_, |
||
118 | 'IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION': UNUSED_, |
||
119 | 'IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION': UNUSED_, |
||
120 | 'IUTEST_PRAGMA_WARN_DISABLE_NARROWING': UNUSED_, |
||
121 | 'IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM': UNUSED_, |
||
122 | 'IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN': UNUSED_, |
||
123 | 'IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN': UNUSED_, |
||
124 | 'IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION': UNUSED_, |
||
125 | 'IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE': None, |
||
126 | 'IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE': None, |
||
127 | 'IUTEST_PRAGMA_WARN_DISABLE_FLOAT_CONVERSION': None, |
||
128 | 'IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL': None, |
||
129 | 'IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE': None, |
||
130 | 'IUTEST_MAKE_ASSERTIONRESULT_': UNUSED_, |
||
131 | 'IUTEST_COND_LIKELY': UNUSED_, |
||
132 | 'IUTEST_COND_UNLIKELY': UNUSED_, |
||
133 | 'IUTEST_ATTRIBUTE_LIKELY_': '', |
||
134 | 'IUTEST_ATTRIBUTE_UNLIKELY_': '', |
||
135 | 'IUTEST_ATTRIBUTE_UNUSED_': None, |
||
136 | 'IUTEST_ATTRIBUTE_NORETURN_': None, |
||
137 | 'IUTEST_ATTRIBUTE_FORMAT_PRINTF': None, |
||
138 | 'IUTEST_ATTRIBUTE_FORMAT': None, |
||
139 | # no overridable |
||
140 | 'IUTEST_SUCCEED': None, |
||
141 | 'IUTEST_FAIL': None, |
||
142 | 'IUTEST_ADD_FAILURE': None, |
||
143 | 'IUTEST_ADD_FAILURE_AT': None, |
||
144 | 'IUTEST_SKIP': None, |
||
145 | 'IUTEST_ASSERT': None, |
||
146 | 'IUTEST_ASSERT_NOT': None, |
||
147 | 'IUTEST_ASSERT_THAT': None, |
||
148 | 'IUTEST_ASSERT_EQ': None, |
||
149 | 'IUTEST_ASSERT_ALMOST_EQ': None, |
||
150 | 'IUTEST_ASSERT_NE': None, |
||
151 | 'IUTEST_ASSERT_LT': None, |
||
152 | 'IUTEST_ASSERT_LE': None, |
||
153 | 'IUTEST_ASSERT_GT': None, |
||
154 | 'IUTEST_ASSERT_GE': None, |
||
155 | 'IUTEST_ASSERT_TRUE': None, |
||
156 | 'IUTEST_ASSERT_FALSE': None, |
||
157 | 'IUTEST_ASSERT_NULL': None, |
||
158 | 'IUTEST_ASSERT_NOTNULL': None, |
||
159 | 'IUTEST_ASSERT_SAME': None, |
||
160 | 'IUTEST_ASSERT_FLOAT_EQ': None, |
||
161 | 'IUTEST_ASSERT_DOUBLE_EQ': None, |
||
162 | 'IUTEST_ASSERT_LONG_DOUBLE_EQ': None, |
||
163 | 'IUTEST_ASSERT_NEAR': None, |
||
164 | 'IUTEST_ASSERT_STREQ': None, |
||
165 | 'IUTEST_ASSERT_STRNE': None, |
||
166 | 'IUTEST_ASSERT_STRCASEEQ': None, |
||
167 | 'IUTEST_ASSERT_STRCASENE': None, |
||
168 | 'IUTEST_ASSERT_THROW': None, |
||
169 | 'IUTEST_ASSERT_THROW_VALUE_EQ': None, |
||
170 | 'IUTEST_ASSERT_THROW_VALUE_NE': None, |
||
171 | 'IUTEST_ASSERT_THROW_VALUE_STREQ': None, |
||
172 | 'IUTEST_ASSERT_THROW_VALUE_STRCASEEQ': None, |
||
173 | 'IUTEST_ASSERT_ANY_THROW': None, |
||
174 | 'IUTEST_ASSERT_NO_THROW': None, |
||
175 | 'IUTEST_ASSERT_NO_FAILURE': None, |
||
176 | 'IUTEST_ASSERT_NO_FATAL_FAILURE': None, |
||
177 | 'IUTEST_ASSERT_FAIL': None, |
||
178 | 'IUTEST_ASSERT_EQ_COLLECTIONS': None, |
||
179 | 'IUTEST_ASSERT_NE_COLLECTIONS': None, |
||
180 | 'IUTEST_ASSERT_EQ_RANGE': None, |
||
181 | 'IUTEST_ASSERT_NE_RANGE': None, |
||
182 | 'IUTEST_ASSERT_STRLNEQ': None, |
||
183 | 'IUTEST_ASSERT_STRIN': None, |
||
184 | 'IUTEST_ASSERT_STRNOTIN': None, |
||
185 | 'IUTEST_ASSERT_MATCHES_REGEXEQ': None, |
||
186 | 'IUTEST_ASSERT_MATCHES_REGEXNE': None, |
||
187 | 'IUTEST_ASSERT_CONTAINS_REGEXEQ': None, |
||
188 | 'IUTEST_ASSERT_CONTAINS_REGEXNE': None, |
||
189 | 'IUTEST_EXPECT': None, |
||
190 | 'IUTEST_EXPECT_NOT': None, |
||
191 | 'IUTEST_EXPECT_THAT': None, |
||
192 | 'IUTEST_EXPECT_EQ': None, |
||
193 | 'IUTEST_EXPECT_ALMOST_EQ': None, |
||
194 | 'IUTEST_EXPECT_NE': None, |
||
195 | 'IUTEST_EXPECT_LT': None, |
||
196 | 'IUTEST_EXPECT_LE': None, |
||
197 | 'IUTEST_EXPECT_GT': None, |
||
198 | 'IUTEST_EXPECT_GE': None, |
||
199 | 'IUTEST_EXPECT_TRUE': None, |
||
200 | 'IUTEST_EXPECT_FALSE': None, |
||
201 | 'IUTEST_EXPECT_NULL': None, |
||
202 | 'IUTEST_EXPECT_NOTNULL': None, |
||
203 | 'IUTEST_EXPECT_SAME': None, |
||
204 | 'IUTEST_EXPECT_FLOAT_EQ': None, |
||
205 | 'IUTEST_EXPECT_DOUBLE_EQ': None, |
||
206 | 'IUTEST_EXPECT_LONG_DOUBLE_EQ': None, |
||
207 | 'IUTEST_EXPECT_NEAR': None, |
||
208 | 'IUTEST_EXPECT_STREQ': None, |
||
209 | 'IUTEST_EXPECT_STRNE': None, |
||
210 | 'IUTEST_EXPECT_STRCASEEQ': None, |
||
211 | 'IUTEST_EXPECT_STRCASENE': None, |
||
212 | 'IUTEST_EXPECT_THROW': None, |
||
213 | 'IUTEST_EXPECT_THROW_VALUE_EQ': None, |
||
214 | 'IUTEST_EXPECT_THROW_VALUE_NE': None, |
||
215 | 'IUTEST_EXPECT_THROW_VALUE_STREQ': None, |
||
216 | 'IUTEST_EXPECT_THROW_VALUE_STRCASEEQ': None, |
||
217 | 'IUTEST_EXPECT_ANY_THROW': None, |
||
218 | 'IUTEST_EXPECT_NO_THROW': None, |
||
219 | 'IUTEST_EXPECT_NO_FAILURE': None, |
||
220 | 'IUTEST_EXPECT_NO_FATAL_FAILURE': None, |
||
221 | 'IUTEST_EXPECT_FAIL': None, |
||
222 | 'IUTEST_EXPECT_EQ_COLLECTIONS': None, |
||
223 | 'IUTEST_EXPECT_NE_COLLECTIONS': None, |
||
224 | 'IUTEST_EXPECT_EQ_RANGE': None, |
||
225 | 'IUTEST_EXPECT_NE_RANGE': None, |
||
226 | 'IUTEST_EXPECT_STRLNEQ': None, |
||
227 | 'IUTEST_EXPECT_STRIN': None, |
||
228 | 'IUTEST_EXPECT_STRNOTIN': None, |
||
229 | 'IUTEST_EXPECT_MATCHES_REGEXEQ': None, |
||
230 | 'IUTEST_EXPECT_MATCHES_REGEXNE': None, |
||
231 | 'IUTEST_EXPECT_CONTAINS_REGEXEQ': None, |
||
232 | 'IUTEST_EXPECT_CONTAINS_REGEXNE': None, |
||
233 | 'IUTEST_INFORM': None, |
||
234 | 'IUTEST_INFORM_NOT': None, |
||
235 | 'IUTEST_INFORM_THAT': None, |
||
236 | 'IUTEST_INFORM_EQ': None, |
||
237 | 'IUTEST_INFORM_ALMOST_EQ': None, |
||
238 | 'IUTEST_INFORM_NE': None, |
||
239 | 'IUTEST_INFORM_LT': None, |
||
240 | 'IUTEST_INFORM_LE': None, |
||
241 | 'IUTEST_INFORM_GT': None, |
||
242 | 'IUTEST_INFORM_GE': None, |
||
243 | 'IUTEST_INFORM_TRUE': None, |
||
244 | 'IUTEST_INFORM_FALSE': None, |
||
245 | 'IUTEST_INFORM_NULL': None, |
||
246 | 'IUTEST_INFORM_NOTNULL': None, |
||
247 | 'IUTEST_INFORM_SAME': None, |
||
248 | 'IUTEST_INFORM_FLOAT_EQ': None, |
||
249 | 'IUTEST_INFORM_DOUBLE_EQ': None, |
||
250 | 'IUTEST_INFORM_LONG_DOUBLE_EQ': None, |
||
251 | 'IUTEST_INFORM_NEAR': None, |
||
252 | 'IUTEST_INFORM_STREQ': None, |
||
253 | 'IUTEST_INFORM_STRNE': None, |
||
254 | 'IUTEST_INFORM_STRCASEEQ': None, |
||
255 | 'IUTEST_INFORM_STRCASENE': None, |
||
256 | 'IUTEST_INFORM_THROW': None, |
||
257 | 'IUTEST_INFORM_THROW_VALUE_EQ': None, |
||
258 | 'IUTEST_INFORM_THROW_VALUE_NE': None, |
||
259 | 'IUTEST_INFORM_THROW_VALUE_STREQ': None, |
||
260 | 'IUTEST_INFORM_THROW_VALUE_STRCASEEQ': None, |
||
261 | 'IUTEST_INFORM_ANY_THROW': None, |
||
262 | 'IUTEST_INFORM_NO_THROW': None, |
||
263 | 'IUTEST_INFORM_NO_FAILURE': None, |
||
264 | 'IUTEST_INFORM_NO_FATAL_FAILURE': None, |
||
265 | 'IUTEST_INFORM_FAIL': None, |
||
266 | 'IUTEST_INFORM_EQ_COLLECTIONS': None, |
||
267 | 'IUTEST_INFORM_NE_COLLECTIONS': None, |
||
268 | 'IUTEST_INFORM_EQ_RANGE': None, |
||
269 | 'IUTEST_INFORM_NE_RANGE': None, |
||
270 | 'IUTEST_INFORM_STRLNEQ': None, |
||
271 | 'IUTEST_INFORM_STRIN': None, |
||
272 | 'IUTEST_INFORM_STRNOTIN': None, |
||
273 | 'IUTEST_INFORM_MATCHES_REGEXEQ': None, |
||
274 | 'IUTEST_INFORM_MATCHES_REGEXNE': None, |
||
275 | 'IUTEST_INFORM_CONTAINS_REGEXEQ': None, |
||
276 | 'IUTEST_INFORM_CONTAINS_REGEXNE': None, |
||
277 | 'IUTEST_ASSUME': None, |
||
278 | 'IUTEST_ASSUME_NOT': None, |
||
279 | 'IUTEST_ASSUME_THAT': None, |
||
280 | 'IUTEST_ASSUME_EQ': None, |
||
281 | 'IUTEST_ASSUME_ALMOST_EQ': None, |
||
282 | 'IUTEST_ASSUME_NE': None, |
||
283 | 'IUTEST_ASSUME_LT': None, |
||
284 | 'IUTEST_ASSUME_LE': None, |
||
285 | 'IUTEST_ASSUME_GT': None, |
||
286 | 'IUTEST_ASSUME_GE': None, |
||
287 | 'IUTEST_ASSUME_TRUE': None, |
||
288 | 'IUTEST_ASSUME_FALSE': None, |
||
289 | 'IUTEST_ASSUME_NULL': None, |
||
290 | 'IUTEST_ASSUME_NOTNULL': None, |
||
291 | 'IUTEST_ASSUME_SAME': None, |
||
292 | 'IUTEST_ASSUME_FLOAT_EQ': None, |
||
293 | 'IUTEST_ASSUME_DOUBLE_EQ': None, |
||
294 | 'IUTEST_ASSUME_LONG_DOUBLE_EQ': None, |
||
295 | 'IUTEST_ASSUME_NEAR': None, |
||
296 | 'IUTEST_ASSUME_STREQ': None, |
||
297 | 'IUTEST_ASSUME_STRNE': None, |
||
298 | 'IUTEST_ASSUME_STRCASEEQ': None, |
||
299 | 'IUTEST_ASSUME_STRCASENE': None, |
||
300 | 'IUTEST_ASSUME_THROW': None, |
||
301 | 'IUTEST_ASSUME_THROW_VALUE_EQ': None, |
||
302 | 'IUTEST_ASSUME_THROW_VALUE_NE': None, |
||
303 | 'IUTEST_ASSUME_THROW_VALUE_STREQ': None, |
||
304 | 'IUTEST_ASSUME_THROW_VALUE_STRCASEEQ': None, |
||
305 | 'IUTEST_ASSUME_ANY_THROW': None, |
||
306 | 'IUTEST_ASSUME_NO_THROW': None, |
||
307 | 'IUTEST_ASSUME_NO_FAILURE': None, |
||
308 | 'IUTEST_ASSUME_NO_FATAL_FAILURE': None, |
||
309 | 'IUTEST_ASSUME_FAIL': None, |
||
310 | 'IUTEST_ASSUME_EQ_COLLECTIONS': None, |
||
311 | 'IUTEST_ASSUME_NE_COLLECTIONS': None, |
||
312 | 'IUTEST_ASSUME_EQ_RANGE': None, |
||
313 | 'IUTEST_ASSUME_NE_RANGE': None, |
||
314 | 'IUTEST_ASSUME_STRLNEQ': None, |
||
315 | 'IUTEST_ASSUME_STRIN': None, |
||
316 | 'IUTEST_ASSUME_STRNOTIN': None, |
||
317 | 'IUTEST_ASSUME_MATCHES_REGEXEQ': None, |
||
318 | 'IUTEST_ASSUME_MATCHES_REGEXNE': None, |
||
319 | 'IUTEST_ASSUME_CONTAINS_REGEXEQ': None, |
||
320 | 'IUTEST_ASSUME_CONTAINS_REGEXNE': None, |
||
321 | 'IUTEST_VPRINTF': None, |
||
322 | 'IUTEST_REMOVE_LEGACY_TEST_CASEAPI_': None, |
||
323 | 'IUTEST_HAS_CXX11': None, |
||
324 | 'IUTEST_HAS_CXX14': None, |
||
325 | 'IUTEST_HAS_CXX1Z': None, |
||
326 | 'IUTEST_HAS_CXX17': None, |
||
327 | 'IUTEST_HAS_CXX2A': None, |
||
328 | 'IUTEST_HAS_CXX20': None, |
||
329 | 'IUTEST_HAS_ATTRIBUTE': None, |
||
330 | 'IUTEST_HAS_AUTO': None, |
||
331 | 'IUTEST_HAS_CHAR8_T': None, |
||
332 | 'IUTEST_HAS_CHAR16_T': None, |
||
333 | 'IUTEST_HAS_CHAR32_T': None, |
||
334 | 'IUTEST_HAS_CONCEPTS': None, |
||
335 | 'IUTEST_HAS_CONSTEXPR': None, |
||
336 | 'IUTEST_HAS_CONSTEXPR_IF': None, |
||
337 | 'IUTEST_HAS_DECLTYPE': None, |
||
338 | 'IUTEST_HAS_DELETED_FUNCTIONS': None, |
||
339 | 'IUTEST_HAS_DEFAULT_FUNCTIONS': None, |
||
340 | 'IUTEST_HAS_EXCEPTIONS': None, |
||
341 | 'IUTEST_HAS_EXPLICIT_CONVERSION': None, |
||
342 | 'IUTEST_HAS_INITIALIZER_LIST': None, |
||
343 | 'IUTEST_HAS_INLINE_VARIABLE': None, |
||
344 | 'IUTEST_HAS_INT128': None, |
||
345 | 'IUTEST_HAS_LAMBDA': None, |
||
346 | 'IUTEST_HAS_NOEXCEPT': None, |
||
347 | 'IUTEST_HAS_NULLPTR': None, |
||
348 | 'IUTEST_HAS_OVERRIDE_AND_FINAL': None, |
||
349 | 'IUTEST_HAS_RTTI': None, |
||
350 | 'IUTEST_HAS_RVALUE_REFS': None, |
||
351 | 'IUTEST_HAS_STATIC_ASSERT': None, |
||
352 | 'IUTEST_HAS_STD_FILESYSTEM': None, |
||
353 | 'IUTEST_HAS_VARIADIC_TEMPLATES': None, |
||
354 | 'IUTEST_WCHAR_UNSIGNED': None, |
||
355 | 'IUTEST_HAS_MATCHER_VARIADIC': None, |
||
356 | 'IUTEST_HAS_REGEX': None, |
||
357 | 'IUTEST_HAS_MATCHER_ELEMENTSAREARRAYFORWARD': None, |
||
358 | 'IUTEST_HAS_MATCHER_ELEMENTSARE': None, |
||
359 | 'IUTEST_HAS_VARIADIC_PAIRWISE': None, |
||
360 | 'IUTEST_HAS_VARIADIC_COMBINE': None, |
||
361 | 'IUTEST_HAS_VARIADIC_VALUES': None, |
||
362 | 'IUTEST_HAS_PAIRWISE': None, |
||
363 | 'IUTEST_HAS_COMBINE': None, |
||
364 | 'IUTEST_HAS_BITWISE_EXPRESSION_DECOMPOSE': None, |
||
365 | 'IUTEST_USE_THROW_ON_ASSERTION_FAILURE': None, |
||
366 | 'IUTEST_HAS_SPI_LAMBDA_SUPPORT': None, |
||
367 | 'IUTEST_HAS_LAMBDA_STATEMENTS': None, |
||
368 | 'IUTEST_HAS_PEEP_FUNC': None, |
||
369 | 'IUTEST_HAS_PEEP_STATIC_FUNC': None, |
||
370 | 'IUTEST_HAS_PEEP_CLASS': None, |
||
371 | 'IUTEST_HAS_VARIADIC_PRED': None, |
||
372 | 'IUTEST_HAS_TYPED_TEST_APPEND_TYPENAME': None, |
||
373 | 'IUTEST_HAS_LONG_DOUBLE': None, |
||
374 | 'IUTEST_HAS_CLOCK': None, |
||
375 | 'IUTEST_HAS_CHAR16_T_PRINTABLE': None, |
||
376 | 'IUTEST_HAS_CHAR32_T_PRINTABLE': None, |
||
377 | 'IUTEST_USE_OWN_STRING_VIEW': None, |
||
378 | 'IUTEST_HAS_HDR_CXXABI': None, |
||
379 | 'IUTEST_HAS_CXX_HDR_ANY': None, |
||
380 | 'IUTEST_HAS_CXX_HDR_FILESYSTEM': None, |
||
381 | 'IUTEST_HAS_CXX_HDR_OPTIONAL': None, |
||
382 | 'IUTEST_HAS_CXX_HDR_STRING_VIEW': None, |
||
383 | 'IUTEST_HAS_CXX_HDR_TYPE_TARITS': None, |
||
384 | 'IUTEST_HAS_CXX_HDR_VARIANT': None, |
||
385 | 'IUTEST_HAS_CXX_HDR_VERSION': None, |
||
386 | 'IUTEST_PP_MSVC_TRADITIONAL': None, |
||
387 | } |
||
388 | |||
389 | iutest_config_macro = { |
||
390 | 'IUTEST_HAS_LIB': '0', |
||
391 | 'IUTEST_HAS_PARAM_TEST': '1', |
||
392 | 'IUTEST_HAS_TYPED_TEST': '1', |
||
393 | 'IUTEST_HAS_TYPED_TEST_P': '1', |
||
394 | 'IUTEST_TYPED_TEST_P_STRICT': '1', |
||
395 | 'IUTEST_HAS_MATCHERS': '1', |
||
396 | 'IUTEST_HAS_VALUESGEN': '1', |
||
397 | 'IUTEST_HAS_RANDOMVALUES': '1', |
||
398 | 'IUTEST_HAS_CONCAT': '1', |
||
399 | 'IUTEST_HAS_CSVPARAMS': '1', |
||
400 | 'IUTEST_HAS_TESTNAME_ALIAS_JP': '0', |
||
401 | 'IUTEST_HAS_TESTFIXTURE_ALIAS_BY_TUPLE': '1', |
||
402 | 'IUTEST_HAS_AUTOFIXTURE_PARAM_TEST': '1', |
||
403 | 'IUTEST_HAS_ANY_PARAM_TEST': '1', |
||
404 | 'IUTEST_HAS_PARAM_TEST_PARAM_NAME_GENERATOR': '1', |
||
405 | 'IUTEST_HAS_IF_EXISTS': '0', |
||
406 | 'IUTEST_HAS_ANALYSIS_ASSUME': '0', |
||
407 | 'IUTEST_HAS_IGNORE_TEST': '0', |
||
408 | 'IUTEST_HAS_MINIDUMP': '0', |
||
409 | 'IUTEST_HAS_STRSTREAM': '0', |
||
410 | 'IUTEST_HAS_STRINGSTREAM': '1', |
||
411 | 'IUTEST_HAS_IOMANIP': '1', |
||
412 | 'IUTEST_HAS_CTIME': '1', |
||
413 | 'IUTEST_HAS_GETTIMEOFDAY': '1', |
||
414 | 'IUTEST_HAS_HDR_SYSTIME': '1', |
||
415 | 'IUTEST_HAS_FOPEN': '1', |
||
416 | 'IUTEST_HAS_FILE_STAT': '1', |
||
417 | 'IUTEST_HAS_CLASS_MEMBER_TEMPLATE_SPECIALIZATION': '0', |
||
418 | 'IUTEST_HAS_GENERIC': '0', |
||
419 | 'IUTEST_HAS_MEMORY_SANITIZER': '0', |
||
420 | 'IUTEST_HAS_ADDRESS_SANITIZER': '0', |
||
421 | 'IUTEST_HAS_THREAD_SANITIZER': '0', |
||
422 | 'IUTEST_HAS_SEH': '0', |
||
423 | 'IUTEST_USE_OWN_LIST': '0', |
||
424 | 'IUTEST_HAS_MATCHER_FLOATINGPOINT_NEAR': '1', |
||
425 | 'IUTEST_HAS_MATCHER_EACH': '1', |
||
426 | 'IUTEST_HAS_MATCHER_POINTWISE': '1', |
||
427 | 'IUTEST_HAS_GENRAND': '1', |
||
428 | 'IUTEST_HAS_PACKAGE': '1', |
||
429 | 'IUTEST_HAS_PEEP': '1', |
||
430 | 'IUTEST_HAS_SOCKET': '1', |
||
431 | 'IUTEST_HAS_PRINT_TO': '1', |
||
432 | 'IUTEST_HAS_ARITHMETIC_EXPRESSION_DECOMPOSE': '1', |
||
433 | 'IUTEST_HAS_STATIC_ASSERT_TYPEEQ': '1', |
||
434 | 'IUTEST_HAS_ASSERTION_RETURN': '1', |
||
435 | 'IUTEST_HAS_ASSERTION_NOEQUALTO_OBJECT': '1', |
||
436 | 'IUTEST_HAS_TESTNAME_ALIAS': '1', |
||
437 | 'IUTEST_HAS_REPORT_SKIPPED': '1', |
||
438 | 'IUTEST_HAS_STREAM_BUFFER': '1', |
||
439 | 'IUTEST_HAS_STREAM_RESULT': '0', |
||
440 | 'IUTEST_HAS_BIGGESTINT_OSTREAM': '1', |
||
441 | 'IUTEST_CHECK_STRICT': '0', |
||
442 | 'IUTEST_HAS_COLORCONSOLE': '0', |
||
443 | 'IUTEST_FORCE_COLORCONSOLE': '0', |
||
444 | 'IUTEST_HAS_ATTRIBUTE_LIKELY_UNLIKELY': '0', |
||
445 | 'IUTEST_HAS_BUILTIN_EXPECT': '0', |
||
446 | 'IUTEST_HAS_PARAM_METHOD_TEST': '1', |
||
447 | 'IUTEST_HAS_MATCHER_OPTIONAL': '1', |
||
448 | 'IUTEST_TYPED_TEST_APPEND_TYPENAME': '0', |
||
449 | 'IUTEST_HAS_FILENO': '0', |
||
450 | } |
||
451 | |||
452 | expands_macros = [ |
||
453 | 'IUTEST_IPP_INLINE', |
||
454 | 'IUTEST_ATTRIBUTE_DEPRECATED_', |
||
455 | 'IUTEST_ATTRIBUTE_PURE_', |
||
456 | 'IUTEST_ATTRIBUTE_INIT_PRIORITY_', |
||
457 | 'IUTEST_ATTRIBUTE_LIKELY_', |
||
458 | 'IUTEST_ATTRIBUTE_UNLIKELY_', |
||
459 | 'IUTEST_HAS_ATTRIBUTE_DEPRECATED', |
||
460 | 'IUTEST_CXX_MODULE_EXPORT', |
||
461 | 'IUTEST_ATTRIBUTE_NO_SANITIZE_MEMORY', |
||
462 | 'IUTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS', |
||
463 | 'IUTEST_ATTRIBUTE_NO_SANITIZE_THREAD', |
||
464 | 'IUTEST_ATTRIBUTE_NO_SANITIZE_ALL', |
||
465 | 'IUTEST_HAS_TESTSUITE', |
||
466 | 'IUTEST_HAS_TESTCASE', |
||
467 | ] |
||
468 | |||
469 | # expand function macros |
||
470 | expand_function_macros = [ |
||
471 | 'IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_BEGIN', |
||
472 | 'IUTEST_PRAGMA_CRT_SECURE_WARN_DISABLE_END', |
||
473 | 'IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_BEGIN', |
||
474 | 'IUTEST_PRAGMA_EXTERN_TEMPLATE_WARN_DISABLE_END', |
||
475 | 'IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_BEGIN', |
||
476 | 'IUTEST_PRAGMA_CONSTEXPR_CALLED_AT_RUNTIME_WARN_DISABLE_END', |
||
477 | 'IUTEST_PRAGMA_MSC_WARN_PUSH', |
||
478 | 'IUTEST_PRAGMA_MSC_WARN_DISABLE', |
||
479 | 'IUTEST_PRAGMA_MSC_WARN_POP', |
||
480 | 'IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_BEGIN', |
||
481 | 'IUTEST_PRAGMA_UNUSED_LOCAL_TYPEDEFS_WARN_DISABLE_END', |
||
482 | 'IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_BEGIN', |
||
483 | 'IUTEST_PRAGMA_UNREACHCODE_WARN_DISABLE_END', |
||
484 | 'IUTEST_PRAGMA_WARN_DISABLE_EMPTY_BODY', |
||
485 | 'IUTEST_PRAGMA_WARN_DISABLE_FORMAT_NONLITERAL', |
||
486 | 'IUTEST_PRAGMA_WARN_DISABLE_CXX14_CONSTEXPR_NOT_IMPLY_CONST', |
||
487 | 'IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_FLOAT_CONVERSION', |
||
488 | 'IUTEST_PRAGMA_WARN_DISABLE_IMPLICIT_INT_FLOAT_CONVERSION', |
||
489 | 'IUTEST_PRAGMA_WARN_DISABLE_NARROWING', |
||
490 | 'IUTEST_PRAGMA_WARN_DISABLE_SWITCH_ENUM', |
||
491 | 'IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN', |
||
492 | 'IUTEST_PRAGMA_WARN_DISABLE_MISSING_NORETURN', |
||
493 | 'IUTEST_PRAGMA_WARN_DISABLE_DOUBLE_PROMOTION', |
||
494 | 'IUTEST_WORKAROUND_MSC_STLSTREAM_C4250', |
||
495 | 'IUTEST_EXPLICIT_TEMPLATE_TYPE_', |
||
496 | 'IUTEST_IF_EXISTS', |
||
497 | 'IUTEST_IF_NOT_EXISTS', |
||
498 | 'IUTEST_STATIC_EXISTS', |
||
499 | 'IUTEST_STATIC_ASSERT_IF_EXISTS', |
||
500 | 'IUTEST_STATIC_ASSERT_IF_NOT_EXISTS', |
||
501 | 'IUTEST_ANALYSIS_ASSUME', |
||
502 | 'IUTEST_PP_ENUM_CASE_RETURN_STRING', |
||
503 | 'IUTEST_CLASS_INITIALIZE', |
||
504 | 'IUTEST_CLASS_CLEANUP', |
||
505 | 'IUTEST_METHOD_INITIALIZE', |
||
506 | 'IUTEST_METHOD_CLEANUP', |
||
507 | 'IUTEST_PRAGMA_MESSAGE', |
||
508 | 'IUTEST_TEST_COMPILEERROR', |
||
509 | 'IUTEST_TEST_STATICASSERT', |
||
510 | # 'IUTEST_MAKE_ASSERTIONRESULT_', |
||
511 | ] |
||
512 | |||
513 | # |
||
514 | has_features = { |
||
515 | } |
||
516 | |||
517 | has_include = { |
||
518 | } |
||
519 | |||
520 | rename_macro = { |
||
521 | 'IUTEST_ASSERT_FAILURE': 'II_A_FAIL', |
||
522 | 'IUTEST_EXPECT_FAILURE': 'II_E_FAIL', |
||
523 | 'IUTEST_INFORM_FAILURE': 'II_I_FAIL', |
||
524 | 'IUTEST_ASSUME_FAILURE': 'II_M_FAIL', |
||
525 | 'IUTEST_ASSERT_FAILURE_AT': 'II_A_FAIL_AT', |
||
526 | 'IUTEST_EXPECT_FAILURE_AT': 'II_E_FAIL_AT', |
||
527 | 'IUTEST_INFORM_FAILURE_AT': 'II_I_FAIL_AT', |
||
528 | 'IUTEST_ASSUME_FAILURE_AT': 'II_M_FAIL_AT', |
||
529 | 'IUTEST_ATTRIBUTE_UNUSED_': 'II_ATR_U', |
||
530 | 'IUTEST_ATTRIBUTE_NORETURN_': 'II_ATR_NR', |
||
531 | 'IUTEST_ATTRIBUTE_FORMAT_PRINTF': 'II_ATR_F_P', |
||
532 | 'IUTEST_ATTRIBUTE_FORMAT': 'II_ATR_F', |
||
533 | 'IUTEST_CXX_OVERRIDE': 'II_CXX_O', |
||
534 | 'IUTEST_CXX_NOEXCEPT_SPEC': 'II_CXX_NEX_S', |
||
535 | 'IUTEST_CXX_DEFAULT_FUNCTION': 'II_CXX_DF_F', |
||
536 | 'IUTEST_CXX_DELETED_FUNCTION': 'II_CXX_DL_F', |
||
537 | 'IUTEST_CXX_FINAL': 'II_CXX_F', |
||
538 | 'IUTEST_CXX_EXPLICIT_CONVERSION': 'II_CXX_E_C', |
||
539 | 'IUTEST_CXX_CONSTEXPR': 'II_CXX_CE', |
||
540 | 'IUTEST_CXX14_CONSTEXPR': 'II_CXX14_CE', |
||
541 | 'IUTEST_CXX_CONSTEXPR_OR_CONST': 'II_CXX_C_O_C', |
||
542 | 'IUTEST_AMBIGUOUS_ELSE_BLOCKER_': 'II_AMB_E_B', |
||
543 | 'IUTEST_SUPPRESS_UNREACHABLE_CODE_WARNING': 'II_S_UR_C_W', |
||
544 | 'IUTEST_APPEND_EXPLICIT_TEMPLATE_TYPE_': 'II_A_E_TT', |
||
545 | 'IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_BEGIN': 'II_PGM_A_O_CN_G_W_D_B', |
||
546 | 'IUTEST_PRAGMA_ASSIGNMENT_OPERATOR_COULD_NOT_GENERATE_WARN_DISABLE_END': 'II_PGM_A_O_CN_G_W_D_E', |
||
547 | # 'IUTEST_PRAGMA_WARN_DISABLE_FLOAT_EQUAL': 'II_PGM_W_FE', |
||
548 | 'IUTEST_PRAGMA_WARN_DISABLE_CAST_ALIGN': 'II_PGM_W_CA', |
||
549 | 'IUTEST_PRAGMA_WARN_DISABLE_NOEXCEPT_TPYE': 'II_PGM_W_D_NE_T', |
||
550 | 'IUTEST_PRAGMA_WARN_DISABLE_SIGN_COMPARE': 'II_PGM_W_D_S_C', |
||
551 | # 'IUTEST_PRAGMA_WARN_DISABLE_DANGLING_ELSE': 'II_PGM_W_D_D_E', |
||
552 | 'IUTEST_PRAGMA_CLANG_WARN_PUSH': 'II_PGM_C_W_PU', |
||
553 | 'IUTEST_PRAGMA_CLANG_WARN_DISABLE': 'II_PGM_C_W_D', |
||
554 | 'IUTEST_PRAGMA_CLANG_WARN_POP': 'II_PGM_C_W_PP', |
||
555 | 'IUTEST_PRAGMA_GCC_WARN_PUSH': 'II_PGM_G_W_PU', |
||
556 | 'IUTEST_PRAGMA_GCC_WARN_DISABLE': 'II_PGM_G_W_D', |
||
557 | 'IUTEST_PRAGMA_GCC_WARN_POP': 'II_PGM_G_W_PP', |
||
558 | # 'IUTEST_PRAGMA_WARN_PUSH': 'II_PGM_W_PU', |
||
559 | # 'IUTEST_PRAGMA_WARN_DISABLE': 'II_PGM_W_D', |
||
560 | # 'IUTEST_PRAGMA_WARN_POP': 'II_PGM_W_PP', |
||
561 | 'IUTEST_PP_DISALLOW_COPY_AND_ASSIGN': 'IP_DIS_C_A_A', |
||
562 | 'IUTEST_PP_DISALLOW_ASSIGN': 'IP_DIS_A', |
||
563 | 'IUTEST_PP_DISALLOW_MOVE_AND_COPY_AND_ASSIGN': 'IP_DIS_M_A_C_A_A', |
||
564 | 'IUTEST_PP_NAMESPACE_ENUM_CASE_RETURN_STRING': 'IP_NS_E_C_R_S', |
||
565 | 'IUTEST_PP_INC': 'IP_INC', |
||
566 | 'IUTEST_PP_DEC': 'IP_DEC', |
||
567 | 'IUTEST_PP_CAT': 'IP_CAT', |
||
568 | 'IUTEST_PP_EMPTY_': 'IP_EMP_', |
||
569 | 'IUTEST_PP_EMPTY': 'IP_EMPTY', |
||
570 | 'IUTEST_PP_IS_BEGIN_PARENS': 'IP_IS_B_PAR', |
||
571 | 'IUTEST_LIBSTDCXX_VERSION': 'II_LSTDCXX_V', |
||
572 | 'IUTEST_PRED_FORMAT_': 'II_PRD_FMT_', |
||
573 | 'IUTEST_PRED_FORMAT1_': 'II_PRD_FMT1_', |
||
574 | 'IUTEST_PRED_FORMAT2_': 'II_PRD_FMT2_', |
||
575 | 'IUTEST_PRED_FORMAT3_': 'II_PRD_FMT3_', |
||
576 | 'IUTEST_PRED_FORMAT4_': 'II_PRD_FMT4_', |
||
577 | 'IUTEST_PRED_FORMAT5_': 'II_PRD_FMT5_', |
||
578 | 'IUTEST_THROW_PRED_FORMAT2_': 'II_T_PRD_FMT2_', |
||
579 | 'IUTEST_PRED_': 'II_PRD_', |
||
580 | 'IUTEST_PRED1_': 'II_PRD1_', |
||
581 | 'IUTEST_PRED2_': 'II_PRD2_', |
||
582 | 'IUTEST_PRED3_': 'II_PRD3_', |
||
583 | 'IUTEST_PRED4_': 'II_PRD4_', |
||
584 | 'IUTEST_PRED5_': 'II_PRD5_', |
||
585 | 'IUTEST_TEST_ASSERT_': 'II_T_ASRT_', |
||
586 | 'IUTEST_TEST_CLASS_NAME_': 'II_T_CLS_N_', |
||
587 | 'IUTEST_TEST_INSTANCE_NAME_': 'II_T_INST_N_', |
||
588 | 'IUTEST_PMZ_TEST_CLASS_NAME_': 'II_P_T_CLS_N_', |
||
589 | 'IUTEST_MESSAGE_AT': 'II_MSG_AT', |
||
590 | 'IUTEST_MESSAGE': 'II_MSG', |
||
591 | 'IUTEST_IS_NULLLITERAL': 'II_IS_NL', |
||
592 | 'IUTEST_ALIAS_TESTNAME_F_': 'II_ALS_TN_F_', |
||
593 | 'IUTEST_ALIAS_TESTNAME_F': 'II_ALS_TN_F', |
||
594 | 'IUTEST_ALIAS_TESTNAME_': 'II_ALS_TN', |
||
595 | 'IUTEST_THROUGH_ANALYSIS_ASSUME_': 'II_TRGH_A_A_', |
||
596 | 'IUTEST_PP_ENUM_SHIFTED_BINARY_PARAMS': 'IP_ENM_S_B_P', |
||
597 | 'IUTEST_PP_ENUM_SHIFTED_BINARY': 'IP_ENM_S_B', |
||
598 | 'IUTEST_PP_ENUM_SHIFTED_PARAMS': 'IP_ENM_S_P', |
||
599 | 'IUTEST_PP_ENUM_BINARY_PARAMS': 'IP_ENM_B_P', |
||
600 | 'IUTEST_PP_ENUM_SHIFTED': 'IP_ENM_S', |
||
601 | 'IUTEST_PP_ENUM_BINARY': 'IP_ENM_B', |
||
602 | 'IUTEST_PP_ENUM_PARAMS': 'IP_ENM_P', |
||
603 | 'IUTEST_PP_ENUM': 'IP_ENM', |
||
604 | 'IUTEST_TEST_EQ_COLLECTIONS': 'II_T_EQ_CLCT', |
||
605 | 'IUTEST_TEST_NE_COLLECTIONS': 'II_T_NE_CLCT', |
||
606 | 'IUTEST_TEST_EQ_RANGE': 'II_T_EQ_RNG', |
||
607 | 'IUTEST_TEST_NE_RANGE': 'II_T_NE_RNG', |
||
608 | 'IUTEST_TEST_STRLNEQ': 'II_T_SLN', |
||
609 | 'IUTEST_TEST_STRIN': 'II_T_SIN', |
||
610 | 'IUTEST_TEST_STRNOTIN': 'II_T_SNIN', |
||
611 | 'IUTEST_TEST_MATCHES_REGEXEQ': 'II_T_M_RGE', |
||
612 | 'IUTEST_TEST_MATCHES_REGEXNE': 'II_T_M_RGN', |
||
613 | 'IUTEST_TEST_CONTAINS_REGEXEQ': 'II_T_C_RGE', |
||
614 | 'IUTEST_TEST_CONTAINS_REGEXNE': 'II_T_C_RGN', |
||
615 | } |
||
616 | |||
617 | rename_text = { |
||
618 | 'backward': 'bkw', |
||
619 | # 'CmpHelper': 'CHlpr', |
||
620 | 'IUTEST_PRAGMA_IUTEST_WARN_DISABLE_CLANG_': 'II_PGM_IWD_CLNG_', |
||
621 | 'IUTEST_MAKE_ASSERTIONRESULT_': '', |
||
622 | 'II_DECL_STREQ_COMPARE_HELPER_': 'II_DECL_SE_C_H_', |
||
623 | 'II_INSTANTIATE_TEST_CASE_AP_': 'II_INST_TC_AP_', |
||
624 | 'II_TEST_AP_FIXTURE_NAME_': 'II_T_AP_FIX_N_', |
||
625 | 'II_ALIAS_TESTNAME_AP_': 'II_ALS_TN_AP_', |
||
626 | 'IUTEST_GET_PACKAGENAME_': 'II_GET_PKGN_', |
||
627 | 'IUTEST_CONCAT_PACKAGE_': 'II_CC_PKG_', |
||
628 | 'IUTEST_COND_LIKELY': '', |
||
629 | 'IUTEST_COND_UNLIKELY': '', |
||
630 | } |
||
631 | |||
632 | debug = False |
||
633 | |||
634 | class WandboxPreprocessor: |
||
635 | pp = IutestPreprocessor(predefined_macros |
||
636 | , iutest_config_macro |
||
637 | , expand_function_macros |
||
638 | , expands_macros |
||
639 | , has_features |
||
640 | , has_include) |
||
641 | |||
642 | def preprocess(self, code, add_macros): |
||
643 | self.pp.set_debug_flag(debug) |
||
644 | return self.pp.preprocess(code, add_macros) |
||
645 | |||
646 | def remove_empty_ppif(self, code): |
||
647 | return self.pp.remove_empty_ppif(code) |
||
648 | |||
649 | def remove_redudant(self, code): |
||
650 | dst = "" |
||
651 | for line in code.splitlines(): |
||
652 | if '#define IP_D_' in line: |
||
653 | v = line.split() |
||
654 | try: |
||
655 | if int(v[2]) > 50: |
||
656 | continue |
||
657 | except ValueError: |
||
658 | pass |
||
659 | elif '#define IP_I_' in line: |
||
660 | v = line.split() |
||
661 | try: |
||
662 | if int(v[2]) > 51: |
||
663 | continue |
||
664 | except ValueError: |
||
665 | pass |
||
666 | elif '#define IP_B_' in line: |
||
667 | v = line.split() |
||
668 | v2 = v[1].split('_') |
||
669 | try: |
||
670 | if int(v2[2]) > 51: |
||
671 | continue |
||
672 | except ValueError: |
||
673 | pass |
||
674 | elif 'IUTEST_MBS_CODE' in line: |
||
675 | continue |
||
676 | line += "\n" |
||
677 | dst += line |
||
678 | return dst |
||
679 | |||
680 | def rename_macros(self, code): |
||
681 | dst = "" |
||
682 | global rename_macro |
||
683 | found_macros = {} |
||
684 | for k, v in rename_macro.items(): |
||
685 | if collections.Counter(rename_macro.values())[v] > 1: |
||
686 | print('error: duplicated ' + v) |
||
687 | return |
||
688 | RE_DEFINE = re.compile(r'#\s*define\s([\w_]+)(.*)$') |
||
689 | for line in code.splitlines(): |
||
690 | m = RE_DEFINE.match(line) |
||
691 | if m: |
||
692 | d = m.group(1) |
||
693 | if d in rename_macro: |
||
694 | alias = rename_macro[d] |
||
695 | found_macros[d] = alias |
||
696 | del rename_macro[d] |
||
697 | if len(rename_macro) == 0: |
||
698 | break |
||
699 | for line in code.splitlines(): |
||
700 | for k, v in found_macros.items(): |
||
701 | line = re.sub(k + r'(?=[\W]|$)', v, line) |
||
702 | # line = line.replace(k, v) |
||
703 | for k, v in rename_text.items(): |
||
704 | line = line.replace(k, v) |
||
705 | for k, v in found_macros.items(): |
||
706 | if k in line: |
||
707 | print(k) |
||
708 | line += "\n" |
||
709 | dst += line |
||
710 | for k, v in found_macros.items(): |
||
711 | dst += "#define " + k + " " + v + "\n" |
||
712 | return dst |
||
713 | |||
714 | def remove_redudant_pragma(self, code): |
||
715 | dst = "" |
||
716 | RE_PRAGMA_WARN_STRIP = re.compile(r'II_PGM_W_PU\(\)(.*?)II_PGM_W_PP\(\)') |
||
717 | for line in code.splitlines(): |
||
718 | for m in RE_PRAGMA_WARN_STRIP.finditer(line): |
||
719 | if 'II_PGM_W' not in m.group(1): |
||
720 | line = line.replace(m.group(0), m.group(1)) |
||
721 | line += "\n" |
||
722 | dst += line |
||
723 | return dst |
||
724 | |||
725 | def trancate_line(self, code): |
||
726 | return self.pp.trancate_line(code) |
||
727 | |||
728 | |||
729 | |||
730 | def default_pp(): |
||
731 | output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../fused-src") |
||
732 | output = "iutest.wandbox.min.hpp" |
||
733 | f = codecs.open(os.path.join(output_dir, "iutest.min.hpp"), 'r', 'utf-8-sig') |
||
734 | code = f.read() |
||
735 | f.close() |
||
736 | output_file = codecs.open(os.path.join(output_dir, output), 'w', 'utf-8-sig') |
||
737 | pp = WandboxPreprocessor() |
||
738 | code = pp.preprocess(code, None) |
||
739 | code = pp.remove_empty_ppif(code) |
||
740 | code = pp.remove_redudant(code) |
||
741 | code = pp.rename_macros(code) |
||
742 | code = pp.remove_redudant_pragma(code) |
||
743 | code = pp.trancate_line(code) |
||
744 | output_file.write(code) |
||
745 | output_file.close() |
||
746 | |||
747 | |||
748 | View Code Duplication | def clang_pp(): |
|
0 ignored issues
–
show
Duplication
introduced
by
Loading history...
|
|||
749 | output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../fused-src") |
||
750 | output = "iutest.wandbox.min.clang.hpp" |
||
751 | f = codecs.open(os.path.join(output_dir, "iutest.wandbox.min.hpp"), 'r', 'utf-8-sig') |
||
752 | code = f.read() |
||
753 | f.close() |
||
754 | output_file = codecs.open(os.path.join(output_dir, output), 'w', 'utf-8-sig') |
||
755 | clang_predefined_macros = { |
||
756 | '__clang__': '1', |
||
757 | '__GNUC__': None, |
||
758 | '__GXX_EXPERIMENTAL_CXX0X__': None, |
||
759 | } |
||
760 | clang_predefined_macros.update(predefined_macros) |
||
761 | clagn_config_macro = { |
||
762 | 'IUTEST_HAS_COUNTER_MACRO': '1', |
||
763 | 'IUTEST_EXPLICIT_INSTANTIATION_ACCESS_PRIVATE_OVERLOAD_MEMBER_FUNCTION': '0', |
||
764 | } |
||
765 | clagn_config_macro.update(iutest_config_macro) |
||
766 | pp = IutestPreprocessor(clang_predefined_macros, |
||
767 | clagn_config_macro, |
||
768 | expand_function_macros, |
||
769 | expands_macros, |
||
770 | has_features, |
||
771 | has_include) |
||
772 | code = pp.preprocess(code, None) |
||
773 | code = pp.remove_empty_ppif(code) |
||
774 | code = pp.trancate_line(code) |
||
775 | output_file.write(code) |
||
776 | output_file.close() |
||
777 | |||
778 | |||
779 | View Code Duplication | def gcc_pp(): |
|
0 ignored issues
–
show
|
|||
780 | output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../fused-src") |
||
781 | output = "iutest.wandbox.min.gcc.hpp" |
||
782 | f = codecs.open(os.path.join(output_dir, "iutest.wandbox.min.hpp"), 'r', 'utf-8-sig') |
||
783 | code = f.read() |
||
784 | f.close() |
||
785 | output_file = codecs.open(os.path.join(output_dir, output), 'w', 'utf-8-sig') |
||
786 | gcc_predefined_macros = { |
||
787 | '__clang__': None, |
||
788 | '__GNUC__': 'unknown', |
||
789 | '_LIBCPP_VERSION': None, |
||
790 | } |
||
791 | gcc_predefined_macros.update(predefined_macros) |
||
792 | clagn_config_macro = { |
||
793 | 'IUTEST_HAS_COUNTER_MACRO': '0', |
||
794 | 'IUTEST_EXPLICIT_INSTANTIATION_ACCESS_PRIVATE_OVERLOAD_MEMBER_FUNCTION': '1', |
||
795 | } |
||
796 | clagn_config_macro.update(iutest_config_macro) |
||
797 | pp = IutestPreprocessor(gcc_predefined_macros, |
||
798 | iutest_config_macro, |
||
799 | expand_function_macros, |
||
800 | expands_macros, |
||
801 | has_features, |
||
802 | has_include) |
||
803 | code = pp.preprocess(code, None) |
||
804 | code = pp.remove_empty_ppif(code) |
||
805 | code = pp.trancate_line(code) |
||
806 | output_file.write(code) |
||
807 | output_file.close() |
||
808 | |||
809 | |||
810 | def main(): |
||
811 | global debug |
||
812 | argc = len(sys.argv) |
||
813 | if argc == 2: |
||
814 | if sys.argv[1] == 'debug': |
||
815 | debug = True |
||
816 | default_pp() |
||
817 | clang_pp() |
||
818 | gcc_pp() |
||
819 | |||
820 | if __name__ == '__main__': |
||
821 | main() |
||
822 |