Ejemplo n.º 1
0
    $file_list = SNAP_recurse_directory($path, $xtn);
} else {
    $file_list = array($path);
}
writelog('Path contains ' . count($file_list) . ' files for scanning');
// start a dispatcher for multi-processing
$dispatcher = new Snap_Dispatcher($php, __FILE__);
// build master test list
$analyzer = new Snap_FileAnalyzer();
$master_test_list = $dispatcher->dispatch(array('keys' => $file_list, 'dispatch' => array('analyze' => TRUE, 'verbose' => SNAPTEST_VERBOSE_MODE, 1 => '__KEY__'), 'onThreadComplete' => array($analyzer, 'onThreadComplete'), 'onThreadFail' => array($analyzer, 'onThreadFail'), 'onComplete' => array($analyzer, 'onComplete')));
unset($analyzer);
// build a master test key list
$master_test_key_list = array();
foreach ($master_test_list as $file => $classes) {
    if (!is_array($classes)) {
        die("File {$file} could not be read due to a fatal error:\n" . $classes . "\n");
    }
    foreach ($classes as $klass => $tests) {
        foreach ($tests as $test) {
            $master_test_key_list[] = Snap_Request::makeTestKey($file, $klass, $test);
        }
    }
}
unset($master_test_list);
writelog('Total tests found by analyzer: ' . count($master_test_key_list));
// create a test aggregator for $outmode
$reporter = new Snap_TestAggregator($out_mode, count($master_test_key_list));
// dispatch the tests
$dispatcher->dispatch(array('keys' => $master_test_key_list, 'dispatch' => array('test' => '__KEY__', 'verbose' => SNAPTEST_VERBOSE_MODE), 'onThreadComplete' => array($reporter, 'onThreadComplete'), 'onThreadFail' => array($reporter, 'onThreadFail'), 'onComplete' => array($reporter, 'onComplete')));
writelog('Complete, shutting down.' . "\n");
exit;