这个项目能做什么

驱动程序验证套件是一个可复用、可插拔的测试框架,旨在验证ADBC(Arrow Database Connectivity)驱动程序,使用Python和pytest测试库构建。它通过针对目标驱动程序运行SQL查询来执行各种ADBC特性和数据类型,并生成列出支持和不支持特性的文档表格。该套件可以适应特定于数据库的语法和行为怪异之处。 测试用例组织在queries/base目录下,每个单独的测试由共享基本文件名的单个目录中的所有文件组成。该套件支持三种核心查询类型: 1. SELECT查询:测试运行查询并验证其结果,由query.sql文件、预期结果模式(query.schema.json)、JSON Lines格式的预期结果数据(query.json)以及可选的设置SQL、绑定参数数据、绑定模式和绑定查询文件组成。 2. 模式查询:测试检索查询的结果集模式而不执行它,只需要query.sql和预期的模式文件。 3. 摄入查询:测试Arrow数据的批量摄入,随后查询已加载的表,需要输入模式和文件,以及可选的预期结果模式和数据。 所有测试用例都可以包含一个可选的query.toml元数据文件,以控制测试行为和文档输出:hide标志完全跳过针对驱动程序的测试运行,skip标志使用提供的理由将测试标记为不支持,sort-keys定义在比较之前对结果集进行排序的列,tags可以添加注意事项、标记部分支持或指定用于文档的SQL类型名称。 驱动程序可以通过将文件放置在其指定的quirks目录中的相同相对路径上来覆盖基本测试用例,进行特定于驱动程序的调整,从而避免复制完整的测试用例。作为单独文件测试定义的替代方案,可以使用单个.txtcase文件,其中// part:注释标记哪个部分对应于哪个原始文件类型。同一测试用例的.txtcase文件不能与单独文件混合使用,否则会导致测试发现错误。 该项目指出正式文档仍在进行中,建议用户参考现有的ADBC驱动程序实现,以了解如何集成验证套件。