Skip to content

Commit 600dc57

Browse files
committed
Add ext/reflection to execute parser corpus
1 parent e7123ef commit 600dc57

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed
Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
11
<?php
22

33
if ($argc >= 2) {
4-
$testsDir = $argv[1];
5-
} else {
6-
$testsDir = __DIR__ . '/../../Zend/tests';
7-
}
8-
if ($argc >= 3) {
9-
$corpusDir = $argv[2];
4+
$corpusDir = $argv[1];
105
} else {
116
$corpusDir = __DIR__ . '/corpus/execute';
127
}
13-
if ($argc >= 4) {
14-
$maxLen = (int) $argv[3];
8+
if ($argc >= 3) {
9+
$testDirs = array_slice($argv, 2);
1510
} else {
16-
$maxLen = 8 * 1024;
11+
$baseDir = __DIR__ . '/../..';
12+
$testDirs = ["$baseDir/Zend/tests", "$baseDir/ext/reflection"];
1713
}
1814

19-
$it = new RecursiveIteratorIterator(
20-
new RecursiveDirectoryIterator($testsDir),
21-
RecursiveIteratorIterator::LEAVES_ONLY
22-
);
23-
15+
$maxLen = 8 * 1024;
2416
@mkdir($corpusDir);
2517

26-
foreach ($it as $file) {
27-
if (!preg_match('/\.phpt$/', $file)) continue;
28-
$fullCode = file_get_contents($file);
29-
if (!preg_match('/--FILE--\R(.*?)\R--([_A-Z]+)--/s', $fullCode, $matches)) continue;
30-
$code = $matches[1];
31-
if (strlen($code) > $maxLen) continue;
18+
foreach ($testDirs as $testDir) {
19+
$it = new RecursiveIteratorIterator(
20+
new RecursiveDirectoryIterator($testDir),
21+
RecursiveIteratorIterator::LEAVES_ONLY
22+
);
23+
24+
foreach ($it as $file) {
25+
if (!preg_match('/\.phpt$/', $file)) continue;
26+
$fullCode = file_get_contents($file);
27+
if (!preg_match('/--FILE--\R(.*?)\R--([_A-Z]+)--/s', $fullCode, $matches)) continue;
28+
$code = $matches[1];
29+
if (strlen($code) > $maxLen) continue;
3230

33-
$outFile = str_replace($testsDir, '', $file);
34-
$outFile = str_replace('/', '_', $outFile);
35-
if (!preg_match('/SKIP_SLOW_TESTS|SKIP_PERF_SENSITIVE|USE_ZEND_ALLOC/', $fullCode)) {
36-
file_put_contents($corpusDir . '/' . $outFile, $code);
31+
$outFile = str_replace($testDir, '', $file);
32+
$outFile = str_replace('/', '_', $outFile);
33+
if (!preg_match('/SKIP_SLOW_TESTS|SKIP_PERF_SENSITIVE|USE_ZEND_ALLOC/', $fullCode)) {
34+
file_put_contents($corpusDir . '/' . $outFile, $code);
35+
}
3736
}
3837
}

0 commit comments

Comments
 (0)