Skip to main content
Version: 1.1.1

Writer Fuzzer

写入模糊测试器测试表写入计划,最多包含 5 个常规列、最多 3 个分区键、最多 3 个存储桶列和最多 3 个排序列。

在每次迭代中,模糊测试器都会随机生成一个表写入计划,该计划包含不同的表属性,包括未分区和已分区、非存储桶和已存储桶、已排序和未排序。

然后,模糊测试器生成输入并运行查询计划,并将结果与 PrestoDB 进行比较。 目前,我们比较:

  1. 写入了多少行。
  2. 输出目录具有相同的目录布局和层次结构。
  3. pollux 和 prestoDB 写入的数据(包括存储桶编号)相同。
  4. 如果表已排序,则排序列的数据顺序相同。

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 以查看完整输出。