Changes in directory nightlytest-serverside:
drawfilesizegraph.php added (r1.1) --- Log message: Adding a script to create a graph of file sizes. this script hasnt been tested yet and certainly needs debugging. --- Diffs of the changes: (+235 -0) drawfilesizegraph.php | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 235 insertions(+) Index: nightlytest-serverside/drawfilesizegraph.php diff -c /dev/null nightlytest-serverside/drawfilesizegraph.php:1.1 *** /dev/null Wed Jul 26 18:23:04 2006 --- nightlytest-serverside/drawfilesizegraph.php Wed Jul 26 18:22:54 2006 *************** *** 0 **** --- 1,235 ---- + <?php + include("jpgraph/jpgraph.php"); + include("jpgraph/jpgraph_line.php"); + include("jpgraph/jpgraph_utils.inc"); + include("jpgraph/jpgraph_date.php"); + include("ProgramResults.php"); + + $DEBUG=0; + + /******************************** + * + * printing the appropriate error + * image if necessary + * + ********************************/ + function printErrorMsg( $error_string , $DEBUG ){ + if($DEBUG){ + print "$error_string"; + } + $xsize=500; + $ysize=300; + + + if(!$DEBUG){ + $error_image = ImageCreate($xsize, $ysize); + $white = imagecolorallocate($error_image, 255, 255, 255); + $black = imagecolorallocate($error_image, 0,0,0); + ImageFill($error_image, 0, 0, $white); + imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black); + imagestring($error_image, 14, 5, 5, $error_string, $black); + header("Content-type: image/png"); + imagepng($error_image); + imagedestroy($error_image); + } + exit(0); + } + + /******************************** + * + * connecting to DB + * + ********************************/ + + $resultsgraphlink=mysql_connect("localhost","llvm","ll2002vm"); + mysql_select_db("nightlytestresults"); + + /******************************** + * + * gathering url information and creating query + * If url is invalid an error image will be + * returned. + * + ********************************/ + $URL_ERROR=0; + $error_msg=""; + + if(isset($HTTP_GET_VARS['files'])){ + $files=$HTTP_GET_VARS['files']; + } + else{$URL_ERROR=1;$error_msg="no value for program";} + + if(isset($HTTP_GET_VARS['xsize'])){ + $xsize=$HTTP_GET_VARS['xsize']; + } + else{$xsize=800;} + + if(isset($HTTP_GET_VARS['ysize'])){ + $ysize = $HTTP_GET_VARS['ysize']; + }else{$ysize=300;} + + if(isset($HTTP_GET_VARS['name'])){ + $name = $HTTP_GET_VARS['name']; + } + else{$name = "Results Graph";} + + if(isset($HTTP_GET_VARS['machine'])){ + $machine_id=$HTTP_GET_VARS['machine']; + } + else{$URL_ERROR=1;$error_msg="no value for machine";} + + if(isset($HTTP_GET_VARS['end'])){ + $end = $HTTP_GET_VARS['end']; + $end_query = "and added <= \"$end\""; + $start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added"; + } + else{ + $end = ""; + $end_query = " "; + $start_query= ""; + } + + if(isset($HTTP_GET_VARS['start'])){ + $start = $HTTP_GET_VARS['start']; + $start_query = "and added >= \"$start\""; + } + + + if(isset($HTTP_GET_VARS['normalize'])){ + if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){ + $NORMALIZE=1; + } + else{ + $NORMALIZE=0; + } + } + else{ + $NORMALIZE=0; + } + + if(isset($HTTP_GET_VARS['showdata'])){ + if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){ + $SHOWDATA=1; + } + else{ + $SHOWDATA=0; + } + } + else{ + $SHOWDATA=0; + } + if(isset($HTTP_GET_VARS['showpoints'])){ + if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){ + $SHOWPOINTS=1; + } + else{ + $SHOWPOINTS=0; + } + } + else{ + $SHOWPOINTS=0; + } + + /******************************** + * + * printing error image if necessary + * + ********************************/ + if($URL_ERROR==1){ + printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG); + } + + /******************************** + * + * creating the graph + * + ********************************/ + // Callback formatting function for the X-scale to convert timestamps + // to hour and minutes. + function TimeCallback( $aVal) { + return Date ('m-d-y', $aVal); + } + + $graph = new Graph($xsize,$ysize); + $graph->SetScale("datelin"); + $graph->tabtitle->Set(" $name "); + $graph->xaxis->SetLabelAngle(90); + $graph->SetMargin(50,10,30,110+sizeof($files)*18); + $graph->xaxis->title->Set(""); + $graph->xaxis->title->SetMargin(80); + $graph->yaxis->title->Set(""); + $graph->yaxis->title->SetMargin(30); + $graph->SetFrame(false); + $graph->SetMarginColor("White"); + $graph->legend->SetShadow('[EMAIL PROTECTED]',5); + $graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($files)*18)),'top','left'); + $graph->legend->hide(false); + $graph->ygrid->SetFill(true,'[EMAIL PROTECTED]','[EMAIL PROTECTED]'); + $graph->xgrid->Show(); + $graph->xaxis->scale->SetTimeAlign(MONTHADJ_1); + $graph->xaxis-> SetLabelFormatCallback( 'TimeCallback'); + + /******************************** + * + * executing the query by... + * 1.) finding all the nights associated with the provided machine + * 2.) getting all the correct programs for that night + * + ********************************/ + + $line_arr=array(); + $color_arr = array("red","blue","green","orange","black", "brown","gray"); + + $RELEVANT_DATA=0; + + $index=0; + foreach ($files as $file){ + + $data = get_file_history($mysql_link, $machine_id, $file) + + $xdata=array(); + $values=array(); + $data_max=-1; + + foreach ($data as $d){ + push_array($xdata, $d[0]); + if($d[2] > $data_max){ $data_max=$d[2]; } + push_array($values, $d[2]); + } + + if($NORMALIZE){ + for($i=0; $i<sizeof($values); $i++){ + if(is_numeric($values[$i])){ + $values[$i]=$values[$i]/$data_max; + }#end if + }#end for + }#end if + + + $line_arr[$index] = new LinePlot($values, $xdata); + $line_arr[$index]->SetLegend("$file"); + if($SHOWDATA==1){ + $line_arr[$index]->value->Show(); + } + if($SHOWPOINTS==1){ + $line_arr[$index]->mark->SetType(MARK_UTRIANGLE); + } + $color_index=$index % sizeof($color_arr); + $line_arr[$index]->SetColor($color_arr[$color_index]); + $graph->Add($line_arr[$index]); + $index++; + }#end foreach + + if($RELEVANT_DATA==0){ + printErrorMsg("Error: Graph of $measure contains no data", $DEBUG); + } + + if($DEBUG){ + print "Finished!<br>$RELEVANT_DATA<br>\n"; + } + else{ + $graph->Stroke(); + } + + ?> + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits