[④Meson]: Unit Tests

前言

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/285443.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

前言 本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。本文整理的多数文章都是有对应的系列性文章专栏&#x…

在 Oracle 数据库表中加载多个数据文件

在本文中,我将展示 SQL 加载器 Unix 脚本实用程序的强大功能,其中 SQL 加载器可以使用自动 shell 脚本加载多个数据文件。这在处理大量数据以及需要将数据从一个系统移动到另一个系统时非常有用。 它适合涉及大量历史数据的迁移项目。那么就不可能为每…

Laya3D常见报错信息汇总

1.Cannot read property isTrigger of undefined:貌似是Laya引擎的bug 解决方法: 在初次加载带有刚体的3D游戏对象组件的时候,使用代码获取刚体组件,设置刚体组件的isTrigger属性: let rigid this.obj.getComponent(L…

SELinux 安全模型——MLS

首发公号:Rand_cs BLP 模型:于1973年被提出,是一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,主要用于保证系统信息的机密性,是第一个严格形式化的安全模型 暂时无…

盾构机数据可视化监控平台 | 图扑数字孪生

2002 年,中国 863 计划把盾构机列为国家关键技术,以国家力量为主导,集中力量进行盾构机专项研究。在 2008 年,中国成功研制出属于自己的国产盾构机——中国中铁一号,同时还打通了天津地铁 1500m 的隧道。此举更彻底地打破了国内盾…

【Java基础篇】While(true) 和 for(;;)哪个性能更好呢

两个无限循环的性能分析 ✔️两者反编译比较 ✔️两者反编译比较 While(true) 和 for(; 😉 都是做无限循环的代码,他们两个有什么区别呢? 关于这个问题,网上有很多的讨论,今天我收到私信,所以凑着假期&…

【C++】Ubuntu编译filezilla client

在新版Ubuntu 22.04.3 LTS上编译filezilla client成功,shell命令如下: sudo apt-get install libfilezilla-dev libwxbase3.0-dev gnutls-dev libdbus-1-dev sudo apt-get install libwxgtk3.0-gtk3-dev sudo apt-get install libgtk-3-dev sudo apt-ge…

【力扣100】78.子集

添加链接描述 class Solution:def subsets(self, nums: List[int]) -> List[List[int]]:# 思路是回溯,这道题和【全排列】不一样的地方是出递归(收获)的判断条件不一样def dfs(path,index,res):res.append(path[:])for i in range(index,…

【C++杂货铺】C++11新特性——可变参数模板

文章目录 一、可变模板参数相关概念的引入二、获取参数包中参数的个数三、递归函数方式展开参数包四、逗号表达式展开参数包五、可变模板参数的实际应用——emplace相关接口5.1 回顾一下 push_back 的三种用法5.2 emplace_back 使用方法介绍5.3 听说 emplace_back 可以提高效率…

三菱人机交互GT Designer的使用(三,指示灯,数值显示与输入,字符串显示与输入,日期|时间的显示)

今天继续对GT进行学习,如有不妥,欢迎指正!!! 目录 指示灯设置 设置指示灯 位指示灯 字指示灯 数值输入,输出(二者差距不大) 数值显示与输出 数值显示(只能显示&…

Spring-JdbcTemplate

1.什么是JdbcTemplate (1)spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作 2.准备工作 (1) 引入相关jar druid.jar ,mysql.jar , spring-jdbc.jar,spring-tx.jar,spring-orm.jar (2)在spring配置 连接池 <!--数据源--><bean id"ds" class&q…

【GitHub】ssh: connect to host github.com port 22: Connection refused

本地使用git上传GitHub仓库时发现的一个报错&#xff0c;以为是本机连不上github了&#xff0c;ping过后发现能够正常访问&#xff0c;于是上网找到了一个很完美的解决方案 原因&#xff1a;22端口被占用或被防火墙屏蔽 解决方法&#xff1a;切换GitHub的443端口 1.首先找到…

普中STM32-PZ6806L开发板(HAL库函数实现-PWM呼吸灯)

简介 实现PWM呼吸灯。 主芯片 STM32F103ZET6呼吸灯引脚 : PC7电路原理图 LED8 电路图 LED8 与 主芯片连接图 其他知识 公式 PWM周期公式: Tpwm ( (ARR 1) * (PSC 1) ) / Tclk Tclk为定时器的输入时钟频率 Tout则为定时器溢出时间 ARR为计数周期 PSC为预分频器的值…

undefined reference to `pthread_create‘的另外一种解法

背景 编译带有thread的程序人&#xff0c;如果忘记-lpthread&#xff0c;那么就会报错 解决办法一&#xff1a;添加-lpthread 很简单添加-lpthread就行了 解决办法二&#xff1a;升级glibc 在高版本的glibc上&#xff0c;可能无需增加-lpthread Why glibc 2.34 removed li…

数字图像处理(3)——频域图像增强

&#x1f525;博客主页&#xff1a;是dream &#x1f680;系列专栏&#xff1a;深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发 &#x1f498;每日语录&#xff1a;贤才&#xff0c;难进易出&#xff1b;庸才&#xff0c;易进易初出&#xff1b;…

区块链复习

文章目录 考试重点哈希碰撞哈希函数的应用哈希算法对称加密密钥解决方法 椭圆曲线加密算法数字签名国密算法第一章第二章比特币比特币公钥 区块比特币的信息查询去中心化与分布式BIP治理结构 第三章 比特币区块结构头哈希值的作用&#xff1a;防篡改自然分叉&#xff1a; 交易数…

MySQL数据库学习一

1 什么是数据库的事务&#xff1f; 1.1 事务的典型场景 在项目里面&#xff0c;什么地方会开启事务&#xff0c;或者配置了事务&#xff1f;无论是在方法上加注解&#xff0c;还 是配置切面。 <tx:advice id"txAdvice" transaction-manager"transactionMa…

CodeWave 3.4版本新特性AI智能助手功能的革新与实践

目录 1 前言2 CodeWave 3.4版本&#xff1a;AI智能助手功能的新特性2.1 逻辑生成2.2 逻辑解读 3 CodeWave提供了全方位的逻辑组件4 AI智能助手功能的实践案例4.1 生成逻辑的实践4.2 解读逻辑的实践4.3 CodeWave的解读描述和逻辑的对比 5 结语 1 前言 在数字化时代&#xff0c;…

【ModelScope】从入门到进阶

计算机视觉任务 任务&#xff08;Task&#xff09;中文任务&#xff08;Task&#xff09;英文任务说明单标签图像分类image-classification对图像中的不同特征根据类别进行区分通用图像分割image-segmentation识别图像主体与图像背景进行分离文字检测ocr-detection将图像中的文…

Ansible自动化运维(一)简介及部署、清单

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…