IPDL/Unit test generation: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
(Update to reflect that make script must run from it's folder, requires mozmake as Windows msys make is not supported, and that run-mozilla.sh no longer exists. New process confirmed to work on Windows.)
 
Line 39: Line 39:
If all goes well, running
If all goes well, running


   make -C $OBJDIR/ipc/ipdl/test/cxx
   cd $OBJDIR/ipc/ipdl/test/cxx
  mozmake
 


will update the file IPDLUnitTests.cpp (the test launcher), and your
will update the file IPDLUnitTests.cpp (the test launcher), and your
Line 45: Line 47:




You can launch your new test by invoking
You can launch your new test by invoking (from the $OBJDIR/ipc/ipdl/test/cxx folder)
 
  mozmake check
  make -C $OBJDIR/ipc/ipdl/test/cxx check


If you want to launch only your test, run
If you want to launch only your test, run


   cd $OBJDIR/dist/bin
   cd $OBJDIR/dist/bin
   ./run-mozilla.sh ./ipdlunittest TestFoo
   ./ipdlunittest TestFoo





Latest revision as of 11:05, 12 September 2018

bug 506303

cjones will update when possible.

robin_bb to implement.


README

Contents of ipc/ipdl/test/cxx/README.txt:

To add a new IPDL C++ unit test, you need to create (at least) the following files (for a test "TestFoo"):

 - PTestFoo.ipdl, specifying the top-level protocol used for the test
 - TestFoo.h, declaring the top-level parent/child actors used for
   the test
 - TestFoo.cpp, defining the top-level actors
 - (make sure all are in the namespace mozilla::_ipdltest)

Next

 - add PTestFoo.ipdl to ipdl.mk
 - append TestFoo to the variable IPDLTESTS in Makefile.in

The IPDL test harness will try to execute |testFooParentActor->Main()| to kick off your test. Make sure you define |TestFooParent::Main()|.

If your test passes its criteria, please call |MOZ_IPDL_TESTPASS("msg")| and "exit gracefully".

If your tests fails, please call |MOZ_IPDL_TESTFAIL("msg")| and "exit ungracefully", preferably by abort()ing.


If all goes well, running

 cd $OBJDIR/ipc/ipdl/test/cxx
 mozmake


will update the file IPDLUnitTests.cpp (the test launcher), and your new code will be built automatically.


You can launch your new test by invoking (from the $OBJDIR/ipc/ipdl/test/cxx folder)

 mozmake check

If you want to launch only your test, run

 cd $OBJDIR/dist/bin
 ./ipdlunittest TestFoo


For a bare-bones example of adding a test, take a look at PTestSanity.ipdl, TestSanity.h, TestSanity.cpp, and how "TestSanity" is included in ipdl.mk and Makefile.in.

Notes

For IPDL tests to be built, you need --enable-ipdl-tests in your build options (mozconfig).