Mobile/Fennec Mochitest old
- NOTE: these are the original instructions before we revamped the test system and packaging
Getting the Tests
Edit your mozconfig to contain the following lines:
ac_add_options --enable-tests ac_add_options --enable-mochitest
Get the source and build according to instructions.
Porting tests to N800
If following directions for running fennec on N800/N810 devices, also transfer the _tests and _profile directories to the device. From your objdir:
cd xulrunner tar chf tests.tar _tests/ _profile/
Transfer tar file to device via scp so that tests.tar is in the same directory as the xulrunner and fennec packages. In order for the tests to run properly on the mobile, some of the directory structure of the original tree must be preserved so after untarring all the mobile packages, run this on the device:
mv xulrunner bin mkdir xulrunner; mkdir xulrunner/dist mv bin xulrunner/dist/bin mv _tests xulrunner/_tests
Running the tests
Run the tests from the objdir with:
cd xulrunner/_tests/testing/mochitest python runtests.py --appname=<fennec executable>
where fennec executable is the absolute path to the fennec executable, /root/fennec/fennec, e.g. Additional arguments like individual test files can be specified, general Mochitest instructions can be found here [1].
note: The tests are flakey on mobile devices, so use the --test-path, --autorun, and --log-file options.
note: In order for the tests to run on the device successfully, we need to run them one directory at a time. We have a script [run_test_chunked.py] (download and copy to the _tests/testing/mochitest directory, run it with python run_test_chunked.py) which will do this and stitch the logs up for you when you are all done.
Adding tests
Add a directory named "tests" to the component. In the Makefile.in for the tests directory add a _TEST_FILES section with a list of the files in this directory needed to run the mochitest (the mochitest html file itself and any helper files). Then add this line to the bottom of the Makefile.in:
if test is in central code:
libs:: $(_TEST_FILES) $(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)
if test is in mobile:
libs:: $(_TEST_FILES) $(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/../xulrunner/_tests/testing/mochitest/tests/$(relativesrcdir)
When you build, the tests will be added to the xulrunner application's mochitest set.