Epic #65314

PHP7

Added by Alexander Opitz almost 4 years ago. Updated about 1 year ago.

Status:
Closed
Priority:
Should have
Category:
-
Target version:
Start date:
2015-02-25
Due date:
% Done:

100%

Sprint Focus:

Description

Tracking issue for TYPO3 CMS 7 LTS with PHP 7 to ensure compatibility as PHP 7 will be released around autumn 2015 (like our LTS).


Subtasks

Bug #65315: ExtractorRegistryTest::registeredExtractorClassWithSamePriorityAreReturnedInSameOrderAsTheyWereAddedClosed

Bug #65316: RendererRegistryTest::registeredFileRendererClassWithSamePriorityAreReturnedInSameOrderAsTheyWereAddedClosed

Bug #65317: TypoScriptParserTest::executeValueModifierReturnsModifiedResultClosed

Bug #65318: ExtensionManagementUtilityTest::addTcaSelectItemInsertsItemAtSpecifiedPositionClosedAlexander Opitz

Bug #65319: ResourceUtilityTest::recursiveFileListSortingHelperCorrectlySortsClosedAlexander Opitz

Bug #65320: BooleanNodeTest::convertToBooleanProperlyConvertsNumericValuesClosed

Bug #65321: PHP7: Memory issue in TYPO3\CMS\Extbase\Tests\Unit\Mvc\Web\RequestBuilderTest::buildThrowsExceptionIfControllerConfigurationIsEmptyOrNotSetClosedAlexander Opitz

Task #65351: Update travis.yml to support PHP 7Closed

Bug #67092: PHP7 Warning DateViewHelperTest::setLocale() should be compatible with PHPUnit_Framework_TestCase::setLocale()Closed

Bug #67189: LogRecordTest::toStringIncludesExceptionDataAsJsonClosedAlexander Opitz

Bug #67362: PHP Fatal error: Cannot use 'Null' as class nameClosed

Task #68194: PHP7 compliance - make unit tests runClosed

Bug #68634: IfViewHelpers don't follow parents' method signature for render()ClosedBenni Mack

Bug #69448: PHP7: SIGSEGV, Segmentation fault zend_ast_destroy_exClosedAlexander Opitz

Bug #69449: PHP7: SIGABRT, Aborted at raise.cRejectedAlexander Opitz

Bug #69378: Remove check for always_populate_raw_post_data for PHP7ClosedAlexander Opitz


Related issues

Related to TYPO3 Core - Bug #72117: TYPO3\CMS\Core\Error\AbstractExceptionHandler::handleException() can not handle PHP 7 Errors Closed 2015-12-09
Related to TYPO3 Core - Task #72292: PHP7 >= only Closed 2015-12-17

History

#1 Updated by Alexander Opitz almost 4 years ago

State: PHP 5.5.12-2ubuntu4.2 (cli) (built: Feb 13 2015 18:56:49)

  • Tests: 5548, Assertions: 6905, Skipped: 152
  • Time: 14.99 seconds, Memory: 513.75Mb

State: PHP 7.0.0-dev (cli) (built: Feb 25 2015 09:59:30)

  • Some sporadic crashes
  • Crash in Extbase tests
  • Tests: 5548, Assertions: 6916, Failures: 7, Skipped: 137
  • Time: 11.17 seconds, Memory: 344.00Mb

(Less skipped tests as PHP 7 runs the PDO tests)

#2 Updated by Gerrit Code Review almost 4 years ago

  • Status changed from New to Under Review

Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at http://review.typo3.org/37250

#3 Updated by Michael Stucki almost 4 years ago

  • Status changed from Under Review to New

#4 Updated by Alexander Opitz over 3 years ago

PHP 5.5.12-2ubuntu4.4 (cli) (built: Apr 17 2015 11:47:44)
  • Tests: 6956, Assertions: 9010, Skipped: 160.
  • Time: 17.98 seconds, Memory: 641.00Mb
PHP 7.0.0-dev (cli) (built: May 11 2015 18:20:03)
  • No sporadic crashes anymore
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Tests: 6956, Assertions: 8994, Errors: 23, Failures: 5, Skipped: 145.
  • Time: 13.21 seconds, Memory: 284.00Mb

#5 Updated by Alexander Opitz over 3 years ago

PHP 5.5.12-2ubuntu4.4 (cli) (built: Apr 17 2015 11:47:44)
  • Tests: 6957, Assertions: 9009, Skipped: 160.
  • Time: 17.56 seconds, Memory: 641.25Mb
PHP 7.0.0-dev (cli) (built: May 26 2015 08:57:59) (DEBUG)
  • (!) DEBUG Build
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Less skipped tests as it runs the PDO tests
  • Tests: 6957, Assertions: 9010, Errors: 22, Failures: 5, Skipped: 145.
  • Time: 27.89 seconds, Memory: 314.00Mb

