HHVM is an alternative runtime for PHP, which I try to maintain compatibility with.
I recently upgraded a project to PHPUnit 6, and the tests started failing on
hhvm-3.21 with this error:
This version of PHPUnit is supported on PHP 7.0 and PHP 7.1. You are using PHP 5.6.99-hhvm (/usr/bin/hhvm).
Although HHVM supports many PHP 7 features, it is identifying itself as PHP 5.6. The official documentation includes a setting for enabling additional PHP 7 features, which also sets the reported version.
This project was building on Travis CI, so adding this one-liner to
.travis.yml sets this flag in the configuration, and the issue goes away:
before_script: - bash -c 'if [[ $TRAVIS_PHP_VERSION == hhvm* ]]; then echo "hhvm.php7.all = 1" | sudo tee -a /etc/hhvm/php.ini; fi'
I’m writing about this for other developers who hit the same issue. The current releases of HHVM don’t seem to have this issue, so hopefully this work-around is temporary.