/
vshmidt
/
php
Обзор
Документация
Войти
/
vshmidt
/
php
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
sapi/fuzzer/generate_corpus_util.php
25 строк
966 B
Nikita Popov
Generate function-jit corpus in generate_all.php
22 сен 2021, 12:06
22 сен 2021, 12:06
b3d37e9
Код
Авторство
О чём код?
<?php function generate_corpus_from_phpt(string $corpusDir, array $testDirs, int $maxLen = 8 * 1024) { @mkdir($corpusDir); foreach ($testDirs as $testDir) { $it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($testDir), RecursiveIteratorIterator::LEAVES_ONLY ); foreach ($it as $file) { if (!preg_match('/\.phpt$/', $file)) continue; $fullCode = file_get_contents($file); if (!preg_match('/--FILE--\R(.*?)\R--([_A-Z]+)--/s', $fullCode, $matches)) continue; $code = $matches[1]; if (strlen($code) > $maxLen) continue; $outFile = str_replace($testDir, '', $file); $outFile = str_replace('/', '_', $outFile); if (!preg_match('/SKIP_SLOW_TESTS|SKIP_PERF_SENSITIVE|USE_ZEND_ALLOC/', $fullCode)) { file_put_contents($corpusDir . '/' . $outFile, $code); } } } }