This is a program to spam LyX with millions of randomly generated key
presses, and collect the crash results.
-Since the code involves spamming random keypresses, I'd recommend
-running it in a VM, well away from your main X windows session.
+Since the code involves spamming random keypresses, I run it under a special
+user "keytest", well away from my main X windows session.
-In short, to use this, run development/keytest/lyx_make.sh
+To use this software, first configure it by editing the
+configuration parameters in shared_functions.sh and shared_variables.sh
+then run the following:
-It requires the following packages to run
- xvkbd wmctrl
-the following are also useful:
- lyx libqt4-dbg subversion automake
+./setup.sh # add keytest user and apt-get required files
+sudo -H -u keytest -e xterm # Create a xterm for running keytest in
+. ./initXvfb # sets up a fake X server for keytest to play in
+./main.sh
-It is run by running ./autolyx in one xterm, and ./test.py in another.
-I wrote lyx_make.sh as a easy way of updating lyx and running these two
-programs together.
+Note that this bug finding software is itself quite buggy.
CONTENTS:
README: this readme file
-report.sh: A quick way of generating bug reports and an overview from the logs.
+report_html.sh: A quick way of generating bug reports and an overview from the logs.
+make_screen_shots.sh: a script for making screenshots, if they are missing from output of above.
autolyx: A script to continually restart lyx and collect the bug reports
-lyx_make.sh: should updates, compiles, and everything needed to generated logs.
maketar.sh: Makes this tar file :)
-test.py: Sends LT100 randomly generated keypresses per second to the LyX window.
+keytest.py: Sends randomly generated keypresses to the LyX window.
killtest: stop the testing
stock_text: The stock test to add to each bug report.
+watch_keytest.sh: Dumps various info on what keytest is doing, often run as "watch watch_keytest.sh"
OUTPUTS:
-autolyx: Outputs out/GDB, a log of all output, including backtraces.
-test.py: Outputs out/KEYCODES, a list of all keycodes sent to LyX
+autolyx: Outputs out/*.GDB, a log of all output, including backtraces.
+keytest.py: Outputs out/*.KEYCODES, a list of all keycodes sent to LyX
-reports.sh: Outputs
- out/overview: an overview of all the frequency of each error
- out/overview_sort: as above but sorted
- out/report_*: A collection of autogenerated bug reports.
+TIPS:
+To reduce the degree to which keytest writes to your HDD, you may want to run
+ mount -t tmpfs -o size=50m tmpfs /home/keytest/kt.dir
+as root
AUTHOR:
Copyright (C) 2009 John McCabe-Dansted, gmatht at gmail dot com.