summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorjasplin <qt-info@nokia.com>2009-10-15 09:04:36 +0200
committerjasplin <qt-info@nokia.com>2009-10-15 09:04:36 +0200
commitf900112901f93d3e8bd4e3b2e0d0e0f19ef88fff (patch)
treeb96ea0cac58b57d60038d738bdde37db2bae8f7c /doc
parent5828b5d9831dcfdc3d8cee2b1582dd991c841aa4 (diff)
Updates to doc ++.
Diffstat (limited to 'doc')
-rw-r--r--doc/architecture3.odpbin0 -> 15688 bytes
-rw-r--r--doc/bmclient.html20
-rw-r--r--doc/bmproto.html6
-rw-r--r--doc/bmrunner.html163
-rw-r--r--doc/bmserver.html44
-rw-r--r--doc/index.html14
6 files changed, 235 insertions, 12 deletions
diff --git a/doc/architecture3.odp b/doc/architecture3.odp
new file mode 100644
index 0000000..13fecf7
--- /dev/null
+++ b/doc/architecture3.odp
Binary files differ
diff --git a/doc/bmclient.html b/doc/bmclient.html
index 5228a36..85fbfc1 100644
--- a/doc/bmclient.html
+++ b/doc/bmclient.html
@@ -17,14 +17,16 @@ td {vertical-align:top; padding:5px}
<h2>BM Client Program</h2>
<h3>Overview</h3>
-The BM client program (<code>bmclient</code>) is a program that communicates with
-a BM server via the BM protocol (described elsewhere). The program accepts
-input via command-line arguments, environment variables, or standard input.
-The program writes output (if any) to standard output or standard error.
+
+The BM client (<code>bmclient</code>) sends requests to a <a
+href="bmserver.html">BM server</a> via the <a href="bmproto.html">BM
+protocol</a>. The bmclient accepts input via command-line arguments,
+environment variables, or standard input, and writes any output to standard
+output or standard error.
<h3>Modes</h3>
-If the program is run without any command-line arguments it is run in <i>CGI
-mode</i>. In this case, the program is assumed to be launched by a web server
+If the bmclient is run without any command-line arguments, it is run in <i>CGI
+mode</i>. In this case, the bmclient is assumed to be launched by a web server
in response to a request from a web client. Arguments are extracted from the
QUERY_STRING environment variable or from the standard input depending on
whether the HTTP request method was GET or POST respectively. The output is
@@ -32,10 +34,10 @@ written to standard output in a format suitable for being sent back to and
processed by the web client (typically JSON - see below).
<p />
-If command-line arguments are present the program is run in <i>raw mode</i>.
+If command-line arguments are present, the bmclient is run in <i>raw mode</i>.
<h3>Help (raw mode only)</h3>
-In raw mode, passing <code>help</code> to the program prints out a usage summary:
+In raw mode, passing <code>help</code> to the bmclient prints out a usage summary:
<pre>
./bmclient help
@@ -98,7 +100,7 @@ The file is assumed to have the same XML structure as the one produced by
QTestLib.
<br /><br />
The git directory must be accessible from the local file system and the git
-command needs to be installed (i.e. the program needs to run the git command
+command needs to be installed (i.e. the bmclient needs to run the git command
from the git directory). By default, the git directory is the current
directory.
<br /><br />
diff --git a/doc/bmproto.html b/doc/bmproto.html
index 41cea65..e6a96e3 100644
--- a/doc/bmproto.html
+++ b/doc/bmproto.html
@@ -19,9 +19,9 @@ td {vertical-align:top; padding:5px}
<h3>Overview</h3>
The BM protocol is a simple protocol that assumes a reliable byte channel
-(like TCP) between a client and a server. Requests are sent from the client to
-the server. Each request is followed by a reply sent from the server to the
-client.
+(like TCP) between a client and a <a href="bmserver.html">BM
+server</a>. Requests are sent from the client to the server. Each request is
+followed by a reply sent from the server to the client.
<h3>General Message Structure</h3>
diff --git a/doc/bmrunner.html b/doc/bmrunner.html
new file mode 100644
index 0000000..e51a6e5
--- /dev/null
+++ b/doc/bmrunner.html
@@ -0,0 +1,163 @@
+<html>
+
+<head>
+
+<style type="text/css">
+table {background-color:#f5f5f5; text-align:left}
+th {vertical-align:top; padding:5px}
+td {vertical-align:top; padding:5px}
+.code {color:#a0291b; font-family:courier}
+.codeDescr {color:#117711; min-width:200px}
+</style>
+
+</head>
+
+<body>
+
+<h2>BM Runner Program</h2>
+
+<h3>Overview</h3>
+
+The BM runner (<code>bmrunner</code>) runs benchmark programs and reports
+results to a <a href="bmserver.html">BM server</a> via the <a
+href="bmclient.html">BM client</a>. The benchmark programs are assumed to be
+based on QTestLib (i.e. accepting the same command-line arguments and
+producing the same output).
+
+<br /><br />
+
+The following table describes the command-line arguments to be passed to
+bmrunner:
+
+<br /><br />
+
+<table border=1>
+<tr>
+ <th colspan="2">Argument</th>
+ <th>Description</th>
+</tr>
+
+<!-- -metric ----------------------------------- -->
+<tr>
+<td><pre class="code">-metric</pre></td>
+<td></td>
+<td class="codeDescr">
+The resource to be used for measuring benchmark performance. Must be one of
+<span class="code">walltime</span>, <span
+class="code">tickcounter</span>, <span class="code">callgrind</span>,
+or <span class="code">eventcounter</span>. Note that not all metrics are
+supported everywhere.
+</td>
+</tr>
+
+<!-- -median ----------------------------------- -->
+<tr>
+<td><pre class="code">-median</pre></td>
+<td>Optional</td>
+<td class="codeDescr">
+The number of "median iterations" used for increasing the statistical
+confidence. Each benchmark result is recomputed this many times and the final
+result is the median of all recomputations. The median argument is
+optional and the default value is 1. Note that specifying a median
+value (> 1) only makes sense in situations where the results are expected to
+be significantly unstable for successive runs (of the same code). As a rule of
+thumb, the walltime and tickcounter metrics generate unstable results, while
+the callgrind and eventcounter metrics do not.
+</td>
+</tr>
+
+<!-- -platform ----------------------------------- -->
+<tr>
+<td><pre class="code">-platform</pre></td>
+<td></td>
+<td class="codeDescr">
+The general build environment (most importantly, the compiler) used for
+building the product being measured (like <i>linux-g++</i>,
+<i>solaris-cc-64</i> etc.). A.k.a. <i>makespec</i>.
+</td>
+</tr>
+
+<!-- -host ----------------------------------- -->
+<tr>
+<td><pre class="code">-host</pre></td>
+<td></td>
+<td class="codeDescr">
+The name of the physical computer. Two benchmark results that are associated
+with the same host are (ideally!) guaranteed to be produced under identical
+hardware and (system) software environments/versions.
+</td>
+</tr>
+
+<!-- -gitdir ----------------------------------- -->
+<tr>
+<td><pre class="code">-gitdir</pre></td>
+<td></td>
+<td class="codeDescr">
+The toplevel git directory of the product to be benchmarked. The benchmark
+programs are assumed to produce results based on a clean checkout of the
+current head commit of the current branch in the git directory. The git
+command needs to be installed and invokable in the default environment.
+</td>
+</tr>
+
+<!-- -gitrepo ----------------------------------- -->
+<tr>
+<td><pre class="code">-gitrepo</pre></td>
+<td></td>
+<td class="codeDescr">
+The name of the repository to which the product to be benchmarked
+belongs. Note that this must be passed explicitly since it cannot in general
+be derived from the git directory (e.g. in case of a local stand-alone
+repository).
+</td>
+</tr>
+
+<!-- -bmserver ----------------------------------- -->
+<tr>
+<td><pre class="code">-bmserver</pre></td>
+<td></td>
+<td class="codeDescr">
+The location of the bmserver: &lt;host&gt;:&lt;port&gt;.
+</td>
+</tr>
+
+<!-- -bmdir ----------------------------------- -->
+<tr>
+<td><pre class="code">-bmdir</pre></td>
+<td></td>
+<td class="codeDescr">
+The directory containing the benchmark programs. The bmrunner will assume that
+any file in this directory tree that is readable, executable, prefixed with
+'<i>tst_</i>', and not containing the substring '<i>.debug</i>' is a
+(potential) benchmark program and will attempt to execute it as such.
+</td>
+</tr>
+
+<!-- -display ----------------------------------- -->
+<tr>
+<td><pre class="code">-display</pre></td>
+<td>Optional</td>
+<td class="codeDescr">
+The value to pass as the DISPLAY environment variable when running benchmark
+programs. If omitted, the DISPLAY variable is not (explicitly) set.
+</td>
+</tr>
+
+<!-- -timeout ----------------------------------- -->
+<tr>
+<td><pre class="code">-timeout</pre></td>
+<td>Optional</td>
+<td class="codeDescr">
+The timeout (in seconds) to apply when running benchmark programs. The default
+value is 300 secs (5 mins). Specifying a negative value disables the timeout
+(and the bmrunner then waits for each benchmark program to either terminate
+successfully or with due to an error condition (other than a timeout)).
+</td>
+</tr>
+
+
+</table>
+
+
+</body>
+</html>
diff --git a/doc/bmserver.html b/doc/bmserver.html
new file mode 100644
index 0000000..4457750
--- /dev/null
+++ b/doc/bmserver.html
@@ -0,0 +1,44 @@
+<html>
+
+<head>
+
+<style type="text/css">
+</style>
+
+</head>
+
+<body>
+
+<h2>BM Server Program</h2>
+
+<h3>Overview</h3>
+
+The BM server (<code>bmserver</code>) accesses a SQLite database of benchmark
+results on behalf of a <a href="bmclient.html">BM client</a> (or any client
+that speaks the <a href="bmproto.html">BM protocol</a>).
+
+<br /><br />
+
+Normally, the bmserver is passed a port number an an existing database file
+upon startup:
+
+<pre>
+ ./bmserver 1104 results.db
+</pre>
+
+It then enters a loop serving client requests via the <a
+href="bmproto.html">BM protocol</a>.
+
+<br /><br />
+
+The bmserver may also be used for creating and initializing a new database file:
+
+<pre>
+ ./bmserver initdb results.db
+</pre>
+
+In this case, the bmserver terminates as soon as the database file has been
+created and initialized with the appropriate schema (and no data).
+
+</body>
+</html>
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..1a37cec
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,14 @@
+<html>
+<head />
+<body>
+
+<a href="bmclient.html">bmclient</a>
+<br />
+<a href="bmserver.html">bmserver</a>
+<br />
+<a href="bmproto.html">client-server protocol</a>
+<br />
+<a href="bmrunner.html">bmrunner</a>
+
+</body>
+</html> \ No newline at end of file