gvisor_syscall_test.rst 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ==============================
  2. gVisor 系统调用测试
  3. ==============================
  4. DragonOS 集成了 gVisor 系统调用测试套件,用于验证操作系统系统调用实现的兼容性和正确性。
  5. 概述
  6. ========
  7. gVisor 是 Google 开发的容器运行时沙箱,包含了大量的系统调用兼容性测试。这些测试用于验证操作系统的系统调用实现是否符合 Linux 标准。
  8. 主要特性:
  9. - **全面的测试覆盖**:包含数百个系统调用测试用例
  10. - **白名单机制**:默认只运行已验证的测试,逐步完善支持
  11. - **黑名单过滤**:可针对每个测试程序屏蔽特定的测试用例
  12. - **自动化运行**:提供 Makefile 和脚本简化测试流程
  13. 快速开始
  14. ==========
  15. 1. 进入测试目录:
  16. .. code-block:: bash
  17. cd user/apps/tests/syscall/gvisor
  18. 2. 在Linux运行白名单测试(自动下载测试套件):
  19. .. code-block:: bash
  20. make test
  21. 3. 如果需要运行测试,请先修改配置文件:
  22. 编辑 `config/app-blocklist.toml`,注释掉以下内容:
  23. .. code-block:: toml
  24. # 屏蔽gvisor系统调用测试
  25. # [[blocked_apps]]
  26. # name = "gvisor syscall tests"
  27. # reason = "由于文件较大,因此屏蔽。如果要允许系统调用测试,则把这几行取消注释即可"
  28. 4. 在 DragonOS 系统内运行测试:
  29. 进入安装目录并运行测试程序:
  30. .. code-block:: bash
  31. cd /opt/tests/gvisor
  32. ./gvisor-test-runner --help
  33. 使用 ``./gvisor-test-runner`` 可以运行具体的测试用例。
  34. 5. 查看详细文档:
  35. 请参阅 `user/apps/tests/syscall/gvisor/README.md` 获取完整的使用说明。
  36. 测试机制
  37. ==========
  38. 白名单模式
  39. -----------
  40. 测试框架默认启用白名单模式,只运行 ``whitelist.txt`` 中指定的测试程序。这允许逐步验证 DragonOS 的系统调用实现。
  41. 黑名单过滤
  42. -----------
  43. 对于每个测试程序,可以通过 ``blocklists/`` 目录下的文件屏蔽特定的测试用例。这对于跳过暂不支持或不稳定的测试非常有用。
  44. 更多详细信息
  45. ==============
  46. 关于 gVisor 系统调用测试的详细使用方法、配置选项和开发指南,请查看测试目录下的 README.md 文档:
  47. - 文档位置:`user/apps/tests/syscall/gvisor/README.md`