gecko-dev/ipc/ipdl/test/cxx
Kan-Ru Chen 6c2259f717 Bug 1358697 - Don't capture the Promise raw pointer and make static analysis happy. r=billm
MozReview-Commit-ID: 7lMVMcNBDHJ

--HG--
extra : rebase_source : 3526408144e9d0486e0c212151682bc98275c8e5
2017-04-22 10:38:52 +08:00
..
app Bug 1332523 - Make the Bootstrap API entry point the same for both dependent and standalone linkage. r=bsmedberg 2017-01-13 07:29:56 +09:00
IPDLUnitTestProcessChild.cpp Bug 1337914 - Add dummy argument to IPDLUnitTestProcessChild::Init. r=kanru 2017-02-08 12:26:20 -08:00
IPDLUnitTestProcessChild.h Bug 1337914 - Add dummy argument to IPDLUnitTestProcessChild::Init. r=kanru 2017-02-08 12:26:20 -08:00
IPDLUnitTestSubprocess.cpp
IPDLUnitTestSubprocess.h
IPDLUnitTestTypes.h
IPDLUnitTestUtils.h Bug 1262671 - void** -> PickleIterator (r=froydnj) 2016-05-27 09:57:38 -07:00
IPDLUnitTests.h Bug 1296189 - Replace NS_RUNTIMEABORT("some string literal message") with MOZ_CRASH(). r=froydnj 2016-12-02 13:46:53 -08:00
IPDLUnitTests.template.cpp Bug 1296189 - Replace NS_RUNTIMEABORT("some string literal message") with MOZ_CRASH(). r=froydnj 2016-12-02 13:46:53 -08:00
Makefile.in Bug 1316755, part 1 - Remove IPDL unit tests that use bridges, opens, and spawns. r=billm 2017-01-26 16:30:18 -08:00
PTestActorPunning.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestActorPunningPunned.ipdl
PTestActorPunningSub.ipdl
PTestAsyncReturns.ipdl Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang 2017-03-16 17:36:15 +08:00
PTestBadActor.ipdl
PTestBadActorSub.ipdl
PTestCancel.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
PTestCrashCleanup.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestDataStructures.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestDataStructuresCommon.ipdlh
PTestDataStructuresSub.ipdl
PTestDemon.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
PTestDesc.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestDescSub.ipdl
PTestDescSubsub.ipdl
PTestEndpointBridgeMain.ipdl Bug 1316755, part 1 - Remove IPDL unit tests that use bridges, opens, and spawns. r=billm 2017-01-26 16:30:18 -08:00
PTestEndpointBridgeMainSub.ipdl
PTestEndpointBridgeSub.ipdl
PTestEndpointOpens.ipdl
PTestEndpointOpensOpened.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestFailedCtor.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestFailedCtorSub.ipdl
PTestFailedCtorSubsub.ipdl
PTestHandle.ipdl
PTestHangs.ipdl Bug 1316757, part 6 - Comment out various race-related state machines. r=billm 2016-11-23 14:58:49 -08:00
PTestHighestPrio.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
PTestIndirectProtocolParam.ipdlh
PTestIndirectProtocolParamFirst.ipdl
PTestIndirectProtocolParamManage.ipdl
PTestIndirectProtocolParamSecond.ipdl
PTestInterruptErrorCleanup.ipdl
PTestInterruptRaces.ipdl Bug 1316757, part 6 - Comment out various race-related state machines. r=billm 2016-11-23 14:58:49 -08:00
PTestInterruptShutdownRace.ipdl Bug 1316757, part 6 - Comment out various race-related state machines. r=billm 2016-11-23 14:58:49 -08:00
PTestJSON.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestLatency.ipdl Bug 1316757, part 6 - Comment out various race-related state machines. r=billm 2016-11-23 14:58:49 -08:00
PTestManyChildAllocs.ipdl
PTestManyChildAllocsSub.ipdl
PTestMultiMgrs.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestMultiMgrsBottom.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestMultiMgrsLeft.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestMultiMgrsRight.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestNestedLoops.ipdl Bug 1316757, part 6 - Comment out various race-related state machines. r=billm 2016-11-23 14:58:49 -08:00
PTestPriority.ipdl Bug 1306708 - Add prio() for message priority to IPDL (r=dvander) 2016-10-04 20:34:55 -07:00
PTestRPC.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
PTestRaceDeadlock.ipdl
PTestRaceDeferral.ipdl
PTestRacyInterruptReplies.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestRacyReentry.ipdl
PTestRacyUndefer.ipdl
PTestSanity.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestSelfManage.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestSelfManageRoot.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestShmem.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestShutdown.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestShutdownSub.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestShutdownSubsub.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestStackHooks.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestSyncError.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestSyncHang.ipdl Bug 1345977 - Add unused message to PTestSyncHang to prevent compiler warning. r=billm 2017-03-10 14:34:19 -08:00
PTestSyncWakeup.ipdl Bug 1316757, part 5 - Comment out simple uses of state machine from cxx/ unit tests. r=billm 2016-12-13 13:07:38 -08:00
PTestUrgency.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
PTestUrgentHangs.ipdl Bug 1306708 - Rename prio to nested in IPDL (r=dvander) 2016-10-04 20:34:54 -07:00
README.txt
TestActorPunning.cpp Bug 1319910 - Crash child, not parent, on FatalError in TestActorPunning and TestBadActor. r=billm 2016-11-23 13:40:04 -08:00
TestActorPunning.h Bug 1319910 - Crash child, not parent, on FatalError in TestActorPunning and TestBadActor. r=billm 2016-11-23 13:40:04 -08:00
TestAsyncReturns.cpp Bug 1358697 - Don't capture the Promise raw pointer and make static analysis happy. r=billm 2017-04-22 10:38:52 +08:00
TestAsyncReturns.h Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang 2017-03-16 17:36:15 +08:00
TestBadActor.cpp Bug 1319910 - Crash child, not parent, on FatalError in TestActorPunning and TestBadActor. r=billm 2016-11-23 13:40:04 -08:00
TestBadActor.h Bug 1319910 - Crash child, not parent, on FatalError in TestActorPunning and TestBadActor. r=billm 2016-11-23 13:40:04 -08:00
TestCancel.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestCancel.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestCrashCleanup.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestCrashCleanup.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDataStructures.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDataStructures.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDemon.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDemon.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDesc.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestDesc.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestEndpointBridgeMain.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestEndpointBridgeMain.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestEndpointOpens.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestEndpointOpens.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestFailedCtor.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestFailedCtor.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestHangs.cpp Bug 1316757, part 2 - Remove assertions involving state() from cxx/ unit tests. r=billm 2016-11-28 13:43:09 -08:00
TestHangs.h Bug 1320755 - Remove dependence of IPDL unit tests on state() method. r=dvander 2016-11-23 15:21:58 -08:00
TestHighestPrio.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestHighestPrio.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptErrorCleanup.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptErrorCleanup.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptRaces.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptRaces.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptShutdownRace.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestInterruptShutdownRace.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestJSON.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestJSON.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestLatency.cpp Bug 1316757, part 2 - Remove assertions involving state() from cxx/ unit tests. r=billm 2016-11-28 13:43:09 -08:00
TestLatency.h Bug 1320755 - Remove dependence of IPDL unit tests on state() method. r=dvander 2016-11-23 15:21:58 -08:00
TestManyChildAllocs.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestManyChildAllocs.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestMultiMgrs.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestMultiMgrs.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestNestedLoops.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestNestedLoops.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRPC.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRPC.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRaceDeadlock.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRaceDeadlock.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRaceDeferral.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRaceDeferral.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyInterruptReplies.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyInterruptReplies.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyReentry.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyReentry.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyUndefer.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestRacyUndefer.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSanity.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSanity.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSelfManageRoot.cpp
TestSelfManageRoot.h
TestShmem.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestShmem.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestShutdown.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestShutdown.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestStackHooks.cpp Bug 1316757, part 2 - Remove assertions involving state() from cxx/ unit tests. r=billm 2016-11-28 13:43:09 -08:00
TestStackHooks.h Bug 1320755 - Remove dependence of IPDL unit tests on state() method. r=dvander 2016-11-23 15:21:58 -08:00
TestSyncError.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSyncError.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSyncHang.cpp Bug 1345977 - Add unused message to PTestSyncHang to prevent compiler warning. r=billm 2017-03-10 14:34:19 -08:00
TestSyncHang.h Bug 1345977 - Add unused message to PTestSyncHang to prevent compiler warning. r=billm 2017-03-10 14:34:19 -08:00
TestSyncWakeup.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestSyncWakeup.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestUrgency.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestUrgency.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestUrgentHangs.cpp Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
TestUrgentHangs.h Bug 1314254 - Add mozilla::ipc::IPCResult type and convert IPDL handlers to use new return type. r=billm 2016-11-15 04:26:00 +01:00
genIPDLUnitTests.py
moz.build Bug 1313200 - Allow IPC messages to async return MozPromises. r=billm,jwwang 2017-03-16 17:36:15 +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.