Confirmed users
3,376
edits
No edit summary |
|||
| (35 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
<pre> | <pre> | ||
ac_add_options --enable-tests | ac_add_options --enable-tests | ||
</pre> | </pre> | ||
Get the source and build according to [[Mobile/Build/Fennec|instructions]]. | Get the source and build according to [[Mobile/Build/Fennec|instructions]]. | ||
to learn more about the tests, visit the [[https://developer.mozilla.org/en/Writing_xpcshell-based_unit_tests MDC Guide]] | |||
==Porting tests to N800== | ==Porting tests to N800== | ||
If following [[Mobile/Build/Fennec#Running Fennec on Maemo|directions]] for running fennec on N800/N810 devices, you will need to package up the tests from the xulrunner directory: | |||
With changes from {{bug|421611}} we have made this process much simpler. | |||
If following [[Mobile/Build/Fennec#Running Fennec on Maemo|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: | |||
<pre> | <pre> | ||
cd $( | cd $(xul_objdir) | ||
make package | make package-tests | ||
cd dist | cd dist | ||
bunzip2 xulrunner*.bz2 | bunzip2 xulrunner-*tests.tar.bz2 | ||
scp xulrunner-*tests.tar root@<deviceip>:/media/mmc1 | |||
</pre> | </pre> | ||
On the device, untar the xulrunner-*tests.tar in your test directory alongside the fennec-*.tar: | |||
<pre> | <pre> | ||
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 | |||
</pre> | </pre> | ||
In addition (for xpcshell only), we need to move some of the test binaries into the fennec tree: | |||
<pre> | |||
cd /media/mmc1/unittest | |||
cp bin/* fennec/xulrunner | |||
cp bin/components/* fennec/components | |||
cp bin/plugins/* fennec/xulrunner/plugins | |||
</pre> | |||
==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 [[http://mxr.mozilla.org/mozilla-central/source/testing/xpcshell/runxpcshelltests.py runxpcshelltests.py]]. We can run this on the Maemo platform like this: | |||
<pre> | <pre> | ||
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 | |||
</pre> | </pre> | ||
We have created a framework to wrap the unittests [[Mobile/Fennec_Automation|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: | |||
<pre> | <pre> | ||
[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 | |||
</pre> | </pre> | ||
Now execute the tests: | |||
<pre> | |||
cd /media/mmc1/maemkit | |||
python maemkit-chunked.py --testtype=xpcshell | |||
</pre> | |||
You can view the results in /media/mmc1/maemkit/log_xpcshell.txt | |||
== TODO's == | |||
I will start tracking test failures/bugs [[http://people.mozilla.com/~jmaher/mochitest.htm 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. | |||