#6 Updated by Alexander Opitz over 3 years ago

PHP 5.5.12-2ubuntu4.4 (cli) (built: Apr 17 2015 11:47:44)
  • Tests: 7040, Assertions: 9127, Skipped: 160.
  • Time: 18.05 seconds, Memory: 646.00Mb
PHP 7.0.0-dev (cli) (built: Jun 5 2015 09:53:11) (DEBUG)
  • (!) DEBUG Build
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Less skipped tests as it runs the PDO tests
  • Tests: 7040, Assertions: 9128, Errors: 22, Failures: 4, Skipped: 145.
  • Tests: 7040, Assertions: 9128, Errors: 22, Failures: 3, Skipped: 145. (After commit of #67189)
  • Time: 27.34 seconds, Memory: 318.00Mb

#7 Updated by Alexander Opitz over 3 years ago

PHP 5.5.12-2ubuntu4.4 (cli) (built: Apr 17 2015 11:47:44)
  • Tests: 7185, Assertions: 9274, Skipped: 160.
  • Time: 21.88 seconds, Memory: 654.75Mb
PHP 7.0.0-dev (cli) (built: Jun 19 2015 12:39:56)
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Less skipped tests as it runs the PDO tests
  • Missing 44 Tests against PHP 5.5?
  • Tests: 7141, Assertions: 9234, Errors: 19, Failures: 3, Skipped: 145.
  • Time: 12.23 seconds, Memory: 286.00Mb

#8 Updated by Alexander Opitz over 3 years ago

PHP 5.6.4-4ubuntu6 (cli) (built: Apr 17 2015 15:47:51)
  • Tests: 7228, Assertions: 9306, Skipped: 160.
  • Time: 18.66 seconds, Memory: 655.25Mb
PHP 7.0.0-dev (cli) (built: Jun 22 2015 11:27:07)
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Less skipped tests as it runs the PDO tests
  • Tests: 7228, Assertions: 9315, Errors: 15, Failures: 3, Skipped: 145.
  • Time: 13.85 seconds, Memory: 288.00Mb

#9 Updated by Alexander Opitz over 3 years ago

Nice reading and benchmarks.

http://talks.php.net/fluent15#/

#10 Updated by Susanne Moog over 3 years ago

With https://review.typo3.org/#/c/41274/1 I have no errors and no failures in the tests (but still skips the request things) and backend works quite well. Let's join forces :)

#11 Updated by Alexander Opitz over 3 years ago

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
  • Tests: 7696, Assertions: 10036, Errors: 8, Skipped: 162.
  • Time: 20.83 seconds, Memory: 675.25Mb
PHP 7.0.0-dev (cli) (built: Jul 10 2015 11:55:11)
  • crash in extbase/Tests/Unit/Mvc/Web/RequestBuilderTest.php (Test deactivated)
  • Less skipped tests as it runs the PDO tests
  • Tests: 7696, Assertions: 10028, Errors: 11, Failures: 1, Skipped: 179.
  • Time: 14.68 seconds, Memory: 296.00Mb

#12 Updated by Alexander Opitz over 3 years ago

Fixed my typo3 master for the phpunit runnings, added PDO tests to 5.6.x. Also the PHP7 crash is fixed, so here are new numbers

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
  • Tests: 7694, Assertions: 10071, Skipped: 147.
  • Time: 20.84 seconds, Memory: 678.50Mb
PHP 7.0.0-dev (cli) (built: Jul 29 2015 09:56:18)
  • Tests: 7694, Assertions: 10067, Errors: 3, Failures: 1, Skipped: 147.
  • Time: 14.48 seconds, Memory: 296.00Mb

#13 Updated by Alexander Opitz over 3 years ago

After releasing PHP 7.0beta3 all seams fine.

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
  • Tests: 7750, Assertions: 10142, Skipped: 147.
  • Time: 20.02 seconds, Memory: 686.75Mb
PHP 7.0.0-dev (cli) (built: Jul 29 2015 09:56:18)
  • Tests: 7750, Assertions: 10142, Skipped: 147.
  • Time: 14.89 seconds, Memory: 302.00Mb

Will do regular updates till PHP 7.0 is released which seams to be some days before our TYPO3.CMS 7 LTS.

#14 Updated by Alexander Opitz over 3 years ago

  • Status changed from New to In Progress

#15 Updated by Alexander Opitz over 3 years ago

Status Functional Tests

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)

Time: 58.46 minutes, Memory: 21.75Mb

OK, but incomplete, skipped, or risky tests!
Tests: 691, Assertions: 10783, Skipped: 4.

PHP 7.0.0-dev (cli) (built: Aug 11 2015 10:27:29)

Time: 51.57 minutes, Memory: 12.00Mb

There were 6 errors:

