summaryrefslogtreecommitdiff
path: root/sapi/fuzzer/generate_parser_corpus.php
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-09-16 20:18:00 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-09-16 20:18:29 +0200
commitc1adb7a74e1736111bbd37b2289f874246185961 (patch)
tree0e066f0445e713ff6c8f39259cca18aeffe46c7c /sapi/fuzzer/generate_parser_corpus.php
parentc4e2ca607f49d37564aaf34f5a48c5e59aca12a6 (diff)
downloadphp-git-c1adb7a74e1736111bbd37b2289f874246185961.tar.gz
Move scripts out of corpus/ directory
Diffstat (limited to 'sapi/fuzzer/generate_parser_corpus.php')
-rw-r--r--sapi/fuzzer/generate_parser_corpus.php22
1 files changed, 22 insertions, 0 deletions
diff --git a/sapi/fuzzer/generate_parser_corpus.php b/sapi/fuzzer/generate_parser_corpus.php
new file mode 100644
index 0000000000..e8d27e189b
--- /dev/null
+++ b/sapi/fuzzer/generate_parser_corpus.php
@@ -0,0 +1,22 @@
+<?php
+
+$testsDir = __DIR__ . '/../../Zend/tests/';
+$it = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator($testsDir),
+ RecursiveIteratorIterator::LEAVES_ONLY
+);
+
+$corpusDir = __DIR__ . '/corpus/parser';
+@mkdir($corpusDir);
+
+foreach ($it as $file) {
+ if (!preg_match('/\.phpt$/', $file)) continue;
+ $code = file_get_contents($file);
+ if (!preg_match('/--FILE--(.*)--EXPECT/s', $code, $matches)) continue;
+ $code = $matches[1];
+
+ $outFile = str_replace($testsDir, '', $file);
+ $outFile = str_replace('/', '_', $outFile);
+ $outFile = $corpusDir . '/' . $outFile;
+ file_put_contents($outFile, $code);
+}