1
0
mirror of https://github.com/danog/amp.git synced 2024-12-02 17:37:50 +01:00
amp/test/PsalmTest.php
Niklas Keller 05483cdbef
Enforce timer interval as minimum time to execution (#319)
Co-authored-by: Aaron Piotrowski <aaron@trowski.com>
2020-07-14 21:45:35 +02:00

42 lines
1.2 KiB
PHP

<?php
namespace Amp\Test;
use PHPUnit\Framework\TestCase;
class PsalmTest extends TestCase
{
/**
* @requires PHP >= 7.1
*/
public function test()
{
$issues = \json_decode(
\shell_exec('./vendor/bin/psalm.phar --output-format=json --no-progress --config=psalm.examples.xml'),
true
);
foreach ($issues as $issue) {
$file = \file_get_contents($issue['file_path']);
$fileLines = \explode("\n", $file);
if (!\preg_match('(// psalm-expect (.*))', $fileLines[$issue['line_from'] - 2] ?? '', $match)) {
$this->fail('Psalm reports an issue that isn\'t marked as expected: ' . \json_encode(
$issue,
\JSON_PRETTY_PRINT
));
}
$expectedIssues = \array_map('trim', \explode(',', $match[1]));
if (!\in_array($issue['type'], $expectedIssues, true)) {
$this->fail('Psalm reports an issue that isn\'t marked as expected: ' . \json_encode(
$issue,
\JSON_PRETTY_PRINT
));
}
}
$this->expectNotToPerformAssertions();
}
}