1) TYPO3\CMS\Core\Tests\Functional\DataHandling\IRRE\ForeignField\Modify\ActionTest::modifyParentContent
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

2) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\IRRE\CSV\Modify\ActionTest::createParentContent
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

3) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\IRRE\CSV\Publish\ActionTest::modifyParentContent
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

4) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\IRRE\ForeignField\PublishAll\ActionTest::deletePage
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

5) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\ManyToMany\Publish\ActionTest::changeCategoryRelationSorting
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

6) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\ManyToMany\Publish\ActionTest::createContentAndCreateRelation
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

FAILURES!
Tests: 691, Assertions: 10681, Errors: 6, Skipped: 4.

As PHP7 do not crash for travis and some other developers, I need to dig deeper before reporting. It only core dumps in the ActionTest's and it won't core dump if you run every test by themself.
Like with phpunit7 -c typo3/sysext/core/Build/FunctionalTests.xml typo3/sysext/core/Tests/Functional/DataHandling/IRRE/ForeignField/Modify/ActionTest.php

#16 Updated by Alexander Opitz over 3 years ago

Unittests

PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
  • Time: 20.77 seconds, Memory: 691.00Mb
  • Tests: 7810, Assertions: 10218, Skipped: 147.
PHP 7.0.0-dev (cli) (built: Aug 24 2015 09:26:07) (DEBUG)
  • DEBUG Build
  • Time: 30.48 seconds, Memory: 340.00Mb
  • Tests: 7810, Assertions: 10218, Skipped: 147.

Functionals

Time: 43.74 minutes, Memory: 14.00Mb

There were 4 errors:

1) TYPO3\CMS\Core\Tests\Functional\DataHandling\FAL\Modify\ActionTest::copyContent
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

2) TYPO3\CMS\Core\Tests\Functional\DataHandling\IRRE\ForeignField\Modify\ActionTest::modifyParentAndDeleteHotelChild
PHPUnit_Framework_Exception: Segmentation fault (core dumped)

3) TYPO3\CMS\Extbase\Tests\Functional\Persistence\TranslationTest::fetchingPostsReturnsGreekPostsWithFallback
PHPUnit_Framework_Exception: Aborted (core dumped)

4) TYPO3\CMS\Workspaces\Tests\Functional\DataHandling\Select\Modify\ActionTest::copyContentOfRelation
PHPUnit_Framework_Exception: Aborted (core dumped)

FAILURES!
Tests: 691, Assertions: 10735, Errors: 4, Skipped: 4.

#17 Updated by Stephan Großberndt over 3 years ago

One third slower but half the memory... :-|

#18 Updated by Alexander Opitz over 3 years ago

Unittests

  • PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
    • Time: 21.21 seconds, Memory: 698.75Mb
    • Tests: 7854, Assertions: 10263, Skipped: 147.
  • PHP 7.0.0-dev (cli) (built: Sep 3 2015 12:08:00)
    • Time: 13.01 seconds, Memory: 304.00Mb
    • Tests: 7854, Assertions: 10263, Skipped: 147.

Functionals

  • PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
    • Time: 42.63 minutes, Memory: 22.00Mb
    • Tests: 697, Assertions: 10789, Skipped: 4.
  • PHP 7.0.0-dev (cli) (built: Sep 3 2015 12:08:00)
    • Time: 39.49 minutes, Memory: 12.00Mb
    • Tests: 697, Assertions: 10789, Skipped: 4.

The times for the functional tests are more dependent on the database and what does happen on the testing system. Don't use them as Benchmark.

#19 Updated by Alexander Opitz about 3 years ago

Unittests

  • PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
    • Time: 24.13 seconds, Memory: 764.00Mb
    • Tests: 8214, Assertions: 10877, Skipped: 148, Incomplete: 1.
  • PHP 7.1.0-dev (cli) (built: Sep 17 2015 10:02:25)
    • Time: 18.2 seconds, Memory: 332.00Mb
    • Tests: 8214, Assertions: 10877, Skipped: 148, Incomplete: 1.
  • PHP 7.0.0-dev (cli) (built: Sep 17 2015 14:58:54)
    • Time: 15.7 seconds, Memory: 332.00Mb
    • Tests: 8214, Assertions: 10877, Skipped: 148, Incomplete: 1.

Ups, 7.0 is branched off, so this is a 7.1 dev build this time. (Added unit test for PHP 7.0 branch)

Functionals

  • PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
    • Time: 40.79 minutes, Memory: 21.75Mb
    • Tests: 697, Assertions: 10789, Skipped: 4.
  • PHP 7.1.0-dev (cli) (built: Sep 17 2015 10:02:25)
    • Time: 42.93 minutes, Memory: 12.00Mb
    • Tests: 697, Assertions: 10789, Skipped: 4.

The times for the functional tests are more dependent on the database and what does happen on the testing system. Don't use them as Benchmark.

