Cppunit Tests


Cppunit tests are headless Gecko C++ unit tests. You can run Cppunit tests on B2G; in this article we will look at how to do so. Currently, these are mainly tested on the emulator, but theoretically , it should run on devices as well.

Note: In this article $B2G_HOME refers to the cloned B2G repository.

The Hard Way

There isn't currently much command to run the cpp unit tests, so we're stuck running them the "hard way".


  • You need to build B2G for the target you're testing (see: Building and installing Firefox OS). Currently, only emulator builds are supported, though other devices may also work.
  • You need to install some Python packages, either in a virtualenv or otherwise:
    cd $GECKO_DIR/testing/mozbase
    python setup_development.py
    cd $GECKO_DIR/testing/marionette/client
    python setup.py develop
  • Either make sure that adb is on your path or specify it with --adbpath (on Linux it is found at $B2G_HOME/out/host/linux-x86/bin/adb.)
  • Have a local copy of Busybox (this isn't strictly necessary but greatly reduces the required setup time).

Running the tests

You can then run xpcshell tests by first starting on an emulator and then executing the following commands:

cd $B2G_HOME/objdir-gecko
make package-tests
cd dist/test-stage/cppunittests
python remotecppunittests.py --xre-path $B2G_HOME/objdir-gecko/dist/bin --adbpath $ADB_PATH --dm_trans=adb --addEnv LD_LIBRARY_PATH=/vendor/lib:/system/lib:/system/b2g <test1> <test2> ...