gecko-dev/ipc/ipdl/test/cxx
Mike Hommey 47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09: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
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 784739 - Switch from NULL to nullptr in ipc/. r=ehsan 2013-08-23 15:51:44 -04:00
TestDataStructures.h Bug 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04: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 885804: IPDL unit test changes r=benjamin 2013-07-08 11:48:40 -04:00
TestFailedCtor.h Bug 784739 - Switch from NULL to nullptr in ipc/. r=ehsan 2013-08-23 15:51:44 -04: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 Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07:00
TestInterruptErrorCleanup.h Rename IPDL's RPC to Interrupt (bug 910020, r=bent). 2013-09-30 17:27:45 -07: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 Tests for bug 598866. 2010-11-05 02:17:07 -05:00
TestShmem.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05: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 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05: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 Tests for bug 598866. 2010-11-05 02:17:07 -05:00
TestSysVShmem.h Bug 702877 - Replace NS_OVERRIDE with MOZ_OVERRIDE. r=ehsan 2012-07-06 13:15:45 -05: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
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 Backed out changeset e56bf4ea89fb (bug 1049879) for bustage in emulator debug builds on a CLOSED TREE 2014-10-08 08:03:57 +02: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.