#20 Updated by Alexander Opitz about 3 years ago

Unittests

  • PHP 5.6.4-4ubuntu6.2 (cli) (built: Jul 2 2015 15:29:28)
    • Time: 24,39 seconds, Memory: 778,50Mb
    • Tests: 8240, Assertions: 10918, Failures: 1, Skipped: 158, Incomplete: 1.
  • PHP 7.0.0-dev (cli) (built: Sep 28 2015 11:40:46)
    • Time: 17,96 seconds, Memory: 338,00Mb
    • Tests: 8240, Assertions: 10918, Failures: 1, Skipped: 158, Incomplete: 1.

#21 Updated by Benni Mack about 3 years ago

Hey Alexander,

are we PHP7 compliant? I use php7 for my local development now and now problems so far.

#22 Updated by Alexander Opitz about 3 years ago

We are 7 compliant, this Epic is only open for running phpUnit "Benchmarks" till PHP 7.0.0 is released.

#23 Updated by Alexander Opitz about 3 years ago

Hint: System updated to Ubuntu 15.10!

Unittests

  • PHP 5.6.11-1ubuntu3 (cli)
    • Time: 27,16 seconds, Memory: 829,75Mb
    • Tests: 8504, Assertions: 11266, Skipped: 143, Incomplete: 1.
  • PHP 7.0.0-dev (cli) (built: Oct 27 2015 09:30:09) ( NTS )
    • Time: 18,88 seconds, Memory: 352,00Mb
    • Tests: 8504, Assertions: 11243, Skipped: 158, Incomplete: 1.
    • Need to check what to compile to get less skipped ones (like 5.6.11)

#25 Updated by Alexander Opitz about 3 years ago

Unittests

  • PHP 5.6.11-1ubuntu3.1 (cli)
    • Time: 29 seconds, Memory: 826,25Mb
    • Tests: 8473, Assertions: 11153, Skipped: 143, Incomplete: 1.
  • PHP 7.0.1-dev (cli) (built: Nov 2 2015 10:42:45) ( NTS )
    • Time: 19,6 seconds, Memory: 354,00Mb
    • Tests: 8473, Assertions: 11130, Skipped: 158, Incomplete: 1.

#27 Updated by Alexander Opitz almost 3 years ago

Unittests

  • PHP 5.6.11-1ubuntu3.1 (cli)
    • Time: 26,07 seconds, Memory: 843,75Mb
    • Tests: 8530, Assertions: 11215, Skipped: 143, Incomplete: 1.
  • PHP 7.0.2-dev (cli) (built: Dec 17 2015 11:50:40) ( NTS )
    • Time: 18,6 seconds, Memory: 360,00Mb
    • Tests: 8530, Assertions: 11192, Skipped: 158, Incomplete: 1.
  • PHP 7.1.0-dev (cli) (built: Dec 17 2015 13:57:35) ( NTS )
    • Time: 18,5 seconds, Memory: 360,00Mb
    • Tests: 8530, Assertions: 11192, Skipped: 158, Incomplete: 1.

#28 Updated by Alexander Opitz almost 3 years ago

  • Status changed from In Progress to Resolved

In the big picture, TYPO3 7 LTS works with PHP7. There are (at the moment) 2 nitpicks open, which will be addressed in their issue reports.

All in all, I close this issue now, after posting last benchmarks. Support for PHP 7.1 for TYPO3 7 LTS depends on the release plan of the PHP developer team and how deep this changes will be (should be less backward incompatible as only minor version number will change).

#29 Updated by Alexander Opitz almost 3 years ago

Last Update of the Benchmarks, as TYPO3 8 LTS will be PHP >= 7.0.

  • PHP 5.6.11-1ubuntu3.1 (cli)
    • Time: 21,24 seconds, Memory: 804,25Mb
    • Tests: 8144, Assertions: 10684, Skipped: 158, Incomplete: 1.
  • PHP 7.1.0-dev (cli) (built: Feb 15 2016 12:56:35) ( NTS )
    • Time: 15,23 seconds, Memory: 340,00Mb
    • Tests: 8144, Assertions: 10684, Skipped: 158, Incomplete: 1.

Upgrading my Ubuntu packages with http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu to have PHP56 and PHP7 installed parallel.

  • PHP 5.6.18-3+deb.sury.org~wily+1 (cli)
    • Time: 21,01 seconds, Memory: 805,00Mb
    • Tests: 8144, Assertions: 10684, Skipped: 158, Incomplete: 1.
  • PHP 7.0.3-3+deb.sury.org~wily+1 (cli) ( NTS )
    • Time: 15,59 seconds, Memory: 340,00Mb
    • Tests: 8144, Assertions: 10684, Skipped: 158, Incomplete: 1.

#30 Updated by Riccardo De Contardi about 1 year ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF