[④Meson]: Unit Tests

本文详细介绍了如何在Meson构建系统中使用uni-tests进行单元测试,包括创建可执行程序、设置并行性、优先级,以及如何利用Valgrind和GDB进行调试。通过`run()`命令配置测试参数,方便进行测试和重复执行。
摘要由CSDN通过智能技术生成

前言

Meson构建系统支持uni-tests,使用run()命令可以非常方便进行uni-test测试。

Syntax

基本语法:

e = executable('prog', 'source.c')
test('name of test', e)

下面是创建两个可执行程序,并且将它们在test中使用的例子:

test0 = executable('test0', 'app0.c')
test1 = executable('test1', 'app1.c')

test('A', test0)
test('B', test1)

也可以在run()命令中定义arguments和environment variables:

test('command line test', exe, args : ['first', 'second'])
test('envvar test', exe2, env : ['key1=value1', 'key2=value2'])

编译完成后,在build目录中输入meson test,就可以进行uni-test测试,会有下面类似的输出:
在这里插入图片描述
如果Meson检测到错误代码error code或者例如main()中return -1,就会视为test失败:
在这里插入图片描述

Parallelism

为了节省时间,Meson uni-tests默认是并行执行的,但有时候一些测试不能同时执行,可以将并行关闭:

test('unique test', t, is_parallel : false)

Priorities

Meson可以对uni-tests设置执行的优先级,默认都为0,优先级数字高的优先执行:

test('started second', t, priority : 0)
test('started third', t, priority : -50)
test('started first', t, priority : 1000)

其他

Meson可以指定test进行测试,例如:

 meson test A

可以重复进行uni-tests测试,例如:

 meson test --repeat=10

在测试时,可以使用调用其他helper程序,例如用Valgrind工具:

meson test --wrap=valgrind testname

支持调用GDB:

$ meson test --gdb testname
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李71~李先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值