mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-10-02 14:23:19 +08:00
utest: move utestcases Kconfig to utest component
Signed-off-by: CYFS <2805686936@qq.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
rsource "src/Kconfig"
|
||||
rsource "libcpu/Kconfig"
|
||||
rsource "components/Kconfig"
|
||||
rsource "Kconfig.utestcases"
|
||||
rsource "components/utilities/utest/Kconfig"
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
menu "RT-Thread Utestcases"
|
||||
|
||||
config RT_USING_UTESTCASES
|
||||
bool "RT-Thread Utestcases"
|
||||
default n
|
||||
select RT_USING_UTEST
|
||||
select RT_USING_DEBUG if !RT_USING_ULOG
|
||||
|
||||
if RT_USING_UTESTCASES
|
||||
|
||||
rsource "src/utest/Kconfig"
|
||||
|
||||
menu "Kernel Components"
|
||||
|
||||
menu "Drivers"
|
||||
rsource "components/drivers/core/utest/Kconfig"
|
||||
rsource "components/drivers/audio/utest/Kconfig"
|
||||
rsource "components/drivers/ipc/utest/Kconfig"
|
||||
rsource "components/drivers/serial/utest/Kconfig"
|
||||
rsource "components/drivers/smp_call/utest/Kconfig"
|
||||
endmenu
|
||||
|
||||
rsource "components/dfs/utest/Kconfig"
|
||||
rsource "components/dfs/dfs_v2/filesystems/tmpfs/utest/Kconfig"
|
||||
rsource "components/libc/cplusplus/utest/Kconfig"
|
||||
rsource "components/lwp/utest/Kconfig"
|
||||
rsource "components/mm/utest/Kconfig"
|
||||
rsource "components/net/utest/Kconfig"
|
||||
rsource "components/utilities/utest/utest/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
||||
endmenu
|
||||
@@ -0,0 +1,35 @@
|
||||
menu "RT-Thread Utestcases"
|
||||
|
||||
config RT_USING_UTESTCASES
|
||||
bool "RT-Thread Utestcases"
|
||||
default n
|
||||
select RT_USING_UTEST
|
||||
select RT_USING_DEBUG if !RT_USING_ULOG
|
||||
|
||||
if RT_USING_UTESTCASES
|
||||
|
||||
rsource "../../../src/utest/Kconfig"
|
||||
|
||||
menu "Kernel Components"
|
||||
|
||||
menu "Drivers"
|
||||
rsource "../../../components/drivers/core/utest/Kconfig"
|
||||
rsource "../../../components/drivers/audio/utest/Kconfig"
|
||||
rsource "../../../components/drivers/ipc/utest/Kconfig"
|
||||
rsource "../../../components/drivers/serial/utest/Kconfig"
|
||||
rsource "../../../components/drivers/smp_call/utest/Kconfig"
|
||||
endmenu
|
||||
|
||||
rsource "../../../components/dfs/utest/Kconfig"
|
||||
rsource "../../../components/dfs/dfs_v2/filesystems/tmpfs/utest/Kconfig"
|
||||
rsource "../../../components/libc/cplusplus/utest/Kconfig"
|
||||
rsource "../../../components/lwp/utest/Kconfig"
|
||||
rsource "../../../components/mm/utest/Kconfig"
|
||||
rsource "../../../components/net/utest/Kconfig"
|
||||
rsource "../../../components/utilities/utest/utest/Kconfig"
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
||||
endmenu
|
||||
@@ -4,11 +4,9 @@
|
||||
|
||||
为了保证某一部分代码的质量,通常可以通过编写测试用例的方式,验证此代码的功能。为了保证 RT-Thread 相关仓库的代码质量,我们基于 utest 框架搭建了一套简易的自动化测试环境。有兴趣,有精力的小伙伴可以利用这套机制完善自己的代码检查。如果有意愿让社区上更多的小伙伴受益,也可以在提交代码的时候,把对应的测试用例也提交上来。
|
||||
|
||||
## 目录结构
|
||||
## 相关配置
|
||||
|
||||
| 目录 | 用途 |
|
||||
| --------- | ------------------------------------------------------------ |
|
||||
| configs | 配置文件集合(每一个目录代表一种功能集合,如:kernel,net等) |
|
||||
自动化测试使用的配置文件维护在 [examples/utest/configs](../../../examples/utest/configs),每一个目录代表一种功能集合,如:kernel, net 等。
|
||||
|
||||
## 如何贡献
|
||||
|
||||
@@ -53,7 +51,7 @@ msh />utest_run
|
||||
|
||||
### 3. 提交
|
||||
|
||||
1. 如果是对已有测试集合的完善,需要把添加的测试用例的配置项,以及对应的依赖项添加到对应测试集合的配置文件里,如:[examples\utest\configs\kernel\mem.conf](./configs/kernel/mem.conf)。
|
||||
1. 如果是对已有测试集合的完善,需要把添加的测试用例的配置项,以及对应的依赖项添加到对应测试集合的配置文件里,如:[examples/utest/configs/kernel/mem.cfg](../../../examples/utest/configs/kernel/mem.cfg)。
|
||||
|
||||
```
|
||||
CONFIG_RT_UTEST_MEMHEAP=y
|
||||
@@ -62,11 +60,11 @@ CONFIG_RT_UTEST_MEMHEAP=y
|
||||
CONFIG_RT_USING_MEMHEAP=y
|
||||
```
|
||||
|
||||
2. 如果要添加新的测试集合,需要参考已有的测试集合,在 [examples\utest\configs](./configs) 目录下添加新的测试集合配置项。并更新 [.github\workflows\action_utest.yml](../../.github/workflows/action_utest.yml) 内的测试集合。
|
||||
2. 如果要添加新的测试集合,需要参考已有的测试集合,在 [examples/utest/configs](../../../examples/utest/configs) 目录下添加新的测试集合配置项。并更新 [.github/workflows/utest_auto_run.yml](../../../.github/workflows/utest_auto_run.yml) 内的测试集合。
|
||||
|
||||
```
|
||||
- {UTEST: "kernel/mem", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "kernel/mem.conf", SD_FILE: "sd.bin"}
|
||||
- {UTEST: "components/utest", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", CONFIG_FILE: "utest_self/self.conf", SD_FILE: "sd.bin"}
|
||||
- platform: { UTEST: "A9", RTT_BSP: "bsp/qemu-vexpress-a9", QEMU_ARCH: "arm", QEMU_MACHINE: "vexpress-a9", SD_FILE: "sd.bin", KERNEL: "standard", SMP_RUN: "" }
|
||||
config_file: "kernel/mem.cfg"
|
||||
```
|
||||
|
||||
3. 向 RT-Thread 主仓库提交合并请求。
|
||||
@@ -308,7 +308,7 @@ The utest_run tool now supports dynamic auto-completion for test case names. Aft
|
||||
|
||||
# How-to add utest cases into RT-Thread for your module
|
||||
|
||||
The source code of utest cases is recommended to be placed in each module for maintenance, but the entry of Kconfig should all be placed(rsourced) in `Kconfig.utestcases` for unified maintenance. In this way, when executing menuconfig, people can enter and configure from one place, avoiding searching for utest configuration switches scattering in the menuconfig interface.
|
||||
The source code of utest cases is recommended to be placed in each module for maintenance, but the entry of Kconfig should all be placed(rsourced) in `components/utilities/utest/Kconfig` for unified maintenance. In this way, when executing menuconfig, people can enter and configure from one place, avoiding searching for utest configuration switches scattering in the menuconfig interface.
|
||||
|
||||
For each module, you can maintain unit testcases in a unified manner in the following way:
|
||||
|
||||
@@ -322,7 +322,7 @@ For each module, you can maintain unit testcases in a unified manner in the foll
|
||||
|
||||
- `SConscript` file, when adding src files, you need to rely on `RT_UTEST_XXXX`.
|
||||
|
||||
After completing the above steps, rsource the path of the Kconfig file of utest of this module to the file `Kconfig.utestcases`.
|
||||
After completing the above steps, rsource the path of the Kconfig file of utest of this module to the file `components/utilities/utest/Kconfig`.
|
||||
|
||||
You can find a good example in <a href="https://github.com/RT-Thread/rt-thread/blob/master/src/klibc/utest/">"klibc"</a>.
|
||||
|
||||
|
||||
@@ -327,7 +327,9 @@ def get_file_md5(file):
|
||||
|
||||
# Exclude utestcases
|
||||
def exclude_utestcases(RTT_ROOT):
|
||||
if os.path.isfile(os.path.join(RTT_ROOT, 'Kconfig.utestcases')):
|
||||
utestcases_kconfig = os.path.join(RTT_ROOT, 'components', 'utilities', 'utest', 'Kconfig')
|
||||
|
||||
if os.path.isfile(utestcases_kconfig):
|
||||
return
|
||||
|
||||
if not os.path.isfile(os.path.join(RTT_ROOT, 'Kconfig')):
|
||||
@@ -337,7 +339,7 @@ def exclude_utestcases(RTT_ROOT):
|
||||
data = f.readlines()
|
||||
with open(os.path.join(RTT_ROOT, 'Kconfig'), 'w') as f:
|
||||
for line in data:
|
||||
if line.find('Kconfig.utestcases') == -1:
|
||||
if line.find('components/utilities/utest/Kconfig') == -1:
|
||||
f.write(line)
|
||||
|
||||
|
||||
|
||||
+7
-2
@@ -110,6 +110,11 @@ def bsp_update_sconstruct(dist_dir):
|
||||
f.write(line)
|
||||
|
||||
def bsp_update_kconfig_testcases(dist_dir):
|
||||
utestcases_kconfig = os.path.join(dist_dir, 'rt-thread/components/utilities/utest/Kconfig')
|
||||
|
||||
if os.path.isfile(utestcases_kconfig):
|
||||
return
|
||||
|
||||
# delete testcases in rt-thread/Kconfig
|
||||
if not os.path.isfile(os.path.join(dist_dir, 'rt-thread/Kconfig')):
|
||||
return
|
||||
@@ -118,7 +123,7 @@ def bsp_update_kconfig_testcases(dist_dir):
|
||||
data = f.readlines()
|
||||
with open(os.path.join(dist_dir, 'rt-thread/Kconfig'), 'w') as f:
|
||||
for line in data:
|
||||
if line.find('Kconfig.utestcases') == -1:
|
||||
if line.find('components/utilities/utest/Kconfig') == -1:
|
||||
f.write(line)
|
||||
|
||||
def bsp_update_kconfig(dist_dir):
|
||||
@@ -336,4 +341,4 @@ def MkDist_Strip(program, BSP_ROOT, RTT_ROOT, env, project_name, project_path=No
|
||||
if project_path is None:
|
||||
zip_dist(dist_dir, project_name)
|
||||
print("Distribution package created: {}.zip".format(dist_dir))
|
||||
print('=> Distribution stripped successfully')
|
||||
print('=> Distribution stripped successfully')
|
||||
|
||||
Reference in New Issue
Block a user