Writer Fuzzer
写入模糊测试器测试表写入计划,最多包含 5 个常规列、最多 3 个分区键、最多 3 个存储桶列和最多 3 个排序列。
在每次迭代中,模糊测试器都会随机生成一个表写入计划,该计划包含不同的表属性,包括未分区和已分区、非存储桶和已存储桶、已排序和未排序。
然后,模糊测试器生成输入并运行查询计划,并将结果与 PrestoDB 进行比较。 目前,我们比较:
- 写入了多少行。
- 输出目录具有相同的目录布局和层次结构。
- pollux 和 prestoDB 写入的数据(包括存储桶编号)相同。
- 如果表已排序,则排序列的数据顺序相同。
How to run
使用 pollux_writer_fuzzer_test 二进制文件运行连接模糊器:
tests/exec/pollux_writer_fuzzer_test
默认情况下,模糊测试器将进行 10 次迭代。使用 --steps 或 --duration-sec 参数可以延长模糊测试器的运行时间。使用 --seed 可以重现模糊测试器的失败情况。
以下是受支持的命令行参数的完整列表。
-
–-steps:要运行的迭代次数。每次迭代都会生成并评估一个故事写入计划。默认值为 10。 -
–-duration_sec:运行时间(秒)。如果同时指定了-–steps和-–duration_sec,则优先使用 –duration_sec。 -
–-seed:用于生成随机表达式和输入向量的种子。 -
–-batch_size:要生成的输入向量的大小。默认值为 100。 -
--num_batches:要生成的大小为--batch_size的输入向量数量。默认值为 5。
如果从 CLion IDE 运行,请添加 --logtostderr=1 以查看完整输出。