Since PHP 5.4 is moving towards E_ALL | E_STRICT compliance and we cannot be sure what error_level users will be using - we should develop Hurricane to the strictest error level settings possible. All tests pass when running against the default E_ALL & ~E_NOTICE, but here is the output for running the test suite against E_ALL | E_STRICT.
$ phpunit
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from /src/hurricane/driver-php/phpunit.xml.dist
...EE.EEEE.E.EEEE.EE.EEEEEE....EE.................
Time: 0 seconds, Memory: 5.00Mb
There were 21 errors:
1) Hurricane\Tests\Old\DecodeTest::testDecodeInteger
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:90
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:491
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:55
2) Hurricane\Tests\Old\DecodeTest::testDecodeNegativeInteger
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:90
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:491
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:71
3) Hurricane\Tests\Old\DecodeTest::testDecodeAtom
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:117
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:493
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:109
4) Hurricane\Tests\Old\DecodeTest::testDecodeReference
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:117
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:493
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:130
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:494
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:130
5) Hurricane\Tests\Old\DecodeTest::testDecodePort
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:117
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:493
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:145
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:495
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:151
6) Hurricane\Tests\Old\DecodeTest::testDecodePid
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:117
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:493
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:160
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:496
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:172
7) Hurricane\Tests\Old\DecodeTest::testDecodeLargeTuple
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:194
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:498
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:255
8) Hurricane\Tests\Old\DecodeTest::testDecodeString
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:224
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:500
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:291
9) Hurricane\Tests\Old\DecodeTest::testDecodeList
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:242
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:501
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:309
10) Hurricane\Tests\Old\DecodeTest::testDecodeListTrailer
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:242
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:501
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:327
11) Hurricane\Tests\Old\DecodeTest::testDecodeBinary
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:276
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:502
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:347
12) Hurricane\Tests\Old\DecodeTest::testDecodeHugeInteger
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:312
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:504
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:379
13) Hurricane\Tests\Old\DecodeTest::testDecodeNewReference
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:333
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:507
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:401
14) Hurricane\Tests\Old\DecodeTest::testDecodeExport
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:117
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:493
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:399
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:506
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:438
15) Hurricane\Tests\Old\DecodeTest::testDecodeNewFunction
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:367
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:505
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:466
16) Hurricane\Tests\Old\DecodeTest::testDecodeFunction
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:414
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:509
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:492
17) Hurricane\Tests\Old\DecodeTest::testDecodeBitBinary
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:440
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:488
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:508
18) Hurricane\Tests\Old\DecodeTest::testDecodeNewFloat
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:454
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:487
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/DecodeTest.php:524
19) Hurricane\Tests\Old\EncodeTest::testEncodeFloat
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:528
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:910
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/EncodeTest.php:25
20) Hurricane\Tests\Old\EncodeTest::testEncodeLargeNumber
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:528
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:910
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/EncodeTest.php:112
21) Hurricane\Tests\Old\EncodeTest::testEncodeHugeNumber
Only variables should be passed by reference
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:26
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:528
/src/hurricane/driver-php/src/Hurricane/Erlang/Util.php:910
/src/hurricane/driver-php/tests/Hurricane/Tests/Old/EncodeTest.php:131
FAILURES!
Tests: 50, Assertions: 29, Errors: 21.
Since PHP 5.4 is moving towards
E_ALL | E_STRICT
compliance and we cannot be sure what error_level users will be using - we should develop Hurricane to the strictest error level settings possible. All tests pass when running against the defaultE_ALL & ~E_NOTICE
, but here is the output for running the test suite againstE_ALL | E_STRICT
.