From 78bd6c1ce49fdd258a71633c1a06eb53722ede8f Mon Sep 17 00:00:00 2001 From: Thai Pham Date: Tue, 15 Nov 2016 14:46:21 -0800 Subject: [PATCH] Ensure that `PHUIInvisibleCharacterTestCase` is compatible with PHP 5.3 Summary: This diff fixes the `PHUIInvisibleCharacterTestCase` unittest which is only broken when running in PHP 5.3. Test Plan: I wasn't able to run `arc unit` successfully for some reason. ``` arc diff master Linting... LINT OKAY No lint problems. Running unit tests... PHP Fatal error: Class PhabricatorUser contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PhutilPerson::getSex) in /home/thai/workspace/phabricator/phabricator/src/applications/people/storage/PhabricatorUser.php on line 1517 PHP Stack trace: PHP 1. {main}() /home/thai/workspace/phabricator/arcanist/scripts/arcanist.php:0 PHP 2. ArcanistDiffWorkflow->run() /home/thai/workspace/phabricator/arcanist/scripts/arcanist.php:394 PHP 3. ArcanistDiffWorkflow->runLintUnit() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:483 PHP 4. ArcanistDiffWorkflow->runUnit() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:1228 PHP 5. ArcanistUnitWorkflow->run() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:1340 PHP 6. ArcanistConfigurationDrivenUnitTestEngine->run() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistUnitWorkflow.php:167 PHP 7. PhutilUnitTestEngine->run() /home/thai/workspace/phabricator/arcanist/src/unit/engine/ArcanistConfigurationDrivenUnitTestEngine.php:147 PHP 8. PhabricatorTestCase->willRunTestCases() /home/thai/workspace/phabricator/arcanist/src/unit/engine/PhutilUnitTestEngine.php:64 PHP 9. require_once() /home/thai/workspace/phabricator/phabricator/src/infrastructure/testing/PhabricatorTestCase.php:62 PHP 10. require_once() /home/thai/workspace/phabricator/phabricator/scripts/__init_script__.php:3 PHP 11. init_phabricator_script() /home/thai/workspace/phabricator/phabricator/scripts/init/init-script.php:10 PHP 12. PhabricatorEnv::initializeScriptEnvironment() /home/thai/workspace/phabricator/phabricator/scripts/init/lib.php:22 PHP 13. PhabricatorEnv::initializeCommonEnvironment() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:75 PHP 14. PhabricatorEnv::buildConfigurationSourceStack() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:95 PHP 15. PhabricatorConfigDefaultSource->__construct() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:183 PHP 16. PhabricatorApplicationConfigOptions::loadAllOptions() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorConfigDefaultSource.php:11 PHP 17. PhabricatorUserConfigOptions->getOptions() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:232 PHP 18. spl_autoload_call() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:44 PHP 19. __phutil_autoload() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:44 PHP 20. PhutilSymbolLoader->selectAndLoadSymbols() /home/thai/workspace/phabricator/libphutil/src/__phutil_library_init__.php:22 PHP 21. PhutilSymbolLoader->loadSymbol() /home/thai/workspace/phabricator/libphutil/src/symbols/PhutilSymbolLoader.php:256 PHP 22. PhutilBootloader->loadLibrarySource() /home/thai/workspace/phabricator/libphutil/src/symbols/PhutilSymbolLoader.php:381 PHP 23. PhutilBootloader->executeInclude() /home/thai/workspace/phabricator/libphutil/src/moduleutils/PhutilBootloader.php:216 PHP 24. include_once() /home/thai/workspace/phabricator/libphutil/src/moduleutils/PhutilBootloader.php:226 Fatal error: Class PhabricatorUser contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PhutilPerson::getSex) in /home/thai/workspace/phabricator/phabricator/src/applications/people/storage/PhabricatorUser.php on line 1517 Call Stack: 0.0006 364056 1. {main}() /home/thai/workspace/phabricator/arcanist/scripts/arcanist.php:0 0.7499 12720888 2. ArcanistDiffWorkflow->run() /home/thai/workspace/phabricator/arcanist/scripts/arcanist.php:394 358.7140 13762072 3. ArcanistDiffWorkflow->runLintUnit() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:483 431.5813 40844984 4. ArcanistDiffWorkflow->runUnit() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:1228 431.5825 40848752 5. ArcanistUnitWorkflow->run() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistDiffWorkflow.php:1340 431.5836 40966456 6. ArcanistConfigurationDrivenUnitTestEngine->run() /home/thai/workspace/phabricator/arcanist/src/workflow/ArcanistUnitWorkflow.php:167 431.5866 41403128 7. PhutilUnitTestEngine->run() /home/thai/workspace/phabricator/arcanist/src/unit/engine/ArcanistConfigurationDrivenUnitTestEngine.php:147 431.5882 41655352 8. PhabricatorTestCase->willRunTestCases() /home/thai/workspace/phabricator/arcanist/src/unit/engine/PhutilUnitTestEngine.php:64 431.5882 41657288 9. require_once('/home/thai/workspace/phabricator/phabricator/scripts/__init_script__.php') /home/thai/workspace/phabricator/phabricator/src/infrastructure/testing/PhabricatorTestCase.php:62 431.5882 41659560 10. require_once('/home/thai/workspace/phabricator/phabricator/scripts/init/init-script.php') /home/thai/workspace/phabricator/phabricator/scripts/__init_script__.php:3 431.5883 41667040 11. init_phabricator_script() /home/thai/workspace/phabricator/phabricator/scripts/init/init-script.php:10 431.5889 41863352 12. PhabricatorEnv::initializeScriptEnvironment() /home/thai/workspace/phabricator/phabricator/scripts/init/lib.php:22 431.5889 41863584 13. PhabricatorEnv::initializeCommonEnvironment() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:75 431.5889 41866848 14. PhabricatorEnv::buildConfigurationSourceStack() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:95 431.5893 41938352 15. PhabricatorConfigDefaultSource->__construct() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorEnv.php:183 431.5895 42010944 16. PhabricatorApplicationConfigOptions::loadAllOptions() /home/thai/workspace/phabricator/phabricator/src/infrastructure/env/PhabricatorConfigDefaultSource.php:11 431.6188 50463016 17. PhabricatorUserConfigOptions->getOptions() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:232 431.6200 50901600 18. spl_autoload_call() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:44 431.6200 50901632 19. __phutil_autoload() /home/thai/workspace/phabricator/phabricator/src/applications/config/option/PhabricatorApplicationConfigOptions.php:44 431.6200 50901848 20. PhutilSymbolLoader->selectAndLoadSymbols() /home/thai/workspace/phabricator/libphutil/src/__phutil_library_init__.php:22 431.6200 50904176 21. PhutilSymbolLoader->loadSymbol() /home/thai/workspace/phabricator/libphutil/src/symbols/PhutilSymbolLoader.php:256 431.6200 50904224 22. PhutilBootloader->loadLibrarySource() /home/thai/workspace/phabricator/libphutil/src/symbols/PhutilSymbolLoader.php:381 431.6200 50904392 23. PhutilBootloader->executeInclude() /home/thai/workspace/phabricator/libphutil/src/moduleutils/PhutilBootloader.php:216 431.6210 51263432 24. include_once('/home/thai/workspace/phabricator/phabricator/src/applications/people/storage/PhabricatorUser.php') /home/thai/workspace/phabricator/libphutil/src/moduleutils/PhutilBootloader.php:226 ``` Reviewers: chad, joshuaspence, #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D16875 --- .../phui/__tests__/PHUIInvisibleCharacterTestCase.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/view/phui/__tests__/PHUIInvisibleCharacterTestCase.php b/src/view/phui/__tests__/PHUIInvisibleCharacterTestCase.php index 09f8c0934b..c246378e1b 100644 --- a/src/view/phui/__tests__/PHUIInvisibleCharacterTestCase.php +++ b/src/view/phui/__tests__/PHUIInvisibleCharacterTestCase.php @@ -9,7 +9,7 @@ final class PHUIInvisibleCharacterTestCase extends PhabricatorTestCase { } public function testEmptyPlainText() { - $view = (new PHUIInvisibleCharacterView('')) + $view = id(new PHUIInvisibleCharacterView('')) ->setPlainText(true); $res = $view->render(); $this->assertEqual($res, ''); @@ -17,7 +17,7 @@ final class PHUIInvisibleCharacterTestCase extends PhabricatorTestCase { public function testWithNamedChars() { $test_input = "\x00\n\t "; - $view = (new PHUIInvisibleCharacterView($test_input)) + $view = id(new PHUIInvisibleCharacterView($test_input)) ->setPlainText(true); $res = $view->render(); $this->assertEqual($res, ''); @@ -25,7 +25,7 @@ final class PHUIInvisibleCharacterTestCase extends PhabricatorTestCase { public function testWithHexChars() { $test_input = "abc\x01"; - $view = (new PHUIInvisibleCharacterView($test_input)) + $view = id(new PHUIInvisibleCharacterView($test_input)) ->setPlainText(true); $res = $view->render(); $this->assertEqual($res, 'abc<0x01>'); @@ -33,7 +33,7 @@ final class PHUIInvisibleCharacterTestCase extends PhabricatorTestCase { public function testWithNamedAsHex() { $test_input = "\x00\x0a\x09\x20"; - $view = (new PHUIInvisibleCharacterView($test_input)) + $view = id(new PHUIInvisibleCharacterView($test_input)) ->setPlainText(true); $res = $view->render(); $this->assertEqual($res, ''); -- 2.51.2