Skip to main content
本指南涵盖调试、运行服务器测试套件以及参与 VillageSQL 的开发。它假定您已有一个可用的源码构建——如果尚未完成,请参阅源码构建

调试

VillageSQL 服务器调试在 Linux 上使用 GDB,在 macOS 上使用 lldb。macOS 上的 GDB 需要代码签名,设置起来很麻烦——lldb 是标准的 macOS 调试器,开箱即用。

Linux(GDB)

在 GDB 下运行 VillageSQL:
在 GDB 内部:
常用 GDB 命令:

macOS(lldb)

在 lldb 下运行 VillageSQL:
在 lldb 内部:
常用 lldb 命令:

运行测试

VillageSQL 包含单元测试和回归测试,以验证功能。

单元测试

运行 VillageSQL 特定的单元测试(从您的构建目录中):
或者运行所有单元测试:

回归测试

切换到 mysql-test 目录:
运行完整的 MySQL 测试套件(速度较慢):
仅运行 VillageSQL 特定的测试:
运行 VillageSQL 测试,包括所有子套件:
—suite 与 —do-suite:
  • --suite=villagesql 仅运行顶层 villagesql 测试
  • --do-suite=villagesql 运行所有测试,包括子套件(insert、select、stored_procedure 等)

运行单个测试

通过名称运行特定的测试:
从子套件中运行测试:

更新测试结果

如果您更改了功能并需要更新预期的测试输出:
测试记录: 始终检查 .result 文件的更改,以确保它们反映了预期的行为,而不是错误。--record 标志会盲目地覆盖预期的输出。

测试可移植性

当测试输出包含来自测试运行程序的临时目录的路径时,请在您的 .test 文件中添加以下指令,这样记录的结果就不会包含在其他机器上会出错的绝对路径:

调试测试失败

VillageSQL 特定的日志消息(通过 LogVSQL() 发出)默认情况下会被抑制。要在测试运行时将其显示在错误日志中:
完整的错误日志位于 mysql-test/var/log/mysqld.1.err 有关编写扩展回归测试,请参阅开发指南

安装二进制文件

要在系统范围内安装 VillageSQL(需要适当的权限):
这会将二进制文件默认安装到 /usr/local/mysql/。您可以自定义安装前缀:

贡献

如果您要为 VillageSQL 做出贡献,请参阅贡献指南,了解编码标准和开发流程。