? ? Success

User tests: Successful: Unsuccessful:

avatar photodude
photodude
26 May 2016

Pull Request for improved hhvm testing partially covers #10220.

Summary of Changes

  • New travis feature allows specifying hhvm LTS versions. Current LTS is 3.12
  • use flag to allow testing of hhvm in php7 mode
  • memcache and memcached are preinstalled in hhvm.
  • redis is preinstalled in hhvm, remove the redis hhvm install line
  • APCu is not valid for hhvm
  • wget the PostgreSQL extension for HHVM release 3.12

Testing Instructions

Merge by code review

You should now see 2 HHVM tests in Travis for hhvm-3.12 covering the php5 mode and the php7 mode
There should also be less errors under hhvm php5 mode as the PostgreSQL extension is now installed

Known issues
  • The HHVM memory exhausted issue still persists in the unit tests
  • HHVM with PHP7 mode will appear successful even though it fails and stops on Methods with the same name as their class will not be constructors in a future version of PHP; Cache_Lite has a deprecated constructor
  • two known pgsql driver issues exist due to missing functions in the HHVM implementation
    • Fatal error: Call to undefined function pg_set_error_verbosity()
    • Fatal error: Call to unimplemented native function pg_set_client_encoding()
avatar photodude photodude - open - 26 May 2016
avatar photodude photodude - change - 26 May 2016
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 26 May 2016
Labels Added: ? ?
avatar photodude photodude - change - 26 May 2016
The description was changed
avatar brianteeman brianteeman - change - 26 May 2016
Category Unit Tests
avatar brianteeman brianteeman - change - 26 May 2016
Labels
avatar mbabker
mbabker - comment - 31 May 2016

How about just completely disabling PostgreSQL on HHVM since it basically looks like there isn't feature parity between the PHP and HHVM implementations? It probably means adding a check for HHVM in JDatabaseDriverPostgresql::isSupported(); and calling that method in the test cases testing PostgreSQL code using an un-mocked database driver.

avatar photodude
photodude - comment - 31 May 2016

It looks like there are about 24 missing functions when compared to the Zend pgsql module and 2 new functions that are not in the Zend module.

So far from what I can tell there are really just the two issues with our pgsql driver. Both of which we could check for the function existence to work around them. (which is what I did for my testing here for pg_set_error_verbosity() and here for pg_set_client_encoding()

I think fixing the setUtf() fix for for pg_set_client_encoding() is a good solution that a PR could be opened with (or added to this PR).

As for the connect() fix for pg_set_error_verbosity() I think it's ok, but there might be a better work around for that issue.

Whether we fix the couple of items in the pgsql driver or exclude it from testing would still be an improvement. Note: Some hhvm versions like 3.13 do not have a pgsql extension which can limit which versions we can test against.

In either case, now that hhvm can be targeted to LTS versions for testing we should make the change to test against LTS version rather than the incremental latest version that we are currently using.

Since HHVM is still in testing and unofficially supported, come July/August we'll need to decide about 3.15 which is the next expected LTS (do we add to our testing list like PHP or do we increment to the next LTS pending official project support, or do we change to hhvm-nightly in the mean time)

avatar photodude
photodude - comment - 30 Aug 2016

I'll look at reopening this with the Changes needed due to the merge from the JS unit tests. Reopening is Pending PHPunit continuing support of HHVM or an HHVM specific unit testing option being available.

avatar photodude photodude - change - 30 Aug 2016
Status Pending Closed
Closed_Date 0000-00-00 00:00:00 2016-08-30 01:51:33
Closed_By photodude

Add a Comment

Login with GitHub to post a comment