]> git.lyx.org Git - lyx.git/blob - development/autotests/README
Merge branch 'master' of git.lyx.org:lyx
[lyx.git] / development / autotests / README
1 Automated tests based on the "MonKey Testing" keytest program.
2 ======================================================================
3
4 WARNING!!
5 ----------------------------------------------------------------------
6 Running the tests in this folder may cause abrupt kill of existing
7 LyX instances on your system. In order to avoid any possible data
8 loss, quit any running instance of LyX in which you're carrying out
9 real work. Also, although precautions have been taken in order to not
10 allow the key presses to reach non-LyX windows, this may sometimes
11 happen anyway. Please, close any running application that is not
12 strictly needed.
13
14
15 DEPENDENCIES
16 ----------------------------------------------------------------------
17 The following programs are needed by the testing framework:
18 - xvkbd: a modified copy of xvkbd is included in this folder, and should
19          be built before running the tests
20 - wmctrl
21 - pcregrep
22 - Tcl/Tk (wish8.5)
23
24
25 USAGE
26 ----------------------------------------------------------------------
27 In order to launch all the tests available in this folder, just run
28
29   make
30
31 and do not interact with your computer while the tests are running.
32
33 If you wish to launch one or more specific tests, then provide them
34 as argument to the run-tests.sh script, e.g.:
35
36   ./run-tests.sh <whatever>*-in.txt
37
38 For failed tests you get a folder with the logs that help you identify
39 the problem.
40
41 Despite the efforts to avoid it, sometimes a test fails simply because
42 the key presses provided to the process are someway lost due to slow
43 hardware, slow window manager, too beautiful and animated desktop,...
44 When this happens, the tests should be run with a higher delay among
45 key presses. The default of 100 milliseconds can be changed by setting
46 the XVKBD_DELAY environment variable.
47
48 The standard xvkbd available on your system may be used to run the
49 tests. However, a custom xvkbd may optionally be used that forbids the
50 testing framework to type into non-LyX windows and may mitigate the
51 issue described right above. This option can be activated by defining
52 the XVKBD_HACKED environment variable to any value.
53
54
55 SYNTAX
56 ----------------------------------------------------------------------
57 Each test-case script should be named as xxx-in.txt. The syntax of the
58 script is described in detail in the sample test-case script
59 hello-world-in.txt.
60
61 Alternatively, a test-case can be an arbitrary executable script with
62 name ending in "-in.sh", that is launched inside a dedicated folder,
63 and to which the variables LYX_ROOT and LYX_EXE are exported, so that
64 you can easily reference the root LyX sources folder and the program
65 executable. The test script needs to complete with a no-error return
66 value (zero), otherwise a failure is reported (see export-in.sh for
67 an example).
68
69 Whenever LyX is launched, in both cases, the LYX_USERDIR variable is
70 set to autotests/out-home, in order to rely on clean preferences
71 settings (use make clean or make without arguments in order to let
72 that folder be created again).
73
74
75 TODO
76 ----------------------------------------------------------------------
77 Speed-up the execution of the tests as much as possible (i.e., get rid
78 of heuristic waits when present and replace them with exact check of
79 the condition we're waiting for).
80
81 Allow for tests with multiple LyX instances, e.g., for copy&paste
82 across LyX instances, or multiple applications, i.e., for testing
83 the interaction between LyX and other applications.
84
85 The modified xvkbd forces the focus on the specified target window
86 (for safety reasons).  Allow for a temporary disable of this within
87 the scripts, whenever we need to interact with a pop-up dialog.