mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-28 19:38:13 +00:00
e32ed2f501
--HG-- extra : transplant_source : %20%83%FE%ED1N%00Xg6D%A9%FC%1E%B1%7E%BD%14xQ |
||
---|---|---|
.. | ||
app | ||
genIPDLUnitTests.py | ||
ipdl.mk | ||
IPDLUnitTests.h | ||
IPDLUnitTests.template.cpp | ||
IPDLUnitTestSubprocess.cpp | ||
IPDLUnitTestSubprocess.h | ||
IPDLUnitTestThreadChild.cpp | ||
IPDLUnitTestThreadChild.h | ||
IPDLUnitTestTypes.h | ||
Makefile.in | ||
PTestArrays.ipdl | ||
PTestArraysSub.ipdl | ||
PTestCrashCleanup.ipdl | ||
PTestDesc.ipdl | ||
PTestDescSub.ipdl | ||
PTestDescSubsub.ipdl | ||
PTestLatency.ipdl | ||
PTestManyChildAllocs.ipdl | ||
PTestManyChildAllocsSub.ipdl | ||
PTestRPCErrorCleanup.ipdl | ||
PTestRPCRaces.ipdl | ||
PTestSanity.ipdl | ||
PTestShmem.ipdl | ||
PTestShutdown.ipdl | ||
PTestShutdownSub.ipdl | ||
PTestShutdownSubsub.ipdl | ||
README.txt | ||
TestArrays.cpp | ||
TestArrays.h | ||
TestCrashCleanup.cpp | ||
TestCrashCleanup.h | ||
TestDesc.cpp | ||
TestDesc.h | ||
TestLatency.cpp | ||
TestLatency.h | ||
TestManyChildAllocs.cpp | ||
TestManyChildAllocs.h | ||
TestRPCErrorCleanup.cpp | ||
TestRPCErrorCleanup.h | ||
TestRPCRaces.cpp | ||
TestRPCRaces.h | ||
TestSanity.cpp | ||
TestSanity.h | ||
TestShmem.cpp | ||
TestShmem.h | ||
TestShutdown.cpp | ||
TestShutdown.h |
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 make -C $OBJDIR/ipc/ipdl/test/cxx 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 make -C $OBJDIR/ipc/ipdl/test/cxx check If you want to launch only your test, run cd $OBJDIR/dist/bin ./run-mozilla.sh ./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.