Mercurial > hg > isophonics-drupal-site
comparison vendor/nikic/php-parser/test_old/run.php @ 13:5fb285c0d0e3
Update Drupal core to 8.4.7 via Composer. Security update; I *think* we've
been lucky to get away with this so far, as we don't support self-registration
which seems to be used by the so-called "drupalgeddon 2" attack that 8.4.5
was vulnerable to.
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:33:26 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
comparison
equal
deleted
inserted
replaced
12:7a779792577d | 13:5fb285c0d0e3 |
---|---|
108 break; | 108 break; |
109 default: | 109 default: |
110 showHelp('Test type must be one of: PHP5, PHP7 or Symfony'); | 110 showHelp('Test type must be one of: PHP5, PHP7 or Symfony'); |
111 } | 111 } |
112 | 112 |
113 require_once dirname(__FILE__) . '/../lib/PhpParser/Autoloader.php'; | 113 require_once __DIR__ . '/../vendor/autoload.php'; |
114 PhpParser\Autoloader::register(); | 114 |
115 | 115 $lexer = new PhpParser\Lexer\Emulative(['usedAttributes' => [ |
116 $parserName = 'PhpParser\Parser\\' . $version; | 116 'comments', 'startLine', 'endLine', 'startTokenPos', 'endTokenPos', |
117 $parser = new $parserName(new PhpParser\Lexer\Emulative); | 117 ]]); |
118 $parserName = 'PhpParser\Parser\\' . $version; | |
119 /** @var PhpParser\Parser $parser */ | |
120 $parser = new $parserName($lexer); | |
118 $prettyPrinter = new PhpParser\PrettyPrinter\Standard; | 121 $prettyPrinter = new PhpParser\PrettyPrinter\Standard; |
119 $nodeDumper = new PhpParser\NodeDumper; | 122 $nodeDumper = new PhpParser\NodeDumper; |
120 | 123 |
121 $parseFail = $ppFail = $compareFail = $count = 0; | 124 $cloningTraverser = new PhpParser\NodeTraverser; |
122 | 125 $cloningTraverser->addVisitor(new PhpParser\NodeVisitor\CloningVisitor); |
123 $readTime = $parseTime = $ppTime = $reparseTime = $compareTime = 0; | 126 |
127 $parseFail = $fpppFail = $ppFail = $compareFail = $count = 0; | |
128 | |
129 $readTime = $parseTime = $cloneTime = 0; | |
130 $fpppTime = $ppTime = $reparseTime = $compareTime = 0; | |
124 $totalStartTime = microtime(true); | 131 $totalStartTime = microtime(true); |
125 | 132 |
126 foreach (new RecursiveIteratorIterator( | 133 foreach (new RecursiveIteratorIterator( |
127 new RecursiveDirectoryIterator($dir), | 134 new RecursiveDirectoryIterator($dir), |
128 RecursiveIteratorIterator::LEAVES_ONLY) | 135 RecursiveIteratorIterator::LEAVES_ONLY) |
130 if (!$fileFilter($file)) { | 137 if (!$fileFilter($file)) { |
131 continue; | 138 continue; |
132 } | 139 } |
133 | 140 |
134 $startTime = microtime(true); | 141 $startTime = microtime(true); |
135 $code = file_get_contents($file); | 142 $origCode = file_get_contents($file); |
136 $readTime += microtime(true) - $startTime; | 143 $readTime += microtime(true) - $startTime; |
137 | 144 |
138 if (null === $code = $codeExtractor($file, $code)) { | 145 if (null === $origCode = $codeExtractor($file, $origCode)) { |
139 continue; | 146 continue; |
140 } | 147 } |
141 | 148 |
142 set_time_limit(10); | 149 set_time_limit(10); |
143 | 150 |
147 echo substr(str_pad('Testing file ' . $count . ': ' . substr($file, strlen($dir)), 79), 0, 79), "\r"; | 154 echo substr(str_pad('Testing file ' . $count . ': ' . substr($file, strlen($dir)), 79), 0, 79), "\r"; |
148 } | 155 } |
149 | 156 |
150 try { | 157 try { |
151 $startTime = microtime(true); | 158 $startTime = microtime(true); |
152 $stmts = $parser->parse($code); | 159 $origStmts = $parser->parse($origCode); |
153 $parseTime += microtime(true) - $startTime; | 160 $parseTime += microtime(true) - $startTime; |
154 | 161 |
155 $startTime = microtime(true); | 162 $origTokens = $lexer->getTokens(); |
156 $code = '<?php' . "\n" . $prettyPrinter->prettyPrint($stmts); | 163 |
164 $startTime = microtime(true); | |
165 $stmts = $cloningTraverser->traverse($origStmts); | |
166 $cloneTime += microtime(true) - $startTime; | |
167 | |
168 $startTime = microtime(true); | |
169 $code = $prettyPrinter->printFormatPreserving($stmts, $origStmts, $origTokens); | |
170 $fpppTime += microtime(true) - $startTime; | |
171 | |
172 if ($code !== $origCode) { | |
173 echo $file, ":\n Result of format-preserving pretty-print differs\n"; | |
174 if ($verbose) { | |
175 echo "FPPP output:\n=====\n$code\n=====\n\n"; | |
176 } | |
177 | |
178 ++$fpppFail; | |
179 } | |
180 | |
181 $startTime = microtime(true); | |
182 $code = "<?php\n" . $prettyPrinter->prettyPrint($stmts); | |
157 $ppTime += microtime(true) - $startTime; | 183 $ppTime += microtime(true) - $startTime; |
158 | 184 |
159 try { | 185 try { |
160 $startTime = microtime(true); | 186 $startTime = microtime(true); |
161 $ppStmts = $parser->parse($code); | 187 $ppStmts = $parser->parse($code); |
198 echo ' ', $parseFail, ' parse failures.', "\n"; | 224 echo ' ', $parseFail, ' parse failures.', "\n"; |
199 } | 225 } |
200 if (0 !== $ppFail) { | 226 if (0 !== $ppFail) { |
201 echo ' ', $ppFail, ' pretty print failures.', "\n"; | 227 echo ' ', $ppFail, ' pretty print failures.', "\n"; |
202 } | 228 } |
229 if (0 !== $fpppFail) { | |
230 echo ' ', $fpppFail, ' FPPP failures.', "\n"; | |
231 } | |
203 if (0 !== $compareFail) { | 232 if (0 !== $compareFail) { |
204 echo ' ', $compareFail, ' compare failures.', "\n"; | 233 echo ' ', $compareFail, ' compare failures.', "\n"; |
205 } | 234 } |
206 } | 235 } |
207 | 236 |
208 echo "\n", | 237 echo "\n", |
209 'Tested files: ', $count, "\n", | 238 'Tested files: ', $count, "\n", |
210 "\n", | 239 "\n", |
211 'Reading files took: ', $readTime, "\n", | 240 'Reading files took: ', $readTime, "\n", |
212 'Parsing took: ', $parseTime, "\n", | 241 'Parsing took: ', $parseTime, "\n", |
242 'Cloning took: ', $cloneTime, "\n", | |
243 'FPPP took: ', $fpppTime, "\n", | |
213 'Pretty printing took: ', $ppTime, "\n", | 244 'Pretty printing took: ', $ppTime, "\n", |
214 'Reparsing took: ', $reparseTime, "\n", | 245 'Reparsing took: ', $reparseTime, "\n", |
215 'Comparing took: ', $compareTime, "\n", | 246 'Comparing took: ', $compareTime, "\n", |
216 "\n", | 247 "\n", |
217 'Total time: ', microtime(true) - $totalStartTime, "\n", | 248 'Total time: ', microtime(true) - $totalStartTime, "\n", |