|
xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
|
本目录包含 xt_vfs 虚拟文件系统的单元测试,基于 Unity 测试框架。测试覆盖 VFS 核心 API,使用 RAM FS(内存模拟)和 Windows 原生 FS 两种后端。
| 文件 | 说明 |
|---|---|
| xt_main.c | 70 项 Unity 单元测试,18 个分组(全功能配置) |
| xmake.lua | 构建配置,支持环境变量切换编译选项 |
| run_tests.py | 多配置自动化测试脚本(7 组配置) |
**注意**:native FS 后端已提升为平台组件,位于 platforms/windows/components/xt_vfs_native/,不在本测试目录中。
预期输出:
自动以 7 种配置依次编译运行:
| 配置 | HEAP | DIR | CWD | THREAD_SAFE | 测试数 |
|---|---|---|---|---|---|
| 默认全功能 | 1 | 1 | 0 | 1 | 70 |
| 静态内存 | 0 | 1 | 0 | 1 | 22 |
| 最小裸机 | 0 | 0 | 0 | 1 | 20 |
| 相对路径 | 1 | 1 | 1 | 1 | 73 |
| 裸机无锁 | 0 | 1 | 0 | 0 | 22 |
| 堆模式无目录 | 1 | 0 | 0 | 1 | 62 |
| 极小资源 | 0 | 1 | 0 | 0 | 22 |
极小资源配置:PATH_MAX=64, MAX_FILES=4, MAX_MOUNTS=3, MAX_DIRS=2
通过环境变量手动指定:
可用环境变量见 components/xt_vfs/xt_vfs_port.h 中所有 XT_VFS_* 宏。
| # | 分组 | 测试数 | 说明 |
|---|---|---|---|
| 1 | init/deinit | 3 | 正常初始化、双重初始化、deinit 重置 |
| 2 | mount/unmount | 6 | 正常挂载、重复前缀、卸载、未找到、NULL 前缀、挂载表满 |
| 3 | open/close | 9 | 创建关闭、不存在文件、只读回读、无效 fd、文件表满、读写模式、追加、O_EXCL、O_TRUNC |
| 4 | read/write | 7 | 写入回读、空文件、大块读写、超过 EOF、size=0、二进制数据、分片读写 |
| 5 | seek/tell | 4 | SEEK_SET/CUR/END、无效 whence |
| 6 | stat/fstat/statfs | 5 | stat、fstat、statfs、NULL 参数 |
| 7 | mkdir/rmdir | 2 | 创建删除、不存在目录 |
| 8 | 目录操作 | 6 | readdir、空目录、closedir 后使用、rewind、telldir/seekdir、目录表满 |
| 9 | remove/rename | 4 | 删除、重命名、不存在重命名、跨后端重命名 |
| 10 | truncate/ftruncate | 3 | 缩小、扩展、ftruncate 缩小 |
| 11 | sync/access | 3 | 写入后 sync、access 存在文件、sync_all |
| 12 | 多挂载并发 | 2 | 两 ramfs 隔离、native+ramfs 共存 |
| 13 | generation 防悬空 | 2 | 旧 fd 拒绝、表满后重新打开 |
| 14 | 错误路径 | 7 | NULL 路径、NULL buf 读写、deinit 后操作、无效 fd、路径边界、write size=0 |
| 15 | CWD 相对路径 | 3 | chdir/getcwd、绝对路径不变、相对路径 open |
| 16 | utime | 1 | 设置并读取 mtime |
| 17 | strerror/errno | 4 | strerror 所有码、errno 初始、errno 错误后、线程表满 |
| 18 | 挂载点灵活性 | 2 | 挂载到根 /、嵌套挂载 |
测试函数模板:
如需兼容 HEAP=0 配置,确保: