gecko-dev/ipc/ipdl/test/cxx
Bill McCloskey c04f106018 Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
..
app Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps 2014-10-30 13:06:12 +09:00
IPDLUnitTestProcessChild.cpp Bug 767775 - Viciously and loudly kill any process sending messages that race with RPC __delete__ messages. Test by bsmedberg. r=cjones 2012-07-13 13:53:00 -04:00
IPDLUnitTestProcessChild.h Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTestSubprocess.cpp Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTestSubprocess.h Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTestTypes.h Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTestUtils.h Test for bug 775777. r=bent 2012-09-20 12:30:53 -07:00
IPDLUnitTests.h Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTests.template.cpp Bug 1050604 - Get IPDL tests passing again (r=bent) 2014-08-20 12:49:11 -07:00
Makefile.in Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
PTestActorPunning.ipdl Bug 947575 - Fix IPDL unit tests on windows, r=bsmedberg. 2013-11-21 16:51:26 -08:00
PTestActorPunningPunned.ipdl Test for bug 775777. r=bent 2012-09-20 12:30:53 -07:00
PTestActorPunningSub.ipdl Test for bug 775777. r=bent 2012-09-20 12:30:53 -07:00
PTestBadActor.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestBadActorSub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestBridgeMain.ipdl Bug 930350 - Fix --enable-ipdl-tests build. r=gps. DONTBUILD because NPOTB 2013-10-25 08:39:45 +09:00
PTestBridgeMainSub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestBridgeSub.ipdl Bug 947575 - Fix IPDL unit tests on windows, r=bsmedberg. 2013-11-21 16:51:26 -08:00
PTestCrashCleanup.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestDataStructures.ipdl Bug 918651 - part 8 - remove redundant includes from IPDL files; r=ehsan 2013-10-18 13:34:08 -04:00
PTestDataStructuresCommon.ipdlh Bug 918651 - part 5 - qualify all IPDL using statements with required header; r=ehsan 2013-10-01 15:25:07 -04:00
PTestDataStructuresSub.ipdl Tests for bug 521898. 2012-06-08 17:25:36 -07:00
PTestDesc.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestDescSub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestDescSubsub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestFailedCtor.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestFailedCtorSub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestFailedCtorSubsub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestHandle.ipdl Tests for bug 560000 2010-05-22 14:35:40 -05:00
PTestHangs.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestHighestPrio.ipdl Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
PTestIndirectProtocolParam.ipdlh Bug 783451 - Add ipdl testcases. r=bent DONTBUILD 2013-06-13 13:53:38 +08:00
PTestIndirectProtocolParamFirst.ipdl Bug 783451 - Add ipdl testcases. r=bent DONTBUILD 2013-06-13 13:53:38 +08:00
PTestIndirectProtocolParamManage.ipdl Bug 783451 - Add ipdl testcases. r=bent DONTBUILD 2013-06-13 13:53:38 +08:00
PTestIndirectProtocolParamSecond.ipdl Bug 783451 - Add ipdl testcases. r=bent DONTBUILD 2013-06-13 13:53:38 +08:00
PTestInterruptErrorCleanup.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestInterruptRaces.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestInterruptShutdownRace.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestJSON.ipdl Bug 918651 - part 5 - qualify all IPDL using statements with required header; r=ehsan 2013-10-01 15:25:07 -04:00
PTestLatency.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestManyChildAllocs.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestManyChildAllocsSub.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestMultiMgrs.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestMultiMgrsBottom.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestMultiMgrsLeft.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestMultiMgrsRight.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestNestedLoops.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestOpens.ipdl Bug 598869: Test that using actors on non-main threads works 2011-06-03 13:33:56 -05:00
PTestOpensOpened.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestRPC.ipdl Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
PTestRaceDeferral.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestRacyInterruptReplies.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestRacyReentry.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestRacyUndefer.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestSanity.ipdl Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg 2012-08-22 11:56:38 -04:00
PTestSelfManage.ipdl Bug 525181, part 3: Turn on "soft" state checking, NS_WARNING()ing on bad transitions. Fix tests. r=bent 2010-07-15 14:27:43 -05:00
PTestSelfManageRoot.ipdl Bug 559898: Allow (sub-)protocols to manage themselves. r=bsmedberg 2010-04-26 20:11:48 -05:00
PTestShmem.ipdl Tests for bug 598866. 2010-11-05 02:17:07 -05:00
PTestShutdown.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestShutdownSub.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestShutdownSubsub.ipdl Bug 541131: Include IPDL headers as |include protocol PFoo;|. r=cjones 2010-04-26 20:11:46 -05:00
PTestStackHooks.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestSyncError.ipdl Test for bug 671189. 2011-07-13 22:43:43 -07:00
PTestSyncHang.ipdl Bug 535077 - Fixes hang caused by failure to execute sync launch r=cjones a=blocking2.0 2010-08-10 14:14:10 -07:00
PTestSyncWakeup.ipdl Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
PTestSysVShmem.ipdl Tests for bug 598866. 2010-11-05 02:17:07 -05:00
PTestUrgency.ipdl Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
PTestUrgentHangs.ipdl Bug 1110938 - Add timeout for CPOWs (default to 0) (r=dvander) 2014-12-18 17:35:44 -08:00
README.txt Bug 699319 - Part 3: Update test infrastructure to run tests in either threaded or process mode. r=cjones 2011-11-30 08:27:22 -08:00
TestActorPunning.cpp Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestActorPunning.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestBadActor.cpp Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestBadActor.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestBridgeMain.cpp Bug 771765 - Support template content process, part 9: allocating a toplevel protocol should return itself. r=dzbarsky 2013-09-26 12:19:09 +08:00
TestBridgeMain.h Bug 771765 - Support template content process, part 9: allocating a toplevel protocol should return itself. r=dzbarsky 2013-09-26 12:19:09 +08:00
TestCrashCleanup.cpp Bug 784739 - Switch from NULL to nullptr in ipc/. r=ehsan 2013-08-23 15:51:44 -04:00
TestCrashCleanup.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestDataStructures.cpp Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestDataStructures.h Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestDesc.cpp Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestDesc.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestFailedCtor.cpp Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
TestFailedCtor.h Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
TestHangs.cpp Bug 679240 - Split total channel timeout into two discrete wait periods. Avoids aborting children after system sleep. r=bsmedberg 2012-01-06 12:17:03 -06:00
TestHangs.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestHighestPrio.cpp Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestHighestPrio.h Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestInterruptErrorCleanup.cpp Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
TestInterruptErrorCleanup.h Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
TestInterruptRaces.cpp Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestInterruptRaces.h Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestInterruptShutdownRace.cpp Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestInterruptShutdownRace.h Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestJSON.cpp Bug 823422: Make ipdl C++ unit tests compile again. r=jlebar 2012-12-20 11:54:00 -08:00
TestJSON.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestLatency.cpp Bug 636063, part 3: Honor compression requests when queuing messages. r=bent 2012-08-25 01:25:08 -07:00
TestLatency.h Bug 636063, part 3: Honor compression requests when queuing messages. r=bent 2012-08-25 01:25:08 -07:00
TestManyChildAllocs.cpp Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestManyChildAllocs.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestMultiMgrs.cpp Bug 559953: Add a |const nsTArray<Subactor*>& ManagedFoo();| accessor. r=bent 2010-04-26 20:11:47 -05:00
TestMultiMgrs.h Bug 1006128 - Fix IPDL unit tests after bug 960774, r=bsmedberg. 2014-05-08 14:49:41 -07:00
TestNestedLoops.cpp Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
TestNestedLoops.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestOpens.cpp Bug 1050604 - Get IPDL tests passing again (r=bent) 2014-08-20 12:49:11 -07:00
TestOpens.h Bug 771765 - Support template content process, part 9: allocating a toplevel protocol should return itself. r=dzbarsky 2013-09-26 12:19:09 +08:00
TestRPC.cpp Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestRPC.h Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestRaceDeferral.cpp Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestRaceDeferral.h Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestRacyInterruptReplies.cpp Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestRacyInterruptReplies.h Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestRacyReentry.cpp Test for bug 592002. a=test 2010-09-01 13:01:50 -05:00
TestRacyReentry.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestRacyUndefer.cpp Test for bug 648935. 2011-05-04 15:55:54 -05:00
TestRacyUndefer.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestSanity.cpp Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg 2012-08-22 11:56:38 -04:00
TestSanity.h Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg 2012-08-22 11:56:38 -04:00
TestSelfManageRoot.cpp Bug 559898: Allow (sub-)protocols to manage themselves. r=bsmedberg 2010-04-26 20:11:48 -05:00
TestSelfManageRoot.h Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestShmem.cpp Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestShmem.h Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestShutdown.cpp Bug 562424: Switch IPDL interfaces to infallible TArray. r=bent a=blocking 2010-11-08 20:49:00 -06:00
TestShutdown.h Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestStackHooks.cpp Combine AsyncChannel, SyncChannel, and RPCChannel into one class (bug 901789, r=cjones,bent). 2013-09-27 18:42:08 -07:00
TestStackHooks.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestSyncError.cpp Test for bug 671189. 2011-07-13 22:43:43 -07:00
TestSyncError.h Bug 1124933 - Include crash reason when intentionally crashing content process (r=bent) 2015-02-03 09:09:27 -08:00
TestSyncHang.cpp Bug 535077 - Fixes hang caused by failure to execute sync launch r=cjones a=blocking2.0 2010-08-10 14:14:10 -07:00
TestSyncHang.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestSyncWakeup.cpp No bug: Test RPC round-trip times and warn before sleep()ing. no r=, test only 2010-02-04 21:40:42 -06:00
TestSyncWakeup.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05:00
TestSysVShmem.cpp Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestSysVShmem.h Bug 1122956 - Convert IPDL tests to take move references (r=bent) 2015-01-20 15:42:54 -08:00
TestUrgency.cpp Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestUrgency.h Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02:00
TestUrgentHangs.cpp Bug 1116640, fix TestUrgentHangs on windows, r=billm. Not tested on current infra so DONTBUILD 2015-01-05 10:53:36 -08:00
TestUrgentHangs.h Bug 1110938 - Add timeout for CPOWs (default to 0) (r=dvander) 2014-12-18 17:35:44 -08:00
genIPDLUnitTests.py Combine AsyncChannel, SyncChannel, and RPCChannel into one class (bug 901789, r=cjones,bent). 2013-09-27 18:42:08 -07:00
moz.build Bug 1110938 - Add timeout for CPOWs (default to 0) (r=dvander) 2014-12-18 17:35:44 -08:00

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

You must define three methods in your |TestFooParent| class:

  - static methods |bool RunTestInProcesses()| and
    |bool RunTestInThreads()|.  These methods control whether
    to execute the test using actors in separate processes and
    threads respectively.  Generally, both should return true.

  - an instance method |void Main()|.  The test harness wil first
    initialize the processes or threads, create and open both actors,
    and then kick off the test using |Main()|.  Make sure you define
    it.

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 one of

  make -C $OBJDIR/ipc/ipdl/test/cxx check-proc     (test process-based tests)
  make -C $OBJDIR/ipc/ipdl/test/cxx check-threads  (test thread-based tests)
  make -C $OBJDIR/ipc/ipdl/test/cxx check          (tests both)

If you want to launch only your test, run

  cd $OBJDIR/dist/bin
  ./run-mozilla.sh ./ipdlunittest TestFoo          (test in two processes, if appl.)
  ./run-mozilla.sh ./ipdlunittest thread:TestFoo   (test in two threads, if appl.)


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.