Let me take this opportunity to thank the folks at Google for conducting the Google Summer of Code Project.

My changes to jhbuild: Patch    Modified/Patched code (complete)

My changes to LDTP: Pathches    Modified/Patched Code (complete)

Screencasts:
Jhbuild ScreenCast
Evolution Mailer Automation
Evolution Calendar Automation
Evolution AddressBook Automation

Evolution Automation Source Code: http://people.freedesktop.org/~prashmohan/soc/evolution/

Gnome-Dictionary Automation Source Code: http://people.freedesktop.org/~prashmohan/soc/gnome-dictionary/

LDTP Regression Suite Source Code: http://people.freedesktop.org/~prashmohan/soc/reg-suite/

View the Report in PDF LaTeX

1  LDTP integration into jhbuild

jhbuild1 is an automated build script for building Gnome from source. jhbuild also takes care of the dependency issues involved in building the software.

Tinderbox is a mozilla product which is used for exporting the results of the jhbuild process to a local file (in HTML+CSSformat). It neatly creates a hyper linked set of documents detailing the processes done. jhautobuild is a web application designed by Frederic Peters2 which allows publication of the tinderbox output to a public web server.

The patch for the same is currently being reviewed by Frederic Peters. An enhancement bug 3 has been filed under Bugzilla.

1.1  Input

The input is obtained from the moduleset file, which is in modulesets/gnome-2.14-test.modules. This moduleset file was created specifically to cater to the tasks of having testmodules. The module information regarding the building of `LDTP' under jhbuild has also been added to the modulesets/gnome-2.14.modules file.

The `testmodule' is referred in this way:

<testmodule id=“ldtp-gedit-test” type=“ldtp”>
<branch repo=“ldtp.freedesktop.org” module=“pyautosuite/gedit”
revision=“gnome-2-14”/>
<dependencies>
<dep package=“ldtp”/>
<dep package=“gedit”/>
</dependencies>
<testedmodules>
<tested package=“gedit”/>
</testedmodules>
</testmodule>

The `testmodule' type will specify whether to use `ldtp' or any other test framework; `dependencies' specify the other modules which should be built for this module to be built; `testedmodule' will specify the tested modules. This has the additional effect that cross-integration testing can also be done i.e. for e.g. if a module specifies both `gedit' and `MySQL' as tested modules, it could be an integration package.

1.2  Syntax

The modules can be executed in two ways: (The -x option can be passed to the commands to disable running the tests in an Xvfb environment)

1.3  Output

jhbuild has three forms of output:

2  Automation of Evolution using LDTP

Evolution is a high quality Mail Client for Linux, FreeBSD and Windows. LDTP has been used to automate the testing process of Evolution 2.6.x.

The following has been automated:

2.1  Mailer

2.2  AddressBook

2.3  Calendars

2.4  Tasks

3  LDTP Regression Suite

The LDTP framework is under heavy development, and it is very much possible that some of the fixes might break some related functions. Hence the LDTP regression suite will try to identify faults if any.

The following functions of the LDTP API has been tested for regression:

4  Automation of gnome-dictionary

`gnome-dictionary' is a tiny utility (part of gnome-utils) which is used to retrieve the definition of words from the Internet.

This required the coding of registry events5 and cursor functions6 into the LDTP framework.
1
http://www.jamesh.id.au/software/jhbuild/
2
http://www.0d.be
3
http://bugzilla.gnome.org/show_bug.cgi?id=349114
4
This was discussed extensively at GUADEC '06
5
http://bugzilla.gnome.org/show_bug.cgi?id=340935
6
http://bugzilla.gnome.org/show_bug.cgi?id=341391