包含两个测试程序:base_test_main和test_appCommunication_main。
- base_test_main测试基本接口;
- test_appCommunication_main测试通信接口。
它们都依赖于libtest_utils.so和libtest_baseInterface.so动态库。
base_test_main用于测试SCA2.2.2基础接口,包含如下功能测试:
- 获取DomainManager、DeviceManager
- 获取所有设备、所有应用
- 安装MsgTransApp波形
- 卸载MsgTransApp波形
- 启动MsgTransApp波形
- 停止MsgTransApp波形
- 查询MsgTransApp波形的id和name
- 查询MsgTransApp波形所有属性的id和value
- 配置MsgTransApp波形的start_status属性
- 查询MsgTransApp波形的start_status属性值,检查属性值是否为新值
- 查询平台所包含设备的id和name
- 配置Zynq7035设备的is_board属性
- 查询Zynq7035设备的is_board属性值,检查属性值是否为新值
test_appCommunication_main用于测试通信接口,执行步骤如下:
- 安装MsgTransApp波形
- 测试程序中已定义一个发送端口(CWave_Use_port_i)和接收端口(CWave_Provide_port_i),
分别与波形的接收端口和发送端口相连 - 创建一个接收线程,用于接收应用发来的数据
- 测试程序主线程中给波形发送数据"[***** Hello JFounder! *****]",在子线程中接收从波形发来的数据
这两个测试程序可单独运行,无先后顺序关系。
提供两种编译方式:cmake编译,命令编译。
使用CMake工具进行编译,openSCA项目默认一起编译testsuite。
配置openSCA项目目录下的configure.cmake文件,配置选项如下:
现支持两种编译类型:jLinux、PetaLinux2015.4 使用编译命令进行编译,需要先编译两个动态库。
- 在openSCA/testsuite/test_utils目录下使用如下命令,编译生成libtest_utils.so动态库:
jLinux:
arm-linux-gnueabihf-g++ -shared -fPIC -o libtest_utils.so ./src/test_utils.cpp -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/
PetaLinux2015.4:
arm-xilinx-linux-gnueabi-g++ -shared -fPIC -o libtest_utils.so ./src/test_utils.cpp -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/
-
将生成的libtest_utils.so放到openSCA/libs/testsuite目录下。
-
在openSCA/testsuite/test_baseInterface目录下使用如下命令,编译生成libtest_baseInterface.so动态库:
jLinux:
arm-linux-gnueabihf-g++ -shared -fPIC -std=c++0x -o libtest_baseInterface.so ./src/test_baseInterface.cpp ./src/test_communicationPorts.cpp -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/ -I../../include/CF/ -I../../include/ -I../test_utils/include/ -I../test_baseInterface/include/ -L../../libs/testsuite/ -L../../libs/frameworks/
PetaLinux2015.4:
arm-xilinx-linux-gnueabi-g++ -shared -fPIC -std=c++0x -o libtest_baseInterface.so ./src/test_baseInterface.cpp ./src/test_communicationPorts.cpp -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/ -I../../include/CF/ -I../../include/ -I../test_utils/include/ -I../test_baseInterface/include/ -L../../libs/testsuite/ -L../../libs/frameworks/
-
将生成的libtest_baseInterface.so放到openSCA/libs/testsuite目录下。
-
在openSCA/testsuite/base_test_main目录下使用如下命令,编译生成base_test_main.out:
jLinux:
arm-xilinx-linux-gnueabi-g++ -o base_test_main.out ./src/test_interface.cpp -I../../include/runtime_env/ -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/ -I../../include/CF/ -I../../include/ -I../test_utils/include/ -I../test_baseInterface/include/ -L ../../libs/ace_tao/ -L../../libs/runtime_env/ -L../../libs/testsuite/ -L../../libs/tiny1xml/ -L../../libs/frameworks/ -lTAO_PI -lACE -lTAO -lTAO_AnyTypeCode -lKokyu -lTAO_CodecFactory -lTAO_Codeset -lTAO_CosEvent -lTAO_CosEvent_Skel -lTAO_CosEvent_Serv -lTAO_CosNaming_Serv -lTAO_CosNaming -lTAO_CosNaming_Skel -lTAO_DynamicInterface -lTAO_IFR_Client -lTAO_ImR_Client -lTAO_IORTable -lTAO_Svc_Utils -lTAO_Messaging -lTAO_Valuetype -lTAO_PortableServer -lorb_abstraction -lrte_utils -lCF_Interface -ltest_baseInterface -ltest_utils -lCF_Utils -lCF_StdPorts -lApplication -lApplicationFactory -lFile -lFileSystem -lFileManager -lXMLParser -ltiny1xml
PetaLinux2015.4:
arm-linux-gnueabihf-g++ -o base_test_main.out ./src/test_interface.cpp -I../../include/runtime_env/ -I../../include/ACE_wrappers/ -I../../include/ACE_wrappers/TAO/ -I../../include/ACE_wrappers/TAO/orbsvcs/ -I../../include/CF/ -I../../include/ -I../test_utils/include/ -I../test_baseInterface/include/ -L ../../libs/ace_tao/ -L../../libs/runtime_env/ -L../../libs/testsuite/ -L../../libs/tiny1xml/ -L../../libs/frameworks/ -lTAO_PI -lACE -lTAO -lTAO_AnyTypeCode -lKokyu -lTAO_CodecFactory -lTAO_Codeset -lTAO_CosEvent -lTAO_CosEvent_Skel -lTAO_CosEvent_Serv -lTAO_CosNaming_Serv -lTAO_CosNaming -lTAO_CosNaming_Skel -lTAO_DynamicInterface -lTAO_IFR_Client -lTAO_ImR_Client -lTAO_IORTable -lTAO_Svc_Utils -lTAO_Messaging -lTAO_Valuetype -lTAO_PortableServer -lorb_abstraction -lrte_utils -lCF_Interface -ltest_baseInterface -ltest_utils -lCF_Utils -lCF_StdPorts -lApplication -lApplicationFactory -lFile -lFileSystem -lFileManager -lXMLParser -ltiny1xml
- 在openSCA/testsuite/test_applicationCommunication_main目录下使用如下命令,编译生成test_applicationCommunication_main.out:
jLinux:
arm-xilinx-linux-gnueabi-g++ -o test_applicationCommunication_main.out ./src/test_appCommunication.cpp ../test_baseInterface/src/test_communicationPorts.cpp -I ../../include/runtime_env/ -I ../../include/ACE_wrappers/ -I ../../include/ACE_wrappers/TAO/ -I ../../include/ACE_wrappers/TAO/orbsvcs/ -I ../../include/CF/ -I ../../include/ -I ../test_utils/include/ -I ../test_baseInterface/include/ -L ../../libs/ace_tao/ -L ../../libs/runtime_env/ -L ../../libs/testsuite/ -L ../../libs/tiny1xml/ -L ../../libs/frameworks/ -lTAO_PI -lACE -lTAO -lTAO_AnyTypeCode -lKokyu -lTAO_CodecFactory -lTAO_Codeset -lTAO_CosEvent -lTAO_CosEvent_Skel -lTAO_CosEvent_Serv -lTAO_CosNaming_Serv -lTAO_CosNaming -lTAO_CosNaming_Skel -lTAO_DynamicInterface -lTAO_IFR_Client -lTAO_ImR_Client -lTAO_IORTable -lTAO_Svc_Utils -lTAO_Messaging -lTAO_Valuetype -lTAO_PortableServer -lorb_abstraction -lrte_utils -lCF_Interface -ltest_baseInterface -ltest_utils -lCF_Utils -lCF_StdPorts -lApplication -lApplicationFactory -lFile -lFileSystem -lFileManager -lXMLParser -ltiny1xml -lpthread
PetaLinux2015.4:
arm-linux-gnueabihf-g++ -o test_applicationCommunication_main.out ./src/test_appCommunication.cpp ../test_baseInterface/src/test_communicationPorts.cpp -I ../../include/runtime_env/ -I ../../include/ACE_wrappers/ -I ../../include/ACE_wrappers/TAO/ -I ../../include/ACE_wrappers/TAO/orbsvcs/ -I ../../include/CF/ -I ../../include/ -I ../test_utils/include/ -I ../test_baseInterface/include/ -L ../../libs/ace_tao/ -L ../../libs/runtime_env/ -L ../../libs/testsuite/ -L ../../libs/tiny1xml/ -L ../../libs/frameworks/ -lTAO_PI -lACE -lTAO -lTAO_AnyTypeCode -lKokyu -lTAO_CodecFactory -lTAO_Codeset -lTAO_CosEvent -lTAO_CosEvent_Skel -lTAO_CosEvent_Serv -lTAO_CosNaming_Serv -lTAO_CosNaming -lTAO_CosNaming_Skel -lTAO_DynamicInterface -lTAO_IFR_Client -lTAO_ImR_Client -lTAO_IORTable -lTAO_Svc_Utils -lTAO_Messaging -lTAO_Valuetype -lTAO_PortableServer -lorb_abstraction -lrte_utils -lCF_Interface -ltest_baseInterface -ltest_utils -lCF_Utils -lCF_StdPorts -lApplication -lApplicationFactory -lFile -lFileSystem -lFileManager -lXMLParser -ltiny1xml -lpthread