Ejemplo n.º 1
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return;
     }
     // We don't care about changed files here, we want to run the entire suit every time
     $config = $this->getConfiguration();
     $this->processBuilder->setArguments(array($this->getCommandLocation()));
     if ($config['config']) {
         $this->processBuilder->add('--config=' . $config['config']);
     }
     if ($config['format']) {
         $this->processBuilder->add('--format=' . $config['format']);
     }
     if ($config['suite']) {
         $this->processBuilder->add('--suite=' . $config['suite']);
     }
     if ($config['stop_on_failure']) {
         $this->processBuilder->add('--stop-on-failure');
     }
     $process = $this->processBuilder->getProcess();
     $process->run();
     if (!$process->isSuccessful()) {
         throw new RuntimeException($process->getOutput());
     }
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $this->processBuilder->setArguments(array($this->getCommandLocation(), '--standard=' . $config['standard']));
     if (!$config['show_warnings']) {
         $this->processBuilder->add('--warning-severity=0');
     }
     if ($config['tab_width']) {
         $this->processBuilder->add('--tab-width=' . $config['tab_width']);
     }
     if (count($config['sniffs'])) {
         $this->processBuilder->add('--sniffs=' . implode(',', $config['sniffs']));
     }
     if (count($config['ignore_patterns'])) {
         $this->processBuilder->add('--ignore=' . implode(',', $config['ignore_patterns']));
     }
     foreach ($files as $file) {
         $this->processBuilder->add($file);
     }
     $process = $this->processBuilder->getProcess();
     $process->run();
     if (!$process->isSuccessful()) {
         throw new RuntimeException($process->getOutput());
     }
 }
 /**
  * @param ContextInterface $context
  * @return TaskResult
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->extensions($config['triggered_by']);
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     if (is_file('./vendor/bin/fixbom')) {
         $fixCommand = './vendor/bin/fixbom';
     } elseif (is_file('./bin/fixbom')) {
         $fixCommand = './bin/fixbom';
     } else {
         $fixCommand = 'fixbom';
     }
     $shouldGetFixedLog = [];
     /** @var \Symfony\Component\Finder\SplFileInfo $file */
     foreach ($files as $file) {
         $execFile = $file->getPathname();
         $debugLog[] = $execFile;
         if ($this->isFileWithBOM($execFile)) {
             $shouldGetFixedLog[] = $execFile . " has BOM and should be fixed";
             $fixCommand .= " '" . $execFile . "'";
         }
     }
     if (count($shouldGetFixedLog) > 0) {
         return TaskResult::createFailed($this, $context, implode(PHP_EOL, $shouldGetFixedLog) . PHP_EOL . "you can use this to fix them:" . PHP_EOL . $fixCommand);
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 4
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->path(pathinfo($config['file'], PATHINFO_DIRNAME))->name(pathinfo($config['file'], PATHINFO_BASENAME));
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $arguments = $this->processBuilder->createArgumentsForCommand('composer');
     $arguments->add('validate');
     $arguments->addOptionalArgument('--no-check-all', $config['no_check_all']);
     $arguments->addOptionalArgument('--no-check-lock', $config['no_check_lock']);
     $arguments->addOptionalArgument('--no-check-publish', $config['no_check_publish']);
     $arguments->addOptionalArgument('--with-dependencies', $config['with_dependencies']);
     $arguments->addOptionalArgument('--strict', $config['strict']);
     $arguments->addOptionalArgument('%s', $config['file']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     if ($config['no_local_repository'] && $this->hasLocalRepository($files->first())) {
         return TaskResult::createFailed($this, $context, 'You have at least one local repository declared.');
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 5
0
 function it_throws_exception_if_the_process_fails(JsonLinter $linter, ContextInterface $context)
 {
     $linter->isInstalled()->willReturn(true);
     $linter->setDetectKeyConflicts(false)->shouldBeCalled();
     $linter->lint(Argument::type('SplFileInfo'))->willReturn(new LintErrorsCollection(array(new JsonLintError(LintError::TYPE_ERROR, 0, 'error', 'file.json', 1, 1))));
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file.json', '.', 'file.json'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 6
0
 function it_lists_files_with_merge_conflicts(ProcessBuilder $processBuilder, ContextInterface $context, Process $process)
 {
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('git')->willReturn($arguments);
     $processBuilder->buildProcess($arguments)->willReturn($process);
     $context->getFiles()->willReturn(new FilesCollection([new SplFileInfo('file1.php', '.', 'file1.php')]));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf(TaskResultInterface::class);
     $result->isPassed()->shouldBe(true);
 }
Ejemplo n.º 7
0
 function it_throws_exception_if_the_process_fails(ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $processBuilder->setArguments(Argument::type('array'))->shouldBeCalled();
     $processBuilder->getProcess()->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(false);
     $process->getOutput()->shouldBeCalled();
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('test.php'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 8
0
 function it_throws_exception_if_the_process_fails(JsonLinter $linter, ContextInterface $context)
 {
     $linter->isInstalled()->willReturn(true);
     $linter->setDetectKeyConflicts(false)->shouldBeCalled();
     $linter->lint(Argument::type('SplFileInfo'))->willReturn(new LintErrorsCollection([new JsonLintError(LintError::TYPE_ERROR, 0, 'error', 'file.json', 1, 1)]));
     $context->getFiles()->willReturn(new FilesCollection([new SplFileInfo('file.json', '.', 'file.json')]));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf(TaskResultInterface::class);
     $result->isPassed()->shouldBe(false);
 }
Ejemplo n.º 9
0
 function it_throws_exception_if_the_process_is_successfull(GrumPHP $grumPHP, LocatorInterface $externalCommandLocator, ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $this->beConstructedWith($grumPHP, array('keywords' => array('var_dump(')), $externalCommandLocator, $processBuilder);
     $processBuilder->setArguments(Argument::type('array'))->shouldBeCalled();
     $processBuilder->getProcess()->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(true);
     $process->getOutput()->shouldBeCalled();
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file1.php'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 10
0
 function it_throws_exception_if_the_process_fails(YamlLinter $linter, ContextInterface $context)
 {
     $linter->isInstalled()->willReturn(true);
     $linter->setObjectSupport(false)->shouldBeCalled();
     $linter->setExceptionOnInvalidType(false)->shouldBeCalled();
     $linter->lint(Argument::type('SplFileInfo'))->willReturn(new LintErrorsCollection(array(new YamlLintError(LintError::TYPE_ERROR, 0, 'error', 'file.yaml', 1, 1))));
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file.yaml', '.', 'file.yaml'))));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf('GrumPHP\\Runner\\TaskResultInterface');
     $result->isPassed()->shouldBe(false);
 }
Ejemplo n.º 11
0
 function it_throws_exception_if_the_process_fails(XmlLinter $linter, ContextInterface $context)
 {
     $linter->isInstalled()->willReturn(true);
     $linter->setLoadFromNet(false)->shouldBeCalled();
     $linter->setXInclude(false)->shouldBeCalled();
     $linter->setDtdValidation(false)->shouldBeCalled();
     $linter->setSchemeValidation(false)->shouldBeCalled();
     $linter->lint(Argument::type('SplFileInfo'))->willReturn(new LintErrorsCollection(array(new XmlLintError(LintError::TYPE_ERROR, 0, 'error', 'file.xml', 1, 1))));
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file.xml', '.', 'file.xml'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 12
0
 function it_throws_exception_if_the_process_fails(ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('behat')->willReturn($arguments);
     $processBuilder->buildProcess($arguments)->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(false);
     $process->getOutput()->shouldBeCalled();
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('test.php', '.', 'test.php'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 13
0
 function it_throws_exception_if_the_process_fails(ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('phing')->willReturn($arguments);
     $processBuilder->buildProcess($arguments)->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(false);
     $context->getFiles()->willReturn(new FilesCollection([new SplFileInfo('test.php', '.', 'test.php')]));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf(TaskResultInterface::class);
     $result->isPassed()->shouldBe(false);
 }
Ejemplo n.º 14
0
 function it_throws_exception_if_the_process_fails(ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('composer')->willReturn($arguments);
     $processBuilder->buildProcess($arguments)->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(false);
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('composer.json', '.', 'composer.json'))));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf('GrumPHP\\Runner\\TaskResultInterface');
     $result->isPassed()->shouldBe(false);
 }
Ejemplo n.º 15
0
 function it_throws_exception_if_the_process_is_successfull(GrumPHP $grumPHP, ProcessBuilder $processBuilder, Process $process, ContextInterface $context)
 {
     $grumPHP->getTaskConfiguration('git_blacklist')->willReturn(array('keywords' => array('var_dump(')));
     $arguments = new ProcessArgumentsCollection();
     $processBuilder->createArgumentsForCommand('git')->willReturn($arguments);
     $processBuilder->buildProcess($arguments)->willReturn($process);
     $process->run()->shouldBeCalled();
     $process->isSuccessful()->willReturn(true);
     $process->getOutput()->shouldBeCalled();
     $context->getFiles()->willReturn(new FilesCollection(array(new SplFileInfo('file1.php', '.', 'file1.php'))));
     $this->shouldThrow('GrumPHP\\Exception\\RuntimeException')->duringRun($context);
 }
Ejemplo n.º 16
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.json');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $this->linter->setDetectKeyConflicts($config['detect_key_conflicts']);
     $lintErrors = $this->lint($files);
     if ($lintErrors->count()) {
         throw new RuntimeException($lintErrors->__toString());
     }
 }
Ejemplo n.º 17
0
 function it_throws_exception_if_the_process_fails(XmlLinter $linter, ContextInterface $context)
 {
     $linter->isInstalled()->willReturn(true);
     $linter->setLoadFromNet(false)->shouldBeCalled();
     $linter->setXInclude(false)->shouldBeCalled();
     $linter->setDtdValidation(false)->shouldBeCalled();
     $linter->setSchemeValidation(false)->shouldBeCalled();
     $linter->lint(Argument::type('SplFileInfo'))->willReturn(new LintErrorsCollection([new XmlLintError(LintError::TYPE_ERROR, 0, 'error', 'file.xml', 1, 1)]));
     $context->getFiles()->willReturn(new FilesCollection([new SplFileInfo('file.xml', '.', 'file.xml')]));
     $result = $this->run($context);
     $result->shouldBeAnInstanceOf(TaskResultInterface::class);
     $result->isPassed()->shouldBe(false);
 }
Ejemplo n.º 18
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $this->processBuilder->setArguments(array($this->getCommandLocation(), '--format=json', '--dry-run'));
     if ($config['level']) {
         $this->processBuilder->add('--level=' . $config['level']);
     }
     if ($config['config']) {
         $this->processBuilder->add('--config=' . $config['config']);
     }
     if ($config['config_file']) {
         $this->processBuilder->add('--config-file' . $config['config-file']);
     }
     if ($config['verbose']) {
         $this->processBuilder->add('--verbose');
     }
     if (count($config['fixers'])) {
         $this->processBuilder->add('--fixers=' . implode(',', $config['fixers']));
     }
     $this->processBuilder->add('fix');
     $messages = array();
     $suggest = array('You can fix all errors by running following commands:');
     $errorCount = 0;
     foreach ($files as $file) {
         $processBuilder = clone $this->processBuilder;
         $processBuilder->add($file);
         $process = $processBuilder->getProcess();
         $process->run();
         if (!$process->isSuccessful()) {
             $output = $process->getOutput();
             $json = json_decode($output, true);
             if ($json) {
                 if (isset($json['files'][0]['name']) && isset($json['files'][0]['appliedFixers'])) {
                     $messages[] = sprintf('%s) %s (%s)', ++$errorCount, $json['files'][0]['name'], implode(',', $json['files'][0]['appliedFixers']));
                 } elseif (isset($json['files'][0]['name'])) {
                     $messages[] = sprintf('%s) %s', ++$errorCount, $json['files'][0]['name']);
                 }
                 $suggest[] = str_replace(array("'--dry-run' ", "'--format=json' "), '', $process->getCommandLine());
             } else {
                 $messages[] = $output;
             }
         }
     }
     if (count($messages)) {
         throw new RuntimeException(implode("\n", $messages) . "\n" . "\n" . implode("\n", $suggest));
     }
 }
Ejemplo n.º 19
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles(false)->extensions($config['triggered_by']);
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $this->parser->setParserOptions($config);
     $parseErrors = $this->parse($files);
     if ($parseErrors->count()) {
         return TaskResult::createFailed($this, $context, sprintf("Some errors occured while parsing your PHP files:\n%s", $parseErrors->__toString()));
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 20
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('/\\.(yaml|yml)$/i');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $this->linter->setObjectSupport($config['object_support']);
     $this->linter->setExceptionOnInvalidType($config['exception_on_invalid_type']);
     $lintErrors = $this->lint($files);
     if ($lintErrors->count()) {
         throw new RuntimeException($lintErrors->__toString());
     }
 }
Ejemplo n.º 21
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $arguments = $this->processBuilder->createArgumentsForCommand('phpunit');
     $arguments->addOptionalArgument('--configuration=%s', $config['config_file']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         throw new RuntimeException($process->getOutput());
     }
 }
Ejemplo n.º 22
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->name(sprintf('/\\.(%s)$/i', implode('|', $config['triggered_by'])));
     if (0 === count($config['triggered_by']) || 0 === count($files)) {
         return;
     }
     $arguments = $this->processBuilder->createArgumentsForCommand('grunt');
     $arguments->addOptionalArgument('--gruntfile=%s', $config['grunt_file']);
     $arguments->addOptionalArgument('%s', $config['task']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         throw new RuntimeException($process->getOutput());
     }
 }
Ejemplo n.º 23
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->extensions($config['triggered_by']);
     $arguments = $this->processBuilder->createArgumentsForCommand('parallel-lint');
     $arguments->add('--no-colors');
     $arguments->addOptionalArgumentWithSeparatedValue('-j', $config['jobs']);
     $arguments->addArgumentArrayWithSeparatedValue('--exclude', $config['exclude']);
     $arguments->addFiles($files);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 24
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $arguments = ProcessArgumentsCollection::forExecutable($this->getCommandLocation());
     $arguments->addOptionalArgument('--configuration=%s', $config['config_file']);
     $this->processBuilder->setArguments($arguments->getValues());
     $process = $this->processBuilder->getProcess();
     $process->run();
     if (!$process->isSuccessful()) {
         throw new RuntimeException($process->getOutput());
     }
 }
Ejemplo n.º 25
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.xml');
     if (0 === count($files)) {
         return;
     }
     $config = $this->getConfiguration();
     $this->linter->setLoadFromNet($config['load_from_net']);
     $this->linter->setXInclude($config['x_include']);
     $this->linter->setDtdValidation($config['dtd_validation']);
     $this->linter->setSchemeValidation($config['scheme_validation']);
     $lintErrors = $this->lint($files);
     if ($lintErrors->count()) {
         throw new RuntimeException($lintErrors->__toString());
     }
 }
Ejemplo n.º 26
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.php');
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $config = $this->getConfiguration();
     $arguments = $this->processBuilder->createArgumentsForCommand('phpunit');
     $arguments->addOptionalArgument('--configuration=%s', $config['config_file']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 27
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->extensions($config['triggered_by']);
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $arguments = $this->processBuilder->createArgumentsForCommand('grunt');
     $arguments->addOptionalArgument('--gruntfile=%s', $config['grunt_file']);
     $arguments->addOptionalArgument('%s', $config['task']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 28
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->extensions($config['triggered_by']);
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $arguments = $this->processBuilder->createArgumentsForCommand('npm');
     $arguments->addRequiredArgument('%s', $config['script']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->setWorkingDirectory(realpath($config['working_directory']));
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 29
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $files = $context->getFiles()->name('*.json');
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $config = $this->getConfiguration();
     $this->linter->setDetectKeyConflicts($config['detect_key_conflicts']);
     try {
         $lintErrors = $this->lint($files);
     } catch (RuntimeException $e) {
         return TaskResult::createFailed($this, $context, $e->getMessage());
     }
     if ($lintErrors->count()) {
         return TaskResult::createFailed($this, $context, (string) $lintErrors);
     }
     return TaskResult::createPassed($this, $context);
 }
Ejemplo n.º 30
0
 /**
  * {@inheritdoc}
  */
 public function run(ContextInterface $context)
 {
     $config = $this->getConfiguration();
     $files = $context->getFiles()->extensions($config['triggered_by']);
     if (0 === count($files)) {
         return TaskResult::createSkipped($this, $context);
     }
     $arguments = $this->processBuilder->createArgumentsForCommand('doctrine');
     $arguments->add('orm:validate-schema');
     $arguments->addOptionalArgument('--skip-mapping', $config['skip_mapping']);
     $arguments->addOptionalArgument('--skip-sync', $config['skip_sync']);
     $process = $this->processBuilder->buildProcess($arguments);
     $process->run();
     if (!$process->isSuccessful()) {
         return TaskResult::createFailed($this, $context, $this->formatter->format($process));
     }
     return TaskResult::createPassed($this, $context);
 }