]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/testsuite.html
release i3 v4.4
[i3/i3.github.io] / docs / testsuite.html
index 1d619400f2369ae95350933d8019883ee9a6fe91..f55de8a45ccf3418afbd2b0beba708ba0c17d246 100644 (file)
@@ -130,9 +130,35 @@ It is a good idea to use a different language for the tests than the
 </ol></div>\r
 <div class="paragraph"><p>Please do not start programming language flamewars at this point.</p></div>\r
 <div class="sect2">\r
-<h3 id="_mechanisms">3.1. Mechanisms</h3>\r
+<h3 id="_installing_the_dependencies">3.1. Installing the dependencies</h3>\r
+<div class="paragraph"><p>As usual with Perl programs, the testsuite ships with a <tt>Makefile.PL</tt>.\r
+This file specifies which Perl modules the testsuite depends on and can be used\r
+to install all of them.</p></div>\r
+<div class="paragraph"><p>Perl modules are distributed via CPAN, and there is the official, standard CPAN\r
+client, simply called <tt>cpan</tt>. It comes with every Perl installation and can be\r
+used to install the testsuite. Many users prefer to use the more modern\r
+<tt>cpanminus</tt> instead, though (because it asks no questions and just works):</p></div>\r
+<div class="listingblock">\r
+<div class="title">Installing testsuite dependencies using cpanminus (preferred)</div>\r
+<div class="content">\r
+<pre><tt>$ cd ~/i3/testcases\r
+$ sudo apt-get install cpanminus\r
+$ sudo cpanm .</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>If you don’t want to use cpanminus for some reason, the same works with cpan:</p></div>\r
+<div class="listingblock">\r
+<div class="title">Installing testsuite dependencies using cpan</div>\r
+<div class="content">\r
+<pre><tt>$ cd ~/i3/testcases\r
+$ sudo cpan .</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>In case you don’t have root permissions, you can also install into your home\r
+directory, see <a href="http://michael.stapelberg.de/cpan/">http://michael.stapelberg.de/cpan/</a></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_mechanisms">3.2. Mechanisms</h3>\r
 <div class="sect3">\r
-<h4 id="_script_complete_run">3.1.1. Script: complete-run</h4>\r
+<h4 id="_script_complete_run">3.2.1. Script: complete-run</h4>\r
 <div class="paragraph"><p>The testcases are run by a script called <tt>complete-run.pl</tt>. It runs all\r
 testcases by default, but you can be more specific and let it only run one or\r
 more testcases. Also, it takes care of starting up a separate instance of i3\r
@@ -181,7 +207,7 @@ $ less latest/i3-log-for-04-floating.t</tt></pre>
 </div></div>\r
 </div>\r
 <div class="sect3">\r
-<h4 id="_ipc_interface">3.1.2. IPC interface</h4>\r
+<h4 id="_ipc_interface">3.2.2. IPC interface</h4>\r
 <div class="paragraph"><p>The testsuite makes extensive use of the IPC (Inter-Process Communication)\r
 interface which i3 provides. It is used for the startup process of i3, for\r
 terminating it cleanly and (most importantly) for modifying and getting the\r
@@ -189,7 +215,7 @@ current state (layout tree).</p></div>
 <div class="paragraph"><p>See [<a href="http://i3wm.org/docs/ipc.html">http://i3wm.org/docs/ipc.html</a>] for documentation on the IPC interface.</p></div>\r
 </div>\r
 <div class="sect3">\r
-<h4 id="_x11_xcb">3.1.3. X11::XCB</h4>\r
+<h4 id="_x11_xcb">3.2.3. X11::XCB</h4>\r
 <div class="paragraph"><p>In order to open new windows, change attributes, get events, etc., the\r
 testsuite uses X11::XCB, a new (and quite specific to i3 at the moment) Perl\r
 module which uses the XCB protocol description to generate Perl bindings to\r
@@ -200,7 +226,7 @@ manager.</p></div>
 </div>\r
 </div>\r
 <div class="sect2">\r
-<h3 id="_filesystem_structure">3.2. Filesystem structure</h3>\r
+<h3 id="_filesystem_structure">3.3. Filesystem structure</h3>\r
 <div class="paragraph"><p>In the git root of i3, the testcases live in the folder <tt>testcases</tt>. This\r
 folder contains the <tt>complete-run.pl</tt> and <tt>Xdummy</tt> scripts and a base\r
 configuration file which will be used for the tests. The different testcases\r