]> granicus.if.org Git - php/commitdiff
Make run-tests.php compatible with php 7.0-7.2
authorTyson Andre <tysonandre775@hotmail.com>
Sat, 23 Mar 2019 20:47:10 +0000 (16:47 -0400)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 25 Mar 2019 12:58:22 +0000 (13:58 +0100)
Motivation:
As an extension author, I want to speed up running tests in php <=7.3,
both locally and in CI (e.g. with valgrind).
This can be done by manually copying php 7.4's run-tests.php script
to replace the one generated by `phpize`

- list() doesn't work in php 7.0
- negative string offset doesn't work in php 7.2

If run-tests.php can be copied from php-src without any manual patches,
that would be the easiest.

Related to #2822 - I didn't see any discussion for/against compatibility
with older php versions

run-tests.php

index 9b6e85ab401bd6b2c540ebae8de7e72d3de63ea9..63ee77cd03e7aa52a6ba285f573d8ef80e8ddb0e 100755 (executable)
@@ -1505,7 +1505,7 @@ escape:
                                                $rawMessage = $rawMessageBuffers[$i] . $rawMessage;
                                                $rawMessageBuffers[$i] = '';
                                        }
-                                       if ($rawMessage[-1] !== "\n") {
+                                       if (substr($rawMessage, -1) !== "\n") {
                                                $rawMessageBuffers[$i] = $rawMessage;
                                                continue;
                                        }
@@ -1571,7 +1571,7 @@ escape:
                                                        }
                                                        break;
                                                case "test_result":
-                                                       [$name, $index, $result, $resultText] = [$message["name"], $message["index"], $message["result"], $message["text"]];
+                                                       list($name, $index, $result, $resultText) = [$message["name"], $message["index"], $message["result"], $message["text"]];
                                                        foreach ($message["PHP_FAILED_TESTS"] as $category => $tests) {
                                                                $PHP_FAILED_TESTS[$category] = array_merge($PHP_FAILED_TESTS[$category], $tests);
                                                        }