移植案例与原理 - XTS子系统之应用兼容性测试套件(2)

1.2 编译链接

需要通过链接选项指定需要链接的ACTS的部件编译库文件,会使用到 --whole-archive 和 --no-whole-archive这2个ld链接选项。–whole-archive 可以把 在其后面出现的静态库包含的函数和变量输出到动态库,–no-whole-archive 则关掉这个特性。在文件vendor\goodix\gr5515_sk_xts_demo\BUILD.gn中,对ACTS的编译文件进行链接。其中⑴到⑵处的链接选项为编译出的属于ACTS的组件测试库文件。

    executable("${fw_img_name}.elf") {
    deps = [
        "tests:drivers",
        "tests:fs_test",
        "tests:ohosdemo",
        "tests:shell_test",
        "//build/lite:ohos",
    ]

    ldflags = [
        "-Wl,--whole-archive",
        # "-lfs_test",
        # "-ldrivers_test",
        # "-lapp_hello",
        "-lshell_test",
⑴      "-lhctest",
        "-lmodule_ActsBootstrapTest",
        "-lmodule_ActsWifiIotTest",
        "-lmodule_ActsUtilsFileTest",
        "-lmodule_ActsKvStoreTest",
        "-lmodule_ActsParameterTest",
        "-lmodule_ActsSamgrTest",
        "-lhuks_test_common",
        "-lmodule_ActsHuksHalFunctionTest",
        "-lmodule_ActsDfxFuncTest",
        "-lmodule_ActsUpdaterFuncTest",
⑵      "-lmodule_ActsHieventLiteTest",
        "-Wl,--no-whole-archive",
    ]
    }

在文件vendor\bestechnic\xts_demo\config.json中,需要链接的ACTS部件测试库文件写在了bin_list里的force_link_libs里。

  "bin_list": [
    {
      "elf_name": "wifiiot",
      "bsp_target_name": "best2600w_liteos",
      "signature": "false",
      "burn_name": "rtos_main",
      "enable": "true",
      "force_link_libs": [
        "bootstrap",
        "abilityms",
        "bundlems",
        "broadcast",
        "hctest",
⑴      "module_ActsParameterTest",
        "module_ActsBootstrapTest",
        "module_ActsDfxFuncTest",
        "module_ActsHieventLiteTest",
        "module_ActsSamgrTest",
⑵      "module_ActsKvStoreTest"
      ]
    },
    .......
  ],

然后在文件device\soc\bestechnic\bes2600\BUILD.gn里组装编译链接选项,相关代码片段如下:

  # config bin from vendor/bestechnic/<product_name>/config.json
  foreach(bin_file, bin_list) {
        ......

    if (build_enable == "true") {
        ......

        # force link invisible function ,which ar to lib
        ldflags += [ "-Wl,--whole-archive" ]
        foreach(force_link_lib, bin_file.force_link_lib
XTS(X Test Suite)子系统OpenHarmony生态认证测试套件的集合,其测试原理各组成测试套件的功能紧密相关。 ACTS(application compatibility test suite)应用兼容性测试套件主要看护北向HAP兼容、OpenHarmony开发API兼容。其测试原理在于对各个子系统的功能进行测试以确保兼容性。在应用兼容性测试用例开发方面,有对应的测试代码存放目录和编译配置。例如在/test/xts/acts目录下包含了各个子系统的测试用例源代码,不同系统(标准、轻量、小型)的子系统测试用例源码分开存放,并且有相应的编译配置文件,如BUILD.gn等,通过对这些测试用例的执行来检测应用兼容性 [^1][^2]。 HATS(Hardware Abstraction Test Suite )硬件抽象测试套主要看护HDI层接口。其测试原理是针对硬件抽象层的接口进行测试,确保硬件抽象层上层软件之间的交互正常,保证硬件的功能能够被正确调用和使用 [^1]。 DCTS(Distributed Compatibility Test Suite )分布式兼容性测试套主要看护分布式兼容(待上线)。虽然待上线,但从其功能定位推测,测试原理应该是对系统的分布式功能进行全面检测,包括分布式设备之间的连接、数据传输、协同工作等方面,以确保分布式环境下系统的兼容性和稳定性 [^1]。 在测试执行方面,有不同的测试命令,如全测命令为“run vts”,单模块测试使用“run vts -m <模块名>”,单项测试使用“run vts -m <模块名> -t <单项名>”,多台机器测试使用“run vts --shard-count X”等,这些命令可以根据不同的测试需求来执行相应的测试任务 [^4]。 ### 代码示例 在移植案例中,需要在产品解决方案配置文件中增加xts_actsxts_tools组件定义,示例如下: ```json { "subsystem": "xts", "components": [ { "component": "xts_acts", "features": [ "config_ohos_xts_acts_utils_lite_kv_store_data_path = \"/data\"", "enable_ohos_test_xts_acts_use_thirdparty_lwip = true" ] }, { "component": "xts_tools", "features": [] } ] } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值