You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
utest 中 unit 我理解就是 case 的意思,我建议在给 unit 的函数命名的时候采用数字编号。在此基础上每个 case 涉及的上下文独立管理,譬如每个 case 编写对应的 caseX_init/caseX_cleanup,管理 case 自己独立的全局变量。不好的例子参考 thread_tc.c。
在 testcase 的源文件中加入 doxygen 注释,对每个 case 的输入和输出进行规范化描述,作为测试文档的一部分方便后来人阅读和理解这些 case 设计的目的。
Describe problem solved by the proposed feature
参考:
这个 issue 用于列出主题相关的需要做的工作,具体确定下来了的工作可以另外提 issue 或者 PR。
.config
; bsp 里的.attachconfig
; 涛哥 yml)-> 归一化为 ymlRT_USING_CI_ACTION
宏。UTEST_TC_EXPORT
),是否需要合并到一起?还是各个组件模块自己维护自己的 utest cases?感觉自己维护是不是好一些?这样一些默认不是放在 RTT 主仓的组件的 test cases 以后也不会占用 RTT 主仓的空间?examples/utest/README.md
需要改进,譬如该文件中“/”
和”\"
混用。RT_USING_ULOG
)并没有开启,也可以工作啊?thread_tc.c
。疑问:
CI 运行测试用例是否可以运行 Fail 后不阻塞后面没测试完成的用例?
A:我目前理解 testcase 前一个失败不会 block 下一个执行,但是在 testcase 中如果存在多个 unit,则只要有一个失败,后面的就不会执行了。见
UTEST_UNIT_RUN
的实现。examples/utest/configs
是干什么用的?如何测试不同配置下的行为?需要针对不同的配置做不同的内核吗?还是有什么更好的方法在一个内核中测试不同配置的行为?
如何理解
RT_USING_CI_ACTION
的含义和用途,是不是说对于那些 utest 的 testcase,必须要在这个开关的控制下才可以在 CI/qemu 上跑?举个例子:我发现在examples/utest/testcases/kernel/thread_tc.c
中有个 case:test_timeslice()
在testcase()
中被注释掉了。所以我有一个想法是,把
RT_USING_CI_ACTION
应用到 utest 的 unit 级别。默认 RT_USING_CI_ACTION 是关掉的,所以所有的 unit 都参与 utest 编译,但是如果定义了 RT_USING_CI_ACTION 则只有定义了 RT_USING_CI_ACTION 的 unit 函数才会参与编译。另外我看到有些 testcase 的写法习惯是基本上一个 testcase 内只有一个 unit,然后加入 Kconfig 对 case 进行控制。感觉这也是一个控制 testcase 颗粒度的思路。
Describe your preferred solution
No response
Describe possible alternatives
No response
The text was updated successfully, but these errors were encountered: