diff --git a/app/Http/Submission/Handlers/BazelJSONHandler.php b/app/Http/Submission/Handlers/BazelJSONHandler.php index d03f7f40ac..8cc62d8aec 100644 --- a/app/Http/Submission/Handlers/BazelJSONHandler.php +++ b/app/Http/Submission/Handlers/BazelJSONHandler.php @@ -21,11 +21,9 @@ use App\Services\ProjectService; use App\Utils\SubmissionUtils; use App\Utils\TestCreator; -use CDash\Database; use CDash\Model\Build; use CDash\Model\BuildConfigure; use CDash\Model\BuildError; -use CDash\Model\BuildErrorFilter; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; @@ -57,7 +55,6 @@ class BazelJSONHandler extends AbstractSubmissionHandler private array $TestsOutput = []; private string $TestName = ''; private bool $ParseConfigure = true; - private ?BuildErrorFilter $BuildErrorFilter = null; public function __construct(Build $build) { @@ -755,21 +752,7 @@ public function getBuild(): Build private function RecordError($build_error, $type, $subproject_name): void { - $text_with_context = $build_error->Text . $build_error->PostContext; - - if ($this->BuildErrorFilter === null) { - $this->BuildErrorFilter = new BuildErrorFilter($this->GetProject()); - $this->BuildErrorFilter->Fill(); - } - - if ($type === 0) { - $skip_error = $this->BuildErrorFilter->FilterError($text_with_context); - } else { - $skip_error = $this->BuildErrorFilter->FilterWarning($text_with_context); - } - if (!$skip_error) { - $this->BuildErrors[$subproject_name][] = $build_error; - } + $this->BuildErrors[$subproject_name][] = $build_error; } /** diff --git a/app/Http/Submission/Handlers/BuildHandler.php b/app/Http/Submission/Handlers/BuildHandler.php index 4affb00428..120763d8b3 100644 --- a/app/Http/Submission/Handlers/BuildHandler.php +++ b/app/Http/Submission/Handlers/BuildHandler.php @@ -38,7 +38,6 @@ use CDash\Messaging\Topic\TopicCollection; use CDash\Model\Build; use CDash\Model\BuildError; -use CDash\Model\BuildErrorFilter; use CDash\Model\BuildFailure; use CDash\Model\BuildGroup; use CDash\Model\Label; @@ -71,7 +70,6 @@ class BuildHandler extends AbstractXmlHandler implements ActionableBuildInterfac private string $PullRequest = ''; private ?string $SourceDirectory = null; private ?string $BinaryDirectory = null; - private ?BuildErrorFilter $BuildErrorFilter = null; protected static ?string $schema_file = '/app/Validators/Schemas/Build.xsd'; /** @@ -431,26 +429,6 @@ public function endElement($parser, $name): void } } } elseif ($name === 'WARNING' || $name === 'ERROR' || $name === 'FAILURE') { - $skip_error = false; - foreach (['StdOutput', 'StdError', 'Text'] as $field) { - if (isset($this->Error->$field)) { - if ($this->BuildErrorFilter === null) { - $this->BuildErrorFilter = new BuildErrorFilter($this->GetProject()); - $this->BuildErrorFilter->Fill(); - } - - if ($this->Error->Type === 1) { - $skip_error = $this->BuildErrorFilter->FilterWarning($this->Error->$field); - } elseif ($this->Error->Type === 0) { - $skip_error = $this->BuildErrorFilter->FilterError($this->Error->$field); - } - } - } - if ($skip_error) { - unset($this->Error); - return; - } - $threshold = config('cdash.large_text_limit'); if ($threshold > 0) { $chunk_size = $threshold / 2; diff --git a/app/cdash/app/Model/BuildErrorFilter.php b/app/cdash/app/Model/BuildErrorFilter.php deleted file mode 100644 index 08dcb3e28c..0000000000 --- a/app/cdash/app/Model/BuildErrorFilter.php +++ /dev/null @@ -1,125 +0,0 @@ -PDO = Database::getInstance(); - $this->Project = $project; - } - - public function Exists(): bool - { - $stmt = $this->PDO->prepare( - 'SELECT projectid FROM build_filters - WHERE projectid = :projectid'); - $this->PDO->execute($stmt, [':projectid' => $this->Project->Id]); - if ($stmt->fetchColumn()) { - return true; - } - return false; - } - - public function AddOrUpdateFilters($warnings, $errors): bool - { - if ($this->Exists()) { - $stmt = $this->PDO->prepare( - 'UPDATE build_filters - SET warnings = :warnings, errors = :errors - WHERE projectid = :projectid'); - } else { - $stmt = $this->PDO->prepare( - 'INSERT INTO build_filters(projectid, warnings, errors) - VALUES (:projectid, :warnings, :errors)'); - } - - $query_params = [ - ':errors' => $errors, - ':projectid' => $this->Project->Id, - ':warnings' => $warnings, - ]; - if ($this->PDO->execute($stmt, $query_params)) { - $this->Fill(); - return true; - } - return false; - } - - public function FilterWarning($warning): bool - { - return $this->FilterText($warning, $this->WarningsFilter); - } - - public function FilterError($error): bool - { - return $this->FilterText($error, $this->ErrorsFilter); - } - - public function GetErrorsFilter() - { - return $this->ErrorsFilter; - } - - public function SetErrorsFilter($filter): void - { - $this->ErrorsFilter = $filter; - } - - public function GetWarningsFilter() - { - return $this->WarningsFilter; - } - - public function SetWarningsFilter($filter): void - { - $this->WarningsFilter = $filter; - } - - public function Fill(): void - { - $stmt = $this->PDO->prepare( - 'SELECT * FROM build_filters WHERE projectid = :projectid'); - $this->PDO->execute($stmt, [':projectid' => $this->Project->Id]); - $row = $stmt->fetch(); - if ($row) { - $this->ErrorsFilter = $row['errors']; - $this->WarningsFilter = $row['warnings']; - } - } - - private function FilterText($subject, $filterString): bool - { - if ($filterString) { - foreach (preg_split("/\R/", $filterString) as $filter) { - if (str_contains($subject, $filter)) { - return true; - } - } - } - return false; - } -} diff --git a/app/cdash/app/Model/Project.php b/app/cdash/app/Model/Project.php index fc75d266ea..e4d8962a52 100644 --- a/app/cdash/app/Model/Project.php +++ b/app/cdash/app/Model/Project.php @@ -75,8 +75,6 @@ class Project public $AutoremoveTimeframe = 0; public int $AutoremoveMaxBuilds = 300; public $UploadQuota = 0; - public $WarningsFilter = ''; - public $ErrorsFilter = ''; public ?string $LdapFilter = null; public ?string $Banner = null; private Database $PDO; @@ -149,12 +147,6 @@ public function Save(): bool $project->save(); $this->Id = $project->id; - $buildErrorFilter = new BuildErrorFilter($this); - $buildErrorFilter->Fill(); - if ($buildErrorFilter->GetErrorsFilter() != $this->ErrorsFilter - || $buildErrorFilter->GetWarningsFilter() != $this->WarningsFilter) { - return $buildErrorFilter->AddOrUpdateFilters($this->WarningsFilter, $this->ErrorsFilter); - } return true; } @@ -233,14 +225,6 @@ public function Fill(): void $this->LdapFilter = $project->ldapfilter; } - // Check if we have filters - $build_filters = DB::select('SELECT * FROM build_filters WHERE projectid=?', [(int) $this->Id]); - - if (count($build_filters) > 0) { - $this->WarningsFilter = $build_filters[0]->warnings; - $this->ErrorsFilter = $build_filters[0]->errors; - } - $this->Filled = true; } diff --git a/app/cdash/tests/CMakeLists.txt b/app/cdash/tests/CMakeLists.txt index 6e912c50aa..332f7af78b 100644 --- a/app/cdash/tests/CMakeLists.txt +++ b/app/cdash/tests/CMakeLists.txt @@ -134,8 +134,6 @@ add_php_test(passwordcomplexity) add_legacy_unit_test(/CDash/Model/Build) -add_legacy_unit_test(/CDash/Model/BuildErrorFilter) - add_legacy_unit_test(/CDash/Model/Repository) ################################################################################################### @@ -457,9 +455,6 @@ set_tests_properties(dynamicanalysisdefectlongtype PROPERTIES DEPENDS /CDash/Xml add_php_test(configureappend) set_tests_properties(configureappend PROPERTIES DEPENDS /CDash/XmlHandler/UpdateHandler) -add_php_test(filterbuilderrors) -set_tests_properties(filterbuilderrors PROPERTIES DEPENDS /CDash/XmlHandler/UpdateHandler) - add_php_test(buildproperties) set_tests_properties(buildproperties PROPERTIES DEPENDS /CDash/XmlHandler/UpdateHandler) @@ -503,7 +498,6 @@ set_property(TEST install_2 APPEND PROPERTY DEPENDS dynamicanalysislogs dynamicanalysisdefectlongtype configureappend - filterbuilderrors buildproperties issuecreation junithandler diff --git a/app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php b/app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php deleted file mode 100644 index eb9c9bb3cc..0000000000 --- a/app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php +++ /dev/null @@ -1,63 +0,0 @@ -setDatabaseMocked(); - $this->service = ServiceContainer::getInstance(); - $container = ServiceContainer::container(); - - $this->mock_project = $this->getMockBuilder(Project::class) - ->disableOriginalConstructor() - ->getMock(); - $this->mock_project->Id = 1; - $container->set(Project::class, $this->mock_project); - - $this->sut = $container->make( - BuildErrorFilter::class, - ['project' => $this->mock_project]); - } - - public function testExists(): void - { - $this->assertFalse($this->sut->Exists()); - } - - public function testAddFilter(): void - { - $this->assertFalse($this->sut->AddOrUpdateFilters('', '')); - } - - public function testFilterWarning(): void - { - $this->sut->SetWarningsFilter('false warning'); - $this->assertTrue($this->sut->FilterWarning('this is a false warning')); - $this->assertFalse($this->sut->FilterWarning('this is a real warning')); - } - - public function testFilterError(): void - { - $this->sut->SetErrorsFilter('false error'); - $this->assertTrue($this->sut->FilterError('this is a false error')); - $this->assertFalse($this->sut->FilterError('this is a real error')); - } -} diff --git a/app/cdash/tests/kwtest/kw_web_tester.php b/app/cdash/tests/kwtest/kw_web_tester.php index 106deeee25..dad851e7ab 100644 --- a/app/cdash/tests/kwtest/kw_web_tester.php +++ b/app/cdash/tests/kwtest/kw_web_tester.php @@ -433,8 +433,6 @@ public function createProject($input_settings, $update = false, 'TestTimeStd' => 4, 'TestTimeStdThreshold' => 1, 'UploadQuota' => 1073741824, - 'WarningsFilter' => '', - 'ErrorsFilter' => '', ]; } diff --git a/app/cdash/tests/test_bazeljson.php b/app/cdash/tests/test_bazeljson.php index 4c99ad4174..61e2c25b20 100644 --- a/app/cdash/tests/test_bazeljson.php +++ b/app/cdash/tests/test_bazeljson.php @@ -87,58 +87,6 @@ public function testBazelJSON() DatabaseCleanupUtils::removeBuild($buildid2); } - public function testFilterBazelJSON() - { - // Create a new project. - $settings = [ - 'Name' => 'Bazel', - 'Public' => 1, - 'WarningsFilter' => 'unused variable', - 'ErrorsFilter' => 'use of undeclared identifier', - ]; - $projectid = $this->createProject($settings); - if ($projectid < 1) { - $this->fail('Failed to create project'); - } - $project = new Project(); - $project->Id = $projectid; - - // Submit testing data. - $buildid = $this->submit_data('Bazel', 'BazelJSON', - '0a9b0aeeb73618cd10d6e1bee221fd71', - __DIR__ . '/data/Bazel/bazel_BEP.json'); - if (!$buildid) { - return false; - } - - // Validate the build. - $stmt = $this->PDO->query( - "SELECT builderrors, buildwarnings, testfailed, testpassed, - configureerrors, configurewarnings - FROM build WHERE id = $buildid"); - $row = $stmt->fetch(); - - // Warnings and errors are filtered out - $answer_key = [ - 'builderrors' => 0, - 'buildwarnings' => 0, - 'testfailed' => 1, - 'testpassed' => 1, - 'configureerrors' => 0, - 'configurewarnings' => 0, - ]; - foreach ($answer_key as $key => $expected) { - $found = $row[$key]; - if ($found != $expected) { - $this->fail("Expected $expected for $key but found $found"); - } - } - - // Cleanup. - DatabaseCleanupUtils::removeBuild($buildid); - App\Models\Project::findOrFail((int) $project->Id)->delete(); - } - public function testBazelSubProjs() { // Create a new project. diff --git a/app/cdash/tests/test_filterbuilderrors.php b/app/cdash/tests/test_filterbuilderrors.php deleted file mode 100644 index 51de9a9ece..0000000000 --- a/app/cdash/tests/test_filterbuilderrors.php +++ /dev/null @@ -1,79 +0,0 @@ -PDO = Database::getInstance()->getPdo(); - } - - public function testFilterBuildErrors() - { - // Create a new project. - $settings = [ - 'Name' => 'FilterErrors', - 'Public' => 1, - 'ErrorsFilter' => <<createProject($settings); - if ($projectid < 1) { - $this->fail('Failed to create project'); - } - $project = new Project(); - $project->Id = $projectid; - - // Submit our test data. - $rep = __DIR__ . '/data/BuildFailureDetails'; - if (!$this->submission('FilterErrors', "$rep/Build_1.xml")) { - $this->fail('failed to submit Build_1.xml'); - return 1; - } - - // Get the buildid that we just created so we can delete it later. - $buildids = []; - $buildid_results = pdo_query( - "SELECT id FROM build WHERE name='test_buildfailure'"); - while ($buildid_array = pdo_fetch_array($buildid_results)) { - $buildids[] = $buildid_array['id']; - } - $buildid = $buildids[0]; - - // Validate the build. - $stmt = $this->PDO->query( - "SELECT builderrors, buildwarnings, testfailed, testpassed, - configureerrors, configurewarnings - FROM build WHERE id = $buildid"); - $row = $stmt->fetch(); - - $answer_key = [ - 'builderrors' => 0, - 'buildwarnings' => 0, - ]; - foreach ($answer_key as $key => $expected) { - $found = $row[$key]; - if ($found != $expected) { - $this->fail("Expected $expected for $key but found $found for $buildid"); - } - } - - // Cleanup. - DatabaseCleanupUtils::removeBuild($buildid); - App\Models\Project::findOrFail((int) $project->Id)->delete(); - } -} diff --git a/database/migrations/2026_04_14_173202_drop_build_filters_table.php b/database/migrations/2026_04_14_173202_drop_build_filters_table.php new file mode 100644 index 0000000000..4f32e8c6e9 --- /dev/null +++ b/database/migrations/2026_04_14_173202_drop_build_filters_table.php @@ -0,0 +1,15 @@ +|false supplied for foreach, only iterables are supported.' - identifier: foreach.nonIterable - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::AddOrUpdateFilters() has parameter $errors with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::AddOrUpdateFilters() has parameter $warnings with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::FilterError() has parameter $error with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::FilterText() has parameter $filterString with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::FilterText() has parameter $subject with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::FilterWarning() has parameter $warning with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::GetErrorsFilter() has no return type specified.' - identifier: missingType.return - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::GetWarningsFilter() has no return type specified.' - identifier: missingType.return - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::SetErrorsFilter() has parameter $filter with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: 'Method CDash\Model\BuildErrorFilter::SetWarningsFilter() has parameter $filter with no type specified.' - identifier: missingType.parameter - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: Property CDash\Model\BuildErrorFilter::$ErrorsFilter has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: Property CDash\Model\BuildErrorFilter::$PDO has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: Property CDash\Model\BuildErrorFilter::$Project has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - - - rawMessage: Property CDash\Model\BuildErrorFilter::$WarningsFilter has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/BuildErrorFilter.php - - rawMessage: ''' Call to deprecated method executePrepared() of class CDash\Database: @@ -10044,12 +9954,6 @@ parameters: count: 1 path: app/cdash/app/Model/Project.php - - - rawMessage: 'Loose comparison via "!=" between mixed and mixed is not allowed.' - identifier: notEqual.notAllowed - count: 2 - path: app/cdash/app/Model/Project.php - - rawMessage: 'Method CDash\Model\Project::AddLogo() has no return type specified.' identifier: missingType.return @@ -10176,12 +10080,6 @@ parameters: count: 1 path: app/cdash/app/Model/Project.php - - - rawMessage: Property CDash\Model\Project::$ErrorsFilter has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/Project.php - - rawMessage: Property CDash\Model\Project::$Id has no type specified. identifier: missingType.property @@ -10260,12 +10158,6 @@ parameters: count: 1 path: app/cdash/app/Model/Project.php - - - rawMessage: Property CDash\Model\Project::$WarningsFilter has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/app/Model/Project.php - - rawMessage: 'Variable property access on $this(CDash\Model\Project).' identifier: property.dynamicName @@ -14901,42 +14793,6 @@ parameters: count: 3 path: app/cdash/tests/case/CDash/Messaging/Topic/UpdateErrorTopicTest.php - - - rawMessage: Access to an undefined property BuildErrorFilterTest::$mock_project. - identifier: property.notFound - count: 1 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - - - rawMessage: Access to an undefined property BuildErrorFilterTest::$service. - identifier: property.notFound - count: 1 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - - - rawMessage: Access to an undefined property BuildErrorFilterTest::$sut. - identifier: property.notFound - count: 9 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - - - rawMessage: 'Method BuildErrorFilterTest::setUp() throws checked exception DI\DependencyException but it''s missing from the PHPDoc @throws tag.' - identifier: missingType.checkedException - count: 1 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - - - rawMessage: 'Method BuildErrorFilterTest::setUp() throws checked exception DI\NotFoundException but it''s missing from the PHPDoc @throws tag.' - identifier: missingType.checkedException - count: 1 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - - - rawMessage: 'Missing call to parent::setUp() method.' - identifier: phpunit.callParent - count: 1 - path: app/cdash/tests/case/CDash/Model/BuildErrorFilterTest.php - - rawMessage: Access to an undefined property BuildRelationshipTest::$mock_build1. identifier: property.notFound @@ -16063,19 +15919,19 @@ parameters: path: app/cdash/tests/kwtest/kw_web_tester.php - - rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:802::__construct() has parameter $response with no type specified.' + rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:800::__construct() has parameter $response with no type specified.' identifier: missingType.parameter count: 1 path: app/cdash/tests/kwtest/kw_web_tester.php - - rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:802::getSent() has no return type specified.' + rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:800::getSent() has no return type specified.' identifier: missingType.return count: 1 path: app/cdash/tests/kwtest/kw_web_tester.php - - rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:802::read() has no return type specified.' + rawMessage: 'Method class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:800::read() has no return type specified.' identifier: missingType.return count: 1 path: app/cdash/tests/kwtest/kw_web_tester.php @@ -16303,7 +16159,7 @@ parameters: path: app/cdash/tests/kwtest/kw_web_tester.php - - rawMessage: Property class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:802::$read has no type specified. + rawMessage: Property class@anonymous/app/cdash/tests/kwtest/kw_web_tester.php:800::$read has no type specified. identifier: missingType.property count: 1 path: app/cdash/tests/kwtest/kw_web_tester.php @@ -17022,7 +16878,7 @@ parameters: - rawMessage: 'Loose comparison via "!=" between mixed and int is not allowed.' identifier: notEqual.notAllowed - count: 12 + count: 11 path: app/cdash/tests/test_bazeljson.php - @@ -17103,12 +16959,6 @@ parameters: count: 1 path: app/cdash/tests/test_bazeljson.php - - - rawMessage: 'Method BazelJSONTestCase::testFilterBazelJSON() has no return type specified.' - identifier: missingType.return - count: 1 - path: app/cdash/tests/test_bazeljson.php - - rawMessage: 'Method BazelJSONTestCase::testMultipleLineError() has no return type specified.' identifier: missingType.return @@ -19476,66 +19326,6 @@ parameters: count: 1 path: app/cdash/tests/test_filterblocks.php - - - rawMessage: ''' - Call to deprecated function pdo_fetch_array(): - 04/01/2023 - ''' - identifier: function.deprecated - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: ''' - Call to deprecated function pdo_query(): - 04/01/2023 - ''' - identifier: function.deprecated - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: ''' - Call to deprecated method getPdo() of class CDash\Database: - 04/22/2023 Use Laravel query builder or Eloquent instead - ''' - identifier: method.deprecated - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: ''' - Call to deprecated method submission() of class KWWebTestCase: - 12/09/2024 Use \Test\Traits\CreatesSubmissions instead - ''' - identifier: method.deprecated - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: 'Loose comparison via "!=" between mixed and int is not allowed.' - identifier: notEqual.notAllowed - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: 'Method FilterBuildErrorsTestCase::testFilterBuildErrors() has no return type specified.' - identifier: missingType.return - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: 'Only booleans are allowed in a while condition, array|false|null given.' - identifier: while.condNotBoolean - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - - - rawMessage: Property FilterBuildErrorsTestCase::$PDO has no type specified. - identifier: missingType.property - count: 1 - path: app/cdash/tests/test_filterbuilderrors.php - - rawMessage: ''' Call to deprecated function pdo_fetch_array():