</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
</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
<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
</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