文档首页 > > 移植指南> 移植Cmockery> 移植指导

移植指导

分享
更新时间:2020/08/31 GMT+08:00

介绍

简要介绍

Cmockery是一个轻量级的库,用于编写C单元测试。Cmockery测试被编译成独立的可执行文件,并与Cmockery库、标准C库和要测试的模块链接。

语言:C

一句话概述:C单元测试的轻量级框架

建议的版本

建议使用版本为“cmockery-0.1.2”

环境要求

云服务器要求

本文以云服务器KC1实例测试,云服务器配置如表1所示。

表1 云服务器配置

项目

说明

规格

kc1.xlarge.2 | 4vCPUs | 8GB

磁盘

系统盘:高IO(40GB)

操作系统要求

操作系统要求如表2所示。

表2 操作系统要求

项目

版本

下载地址

CentOS

7.5

在公共镜像中已提供。

Kernel

4.14.0

在公共镜像中已提供。

获取源码

https://github.com/google/cmockery/releases提供Cmockery各版本的源码压缩包,可以直接下载。

编译和安装

本文以“cmockery-0.1.2”版本为例,下载源码,并编译安装。

  1. 下载Cmockery源码。

    cd

    wget https://codeload.github.com/google/cmockery/tar.gz/v0.1.2

  2. 解压Cmockery源码。

    tar -zxvf v0.1.2

  3. 编译安装Cmockery。

    cd cmockery-0.1.2

    ./configure --build=aarch64-unknown-linux-gnu

    make

    make install

运行和验证

  1. 设置环境变量。

    1. 编辑“/etc/profile”文件,添加环境变量。
      1. 添加“LD_LIBRARY_PATH”环境变量。

        vi /etc/profile

        修改内容如下:
        export LD_LIBRARY_PATH=/usr/local/lib
      2. 使环境变量生效。

        source /etc/profile

    2. 查看“LD_LIBRARY_PATH”环境变量是否修改生效。

      echo $LD_LIBRARY_PATH

      回显内容如下:
      /usr/local/lib

  2. 测试Cmockery。

    1. 新建一个文件夹用于Cmockery单元测试。

      cd /root/cmockery-0.1.2

      mkdir math_demo

    2. 进入“math_demo”,创建“math.c”源文件,用于待测代码模块。

      cd math_demo

      vi math.c

      将下面内容复制到“math.c”文件中。
      int add(int a, int b)   
      {  
          return a + b;  
      }  
      int sub(int a, int b)   
      {  
          return a - b;  
      }
    3. 进入“math_demo”,创建“test_math.c”源文件,用于测试用例和main函数模块。

      cd math_demo

      vi test_math.c

      将下面内容复制到“test_math.c”文件中。
      #include <stdarg.h>  
      #include <stddef.h>  
      #include <setjmp.h>  
      #include <google/cmockery.h>  
      /* Ensure add() adds two integers correctly. */  
      void test_add(void **state) {  
          assert_int_equal(add(3, 3), 6);  
          assert_int_equal(add(3, -3), 0);  
      }  
      /* Ensure sub() subtracts two integers correctly.*/  
      void test_sub(void **state) {  
          assert_int_equal(sub(3, 3), 0);  
          assert_int_equal(sub(3, -3), 6);  
      }  
      int main(int argc, char *argv[])   
      {  
          const UnitTest tests[] = {  
              unit_test(test_add),  
              unit_test(test_sub),  
          };  
          return run_tests(tests);  
      } 
    4. 编译源文件。

      gcc math.c test_math.c -lcmockery

      编译完成后,“math_demo”文件夹下会生成“a.out”文件。

    5. 运行程序,查看单元测试是否顺利执行。

      ./a.out

      回显信息如下,则表示Cmockery安装成功且可以正常运行。

      test_add: Starting test
      test_add: Test completed successfully.
      test_sub: Starting test
      test_sub: Test completed successfully.
      All 2 tests passed

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问