]> granicus.if.org Git - php/commitdiff
Fix run-tests.php with Valgrind >= 3.10.0.
authorAdam Harvey <aharvey@php.net>
Thu, 22 May 2014 22:36:55 +0000 (22:36 +0000)
committerAdam Harvey <aharvey@php.net>
Thu, 22 May 2014 22:37:08 +0000 (22:37 +0000)
The version test that we had in run-tests.php assumed that the major and minor
version numbers were always single digits. This removes that assumption and
also uses version_compare() for the comparison instead of naively converting it
to an integer.

run-tests.php

index 25e480728f49145dde2e0d22f541c08516bd68b6..9a5e2766c3af24f10be1f703ab175ab081883d37 100755 (executable)
@@ -576,8 +576,8 @@ if (isset($argc) && $argc > 1) {
                                        if (!$valgrind_header) {
                                                error("Valgrind returned no version info, cannot proceed.\nPlease check if Valgrind is installed.");
                                        } else {
-                                               $valgrind_version = preg_replace("/valgrind-([0-9])\.([0-9])\.([0-9]+)([.-\w]+)?(\s+)/", '$1$2$3', $valgrind_header, 1, $replace_count);
-                                               if ($replace_count != 1 || !is_numeric($valgrind_version)) {
+                                               $valgrind_version = preg_replace("/valgrind-(\d+)\.(\d+)\.(\d+)([.\w_-]+)?(\s+)/", '$1.$2.$3', $valgrind_header, 1, $replace_count);
+                                               if ($replace_count != 1) {
                                                        error("Valgrind returned invalid version info (\"$valgrind_header\"), cannot proceed.");
                                                }
                                                $valgrind_header = trim($valgrind_header);
@@ -1777,7 +1777,7 @@ TEST $file
                $env['USE_ZEND_ALLOC'] = '0';
                $env['ZEND_DONT_UNLOAD_MODULES'] = 1;
 
-               if ($valgrind_version >= 330) {
+               if (version_compare($valgrind_version, '3.3.0', '>=')) {
                        /* valgrind 3.3.0+ doesn't have --log-file-exactly option */
                        $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file=$memcheck_filename $cmd";
                } else {