Page MenuHomePhabricator

PhpTags tests fail on PHP 7.0
Closed, ResolvedPublic

Description

https://integration.wikimedia.org/ci/job/mwext-testextension-php70-jessie-non-voting/784/console

117:09:13 There were 15 failures:
217:09:13
317:09:13 1) PhpTags\RuntimeTest::testRun_echo_math_variables_short_circuit_2
417:09:13 Failed asserting that two arrays are equal.
517:09:13 --- Expected
617:09:13 +++ Actual
717:09:13 @@ @@
817:09:13 Array (
917:09:13 - 0 => null
1017:09:13 - 1 => 10000
1117:09:13 + 0 => true
1217:09:13 + 1 => '10000'
1317:09:13 )
1417:09:13
1517:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:535
1617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
1717:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
1817:09:13
1917:09:13 2) PhpTags\RuntimeTest::testRun_echo_assignment_26
2017:09:13 Failed asserting that two arrays are equal.
2117:09:13 --- Expected
2217:09:13 +++ Actual
2317:09:13 @@ @@
2417:09:13 Array (
2517:09:13 - 0 => null
2617:09:13 + 0 => '1'
2717:09:13 1 => 'rrr'
2817:09:13 )
2917:09:13
3017:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1254
3117:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
3217:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
3317:09:13
3417:09:13 3) PhpTags\RuntimeTest::testRun_echo_ternary_math_noexpr2_5
3517:09:13 Failed asserting that two arrays are equal.
3617:09:13 --- Expected
3717:09:13 +++ Actual
3817:09:13 @@ @@
3917:09:13 Array (
4017:09:13 - 0 => null
4117:09:13 + 0 => '500'
4217:09:13 )
4317:09:13
4417:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1601
4517:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
4617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
4717:09:13
4817:09:13 4) PhpTags\RuntimeTest::testRun_echo_ternary_math_noexpr2_7
4917:09:13 Failed asserting that two arrays are equal.
5017:09:13 --- Expected
5117:09:13 +++ Actual
5217:09:13 @@ @@
5317:09:13 Array (
5417:09:13 - 0 => null
5517:09:13 + 0 => '1008'
5617:09:13 )
5717:09:13
5817:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1613
5917:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
6017:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
6117:09:13
6217:09:13 5) PhpTags\RuntimeTest::testRun_while_while_2
6317:09:13 Failed asserting that two arrays are equal.
6417:09:13 --- Expected
6517:09:13 +++ Actual
6617:09:13 @@ @@
6717:09:13 Array (
6817:09:13 + 0 => 1
6917:09:13 + 1 => 2
7017:09:13 + 2 => 3
7117:09:13 + 3 => 4
7217:09:13 + 4 => 4
7317:09:13 + 5 => 4
7417:09:13 )
7517:09:13
7617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2666
7717:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
7817:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
7917:09:13
8017:09:13 6) PhpTags\RuntimeTest::testRun_while_while_3
8117:09:13 Failed asserting that two arrays are equal.
8217:09:13 --- Expected
8317:09:13 +++ Actual
8417:09:13 @@ @@
8517:09:13 Array (
8617:09:13 + 0 => 1
8717:09:13 + 1 => 2
8817:09:13 + 2 => 3
8917:09:13 + 3 => 4
9017:09:13 + 4 => 4
9117:09:13 + 5 => 4
9217:09:13 )
9317:09:13
9417:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2672
9517:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
9617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
9717:09:13
9817:09:13 7) PhpTags\RuntimeTest::testRun_while_while_4
9917:09:13 Failed asserting that two arrays are equal.
10017:09:13 --- Expected
10117:09:13 +++ Actual
10217:09:13 @@ @@
10317:09:13 Array (
10417:09:13 + 0 => 1
10517:09:13 + 1 => 2
10617:09:13 + 2 => 3
10717:09:13 + 3 => 4
10817:09:13 + 4 => 4
10917:09:13 + 5 => 4
11017:09:13 )
11117:09:13
11217:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2678
11317:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
11417:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
11517:09:13
11617:09:13 8) PhpTags\RuntimeTest::testRun_while_while_break_2
11717:09:13 Failed asserting that two strings are equal.
11817:09:13 --- Expected
11917:09:13 +++ Actual
12017:09:13 @@ @@
12117:09:13 -''
12217:09:13 +'(1)'
12317:09:13
12417:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2702
12517:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
12617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
12717:09:13
12817:09:13 9) PhpTags\RuntimeTest::testRun_while_while_break_3
12917:09:13 Failed asserting that two strings are equal.
13017:09:13 --- Expected
13117:09:13 +++ Actual
13217:09:13 @@ @@
13317:09:13 -'|1||2||3||4||5|'
13417:09:13 +'|1|(1)|2|(1)(2)|3|(1)(2)'
13517:09:13
13617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2708
13717:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
13817:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
13917:09:13
14017:09:13 10) PhpTags\RuntimeTest::testRun_while_if_while_1
14117:09:13 Failed asserting that two strings are equal.
14217:09:13 --- Expected
14317:09:13 +++ Actual
14417:09:13 @@ @@
14517:09:13 -'|1||2|(1)(2)|3|(1)(2)(3)|4|(1)(2)(3)(4)|5|(1)(2)(3)(4)(5)'
14617:09:13 +'|1||2|(1)(2)|3||4|(1)(2)(3)(4)|5|'
14717:09:13
14817:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2714
14917:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
15017:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
15117:09:13
15217:09:13 11) PhpTags\RuntimeTest::testRun_while_if_while_2
15317:09:13 Failed asserting that two strings are equal.
15417:09:13 --- Expected
15517:09:13 +++ Actual
15617:09:13 @@ @@
15717:09:13 -'|1||2|.(1)(2)|3|.(1)(2)(3)|4|.(1)(2)(3)(4)|5|.(1)(2)(3)(4)(5)'
15817:09:13 +'|1||2|.(1)(2)|3||4|.(1)(2)(3)(4)|5|'
15917:09:13
16017:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2720
16117:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
16217:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
16317:09:13
16417:09:13 12) PhpTags\RuntimeTest::testRun_while_if_while_if_2
16517:09:13 Failed asserting that two strings are equal.
16617:09:13 --- Expected
16717:09:13 +++ Actual
16817:09:13 @@ @@
16917:09:13 -'|1||2|.(1)(2)|3|.(1)(2)'
17017:09:13 +'|1||2|.(1)(2)|3||4|.(1)(2)'
17117:09:13
17217:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2732
17317:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
17417:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
17517:09:13
17617:09:13 13) PhpTags\RuntimeTest::testRun_echo_static_null_2
17717:09:13 Failed asserting that two arrays are equal.
17817:09:13 --- Expected
17917:09:13 +++ Actual
18017:09:13 @@ @@
18117:09:13 Array (
18217:09:13 - 0 => null
18317:09:13 + 0 => 'false40'
18417:09:13 )
18517:09:13
18617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2964
18717:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
18817:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
18917:09:13
19017:09:13 14) PhpTags\RuntimeTest::testRun_echo_isset_boolean_and_1
19117:09:13 Failed asserting that two arrays are equal.
19217:09:13 --- Expected
19317:09:13 +++ Actual
19417:09:13 @@ @@
19517:09:13 Array (
19617:09:13 - 0 => 'FALSE'
19717:09:13 + 0 => 'TRUE'
19817:09:13 )
19917:09:13
20017:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:3245
20117:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
20217:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94
20317:09:13
20417:09:13 15) PhpTags\RuntimeTest::testRun_object_operation_test_19
20517:09:13 Failed asserting that two arrays are equal.
20617:09:13 --- Expected
20717:09:13 +++ Actual
20817:09:13 @@ @@
20917:09:13 Array (
21017:09:13 - 0 => null
21117:09:13 + 0 => true
21217:09:13 1 => 8
21317:09:13 )
21417:09:13
21517:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:3994
21617:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/tests/phpunit/MediaWikiTestCase.php:420
21717:09:13 /home/jenkins/workspace/mwext-testextension-php70-jessie-non-voting/src/maintenance/doMaintenance.php:94

