我有一个小型 Parsec 程序,我使用 QuickCheck 脚本进行测试,该脚本并行生成输入文件和预期的解析。
我的测试通常可以很好地运行 100 次测试,但突然间,当我随便测试一些东西时,它们以一个非常大(600,000 个字符)的反例失败了。当我发现错误的来源时,我很困惑:
\ETX\NUL\202&Hxv4\an3z\244\143\222\RS\236\n\150K
QuickCheck 显然已经为变量名生成了上述字符串,尽管我在程序中只使用了 alphaNum、下划线和空格。
你能看出为什么会出现上述顺序的任何原因吗?会不会是某个地方的溢出错误?或者 QuickCheck 暂时内存不足并写入调试消息?