mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
Merge pull request #6706 from rxu/ticket/17384
[ticket/17384] Handle E_USER_ERROR for PHP 8.4 tests - 3.3.x
This commit is contained in:
commit
dc0561c8bf
1 changed files with 29 additions and 0 deletions
|
@ -35,6 +35,8 @@ class phpbb_test_case extends TestCase
|
||||||
'phpbb_database_test_case' => ['already_connected', 'last_post_timestamp'],
|
'phpbb_database_test_case' => ['already_connected', 'last_post_timestamp'],
|
||||||
];
|
];
|
||||||
$this->excludeBackupStaticAttributes($backupStaticAttributesBlacklist);
|
$this->excludeBackupStaticAttributes($backupStaticAttributesBlacklist);
|
||||||
|
|
||||||
|
set_error_handler([$this, 'trigger_error_callback']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_test_case_helpers()
|
public function get_test_case_helpers()
|
||||||
|
@ -135,4 +137,31 @@ class phpbb_test_case extends TestCase
|
||||||
parent::assertFileNotExists($filename, $message);
|
parent::assertFileNotExists($filename, $message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Passing E_USER_ERROR to trigger_error() is deprecated as of PHP 8.4, so it causes E_DEPRECATED
|
||||||
|
* Use trigger_error() callback function to workaround this by handling E_USER_ERROR and suppressing E_DEPRECATED
|
||||||
|
* "Passing E_USER_ERROR to trigger_error() is deprecated since 8.4, throw an exception or call exit with a string message instead"
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function trigger_error_callback($errno, $errstr, $errfile, $errline)
|
||||||
|
{
|
||||||
|
// $errstr may need to be escaped
|
||||||
|
$errstr = htmlspecialchars($errstr);
|
||||||
|
|
||||||
|
switch ($errno) {
|
||||||
|
case E_USER_ERROR:
|
||||||
|
echo $errstr;
|
||||||
|
exit();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case E_DEPRECATED:
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue