@@ -209,13 +209,14 @@ def runcase(self, case):
209
209
for c in case .deps if c in self ._task_index ):
210
210
raise TaskDependencyError ('dependencies failed' )
211
211
212
- if any (self ._task_index [c ].skipped
212
+ if any (self ._task_index [c ].skipped or self . _task_index [ c ]. xfailed
213
213
for c in case .deps if c in self ._task_index ):
214
214
215
215
# We raise the SkipTestError here and catch it immediately in
216
216
# order for `skip()` to get the correct exception context.
217
217
try :
218
- raise SkipTestError ('skipped due to skipped dependencies' )
218
+ raise SkipTestError ('skipped due to skipped or '
219
+ 'xfailed dependencies' )
219
220
except SkipTestError as e :
220
221
task .skip ()
221
222
raise TaskExit from e
@@ -480,7 +481,8 @@ def _advance_all(self, tasks, timeout=None):
480
481
def _advance_startup (self , task ):
481
482
if self .deps_skipped (task ):
482
483
try :
483
- raise SkipTestError ('skipped due to skipped dependencies' )
484
+ raise SkipTestError ('skipped due to skipped or '
485
+ 'xfailed dependencies' )
484
486
except SkipTestError :
485
487
task .skip ()
486
488
self ._current_tasks .remove (task )
@@ -606,7 +608,7 @@ def deps_succeeded(self, task):
606
608
607
609
def deps_skipped (self , task ):
608
610
# NOTE: Restored dependencies are not in the task_index
609
- return any (self ._task_index [c ].skipped
611
+ return any (self ._task_index [c ].skipped or self . _task_index [ c ]. xfailed
610
612
for c in task .testcase .deps if c in self ._task_index )
611
613
612
614
def _abortall (self , cause ):
0 commit comments