鉴于gzip规范的实现,如何测试它是否按照规范进行压缩,即有效的gzip文件?gzip压缩函数的单元测试?
我的单元测试压缩一个输入,然后对其进行解压缩,将输入与解压缩的输出进行比较。我不认为这足以保证它满足规范。
任何人都知道测试gzip压缩函数的有效策略吗?
鉴于gzip规范的实现,如何测试它是否按照规范进行压缩,即有效的gzip文件?gzip压缩函数的单元测试?
我的单元测试压缩一个输入,然后对其进行解压缩,将输入与解压缩的输出进行比较。我不认为这足以保证它满足规范。
任何人都知道测试gzip压缩函数的有效策略吗?
只需使用zlib的膨胀测试输出。出于安全原因,充气非常小心拒绝无效的放气数据。
但是,请注意,这只会测试你通过它运行的流。你需要制定很多测试,以确保你能够运用你的平减指数可能产生的所有可能的输出。
我正在考虑按照规范测试文件格式,但由于zlib的实现是由格式创建者完成的,所以我想可以依赖它。谢谢! –
您可以在另一个实现中测试您的实现,例如,在命令行gzip
工具:
gunzip
解压缩的结果与原gzip
压缩一些数据,然后用你的执行解压缩和比较
将输出与另一个已知好的实现进行比较。 –
你可以预先计算校验和,然后测试压缩测试文件的校验和和预计算值是否匹配 – smk
@OliCharlesworth我想过,但如果其他实现有缺陷,那么我的测试不是很好(我知道你说的'已知好'但Im寻找不依赖于另一个实施的东西) –