PEAR2_Pyrus_DeveloperPEAR2_Pyrus_Developer-0.4.0/php/PEAR2/Pyrus/Developer/CoverageAnalyzer/test-modified.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
namespace {
$force = false;
$norender = false;
if (isset($_SERVER['argv'][1])) {
    $arg = $_SERVER['argv'][1];
    if ($arg === '--force') {
        $force = true;
        if (!isset($_SERVER['argv'][2])) {
            goto skippy;
        }
        // check if we only want to rebuild the coverage db
        if ($_SERVER['argv'][2] === '--norender') {
            $norender = true;
            if (!isset($_SERVER['argv'][3])) {
                goto skippy;
            }
        }
    } elseif ($arg === '--norender') {
        $norender = true;
        if (!isset($_SERVER['argv'][2])) {
            goto skippy;
        }
        if ($_SERVER['argv'][2] === '--force') {
            $force = true;
            if (!isset($_SERVER['argv'][3])) {
                goto skippy;
            }
        }
    }
}
skippy:
function __autoload($c)
{
    $c = str_replace(array('PEAR2\Pyrus\Developer\CoverageAnalyzer\\',
                           '\\'), array('', '/'), $c);
    include __DIR__ . '/' . $c . '.php';
}
$e = error_reporting();
error_reporting(0);
require_once 'PEAR/Command/Test.php';
require_once 'PEAR/Frontend/CLI.php';
require_once 'PEAR/Config.php';
$cli = new PEAR_Frontend_CLI;
$config = @PEAR_Config::singleton();
$test = new PEAR_Command_Test($cli, $config);
error_reporting($e);
}
namespace PEAR2\Pyrus\Developer\CoverageAnalyzer {
    $codepath = realpath('../../../../../Pyrus/src');
    $testpath = realpath('../../../../../Pyrus/tests');
    $sqlite = new Sqlite($testpath . '/pear2coverage.db', $codepath, $testpath);
    $modified = $sqlite->getModifiedTests();
    if (!count($modified)) {
        if ($force) {
            goto dorender;
        }
        echo "No changes to coverage needed.  Bye!\n";
        exit;
    }
    $dir = getcwd();
    chdir($testpath);
    error_reporting(0);
    $test->doRunTests('run-tests', array('coverage' => true), $modified);
    error_reporting($e);
    chdir($dir);
    if (file_exists($testpath . '/run-tests.log')) {
        // tests failed
        echo "Tests failed - not regenerating coverage data\n";
        exit;
    }
dorender:
    $a = new Aggregator($testpath,
                        $codepath,
                        $testpath . '/pear2coverage.db');
    if ($norender) {
        exit;
    }
    if (file_exists(__DIR__ . '/test')) {
        foreach (new \DirectoryIterator(__DIR__ . '/test') as $file) {
            if ($file->isDot()) continue;
            unlink($file->getPathName());
        }
    } else {
        mkdir(__DIR__ . '/test');
    }
    echo "Rendering\n";
    $a->render(__DIR__ . '/test');
    echo "Done rendering\n";
}
?>
EOF