Mobile/Fennec Xpcshell

< Mobile
Revision as of 14:35, 3 February 2009 by Jmaher (talk | contribs) (→‎TODO's)

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

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:

cp $(topsrcdir)/testing/xpcshell/* $(xul_objdir)/_tests/
cd $(xul_objdir)/_tests
tar -chf xpcshell.tar xpcshell/ xpcshell-simple/

Transfer tar file to device via scp and untar it.

NOTE: it would be nice if the build script (make) would copy the test harness from the source tree to the xulrunner directory.

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

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:

cp $(topsrcdir)/testing/xpcshell/* $(xul_objdir)/_tests/
cd $(xul_objdir)/_tests
tar -chf xpcshell.tar xpcshell/ xpcshell-simple/

Transfer tar file to device via scp and untar it.

NOTE: it would be nice if the build script (make) would copy the test harness from the source tree to the xulrunner directory.

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.

Inspecting the test_all.sh script in harness/xpcshell, you can run the test from the command line by doing this:

Run the tests from the directory where you unzipped them like so:

./run-mozilla.sh xpcshell  -f /media/mmc1/unittests/xpcshell/xpcshell/head.js  -f /media/mmc1/unittests/xpcshell/xpcshell-simple/test_update/unit/test_0051_general.js  -f /media/mmc1/unittests/xpcshell/xpcshell/tail.js  -f /media/mmc1/unittests/xpcshell/xpcshell/execute_test.js

This is a cumbersome process, and to make this reasonable, we have created [xpctest.py] to run the tests. This script needs to be edited to point to the xpcshell executable as well as the root of the test harness and test directories. It will iterate the tests and build up a list of test_ files to run tests against, then run the above command for you.

TODO's

NOTE: this runs 593 tests where there are 548 tests which run on Firefox (in release only, debug core dumps on assertions at test 223). The bulk of the difference is that on Fennec we appear to be running the "test_extensionmanager/unit/addons" directory where we don't do this on Firefox.

Of the 255 failures found, we have these issues:

72 - failures where test_extensionmanager/unit/addons is involved. Generates a:

  • ReferenceError: run_test is not defined

123 - related to topsrcdir/testing/xpcshell/head.js: do_import_script and do_get_file with these errors:

  • TypeError: environment.NATIVE_TOPSRCDIR is undefined
  • TypeError: scriptPath is undefined
  • ReferenceError: nsHttpServer is not defined
  • ReferenceError: Cc is not defined

16 - test_places/autocomplete has various errors. It appears to be related to Components.utils.import("resource://gre/modules/XPCOMUtils.jsm") or something that is not allowing Ci, gPages, and prefs to be defined.

4 - gPrefs depends on test_extensionmanager/Unit/head_extensionmanager.js#266 to have the path _tests/xpcshell-simple/test_extensionmanager


40 other failures to look into


more notes:

* when run on linux desktop from objdir, I set NATIVE_TOPSRCDIR AND TOPSRCDIR env variables and I get it down to 105 failures.  of which 72 are related to addons.