summaryrefslogtreecommitdiffstats
path: root/pts-core
diff options
context:
space:
mode:
authorMichael Larabel <michael@phx-laptop.(none)>2009-01-07 20:56:50 -0500
committerMichael Larabel <michael@phx-laptop.(none)>2009-01-07 20:56:50 -0500
commitd3253c04eb4fa408eac34d4a17388a05df606557 (patch)
tree8dde76baf837b3520df2b5c812b0fdd83ec7cd72 /pts-core
parentf6e646cf3ca36cc73a55608177a3d5ca9b112202 (diff)
downloadphoronix-test-suite-upstream-d3253c04eb4fa408eac34d4a17388a05df606557.tar.gz
phoronix-test-suite-upstream-d3253c04eb4fa408eac34d4a17388a05df606557.tar.xz
phoronix-test-suite-upstream-d3253c04eb4fa408eac34d4a17388a05df606557.zip
pts-core: Add result-file-to-pdf option that will read a results file
and save a copy of it as an Adobe PDF file
Diffstat (limited to 'pts-core')
-rw-r--r--pts-core/objects/pts_pdf_template.php83
-rw-r--r--pts-core/options/result_file_to_pdf.php104
-rw-r--r--pts-core/results-viewer/pts-logo.jpgbin0 -> 6194 bytes
3 files changed, 187 insertions, 0 deletions
diff --git a/pts-core/objects/pts_pdf_template.php b/pts-core/objects/pts_pdf_template.php
new file mode 100644
index 0000000..2197dee
--- /dev/null
+++ b/pts-core/objects/pts_pdf_template.php
@@ -0,0 +1,83 @@
+<?php
+
+/*
+ Phoronix Test Suite
+ URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
+ Copyright (C) 2009, Phoronix Media
+ Copyright (C) 2009, Michael Larabel
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+class pts_pdf_template extends FPDF
+{
+ var $pts_title = "";
+ var $pts_sub_title = "";
+
+ function __construct($Title = "", $SubTitle = "")
+ {
+ parent::__construct();
+
+ $this->pts_title = $Title;
+ $this->pts_sub_title = $SubTitle;
+
+ $this->SetTitle($Title);
+ $this->SetAuthor("Phoronix Test Suite");
+ $this->SetCreator(pts_codename(true));
+ }
+
+ function Header()
+ {
+ if(RESULTS_VIEWER_DIR . "pts-logo.jpg")
+ {
+ $this->Image(RESULTS_VIEWER_DIR . "pts-logo.jpg", 10, 8, 30);
+ }
+
+ $this->SetFont("Arial", "B", 14);
+ $this->Cell(80);
+ $this->Cell(30, 10, $this->pts_title, 0, 0, "C");
+ $this->Ln(6);
+ $this->SetFont("Arial", "B", 10);
+ $this->Cell(0, 10, $this->pts_sub_title, 0, 0, "C");
+ $this->Ln(10);
+ }
+ function Footer()
+ {
+ $this->SetY(-15);
+ $this->SetFont("Arial", "B", 9);
+ $this->Cell(0, 10, "http://www.phoronix-test-suite.com/", 0, 0, "C");
+ }
+ function WriteHeader($Header)
+ {
+ $this->SetFont("Arial", "B", 16);
+ $this->SetFillColor(255, 255, 255);
+ $this->Cell(0, 6, $Header, 0, 0, "L", true);
+ $this->Ln(15);
+ }
+ function WriteMiniHeader($Header)
+ {
+ $this->SetFont("Arial", "B", 13);
+ $this->SetFillColor(255, 255, 255);
+ $this->Cell(0, 2, $Header, 0, 0, "L", true);
+ $this->Ln(10);
+ }
+ function WriteText($Text)
+ {
+ $this->SetFont("Arial", "", 11);
+ $this->MultiCell(0, 5, $Text);
+ $this->Ln();
+ }
+}
+
+?>
diff --git a/pts-core/options/result_file_to_pdf.php b/pts-core/options/result_file_to_pdf.php
new file mode 100644
index 0000000..50e0636
--- /dev/null
+++ b/pts-core/options/result_file_to_pdf.php
@@ -0,0 +1,104 @@
+<?php
+
+/*
+ Phoronix Test Suite
+ URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
+ Copyright (C) 2009, Phoronix Media
+ Copyright (C) 2009, Michael Larabel
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+class result_file_to_pdf implements pts_option_interface
+{
+ public static function run($r)
+ {
+ echo pts_string_header("Result File To PDF Converter");
+
+ if(pts_load_pdf_generator() == false)
+ {
+ echo "\nThe FPDF library must be installed.\n\n";
+ return;
+ }
+ if(!is_file(($saved_results_file = SAVE_RESULTS_DIR . $r[0] . "/composite.xml")))
+ {
+ echo "\n" . $r[0] . " is not a saved results file.\n\n";
+ return;
+ }
+
+ $composite_xml = file_get_contents($saved_results_file);
+ putenv("JPG_DEBUG=true"); // Force to JPEG mode
+ pts_save_result($r[0] . "/composite.xml", $composite_xml);
+
+ $xml_parser = new pts_results_tandem_XmlReader($saved_results_file);
+ $pdf = new pts_pdf_template($xml_parser->getXMLValue(P_RESULTS_SUITE_TITLE), $xml_parser->getXMLValue(P_RESULTS_SUITE_NAME));
+
+ $pdf->AddPage();
+ $pdf->Ln(10);
+ $pdf->WriteText($xml_parser->getXMLValue(P_RESULTS_SUITE_DESCRIPTION));
+ $pdf->Ln(5);
+
+ $identifiers = $xml_parser->getXMLArrayValues(P_RESULTS_SYSTEM_IDENTIFIERS);
+ $hardware_r = $xml_parser->getXMLArrayValues(P_RESULTS_SYSTEM_HARDWARE);
+ $software_r = $xml_parser->getXMLArrayValues(P_RESULTS_SYSTEM_SOFTWARE);
+ $notes_r = $xml_parser->getXMLArrayValues(P_RESULTS_SYSTEM_NOTES);
+ //$date_r = $xml_parser->getXMLArrayValues(P_RESULTS_SYSTEM_DATE);
+
+ $pdf->SetSubject($xml_parser->getXMLValue(P_RESULTS_SUITE_TYPE) . " Benchmarks");
+ $pdf->SetKeywords(implode(", ", $identifiers));
+
+ $pdf->WriteHeader("Test Systems:");
+ for($i = 0; $i < count($identifiers); $i++)
+ {
+ $pdf->WriteMiniHeader($identifiers[$i]);
+ $pdf->WriteText($hardware_r[$i]);
+ $pdf->WriteText($software_r[$i]);
+ $pdf->WriteText($notes_r[$i]);
+ }
+
+ $pdf->AddPage();
+ $tests = $xml_parser->getXMLArrayValues(P_RESULTS_TEST_TITLE);
+ $placement = 1;
+ for($i = 1; $i <= count($tests); $i++)
+ {
+ /* $pdf->SetFont("Arial", "B", 18);
+ $pdf->SetFillColor(255, 255, 255);
+ $pdf->Ln(30 + (($i - 1) * 100));
+ $pdf->Cell(0, 0, $tests[$i], 0, 0, "L", true); */
+
+ if(is_file(SAVE_RESULTS_DIR . $r[0] . "/result-graphs/" . $i . ".jpg"))
+ {
+ $pdf->Ln(100);
+ $pdf->Image(SAVE_RESULTS_DIR . $r[0] . "/result-graphs/" . $i . ".jpg", 20, 40 + (($placement - 1) * 120), 180);
+ }
+
+ if($placement == 2)
+ {
+ $placement = 0;
+
+ if($i != count($tests))
+ {
+ $pdf->AddPage();
+ }
+ }
+ $placement++;
+ }
+
+
+ $pdf->Output($r[0] . ".pdf");
+ echo "\nSaved To: " . $r[0] . ".pdf\n\n";
+ }
+}
+
+?>
diff --git a/pts-core/results-viewer/pts-logo.jpg b/pts-core/results-viewer/pts-logo.jpg
new file mode 100644
index 0000000..43d5faf
--- /dev/null
+++ b/pts-core/results-viewer/pts-logo.jpg
Binary files differ