debug of ipdl demo(2)

本文记录了作者尝试使用 CMake 和 Makefile 构建 C++ IPC (进程间通信) demo 的过程,包括解决文件组织、编译配置等问题,并介绍了如何遵循特定目录结构及编译流程来完成 IPDL 单元测试。

2017.9.27 wednesday

afternoon


the problems now are:

1.don't know how to generate a whole directory file of executable binary with cmake?

2.don't know how these header and cpp worked together  to work things out.

some other question:

is it possible to use cmake to fix the first problem?

if not ,what would be okay?


so ,what is the best thing i should do to solve this problem of demo working.


all day learn about makefile and try to use it to compile my project.



--------------------------------------------------------------------------------------------------------------------

2017.9.28 Thursday


morning,

learn about makefile,

now try to use it in project of ipdl compile .


--------------------------------------------------------------------------------------------------------------------

2017.9.29 friday


the headers can't be found in directory as a link.



then ,use ln -s source dist

to link them .


change the headers like a fool.


but ,i get tired to debug this by change their header or its directory.

plan to change a method to build it in build .while the document is too little to make a demo.



--------------------------------------------------------------------------------------------------------------------

2017.9.30 Saturday


what should be done now to finish this demo?

another method to build in system ,read the low level document and try the build .use make ipc/ipdl get the files .maybe they should live in the object directory.


i find a useful file in /B2G-5.1.1/gecko/ipc/ipdl/test/cxx:README.TXT


  1  To add a new IPDL C++ unit test, you need to create (at least) the
  2 following files (for a test "TestFoo"):
  3 
  4   - PTestFoo.ipdl, specifying the top-level protocol used for the test
  5 
  6   - TestFoo.h, declaring the top-level parent/child actors used for
  7     the test
  8 
  9   - TestFoo.cpp, defining the top-level actors
 10 
 11   - (make sure all are in the namespace mozilla::_ipdltest)
 12 
 13 Next
 14 
 15   - add PTestFoo.ipdl to ipdl.mk
 16 
 17   - append TestFoo to the variable IPDLTESTS in Makefile.in
 18 
 19 You must define three methods in your |TestFooParent| class:
 20 
 21   - static methods |bool RunTestInProcesses()| and
 22     |bool RunTestInThreads()|.  These methods control whether
 23     to execute the test using actors in separate processes and
 24     threads respectively.  Generally, both should return true.
 25 
 26   - an instance method |void Main()|.  The test harness wil first
 27     initialize the processes or threads, create and open both actors,
 28     and then kick off the test using |Main()|.  Make sure you define
 29     it.
 30 
 31 If your test passes its criteria, please call
 32 |MOZ_IPDL_TESTPASS("msg")| and "exit gracefully".
 33 
 34 If your tests fails, please call |MOZ_IPDL_TESTFAIL("msg")| and "exit
 35 ungracefully", preferably by abort()ing.
 36 
 37 
 38 If all goes well, running
 39 
 40   make -C $OBJDIR/ipc/ipdl/test/cxx
 41 
 42 will update the file IPDLUnitTests.cpp (the test launcher), and your
 43 new code will be built automatically.
 44 
 45 
 46 You can launch your new test by invoking one of
 47 
 48   make -C $OBJDIR/ipc/ipdl/test/cxx check-proc     (test process-based tests)
 49   make -C $OBJDIR/ipc/ipdl/test/cxx check-threads  (test thread-based tests)
 50   make -C $OBJDIR/ipc/ipdl/test/cxx check          (tests both)
 51 
 52 If you want to launch only your test, run
 53 
 54   cd $OBJDIR/dist/bin
 55   ./run-mozilla.sh ./ipdlunittest TestFoo          (test in two processes, if appl.)
 56   ./run-mozilla.sh ./ipdlunittest thread:TestFoo   (test in two threads, if appl.)
 57 
 58 
 59 For a bare-bones example of adding a test, take a look at
 60 PTestSanity.ipdl, TestSanity.h, TestSanity.cpp, and how "TestSanity"
 61 is included in ipdl.mk and Makefile.in.


this gives some information about ipdl.


if change the Testfoo to 'Testopens'

1.3 files :

PTestOpens.ipdl

TestOpens.h

TestOpens.cpp



2.(make sure all are in the namespace mozilla::_ipdltest)    ???


3.add PTestFoo.ipdl(here,change as Testopen.ipdl) to ipdl.mk


i don't know where is ipdl.mk ,cannot find out it ,so just copy from internet,

https://searchcode.com/codesearch/view/883109/

IPDLSRCS =          \
  PWyciwygChannel.ipdl \
  $(NULL)
but i found that there is a moz.build and they add a lot of ipdl files in it.




4.append TestFoo to the variable IPDLTESTS in Makefile.in





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


- static methods |bool RunTestInProcesses()| and     |bool RunTestInThreads()|.


- an instance method |void Main()|.



6.call

|MOZ_IPDL_TESTPASS("msg")| and "exit gracefully".


or ,

|MOZ_IPDL_TESTFAIL("msg")| and "exit ungracefully"




7.if all goes well,

make -C $OBJDIR/ipc/ipdl/test/cxx


8.

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.) 


just have a try.


so where is parent and child ,where can i add the complement codes of hello world?


and is there anything should be done  in object dictionary ?



本 PPT 介绍了制药厂房中供配电系统的总体概念与设计要点,内容包括: 洁净厂房的特点及其对供配电系统的特殊要求; 供配电设计的一般原则与依据的国家/行业标准; 从上级电网到工厂变电所、终端配电的总体结构与模块化设计思路; 供配电范围:动力配电、照明、通讯、接地、防雷与消防等; 动力配电中电压等级、接地系统形式(如 TN-S)、负荷等级与可靠性、UPS 配置等; 照明的电源方式、光源选择、安装方式、应急与备用照明要求; 通讯系统、监控系统在生产管理与消防中的作用; 接地与等电位连接、防雷等级与防雷措施; 消防设施及其专用供电(消防泵、排烟风机、消防控制室、应急照明等); 常见高压柜、动力柜、照明箱等配电设备案例及部分设计图纸示意; 公司已完成的典型项目案例。 1. 工程背景与总体框架 所属领域:制药厂房工程的公用工程系统,其中本 PPT 聚焦于供配电系统。 放在整个公用工程中的位置:与给排水、纯化水/注射用水、气体与热力、暖通空调、自动化控制等系统并列。 2. Part 01 供配电概述 2.1 洁净厂房的特点 空间密闭,结构复杂、走向曲折; 单相设备、仪器种类多,工艺设备昂贵、精密; 装修材料与工艺材料种类多,对尘埃、静电等更敏感。 这些特点决定了:供配电系统要安全可靠、减少积尘、便于清洁和维护。 2.2 供配电总则 供配电设计应满足: 可靠、经济、适用; 保障人身与财产安全; 便于安装与维护; 采用技术先进的设备与方案。 2.3 设计依据与规范 引用了大量俄语标准(ГОСТ、СНиП、SanPiN 等)以及国家、行业和地方规范,作为设计的法规基础文件,包括: 电气设备、接线、接地、电气安全; 建筑物电气装置、照明标准; 卫生与安全相关规范等。 3. Part 02 供配电总览 从电源系统整体结构进行总览: 上级:地方电网; 工厂变电所(10kV 配电装置、变压
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值