File tree Expand file tree Collapse file tree 3 files changed +40
-24
lines changed Expand file tree Collapse file tree 3 files changed +40
-24
lines changed Original file line number Diff line number Diff line change 2
2
require __DIR__ . '/generate_unserialize_dict.php ' ;
3
3
require __DIR__ . '/generate_unserializehash_corpus.php ' ;
4
4
require __DIR__ . '/generate_parser_corpus.php ' ;
5
- require __DIR__ . '/generate_execute_corpus.php ' ;
5
+
6
+ require __DIR__ . '/generate_corpus_util.php ' ;
7
+
8
+ $ baseDir = __DIR__ . '/../.. ' ;
9
+ generate_corpus_from_phpt (
10
+ __DIR__ . '/corpus/execute ' ,
11
+ ["$ baseDir/Zend/tests " , "$ baseDir/ext/reflection " ]
12
+ );
13
+ generate_corpus_from_phpt (
14
+ __DIR__ . '/corpus/function-jit ' ,
15
+ ["$ baseDir/Zend/tests " , "$ baseDir/ext/opcache/tests/jit " ]
16
+ );
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ function generate_corpus_from_phpt (string $ corpusDir , array $ testDirs , int $ maxLen = 8 * 1024 ) {
4
+ @mkdir ($ corpusDir );
5
+ foreach ($ testDirs as $ testDir ) {
6
+ $ it = new RecursiveIteratorIterator (
7
+ new RecursiveDirectoryIterator ($ testDir ),
8
+ RecursiveIteratorIterator::LEAVES_ONLY
9
+ );
10
+
11
+ foreach ($ it as $ file ) {
12
+ if (!preg_match ('/\.phpt$/ ' , $ file )) continue ;
13
+ $ fullCode = file_get_contents ($ file );
14
+ if (!preg_match ('/--FILE--\R(.*?)\R--([_A-Z]+)--/s ' , $ fullCode , $ matches )) continue ;
15
+ $ code = $ matches [1 ];
16
+ if (strlen ($ code ) > $ maxLen ) continue ;
17
+
18
+ $ outFile = str_replace ($ testDir , '' , $ file );
19
+ $ outFile = str_replace ('/ ' , '_ ' , $ outFile );
20
+ if (!preg_match ('/SKIP_SLOW_TESTS|SKIP_PERF_SENSITIVE|USE_ZEND_ALLOC/ ' , $ fullCode )) {
21
+ file_put_contents ($ corpusDir . '/ ' . $ outFile , $ code );
22
+ }
23
+ }
24
+ }
25
+ }
Original file line number Diff line number Diff line change 1
1
<?php
2
2
3
+ require __DIR__ . '/generate_corpus_util.php ' ;
4
+
3
5
if ($ argc >= 2 ) {
4
6
$ corpusDir = $ argv [1 ];
5
7
} else {
12
14
$ testDirs = ["$ baseDir/Zend/tests " , "$ baseDir/ext/reflection " ];
13
15
}
14
16
15
- $ maxLen = 8 * 1024 ;
16
- @mkdir ($ corpusDir );
17
-
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 ;
30
-
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
- }
36
- }
37
- }
17
+ generate_corpus_from_phpt ($ corpusDir , $ testDirs );
You can’t perform that action at this time.
0 commit comments