-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于本地测试和 Github CI 的一些改进意见 #286
Comments
最好测试出错的时候直接由测试框架打印出一个复现脚本,出了错直接无脑复制粘贴就能再试。 |
分支的 README 中增加了设计愿景。 |
实现了一部分 #287 。 |
缓存了更多东西 #288 。 |
我觉得测试集的运行逻辑也应该改改。现在每个测例都要启动 qemu、引导 zCore、运行测例、反馈结果,大量时间花在引导 zCore 上,尤其是 x86_64。如果做成启动一次 zCore 然后运行多个测例直到测试集结束或者内核崩溃呢?这样 x86_64 的运行时间估计能直接缩短 95%。如果不算超时全部测例只要运行两分钟,就算需要刷一刷也没什么关系。 #288 之后,大部分东西都缓存了,除了两个 x86_64 测试集需要 40 分钟,其他所有测试运行时间都在 10 分钟以内。如果把全部测试压到 10 分钟以内,测试框架就有足以支持日常使用的可用性了。 |
正在恢复 rootfs <- libc-test <- image 的自动递归,以及应对下载/克隆失败的情况。 |
#292 完全理清了 rootfs 的建立过程。现在可以为使用烧写最小的镜像以节约烧写时间和 flash 空间。 向 rootfs 加入的测例与 CI job 保持一致,也就是说,libc 测试只加入 libc 测例,其他测试只加入其他测例。Action 脚本只需调用一两个指令即可测试,本地对失败测例进行复现也就比较容易了。 |
|
增加新的功能 #296 |
see #322 |
#325 移除了 alphine,并使得 libos 有自己的 rootfs,这样就不用来回倒腾 x86_64 的 rootfs 了。理论上说现在所有架构的 rootfs 可以并行构建 |
#334 完全移除了顶层 xtask 对内层 Makefile 的引用,并且补充了现有所有子命令的文档 |
刚刚增加了一个 toml 配置文件控制不同硬件上的 feature 选择,构建系统进入新时代了 |
缓存更多预编译程序
Qemu、musl toolchain 等可以以预编译压缩文件的形式缓存,减少下载和编译的耗时。
本地与 CI 的一致性
应该实现本地脚本与 CI 流程的一致性,尤其是应该在本地体现测试矩阵。这样有 2 个好处:
最好的方式是本地直接读取 Github CI 的脚本,复刻 CI 上的运行流程,但不清楚是否有支持这种操作的现成工具。本地也无法支持 CI 那么干净且多样化的环境配置。其次是减少 CI 脚本里的语句,尽量复用本地脚本逻辑。
实现方便扩展的测试框架
简化增加测例的步骤或者添加操作指南。
有一部分工作在做了:一个分支。
The text was updated successfully, but these errors were encountered: