gecko-dev/ipc/ipdl/test/cxx
Chris Jones e32ed2f501 Test for bug 539856.
--HG--
extra : transplant_source : %20%83%FE%ED1N%00Xg6D%A9%FC%1E%B1%7E%BD%14xQ
2010-01-14 23:25:56 -06:00
..
app bug 526397: fix up command line init. no r=, minor 2009-11-03 23:12:18 -06:00
genIPDLUnitTests.py fix some leaks found by valgrind. r=trivial 2009-12-04 18:15:44 -06:00
ipdl.mk Test for bug 538586. 2010-01-12 00:14:31 -06:00
IPDLUnitTests.h bug 535298: IPDL unit test for use-after-free crashes after RPC errors. r=test-only 2009-12-17 18:12:01 -06:00
IPDLUnitTests.template.cpp bug 535298: IPDL unit test for use-after-free crashes after RPC errors. r=test-only 2009-12-17 18:12:01 -06:00
IPDLUnitTestSubprocess.cpp
IPDLUnitTestSubprocess.h
IPDLUnitTestThreadChild.cpp bug 526626: band-aids for shutdown assertions 2009-11-09 16:56:55 -06:00
IPDLUnitTestThreadChild.h bug 523761: give top-level IPDL actors handles to each others' processes. r=bent 2009-10-27 16:52:37 -05:00
IPDLUnitTestTypes.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
Makefile.in Test for bug 538586. 2010-01-12 00:14:31 -06:00
PTestArrays.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestArraysSub.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestCrashCleanup.ipdl Test for bug 538586. 2010-01-12 00:14:31 -06:00
PTestDesc.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestDescSub.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestDescSubsub.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestLatency.ipdl Don't run TestLatency if the timing resolution is too low and use the new TimeDuration::ToSecondsSigDigits() method to display durations to humans. No r=, test only. 2010-01-11 23:46:17 -06:00
PTestManyChildAllocs.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestManyChildAllocsSub.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestRPCErrorCleanup.ipdl bug 535298: IPDL unit test for use-after-free crashes after RPC errors. r=test-only 2009-12-17 18:12:01 -06:00
PTestRPCRaces.ipdl bug 533587: process RPC in-calls deferred because of races until "later". in-person r=bent 2009-12-09 17:15:01 -06:00
PTestSanity.ipdl bug 525342: make IPDL dtors part of the destructed actor's protocol instead of the manager's. r=bsmedberg 2009-12-03 02:16:14 -06:00
PTestShmem.ipdl bug 523175: follow-up to 82549dbf71d8, fully enables the C++/IPDL side of Shmem and adds unit tests. r=bent 2009-12-04 12:45:21 -06:00
PTestShutdown.ipdl bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
PTestShutdownSub.ipdl Test for bug 539856. 2010-01-14 23:25:56 -06:00
PTestShutdownSubsub.ipdl Test for bug 539856. 2010-01-14 23:25:56 -06:00
README.txt bug 518425: C++ unit test for bug 2009-10-06 13:05:47 -05:00
TestArrays.cpp bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestArrays.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestCrashCleanup.cpp Test for bug 538586. 2010-01-12 00:14:31 -06:00
TestCrashCleanup.h Test for bug 538586. 2010-01-12 00:14:31 -06:00
TestDesc.cpp bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestDesc.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestLatency.cpp Don't run TestLatency if the timing resolution is too low and use the new TimeDuration::ToSecondsSigDigits() method to display durations to humans. No r=, test only. 2010-01-11 23:46:17 -06:00
TestLatency.h Don't run TestLatency if the timing resolution is too low and use the new TimeDuration::ToSecondsSigDigits() method to display durations to humans. No r=, test only. 2010-01-11 23:46:17 -06:00
TestManyChildAllocs.cpp bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestManyChildAllocs.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestRPCErrorCleanup.cpp Test for bug 538586. 2010-01-12 00:14:31 -06:00
TestRPCErrorCleanup.h bug 535298: IPDL unit test for use-after-free crashes after RPC errors. r=test-only 2009-12-17 18:12:01 -06:00
TestRPCRaces.cpp bug 533587: process RPC in-calls deferred because of races until "later". in-person r=bent 2009-12-09 17:15:01 -06:00
TestRPCRaces.h bug 533587: process RPC in-calls deferred because of races until "later". in-person r=bent 2009-12-09 17:15:01 -06:00
TestSanity.cpp bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestSanity.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
TestShmem.cpp bug 523175: follow-up to 82549dbf71d8, fully enables the C++/IPDL side of Shmem and adds unit tests. r=bent 2009-12-04 12:45:21 -06:00
TestShmem.h bug 523175: follow-up to 82549dbf71d8, fully enables the C++/IPDL side of Shmem and adds unit tests. r=bent 2009-12-04 12:45:21 -06:00
TestShutdown.cpp Test for bug 539856. 2010-01-14 23:25:56 -06:00
TestShutdown.h bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00

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.