mirror of
https://github.com/danog/psalm.git
synced 2024-11-30 04:39:00 +01:00
Small test improvements
This commit is contained in:
parent
fa28d767fc
commit
04a49102ec
@ -171,7 +171,7 @@ class ProjectAnalyzer
|
||||
/**
|
||||
* @var array<string,string>
|
||||
*/
|
||||
private $project_files;
|
||||
private $project_files = [];
|
||||
|
||||
/**
|
||||
* @var array<string, string>
|
||||
@ -246,8 +246,6 @@ class ProjectAnalyzer
|
||||
$this->stdout_report_options = $stdout_report_options;
|
||||
$this->generated_report_options = $generated_report_options;
|
||||
|
||||
$project_files = [];
|
||||
|
||||
foreach ($this->config->getProjectDirectories() as $dir_name) {
|
||||
$file_extensions = $this->config->getFileExtensions();
|
||||
|
||||
@ -255,17 +253,15 @@ class ProjectAnalyzer
|
||||
|
||||
foreach ($file_paths as $file_path) {
|
||||
if ($this->config->isInProjectDirs($file_path)) {
|
||||
$project_files[$file_path] = $file_path;
|
||||
$this->addProjectFile($file_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->config->getProjectFiles() as $file_path) {
|
||||
$project_files[$file_path] = $file_path;
|
||||
$this->addProjectFile($file_path);
|
||||
}
|
||||
|
||||
$this->project_files = $project_files;
|
||||
|
||||
self::$instance = $this;
|
||||
}
|
||||
|
||||
@ -548,7 +544,12 @@ class ProjectAnalyzer
|
||||
|
||||
$this->progress->startAnalyzingFiles();
|
||||
|
||||
$this->codebase->analyzer->analyzeFiles($this, $this->threads, $this->codebase->alter_code);
|
||||
$this->codebase->analyzer->analyzeFiles(
|
||||
$this,
|
||||
$this->threads,
|
||||
$this->codebase->alter_code,
|
||||
true
|
||||
);
|
||||
|
||||
if ($this->parser_cache_provider) {
|
||||
$removed_parser_files = $this->parser_cache_provider->deleteOldParserCaches(
|
||||
@ -933,7 +934,12 @@ class ProjectAnalyzer
|
||||
|
||||
$this->progress->startAnalyzingFiles();
|
||||
|
||||
$this->codebase->analyzer->analyzeFiles($this, $this->threads, $this->codebase->alter_code);
|
||||
$this->codebase->analyzer->analyzeFiles(
|
||||
$this,
|
||||
$this->threads,
|
||||
$this->codebase->alter_code,
|
||||
$this->codebase->find_unused_code === 'always'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -980,6 +986,17 @@ class ProjectAnalyzer
|
||||
return $file_paths;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $dir_name
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addProjectFile(string $file_path)
|
||||
{
|
||||
$this->project_files[$file_path] = $file_path;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $dir_name
|
||||
* @param Config $config
|
||||
@ -1066,7 +1083,12 @@ class ProjectAnalyzer
|
||||
|
||||
$this->progress->startAnalyzingFiles();
|
||||
|
||||
$this->codebase->analyzer->analyzeFiles($this, $this->threads, $this->codebase->alter_code);
|
||||
$this->codebase->analyzer->analyzeFiles(
|
||||
$this,
|
||||
$this->threads,
|
||||
$this->codebase->alter_code,
|
||||
$this->codebase->find_unused_code === 'always'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1100,7 +1122,12 @@ class ProjectAnalyzer
|
||||
|
||||
$this->progress->startAnalyzingFiles();
|
||||
|
||||
$this->codebase->analyzer->analyzeFiles($this, $this->threads, $this->codebase->alter_code);
|
||||
$this->codebase->analyzer->analyzeFiles(
|
||||
$this,
|
||||
$this->threads,
|
||||
$this->codebase->alter_code,
|
||||
$this->codebase->find_unused_code === 'always'
|
||||
);
|
||||
|
||||
if ($this->stdout_report_options
|
||||
&& $this->stdout_report_options->format === Report::TYPE_CONSOLE
|
||||
|
@ -243,8 +243,12 @@ class Analyzer
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function analyzeFiles(ProjectAnalyzer $project_analyzer, $pool_size, $alter_code)
|
||||
{
|
||||
public function analyzeFiles(
|
||||
ProjectAnalyzer $project_analyzer,
|
||||
int $pool_size,
|
||||
bool $alter_code,
|
||||
bool $consolidate_analyzed_data = false
|
||||
) {
|
||||
$this->loadCachedResults($project_analyzer);
|
||||
|
||||
$codebase = $project_analyzer->getCodebase();
|
||||
@ -285,7 +289,7 @@ class Analyzer
|
||||
} else {
|
||||
$this->progress->finish();
|
||||
|
||||
if ($project_analyzer->full_run || $codebase->find_unused_code === 'always') {
|
||||
if ($consolidate_analyzed_data) {
|
||||
$project_analyzer->consolidateAnalyzedData();
|
||||
}
|
||||
|
||||
|
@ -79,9 +79,7 @@ class ErrorAfterUpdateTest extends \Psalm\Tests\TestCase
|
||||
|
||||
$codebase->reloadFiles($this->project_analyzer, array_keys($files));
|
||||
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false);
|
||||
|
||||
$this->project_analyzer->consolidateAnalyzedData();
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false, true);
|
||||
}
|
||||
|
||||
foreach ($end_files as $file_path => $contents) {
|
||||
@ -97,9 +95,7 @@ class ErrorAfterUpdateTest extends \Psalm\Tests\TestCase
|
||||
$codebase->addFilesToAnalyze([$file_path => $file_path]);
|
||||
}
|
||||
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false);
|
||||
|
||||
$this->project_analyzer->consolidateAnalyzedData();
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -61,9 +61,8 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
bool $test_save = true,
|
||||
bool $check_unused_code = false
|
||||
) {
|
||||
$this->project_analyzer->getCodebase()->diff_methods = true;
|
||||
|
||||
$codebase = $this->project_analyzer->getCodebase();
|
||||
$codebase->diff_methods = true;
|
||||
|
||||
if ($check_unused_code) {
|
||||
$codebase->reportUnusedCode();
|
||||
@ -89,9 +88,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
|
||||
$codebase->scanFiles();
|
||||
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false);
|
||||
|
||||
$this->project_analyzer->consolidateAnalyzedData();
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false, true);
|
||||
|
||||
$data = \Psalm\IssueBuffer::clear();
|
||||
|
||||
@ -117,9 +114,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
|
||||
$codebase->reloadFiles($this->project_analyzer, array_keys($file_stage));
|
||||
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false);
|
||||
|
||||
$this->project_analyzer->consolidateAnalyzedData();
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false, true);
|
||||
|
||||
$data = \Psalm\IssueBuffer::clear();
|
||||
|
||||
@ -147,9 +142,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
|
||||
$codebase->reloadFiles($this->project_analyzer, array_keys($last_file_stage));
|
||||
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false);
|
||||
|
||||
$this->project_analyzer->consolidateAnalyzedData();
|
||||
$codebase->analyzer->analyzeFiles($this->project_analyzer, 1, false, true);
|
||||
|
||||
$data = \Psalm\IssueBuffer::clear();
|
||||
|
||||
@ -1452,7 +1445,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
'dontForgetErrorInTraitMethod' => [
|
||||
[
|
||||
[
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
class A {
|
||||
@ -1460,7 +1453,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
}
|
||||
|
||||
(new A)->foo();',
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'T.php' => '<?php
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'T.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
trait T {
|
||||
@ -1470,7 +1463,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
}',
|
||||
],
|
||||
[
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
class A {
|
||||
@ -1478,7 +1471,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
}
|
||||
|
||||
(new A)->foo();',
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'T.php' => '<?php
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'T.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
trait T {
|
||||
@ -1490,7 +1483,7 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
],
|
||||
'error_positions' => [[192, 192], [192, 192]],
|
||||
],
|
||||
'stillUnused' => [
|
||||
'stillUnusedClass' => [
|
||||
[
|
||||
[
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
@ -1523,7 +1516,44 @@ class TemporaryUpdateTest extends \Psalm\Tests\TestCase
|
||||
],
|
||||
'error_positions' => [[84], [84]],
|
||||
[],
|
||||
true,
|
||||
false,
|
||||
true
|
||||
],
|
||||
'stillUnusedMethod' => [
|
||||
[
|
||||
[
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
class A {
|
||||
public function foo() : void {}
|
||||
|
||||
public function bar() : void {}
|
||||
}',
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'user.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
(new A())->foo();',
|
||||
],
|
||||
[
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'A.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
class A {
|
||||
public function foo() : void {
|
||||
}
|
||||
|
||||
public function bar() : void {}
|
||||
}',
|
||||
getcwd() . DIRECTORY_SEPARATOR . 'src' . DIRECTORY_SEPARATOR . 'user.php' => '<?php
|
||||
namespace Foo;
|
||||
|
||||
(new A())->foo();',
|
||||
],
|
||||
],
|
||||
'error_positions' => [[201], [234]],
|
||||
[],
|
||||
false,
|
||||
true
|
||||
],
|
||||
];
|
||||
|
Loading…
Reference in New Issue
Block a user