gecko-dev/ipc/ipdl/test/cxx
Bill McCloskey 87cc880767 Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
..
app Bug 1207030 - Enable -Wshadow flag in more directories that have no -Wshadow warnings. r=glandium 2015-09-22 21:39:03 -07:00
IPDLUnitTestProcessChild.cpp Bug 1149971 Part 1: Follow-up to bug 1119878 to fix broken IPDL tests. r=dvander 2015-04-01 16:44:48 +01:00
IPDLUnitTestProcessChild.h Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
IPDLUnitTestSubprocess.cpp
IPDLUnitTestSubprocess.h
IPDLUnitTestTypes.h
IPDLUnitTestUtils.h
IPDLUnitTests.h Bug 1119878 Part 2: Change IPC code to hold ProcessID instead of ProcessHandle. r=billm, r=dvander, r=aklotz, r=cpearce 2015-04-01 09:40:35 +01:00
IPDLUnitTests.template.cpp Bug 1149971 Part 1: Follow-up to bug 1119878 to fix broken IPDL tests. r=dvander 2015-04-01 16:44:48 +01:00
Makefile.in Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestActorPunning.ipdl Bug 947575 - Fix IPDL unit tests on windows, r=bsmedberg. 2013-11-21 16:51:26 -08:00
PTestActorPunningPunned.ipdl
PTestActorPunningSub.ipdl
PTestBadActor.ipdl
PTestBadActorSub.ipdl
PTestBridgeMain.ipdl Bug 1133748 - Fix ipdl code for bridged protocols that are also opened. r=billm. 2015-02-09 21:54:12 +01:00
PTestBridgeMainSub.ipdl
PTestBridgeSub.ipdl Bug 947575 - Fix IPDL unit tests on windows, r=bsmedberg. 2013-11-21 16:51:26 -08:00
PTestCancel.ipdl Bug 1177013 - CancelCurrentTransaction IPC support (r=dvander) 2015-07-06 19:58:44 -07:00
PTestCrashCleanup.ipdl
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
PTestDesc.ipdl
PTestDescSub.ipdl
PTestDescSubsub.ipdl
PTestEndpointBridgeMain.ipdl Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestEndpointBridgeMainSub.ipdl Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestEndpointBridgeSub.ipdl Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestEndpointOpens.ipdl Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestEndpointOpensOpened.ipdl Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
PTestFailedCtor.ipdl
PTestFailedCtorSub.ipdl
PTestFailedCtorSubsub.ipdl
PTestHandle.ipdl
PTestHangs.ipdl
PTestHighestPrio.ipdl Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
PTestIndirectProtocolParam.ipdlh
PTestIndirectProtocolParamFirst.ipdl
PTestIndirectProtocolParamManage.ipdl
PTestIndirectProtocolParamSecond.ipdl
PTestInterruptErrorCleanup.ipdl
PTestInterruptRaces.ipdl
PTestInterruptShutdownRace.ipdl
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
PTestManyChildAllocs.ipdl
PTestManyChildAllocsSub.ipdl
PTestMultiMgrs.ipdl
PTestMultiMgrsBottom.ipdl
PTestMultiMgrsLeft.ipdl
PTestMultiMgrsRight.ipdl
PTestNestedLoops.ipdl
PTestOpens.ipdl
PTestOpensOpened.ipdl
PTestRPC.ipdl Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
PTestRaceDeadlock.ipdl Bug 1170231: Part 2 - Regression test for IPC race mediation deadlock; r=dvander 2015-06-07 22:08:56 -06:00
PTestRaceDeferral.ipdl
PTestRacyInterruptReplies.ipdl
PTestRacyReentry.ipdl
PTestRacyUndefer.ipdl
PTestSanity.ipdl
PTestSelfManage.ipdl
PTestSelfManageRoot.ipdl
PTestShmem.ipdl
PTestShutdown.ipdl
PTestShutdownSub.ipdl
PTestShutdownSubsub.ipdl
PTestStackHooks.ipdl
PTestSyncError.ipdl
PTestSyncHang.ipdl
PTestSyncWakeup.ipdl
PTestSysVShmem.ipdl
PTestUrgency.ipdl Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
PTestUrgentHangs.ipdl Bug 1128457 - Change handling of urgent messages during timeout (r=dvander) 2015-04-13 18:11:49 -07:00
README.txt
TestActorPunning.cpp
TestActorPunning.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestBadActor.cpp Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
TestBadActor.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestBridgeMain.cpp Bug 1128454 - Fix IPDL test (r=jimm) 2015-07-15 14:30:05 -07:00
TestBridgeMain.h Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
TestCancel.cpp Bug 1177013 - CancelCurrentTransaction IPC support (r=dvander) 2015-07-06 19:58:44 -07:00
TestCancel.h Bug 1177013 - CancelCurrentTransaction IPC support (r=dvander) 2015-07-06 19:58:44 -07:00
TestCrashCleanup.cpp
TestCrashCleanup.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestDataStructures.cpp Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
TestDataStructures.h Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
TestDesc.cpp
TestDesc.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestEndpointBridgeMain.cpp Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
TestEndpointBridgeMain.h Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
TestEndpointOpens.cpp Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
TestEndpointOpens.h Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
TestFailedCtor.cpp Bug 1149971 Part 1: Follow-up to bug 1119878 to fix broken IPDL tests. r=dvander 2015-04-01 16:44:48 +01:00
TestFailedCtor.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestHangs.cpp Bug 1149971 Part 1: Follow-up to bug 1119878 to fix broken IPDL tests. r=dvander 2015-04-01 16:44:48 +01:00
TestHangs.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04: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 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04: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 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestInterruptRaces.cpp
TestInterruptRaces.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestInterruptShutdownRace.cpp
TestInterruptShutdownRace.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestJSON.cpp
TestJSON.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestLatency.cpp
TestLatency.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestManyChildAllocs.cpp Bug 1217250 - Fix some IPDL tests that were broken by bug 1212027; r=froydnj 2015-10-21 20:44:34 -04:00
TestManyChildAllocs.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestMultiMgrs.cpp Bug 1226200: Don't assume a TCPSocket has only one managee (and rename LoneManagedOrNull) r=jdm 2015-12-22 10:14:23 -05:00
TestMultiMgrs.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestNestedLoops.cpp
TestNestedLoops.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestOpens.cpp Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -08:00
TestOpens.h Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
TestRPC.cpp Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
TestRPC.h Bug 1177013 - Fix IPDL tests for not allowing CPOWs during sync (r=dvander) 2015-07-06 19:58:45 -07:00
TestRaceDeadlock.cpp Bug 1170231: Part 2 - Regression test for IPC race mediation deadlock; r=dvander 2015-06-07 22:08:56 -06:00
TestRaceDeadlock.h Bug 1170231: Part 2 - Regression test for IPC race mediation deadlock; r=dvander 2015-06-07 22:08:56 -06:00
TestRaceDeferral.cpp
TestRaceDeferral.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestRacyInterruptReplies.cpp
TestRacyInterruptReplies.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestRacyReentry.cpp
TestRacyReentry.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestRacyUndefer.cpp
TestRacyUndefer.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestSanity.cpp
TestSanity.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestSelfManageRoot.cpp Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
TestSelfManageRoot.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -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 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestShutdown.cpp Bug 1212027 - part 7 - modify IPDL codegen to store sub-protocols in a hashtable rather than an array; r=jld,nical,cpearce,billm 2015-10-07 14:30:33 -04:00
TestShutdown.h Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent 2015-06-29 18:29:48 -04:00
TestStackHooks.cpp
TestStackHooks.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestSyncError.cpp
TestSyncError.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestSyncHang.cpp
TestSyncHang.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestSyncWakeup.cpp
TestSyncWakeup.h Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04: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 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04: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 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj 2015-03-21 12:28:04 -04:00
TestUrgentHangs.cpp Bug 1128457 - Change handling of urgent messages during timeout (r=dvander) 2015-04-13 18:11:49 -07:00
TestUrgentHangs.h Bug 1128457 - Change handling of urgent messages during timeout (r=dvander) 2015-04-13 18:11:49 -07:00
genIPDLUnitTests.py Bug 1149971 Part 1: Follow-up to bug 1119878 to fix broken IPDL tests. r=dvander 2015-04-01 16:44:48 +01:00
moz.build Bug 1223240 - Make it easier to set up top-level protocols (r=jld) 2015-12-23 12:29:39 -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.