⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
调试

测试的目的是找出系统何时出现故障。不可避免地,对系统所做的更改将导致其中一个测试失败,届时该测试需要进行调试。

首先,始终建议在调试模式下运行。这可以通过使用命令make debug编译系统来完成。其次,建议只运行出现故障的测试。这可以通过将故障测试的文件名作为命令行参数传递给测试套件来完成(例如,build/debug/test/unittest test/sql/projection/test_simple_projection.test)。有关运行部分测试的更多选项,请参阅触发哪些测试运行部分。

之后,可以将调试器附加到程序上并对测试进行调试。在sqllogictests中,通常很难在特定查询处设置断点,但是,我们已经扩展了测试套件,使得每次运行查询时,都会调用一个名为query_break的函数,并以行号line作为参数。这允许您在特定查询上设置条件断点。例如,如果我们要中断测试文件中的第43行,我们可以创建以下断点

gdb: break query_break if line==43
lldb: break s -n query_break -c line==43

您还可以通过在文件中放置mode skip,后跟可选的mode unskip来跳过某些查询的执行。这两个语句之间的任何查询都不会被执行。

触发哪些测试运行

运行unittest程序时,默认会运行所有快速测试。可以通过将测试名称作为参数来运行特定测试。对于sqllogictests,这是测试文件的相对路径。要只运行一个测试

build/debug/test/unittest test/sql/projection/test_simple_projection.test

通过将目录作为带方括号的参数提供,可以执行给定目录中的所有测试。要在“projection”目录中运行所有测试

build/debug/test/unittest "[projection]"

所有测试,包括慢速测试,都可以通过使用星号运行测试来执行。要运行所有测试,包括慢速测试

build/debug/test/unittest "*"

我们可以使用--start-offset--end-offset参数运行部分测试。要运行测试200..250

build/debug/test/unittest --start-offset=200 --end-offset=250

这些也以百分比形式可用。要运行10% - 20%的测试

build/debug/test/unittest --start-offset-percentage=10 --end-offset-percentage=20

要运行的测试集也可以从包含每行一个测试名称的文件中加载,并使用-f命令加载。

cat test.list
test/sql/join/full_outer/test_full_outer_join_issue_4252.test
test/sql/join/full_outer/full_outer_join_cache.test
test/sql/join/full_outer/test_full_outer_join.test

要只运行文件中标记的测试

build/debug/test/unittest -f test.list