/usr/share/phoronix-test-suite/pts-core/commands/dump_documentation.php is in phoronix-test-suite 4.8.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 | <?php
/*
Phoronix Test Suite
URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/
Copyright (C) 2010 - 2011, Phoronix Media
Copyright (C) 2010 - 2011, 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 dump_documentation implements pts_option_interface
{
public static function run($r)
{
if(is_file('/usr/share/php/fpdf/fpdf.php'))
{
include_once('/usr/share/php/fpdf/fpdf.php');
}
else
{
echo PHP_EOL . 'The FPDF library must be installed.' . PHP_EOL . PHP_EOL;
return;
}
$pdf = new pts_pdf_template(pts_title(false), 'Test Client Documentation');
$html_doc = new pts_html_template(pts_title(false), 'Test Client Documentation');
$pdf->AddPage();
$pdf->Image(PTS_CORE_STATIC_PATH . 'images/pts-308x160.png', 69, 85, 73, 38, 'PNG', 'http://www.phoronix-test-suite.com/');
$pdf->Ln(120);
$pdf->WriteStatement('www.phoronix-test-suite.com', 'C', 'http://www.phoronix-test-suite.com/');
$pdf->Ln(15);
$pdf->WriteBigHeaderCenter(pts_title(true));
$pdf->WriteHeaderCenter('User Manual');
//$pdf->WriteText($result_file->get_description());
$pts_options = pts_documentation::client_commands_array();
// Write the test options HTML
$dom = new DOMDocument();
$html = $dom->createElement('html');
$dom->appendChild($html);
$head = $dom->createElement('head');
$title = $dom->createElement('title', 'User Options');
$head->appendChild($title);
$html->appendChild($head);
$body = $dom->createElement('body');
$html->appendChild($body);
$p = $dom->createElement('p', 'The following options are currently supported by the Phoronix Test Suite client. A list of available options can also be found by running ');
$em = $dom->createElement('em', 'phoronix-test-suite help.');
$p->appendChild($em);
$phr = $dom->createElement('hr');
$p->appendChild($phr);
$body->appendChild($p);
foreach($pts_options as $section => &$contents)
{
if(empty($contents))
{
continue;
}
$header = $dom->createElement('h1', $section);
$body->appendChild($header);
sort($contents);
foreach($contents as &$option)
{
$sub_header = $dom->createElement('h3', $option[0]);
$em = $dom->CreateElement('em', ' ' . implode(' ', $option[1]));
$sub_header->appendChild($em);
$body->appendChild($sub_header);
$p = $dom->createElement('p', $option[2]);
$body->appendChild($p);
}
}
$dom->saveHTMLFile(PTS_PATH . 'documentation/stubs/00_user_options.html');
// Write the module options HTML
$dom = new DOMDocument();
$html = $dom->createElement('html');
$dom->appendChild($html);
$head = $dom->createElement('head');
$title = $dom->createElement('title', 'Module Options');
$head->appendChild($title);
$html->appendChild($head);
$body = $dom->createElement('body');
$html->appendChild($body);
$p = $dom->createElement('p', 'The following list is the modules included with the Phoronix Test Suite that are intended to extend the functionality of pts-core. Some of these options have commands that can be run directly in a similiar manner to the other Phoronix Test Suite user commands. Some modules are just meant to be loaded directly by adding the module name to the LoadModules tag in ~/.phoronix-test-suite/user-config.xml or via the PTS_MODULES environmental variable. A list of available modules is also available by running ');
$em = $dom->createElement('em', 'phoronix-test-suite list-modules.');
$p->appendChild($em);
$phr = $dom->createElement('hr');
$p->appendChild($phr);
$body->appendChild($p);
foreach(pts_module_manager::available_modules(true) as $module)
{
pts_module_manager::load_module($module);
$header = $dom->createElement('h2', pts_module_manager::module_call($module, 'module_name'));
$body->appendChild($header);
$desc = $dom->createElement('p', pts_module_manager::module_call($module, 'module_description'));
$body->appendChild($desc);
$all_options = pts_module_manager::module_call($module, 'user_commands');
if(count($all_options) > 0)
{
// $sub_header = $dom->createElement('h3', 'Module Commands');
// $body->appendChild($sub_header);
foreach($all_options as $key => $option)
{
$p = $dom->createElement('p', 'phoronix-test-suite ' . $module . '.' . str_replace('_', '-', $key));
$body->appendChild($p);
}
}
$vars = pts_module_manager::module_call($module, 'module_environmental_variables');
if(is_array($vars) && count($vars) > 0)
{
$p = $dom->createElement('p', 'This module utilizes the following environmental variables: ' . implode(', ', $vars) . '.');
$body->appendChild($p);
}
}
$dom->saveHTMLFile(PTS_PATH . 'documentation/stubs/00_zmodule_options.html');
// Write the external dependencies HTML
$dom = new DOMDocument();
$html = $dom->createElement('html');
$dom->appendChild($html);
$head = $dom->createElement('head');
$title = $dom->createElement('title', 'External Dependencies');
$head->appendChild($title);
$html->appendChild($head);
$body = $dom->createElement('body');
$html->appendChild($body);
$p = $dom->createElement('p', 'The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.');
$body->appendChild($p);
$p = $dom->createElement('p', 'Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.');
$body->appendChild($p);
$phr = $dom->createElement('hr');
$p->appendChild($phr);
$exdep_generic_parser = new pts_exdep_generic_parser();
$vendors = array_merge($exdep_generic_parser->get_vendor_aliases_formatted(), $exdep_generic_parser->get_vendors_list_formatted());
sort($vendors);
$ul = $dom->createElement('ul');
$p->appendChild($ul);
foreach($vendors as $vendor)
{
$li = $dom->createElement('li', $vendor);
$p->appendChild($li);
}
$dom->saveHTMLFile(PTS_PATH . 'documentation/stubs/02_external_dependencies.html');
// Write the virtual suites HTML
$dom = new DOMDocument();
$html = $dom->createElement('html');
$dom->appendChild($html);
$head = $dom->createElement('head');
$title = $dom->createElement('title', 'Virtual Test Suites');
$head->appendChild($title);
$html->appendChild($head);
$body = $dom->createElement('body');
$html->appendChild($body);
$p = $dom->createElement('p', 'Virtual test suites are not like a traditional test suite defined by the XML suite specification. Virtual test suites are dynamically generated in real-time by the Phoronix Test Suite client based upon the specified test critera. Virtual test suites can automatically consist of all test profiles that are compatible with a particular operating system or test profiles that meet other critera. When running a virtual suite, the OpenBenchmarking.org repository of the test profiles to use for generating the dynamic suite must be prefixed. ');
$body->appendChild($p);
$p = $dom->createElement('p', 'Virtual test suites can be installed and run just like a normal XML test suite and shares nearly all of the same capabilities. However, when running a virtual suite, the user will be prompted to input any user-configuration options for needed test profiles just as they would need to do if running the test individually. When running a virtual suite, the user also has the ability to select individual tests within the suite to run or to run all of the contained test profiles. Virtual test suites are also only supported for an OpenBenchmarking.org repository if there is no test profile or test suite of the same name in the repository. Below is a list of common virtual test suites for the main Phoronix Test Suite repository, but the dynamic list of available virtual test suites based upon the enabled repositories is available by running ');
$em = $dom->createElement('em', 'phoronix-test-suite list-available-virtual-suites.');
$p->appendChild($em);
$phr = $dom->createElement('hr');
$p->appendChild($phr);
$body->appendChild($p);
foreach(pts_virtual_test_suite::available_virtual_suites() as $virtual_suite)
{
$sub_header = $dom->createElement('h3', $virtual_suite->get_title());
$em = $dom->CreateElement('em', ' ' . $virtual_suite->get_identifier());
$sub_header->appendChild($em);
$body->appendChild($sub_header);
$p = $dom->createElement('p', $virtual_suite->get_description());
$body->appendChild($p);
}
$dom->saveHTMLFile(PTS_PATH . 'documentation/stubs/55_virtual_suites.html');
// Load the HTML documentation
foreach(pts_file_io::glob(PTS_PATH . 'documentation/stubs/*_*.html') as $html_file)
{
$pdf->html_to_pdf($html_file);
$html_doc->html_to_html($html_file);
}
if(!is_writable(PTS_PATH . 'documentation/'))
{
echo PHP_EOL . 'Not writable: ' . PTS_PATH . 'documentation/';
}
else
{
$pdf_file = PTS_PATH . 'documentation/phoronix-test-suite.pdf';
$pdf->Output($pdf_file);
$html_doc->Output(PTS_PATH . 'documentation/phoronix-test-suite.html');
echo PHP_EOL . 'Saved To: ' . $pdf_file . PHP_EOL . PHP_EOL;
// Also re-generate the man page
$man_page = '.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "' . PTS_VERSION . '"' . PHP_EOL . '.SH NAME' . PHP_EOL;
$man_page .= 'phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.' . PHP_EOL;
$man_page .= '.SH SYNOPSIS' . PHP_EOL . '.B phoronix-test-suite [options]' . PHP_EOL . '.br' . PHP_EOL . '.B phoronix-test-suite benchmark [test | suite]' . PHP_EOL;
$man_page .= '.SH DESCRIPTION' . PHP_EOL . pts_documentation::basic_description() . PHP_EOL;
$man_page .= '.SH OPTIONS' . PHP_EOL . '.TP' . PHP_EOL;
foreach($pts_options as $section => &$contents)
{
if(empty($contents))
{
continue;
}
$man_page .= '.SH ' . strtoupper($section) . PHP_EOL;
sort($contents);
foreach($contents as &$option)
{
$man_page .= '.B ' . trim($option[0] . ' ' . (!empty($option[1]) && is_array($option[1]) ? implode(' ', $option[1]) : null)) . PHP_EOL . $option[2] . PHP_EOL . '.TP' . PHP_EOL;
}
}
$man_page .= '.SH SEE ALSO' . PHP_EOL . '.B Websites:' . PHP_EOL . '.br' . PHP_EOL . 'http://www.phoronix-test-suite.com/' . PHP_EOL . '.br' . PHP_EOL . 'http://commercial.phoronix-test-suite.com/' . PHP_EOL . '.br' . PHP_EOL . 'http://www.openbenchmarking.org/' . PHP_EOL . '.br' . PHP_EOL . 'http://www.phoronix.com/' . PHP_EOL . '.br' . PHP_EOL . 'http://www.phoronix.com/forums/' . PHP_EOL;
$man_page .= '.SH AUTHORS' . PHP_EOL . 'Copyright 2008 - ' . date('Y') . ' by Phoronix Media, Michael Larabel.' . PHP_EOL . '.TP' . PHP_EOL;
file_put_contents(PTS_PATH . 'documentation/man-pages/phoronix-test-suite.1', $man_page);
}
// simple README
$readme = 'Phoronix Test Suite ' . PTS_VERSION . ' <http://www.phoronix-test-suite.com/>' . PHP_EOL . PHP_EOL;
$readme .= pts_documentation::basic_description() . PHP_EOL . PHP_EOL;
$readme .= pts_file_io::file_get_contents(PTS_PATH . 'documentation/stubs/readme-basics.txt') . PHP_EOL . PHP_EOL;
$readme = wordwrap($readme, 80, PHP_EOL);
file_put_contents(PTS_PATH . 'README', $readme);
}
}
?>
|