TH3: SQLite Test Harness #3

翻译自原文 《TH3》

Overview

SQLite Test Harness #3 是 SQLite 中用于测试的三种工具之一。TH3 的设计目的是:

  • 能够在缺少必要基础设施的嵌入式平台运行(指的是 Tcl)
  • TH3 只在近似部署环境中测试 SQLite 文档中对外公布的接口
  • TH3 检查 SQLite 在 OOM、磁盘 I/O 错误还有事务在断电情况下的表现
  • TH3 会在各种运行环境中测试 SQLite (UTF8、UTF16 编码的环境,不同页大小的环境、不同的日志记录模式,等等)
  • 用 TH3 编写的 SQLite 测试,核心代码的测试覆盖率达到 100%(FTS 扩展和 RTRee 扩展达不到 100%)

TH3 一开始只用于编写正确性的测试,后来渐渐地被用于开发和调试中的测试,也在其中被证明是很有用的。

历史

TH3 最初来自于 *塞班系统 SymbianOS *。在 TH3 诞生之前,所有的 SQLite 都有用 TCL 脚本运行,但是 TCL 在塞班系统上不那么容易编译成功。

操作

TH3 是一个测试程序的生成器,TH3 的输出是一个 C 写的代码,这段代码要和 SQLite 的库编译链接起来才能完成测试。生成的测试程序会放到目标平台上去运行,以验证在目标平台上运行的正确性。

生成一个测试程序

tclsh mkth3.tcl *.test *.cfg >testprog1.c

TH3 License

TH3 是 public domain 的,任何人都可以以任何目的使用它,但是 TH3 也是私有的,使用它需要 License。

尽管开源用户没有办法直接使用到 TH3,但所有 SQLite 用户都可以间接地从 TH3 中受益,因为 SQLite 是通过 TH3 在不同的平台进行测试验证的。所以任何官方发布的 SQLite 使用者都可以放心的部署。

如果没有购买 TH3 License 的话,是不能拿到那些 TH3 测试给你的。

链接在此:https://www.sqlite.org/th3/doc/trunk/www/get_the_code.wiki

Comments
Write a Comment