Details

Related Gerrit Patches:
mediawiki/extensions/PhpTags : masterFix for PHP 7.0 compatibility
integration/config : masterPhpTags: enable php7.0, disable php7.1
integration/config : masterSkip php70 tests for PhpTags and migrate to Quibble

Event Timeline

Legoktm triaged this task as Low priority.Mar 1 2018, 5:02 AM
Legoktm created this task.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptMar 1 2018, 5:02 AM
Legoktm raised the priority of this task from Low to High.Mar 1 2018, 5:02 AM
Legoktm moved this task from Backlog to Other on the PHP 7.0 support board.Mar 9 2018, 3:04 AM
Jdforrester-WMF added a subscriber: Jdforrester-WMF.

PhpTags isn't a Wikimedia-deployed extension.

hashar added a subscriber: hashar.Jun 22 2018, 10:27 AM

I gave it a bit of a try by looking at the failures. When running some of the examples in PHP, the actual result does not even match what PHPTags generates. An example:

$ php maintenance/shell.php
Psy Shell v0.9.6 (PHP 7.0.27-0+deb9u1 — cli) by Justin Hileman
>>> \PhpTags\Runtime::runSource('$foo=10; echo $foo = 10 - $foo or $foo = 10000, $foo;');
=> [
     null,   // suite expects bool(True)
     10000,  // suite expects string("10000")
   ]

Evaled in php 5.5 or php7:

>>>  $foo=10; echo $foo = 10 - $foo or $foo = 10000, $foo;
110000

Looking at the expression in php5.5 or php7.0:

>>> $foo = 10; var_dump( $foo = 10 - $foo or $foo = 10000 );
bool(true)
>>> var_dump( $foo );
int(10000)

So at least php5.5 and php7.0 match. PHPTags must hit a reference/type cast that has changed between php5.5 and php7.0


Another fun test is testRun_while_while_4 which shows PHPTags under php 7.0 fails to evaluate the expression:

>>> \PhpTags\Runtime::runSource('$i=1; $y=2; while($i++<4 && $y--) while($y<5) echo $y++;');
=> []

>>> $i=1; $y=2; while($i++<4 && $y--) while($y<5) var_dump($y++);
int(1)
int(2)
int(3)
int(4)
int(4)
int(4)

@hashar, thanks for looking at the failures. I debugged the problem, it happens because PHP 7 assigns the values in the list operator in reverted order (link).
I'll fix it soon

Ah great! I wasn't aware of that breaking change and indeed:

php7.0:

php > $a = []; list( $a[], $a[] ) = [ 'ID', 'TEXT' ]; var_dump( $a );
array(2) {
  [0]=>
  string(2) "ID"
  [1]=>
  string(4) "TEXT"
}

php 5.5:

php > $a = []; list( $a[], $a[] ) = [ 'ID', 'TEXT' ]; var_dump( $a );
array(2) {
  [0]=>
  string(4) "TEXT"
  [1]=>
  string(2) "ID"
}

There is a few more errors because PHP 7.1 is more strictly related to the type of data, it is good but I need to process these incidents inside phptags too,
for example
php5.5 php7.0:
["4"] & "fff"; is ok
php 7.1
["4"] & "fff";

PHP Warning:  A non-numeric value encountered in Command line code on line 1

@Pastakhov can you possibly craft a patch that addresses the list() issue that came with php7.0 ? That would let the CI jobs pass :]

Change 444833 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] Skip php70 tests for PhpTags and migrate to Quibble

https://gerrit.wikimedia.org/r/444833

Change 444833 merged by jenkins-bot:
[integration/config@master] Skip php70 tests for PhpTags and migrate to Quibble

https://gerrit.wikimedia.org/r/444833

The php7.0 CI jobs are no more triggering for PhpTags related repositories.

BPirkle added a subscriber: BPirkle.Oct 1 2018, 4:40 PM

Is this task complete, or is there more to do here?

These tests are still failing. There are also additional PHP 7.1 failures that I'll file as a separate task.

BPirkle claimed this task.Nov 9 2018, 12:10 AM

Reproduced locally, investigating

@BPirkle there is a reproduction case above as well as a hint to list() behavior that changed between PHP 5 and 7. I had a look at it in June but I am not familiar with the code base at all. My best luck if you can come up with a patch, I can then reenable CI for that repo which would confirm a proposed patch indeed fix it.

Change 473072 had a related patch set uploaded (by BPirkle; owner: BPirkle):
[mediawiki/extensions/PhpTags@master] Fix for PHP 7.0 compatibility

https://gerrit.wikimedia.org/r/473072

Thank you, @hashar , the change in list() behavior appears to be exactly what the problem was.

I'll look at the PHP 7.1 issues separately.

Change 473163 had a related patch set uploaded (by Hashar; owner: Hashar):
[integration/config@master] PhpTags: enable php7.0, disable php7.1

https://gerrit.wikimedia.org/r/473163

Change 473163 merged by jenkins-bot:
[integration/config@master] PhpTags: enable php7.0, disable php7.1

https://gerrit.wikimedia.org/r/473163

Change 473072 merged by jenkins-bot:
[mediawiki/extensions/PhpTags@master] Fix for PHP 7.0 compatibility

https://gerrit.wikimedia.org/r/473072

BPirkle closed this task as Resolved.Nov 13 2018, 10:59 PM

For the record, the phpunit failures under php 7.1 were:

There were 12 errors:

1) PhpTags\RuntimeTest::testRun_echo_assignment_29
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:265
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1271
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

2) PhpTags\RuntimeTest::testRun_echo_assignment_30
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:274
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1277
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

3) PhpTags\RuntimeTest::testRun_echo_assignment_31
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:283
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1283
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

4) PhpTags\RuntimeTest::testRun_echo_assignment_32
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:1029
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1289
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

5) PhpTags\RuntimeTest::testRun_echo_assignment_33
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:1039
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1295
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

6) PhpTags\RuntimeTest::testRun_echo_assignment_34
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:1019
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1301
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

7) PhpTags\RuntimeTest::testRun_echo_assignment_35
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:301
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1307
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

8) PhpTags\RuntimeTest::testRun_echo_assignment_36
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:292
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1313
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

9) PhpTags\RuntimeTest::testRun_echo_assignment_37
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:1059
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1319
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

10) PhpTags\RuntimeTest::testRun_echo_assignment_38
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:1049
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:1325
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

11) PhpTags\RuntimeTest::testRun_echo_empty_array_push_3
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:959
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2359
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

12) PhpTags\RuntimeTest::testRun_echo_empty_array_push_5
A non-numeric value encountered

/workspace/src/extensions/PhpTags/includes/Runtime.php:979
/workspace/src/extensions/PhpTags/includes/Runtime.php:1227
/workspace/src/extensions/PhpTags/includes/Runtime.php:150
/workspace/src/extensions/PhpTags/tests/phpunit/includes/RuntimeTest.php:2371
/workspace/src/tests/phpunit/MediaWikiTestCase.php:424
/workspace/src/maintenance/doMaintenance.php:94

ERRORS!
Tests: 2071, Assertions: 23695, Errors: 12, Skipped: 3.

php 7.1 backward incompatibilities: http://php.net/manual/en/migration71.incompatible.php Might be worth another task