1
0
mirror of synced 2024-12-14 23:26:04 +03:00
doctrine2/jpgraph.php

93 lines
2.3 KiB
PHP

<?php
// If you dont have jpgraph, you need to download it from:
// http://www.aditus.nu/jpgraph/jpdownload.php
$jpgraphPath = '../lib/jpgraph-3.0.3/src'; // put the path to your jpgraph install here
// ------------------------------------------
require_once "$jpgraphPath/jpgraph.php";
require_once "$jpgraphPath/jpgraph_line.php";
$logsPath = 'logs/';
$revisions = array();
$graphs = array();
if (isset($_POST['test'])) {
list($testsuite, $testcase) = explode('#', $_POST['test']);
}
$items = scandir($logsPath);
foreach ($items as $item) {
if ($item[0] != '.') {
$revisions[] = $item;
}
}
foreach ($revisions as $rev) {
$xml = simplexml_load_file($logsPath . $rev . '/log.xml');
foreach ($xml->testsuite as $suite) {
foreach ($suite->testcase as $test) {
if (stripos((string)$suite['name'], 'performance') !== false || stripos((string)$test['name'], 'performance') !== false) {
$name = (string)$suite['name'] . '#' . (string)$test['name'];
$graphs[$name][] = (double)$test['time'];
}
}
}
}
if (isset($testsuite) && isset($testcase)) {
$graphName = $testsuite . '#' . $testcase;
$graphData = $graphs[$graphName];
// Create the graph. These two calls are always required
$graph = new Graph(650,250);
//$graph->SetScale('intint');
$graph->SetScale('textlin');
$graph->yaxis->scale->SetAutoMin(0);
$graph->title->Set($testsuite);
$graph->subtitle->Set($testcase);
$graph->xaxis->title->Set('revision');
$graph->yaxis->title->Set('seconds');
$graph->SetMargin(100, 100, 50, 50);
// Create the linear plot
$lineplot = new LinePlot($graphData);
$lineplot->SetColor('blue');
$graph->xaxis->SetTickLabels($revisions);
// Add the plot to the graph
$graph->Add($lineplot);
// Display the graph
$graph->Stroke();
} else {
echo '<html><head></head><body>';
echo 'Pick a test and click "show":<br/>';
echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '">';
echo '<select name="test">';
foreach ($graphs as $name => $data) {
echo '<option value="' . $name . '">' . $name . '</option>';
}
echo '</select>';
echo '<button type="submit">Show</button>';
echo '</form>';
echo '</body></html>';
}