Mobile/Fennec Xpcshell

From MozillaWiki
Jump to: navigation, search

Getting the Tests

Edit your mozconfig to contain the following lines:

ac_add_options --enable-tests

Get the source and build according to instructions.

to learn more about the tests, visit the [MDC Guide]

Porting tests to N800

With changes from bug 421611 we have made this process much simpler.

If following directions for running fennec on N800/N810 devices, you will need to package up the tests from the xulrunner directory and the test harness from the source tree:

cd $(xul_objdir)
make package-tests
cd dist
bunzip2 xulrunner-*tests.tar.bz2
scp xulrunner-*tests.tar root@<deviceip>:/media/mmc1

On the device, untar the xulrunner-*tests.tar in your test directory alongside the fennec-*.tar:

cd /media/mmc1
mkdir unittests
mv fennec-*.tar unittests
mv xulrunner-*tests.tar unittests
cd unittests
tar -xvf fennec-*.tar
tar -xvf xulrunner-*tests.tar

In addition (for xpcshell only), we need to move some of the test binaries into the fennec tree:

cd /media/mmc1/unittest
cp bin/* fennec/xulrunner
cp bin/components/* fennec/components
cp bin/plugins/* fennec/xulrunner/plugins

Running the tests

The tests are normally ran via "make check" from the root of the objdir. In this case, we are running the tests on the device and there is no source tree.

Make check runs [runxpcshelltests.py]. We can run this on the Maemo platform like this:

cd /media/mmc1/unittests
python -u xpcshell/runxpcshelltests.py --xre-path=/media/mmc1/unittests/fennec/xulrunner --manifest=/media/mmc1/unittests/xpcshell/tests/all-test-dirs.list /media/mmc1/unittests/fennec/xulrunner/xpcshell --keep-going

We have created a framework to wrap the unittests maemkit which makes this a little bit easier. Keeping the above example, you need to copy the maemkit files to /media/mmc1/maemkit.

Now Edit the /media/mmc1/maemkit/maemkit.cfg file:

[general]
xre-path = /media/mmc1/unittests/fennec/xulrunner
appname = /media/mmc1/unittests/fennec/fennec
total-clients = 1
client-number = 1
logdir = logs
ostype = linux

[xpcshell]
testroot = /media/mmc1/unittests/xpcshell/tests
utility-path = /media/mmc1/unittests/xpcshell
manifest = /media/mmc1/unittests/xpcshell/tests/all-test-dirs.list
log-file = log_xpcshell.txt


Now execute the tests:

cd /media/mmc1/maemkit
python maemkit-chunked.py --testtype=xpcshell

You can view the results in /media/mmc1/maemkit/log_xpcshell.txt

TODO's

I will start tracking test failures/bugs [here]. This doesn't line up with what is below as there is data from fennec desktop and fennec maemo which adds to the mix.