1c0abf9e6Sopenharmony_ci<!-- HTML header for doxygen 1.8.8-->
2c0abf9e6Sopenharmony_ci<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3c0abf9e6Sopenharmony_ci<html xmlns="http://www.w3.org/1999/xhtml">
4c0abf9e6Sopenharmony_ci    <head>
5c0abf9e6Sopenharmony_ci        <meta http-equiv="X-UA-Compatible" content="IE=edge">
6c0abf9e6Sopenharmony_ci        <!-- For Mobile Devices -->
7c0abf9e6Sopenharmony_ci        <meta name="viewport" content="width=device-width, initial-scale=1">
8c0abf9e6Sopenharmony_ci        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
9c0abf9e6Sopenharmony_ci        <meta name="generator" content="Doxygen 1.9.1"/>
10c0abf9e6Sopenharmony_ci        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
11c0abf9e6Sopenharmony_ci        <title>libevdev: libevdev-internal test suite</title>
12c0abf9e6Sopenharmony_ci        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
13c0abf9e6Sopenharmony_ci        <script type="text/javascript" src="dynsections.js"></script>
14c0abf9e6Sopenharmony_ci        <link href="search/search.css" rel="stylesheet" type="text/css"/>
15c0abf9e6Sopenharmony_ci<script type="text/javascript" src="search/searchdata.js"></script>
16c0abf9e6Sopenharmony_ci<script type="text/javascript" src="search/search.js"></script>
17c0abf9e6Sopenharmony_ci        <link href="doxygen.css" rel="stylesheet" type="text/css" />
18c0abf9e6Sopenharmony_ci        <link href="bootstrap.css" rel="stylesheet" type="text/css"/>
19c0abf9e6Sopenharmony_ci<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
20c0abf9e6Sopenharmony_ci<link href="libevdevdoxygen.css" rel="stylesheet" type="text/css"/>
21c0abf9e6Sopenharmony_ci        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
22c0abf9e6Sopenharmony_ci        <script type="text/javascript" src="doxy-boot.js"></script>
23c0abf9e6Sopenharmony_ci    </head>
24c0abf9e6Sopenharmony_ci    <body>
25c0abf9e6Sopenharmony_ci        <nav class="navbar navbar-default" role="navigation">
26c0abf9e6Sopenharmony_ci            <div class="container">
27c0abf9e6Sopenharmony_ci                <div class="navbar-header">
28c0abf9e6Sopenharmony_ci                    <a class="navbar-brand">libevdev 1.13.0</a>
29c0abf9e6Sopenharmony_ci                </div>
30c0abf9e6Sopenharmony_ci            </div>
31c0abf9e6Sopenharmony_ci        </nav>
32c0abf9e6Sopenharmony_ci        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
33c0abf9e6Sopenharmony_ci            <div class="content" id="content">
34c0abf9e6Sopenharmony_ci                <div class="container">
35c0abf9e6Sopenharmony_ci                    <div class="row">
36c0abf9e6Sopenharmony_ci                        <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;">
37c0abf9e6Sopenharmony_ci                            <div style="margin-bottom: 15px;">
38c0abf9e6Sopenharmony_ci<!-- end header part -->
39c0abf9e6Sopenharmony_ci<!-- Generated by Doxygen 1.9.1 -->
40c0abf9e6Sopenharmony_ci<script type="text/javascript">
41c0abf9e6Sopenharmony_ci/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
42c0abf9e6Sopenharmony_civar searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
43c0abf9e6Sopenharmony_ci/* @license-end */
44c0abf9e6Sopenharmony_ci</script>
45c0abf9e6Sopenharmony_ci<script type="text/javascript" src="menudata.js"></script>
46c0abf9e6Sopenharmony_ci<script type="text/javascript" src="menu.js"></script>
47c0abf9e6Sopenharmony_ci<script type="text/javascript">
48c0abf9e6Sopenharmony_ci/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
49c0abf9e6Sopenharmony_ci$(function() {
50c0abf9e6Sopenharmony_ci  initMenu('',true,false,'search.php','Search');
51c0abf9e6Sopenharmony_ci  $(document).ready(function() { init_search(); });
52c0abf9e6Sopenharmony_ci});
53c0abf9e6Sopenharmony_ci/* @license-end */</script>
54c0abf9e6Sopenharmony_ci<div id="main-nav"></div>
55c0abf9e6Sopenharmony_ci<!-- window showing the filter options -->
56c0abf9e6Sopenharmony_ci<div id="MSearchSelectWindow"
57c0abf9e6Sopenharmony_ci     onmouseover="return searchBox.OnSearchSelectShow()"
58c0abf9e6Sopenharmony_ci     onmouseout="return searchBox.OnSearchSelectHide()"
59c0abf9e6Sopenharmony_ci     onkeydown="return searchBox.OnSearchSelectKey(event)">
60c0abf9e6Sopenharmony_ci</div>
61c0abf9e6Sopenharmony_ci
62c0abf9e6Sopenharmony_ci<!-- iframe showing the search results (closed by default) -->
63c0abf9e6Sopenharmony_ci<div id="MSearchResultsWindow">
64c0abf9e6Sopenharmony_ci<iframe src="javascript:void(0)" frameborder="0" 
65c0abf9e6Sopenharmony_ci        name="MSearchResults" id="MSearchResults">
66c0abf9e6Sopenharmony_ci</iframe>
67c0abf9e6Sopenharmony_ci</div>
68c0abf9e6Sopenharmony_ci
69c0abf9e6Sopenharmony_ci</div><!-- top -->
70c0abf9e6Sopenharmony_ci<div class="PageDoc"><div class="header">
71c0abf9e6Sopenharmony_ci  <div class="headertitle">
72c0abf9e6Sopenharmony_ci<div class="title">libevdev-internal test suite </div>  </div>
73c0abf9e6Sopenharmony_ci</div><!--header-->
74c0abf9e6Sopenharmony_ci<div class="contents">
75c0abf9e6Sopenharmony_ci<div class="textblock"><p>libevdev's internal test suite uses the <a href="http://check.sourceforge.net/">Check unit testing framework</a>.</p>
76c0abf9e6Sopenharmony_ci<p>Tests are divided into test suites and test cases. Most tests create a uinput device, so you'll need to run as root, and your kernel must have <code>CONFIG_INPUT_UINPUT</code> enabled.</p>
77c0abf9e6Sopenharmony_ci<p>To run a specific suite only: </p><pre class="fragment">export CK_RUN_SUITE="suite name"
78c0abf9e6Sopenharmony_ci</pre><p> To run a specific test case only: </p><pre class="fragment">export CK_RUN_TEST="test case name"
79c0abf9e6Sopenharmony_ci</pre><p> To get a list of all suites or tests: </p><pre class="fragment">git grep "suite_create"
80c0abf9e6Sopenharmony_cigit grep "tcase_create"
81c0abf9e6Sopenharmony_ci</pre><p> By default, Check forks, making debugging harder. The test suite tries to detect if it is running inside gdb and disable forking. If that doesn't work for some reason, run gdb as below to avoid forking. </p><pre class="fragment">sudo CK_FORK=no CK_RUN_TEST="test case name" gdb ./test/test-libevdev
82c0abf9e6Sopenharmony_ci</pre><p> A special target <code>make gcov-report.txt</code> exists that runs gcov and leaves a <code>libevdev.c.gcov</code> file. Check that for test coverage.</p>
83c0abf9e6Sopenharmony_ci<p><code>make check</code> is hooked up to run the test and gcov (again, needs root).</p>
84c0abf9e6Sopenharmony_ci<p>The test suite creates a lot of devices, very quickly. Add the following xorg.conf.d snippet to avoid the devices being added as X devices (at the time of writing, mutter can't handle these devices and exits after getting a BadDevice error). </p><pre class="fragment">$ cat /etc/X11/xorg.conf.d/99-ignore-libevdev-devices.conf
85c0abf9e6Sopenharmony_ciSection "InputClass"
86c0abf9e6Sopenharmony_ci        Identifier "Ignore libevdev test devices"
87c0abf9e6Sopenharmony_ci        MatchProduct "libevdev test device"
88c0abf9e6Sopenharmony_ci        Option "Ignore" "on"
89c0abf9e6Sopenharmony_ciEndSection
90c0abf9e6Sopenharmony_ci</pre> </div></div><!-- contents -->
91c0abf9e6Sopenharmony_ci</div><!-- PageDoc -->
92c0abf9e6Sopenharmony_ci<!-- HTML footer for doxygen 1.8.8-->
93c0abf9e6Sopenharmony_ci<!-- start footer part -->
94c0abf9e6Sopenharmony_ci</div>
95c0abf9e6Sopenharmony_ci</div>
96c0abf9e6Sopenharmony_ci</div>
97c0abf9e6Sopenharmony_ci</div>
98c0abf9e6Sopenharmony_ci</div>
99c0abf9e6Sopenharmony_ci<hr class="footer"/><address class="footer"><small>
100c0abf9e6Sopenharmony_ciGenerated by &#160;<a href="http://www.doxygen.org/index.html">
101c0abf9e6Sopenharmony_ci<img class="footer" src="doxygen.png" alt="doxygen"/>
102c0abf9e6Sopenharmony_ci</a> 1.9.1
103c0abf9e6Sopenharmony_ci</small></address>
104c0abf9e6Sopenharmony_ci</body>
105c0abf9e6Sopenharmony_ci</html>
106