Jungletest is an system for automated testing of OpenOffice.org (OOo) against a large set of documents in complex, binary formats. Currently, tests determine whether OOo will crash or hang when loading or scrolling through the document. The documents can be automatically harvested from the OOo Issue Tracker or through random URLs found on Yahoo.
Jungletest is alpha-quality software.
Practical applications of Jungletest include:
You must have the following software installed:
Jungletest should work on Windows, but only Linux has been tested so far.
What's new in Jungletest? Read the change log.
The jungletest application:
Below is a list of 110,000 URLs to feed into jungletest, so jungletest can download the URLs for testing. The list contains doc, ppt, xls, rtf, pps, dot, docx, pptx, and xlsx.
To install Jungletest, follow these instructions.
Jungletest operation is split into three, discrete operations:
Use any combination of the following methods to populate the database with document URLs.
If you want to harvest document URLs from Yahoo, run:
python jungletest.py --yahoo
NOTE: This process currently runs until you receive your daily limit of Yahoo queries, but when you have enough URLs, killing the process is safe.
If you want to harvest document URLs from the OOo Issue Tracker, run:
python jungletest.py --harvest-urls-issuetracker=QUERY_URL
Here are some sample query URLs:
If you want to import a list of URLs from a text file (such as the large file available from the downloads section), run:
python jungletest.py --import-urls=FILE
The text file simply has one URL per line.
Now that the database has a list of URLs, this step downloads the files for later testing. Each download is checked to verify it is probably a legitimate file. For example, HTML downloads are rejected.
python jungletest.py --harvest-files
NOTE: This process currently runs until the list of URLs is exhausted, but when you have enough test documents, killing the process is safe.
Now that a cache of documents is available, use this command to conduct the test:
python jungletest.py --conduct-test
NOTE: This process currently runs forever, but when you have enough tests, killing the process is safe.
Opening random, complex binary documents can be dangerous because of buffer overflows. Therefore, you should take precautions. For example, run Jungletest from its own system account.
Once you have tested the basic system, you may want to switch to Xvfb for two benefits:
OpenOffice.org 2.3+ has support for running headless without Xvfb.
grep -i "\(todo\|fixme\)" *
for more plans.
The following bugs were found using Jungletest.