@@ -206,6 +206,7 @@ def _decorateTest(
206206 remote = None ,
207207 dwarf_version = None ,
208208 setting = None ,
209+ asan = None ,
209210):
210211 def fn (actual_debug_info = None ):
211212 skip_for_os = _match_decorator_property (
@@ -256,6 +257,7 @@ def fn(actual_debug_info=None):
256257 )
257258 )
258259 skip_for_setting = (setting is None ) or (setting in configuration .settings )
260+ skip_for_asan = (asan is None ) or is_running_under_asan ()
259261
260262 # For the test to be skipped, all specified (e.g. not None) parameters must be True.
261263 # An unspecified parameter means "any", so those are marked skip by default. And we skip
@@ -273,6 +275,7 @@ def fn(actual_debug_info=None):
273275 (remote , skip_for_remote , "platform locality (remote/local)" ),
274276 (dwarf_version , skip_for_dwarf_version , "dwarf version" ),
275277 (setting , skip_for_setting , "setting" ),
278+ (asan , skip_for_asan , "running under asan" ),
276279 ]
277280 reasons = []
278281 final_skip_result = True
@@ -331,6 +334,7 @@ def expectedFailureAll(
331334 remote = None ,
332335 dwarf_version = None ,
333336 setting = None ,
337+ asan = None ,
334338):
335339 return _decorateTest (
336340 DecorateMode .Xfail ,
@@ -348,6 +352,7 @@ def expectedFailureAll(
348352 remote = remote ,
349353 dwarf_version = dwarf_version ,
350354 setting = setting ,
355+ asan = asan ,
351356 )
352357
353358
@@ -356,7 +361,7 @@ def expectedFailureAll(
356361# for example,
357362# @skipIf, skip for all platform/compiler/arch,
358363# @skipIf(compiler='gcc'), skip for gcc on all platform/architecture
359- # @skipIf(bugnumber, ["linux"], "gcc", ['>=', '4.9'], ['i386']), skip for gcc>=4.9 on linux with i386
364+ # @skipIf(bugnumber, ["linux"], "gcc", ['>=', '4.9'], ['i386']), skip for gcc>=4.9 on linux with i386 (all conditions must be true)
360365def skipIf (
361366 bugnumber = None ,
362367 oslist = None ,
@@ -372,6 +377,7 @@ def skipIf(
372377 remote = None ,
373378 dwarf_version = None ,
374379 setting = None ,
380+ asan = None ,
375381):
376382 return _decorateTest (
377383 DecorateMode .Skip ,
@@ -389,6 +395,7 @@ def skipIf(
389395 remote = remote ,
390396 dwarf_version = dwarf_version ,
391397 setting = setting ,
398+ asan = asan ,
392399 )
393400
394401
0 commit comments