gecko/ipc/ipdl/test/cxx
2012-07-13 13:53:00 -04:00
..
app Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
genIPDLUnitTests.py 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
ipdl.mk 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.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
IPDLUnitTests.h Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
IPDLUnitTests.template.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
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
Makefile.in 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
PTestBadActor.ipdl 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
PTestBadActorSub.ipdl 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
PTestBlockChild.ipdl
PTestBridgeMain.ipdl Bug 564086, part r: Test IPDL |bridge| 2011-06-03 13:33:56 -05:00
PTestBridgeMainSub.ipdl Bug 564086, part r: Test IPDL |bridge| 2011-06-03 13:33:56 -05:00
PTestBridgeSub.ipdl Bug 564086, part r: Test IPDL |bridge| 2011-06-03 13:33:56 -05:00
PTestCrashCleanup.ipdl
PTestDataStructures.ipdl Bug 765734, part 0: Do the right thing here. r=bent 2012-07-12 05:51:57 -07:00
PTestDataStructuresCommon.ipdlh Bug 765734, part 0: Do the right thing here. r=bent 2012-07-12 05:51:57 -07:00
PTestDataStructuresSub.ipdl Tests for bug 521898. 2012-06-08 17:25:36 -07:00
PTestDesc.ipdl
PTestDescSub.ipdl
PTestDescSubsub.ipdl
PTestFailedCtor.ipdl Test for bug 640901. a=b 2011-03-25 12:56:17 -05:00
PTestFailedCtorSub.ipdl Test for bug 640901. a=b 2011-03-25 12:56:17 -05:00
PTestFailedCtorSubsub.ipdl Test for bug 640901. a=b 2011-03-25 12:56:17 -05:00
PTestHandle.ipdl
PTestHangs.ipdl
PTestJSON.ipdl
PTestLatency.ipdl
PTestManyChildAllocs.ipdl
PTestManyChildAllocsSub.ipdl
PTestMultiMgrs.ipdl
PTestMultiMgrsBottom.ipdl
PTestMultiMgrsLeft.ipdl
PTestMultiMgrsRight.ipdl
PTestNestedLoops.ipdl
PTestOpens.ipdl Bug 598869: Test that using actors on non-main threads works 2011-06-03 13:33:56 -05:00
PTestOpensOpened.ipdl Test for bug 763228. 2012-06-11 20:41:46 -07:00
PTestRaceDeferral.ipdl Test for bug 572134. a=b 2011-01-12 01:07:17 -06:00
PTestRacyReentry.ipdl
PTestRacyRPCReplies.ipdl
PTestRacyUndefer.ipdl Test for bug 648935. 2011-05-04 15:55:54 -05:00
PTestRPCErrorCleanup.ipdl
PTestRPCRaces.ipdl
PTestRPCShutdownRace.ipdl
PTestSanity.ipdl
PTestSelfManage.ipdl
PTestSelfManageRoot.ipdl
PTestShmem.ipdl Tests for bug 598866. 2010-11-05 02:17:07 -05:00
PTestShutdown.ipdl
PTestShutdownSub.ipdl
PTestShutdownSubsub.ipdl
PTestStackHooks.ipdl
PTestSyncError.ipdl Test for bug 671189. 2011-07-13 22:43:43 -07:00
PTestSyncHang.ipdl
PTestSyncWakeup.ipdl
PTestSysVShmem.ipdl Tests for bug 598866. 2010-11-05 02:17:07 -05: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
TestBadActor.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
TestBadActor.h 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
TestBlockChild.cpp
TestBlockChild.h 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
TestBridgeMain.cpp Bug 564086, part r: Test IPDL |bridge| 2011-06-03 13:33:56 -05:00
TestBridgeMain.h 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
TestCrashCleanup.cpp
TestCrashCleanup.h 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
TestDataStructures.cpp Bug 765734, part 0: Do the right thing here. r=bent 2012-07-12 05:51:57 -07:00
TestDataStructures.h 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
TestDesc.cpp
TestDesc.h 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
TestFailedCtor.cpp 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
TestFailedCtor.h 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
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 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
TestJSON.cpp Bug 562424: Switch IPDL interfaces to infallible TArray. r=bent a=blocking 2010-11-08 20:49:00 -06:00
TestJSON.h 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
TestLatency.cpp
TestLatency.h 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
TestManyChildAllocs.cpp
TestManyChildAllocs.h 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
TestMultiMgrs.cpp
TestMultiMgrs.h 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
TestNestedLoops.cpp Bug 690892 - Replace PR_TRUE/PR_FALSE with true/false on mozilla-central; rs=dbaron 2011-10-17 10:59:28 -04:00
TestNestedLoops.h 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
TestOpens.cpp Test for bug 763228. 2012-06-11 20:41:46 -07:00
TestOpens.h Test for bug 763228. 2012-06-11 20:41:46 -07:00
TestRaceDeferral.cpp Test for bug 572134. a=b 2011-01-12 01:07:17 -06:00
TestRaceDeferral.h 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
TestRacyReentry.cpp
TestRacyReentry.h 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
TestRacyRPCReplies.cpp
TestRacyRPCReplies.h 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
TestRacyUndefer.cpp Test for bug 648935. 2011-05-04 15:55:54 -05:00
TestRacyUndefer.h 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
TestRPCErrorCleanup.cpp
TestRPCErrorCleanup.h 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
TestRPCRaces.cpp
TestRPCRaces.h 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
TestRPCShutdownRace.cpp
TestRPCShutdownRace.h 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
TestSanity.cpp
TestSanity.h 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
TestSelfManageRoot.cpp
TestSelfManageRoot.h 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
TestShmem.cpp Tests for bug 598866. 2010-11-05 02:17:07 -05:00
TestShmem.h 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
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 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
TestStackHooks.cpp
TestStackHooks.h 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
TestSyncError.cpp Test for bug 671189. 2011-07-13 22:43:43 -07:00
TestSyncError.h 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
TestSyncHang.cpp
TestSyncHang.h 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
TestSyncWakeup.cpp
TestSyncWakeup.h 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
TestSysVShmem.cpp Tests for bug 598866. 2010-11-05 02:17:07 -05:00
TestSysVShmem.h Bug 718254: Get the IPDL unit test harness compiling again. r=bent 2012-02-02 00:33:06 -08: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

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.