2013-02-04 71 views
0

鉴于gzip规范的实现,如何测试它是否按照规范进行压缩,即有效的gzip文件?gzip压缩函数的单元测试?

我的单元测试压缩一个输入,然后对其进行解压缩,将输入与解压缩的输出进行比较。我不认为这足以保证它满足规范。

任何人都知道测试gzip压缩函数的有效策略吗?

+0

将输出与另一个已知好的实现进行比较。 –

+0

你可以预先计算校验和,然后测试压缩测试文件的校验和和预计算值是否匹配 – smk

+0

@OliCharlesworth我想过,但如果其他实现有缺陷,那么我的测试不是很好(我知道你说的'已知好'但Im寻找不依赖于另一个实施的东西) –

回答

0

只需使用zlib的膨胀测试输出。出于安全原因,充气非常小心拒绝无效的放气数据。

但是,请注意,这只会测试你通过它运行的流。你需要制定很多测试,以确保你能够运用你的平减指数可能产生的所有可能的输出。

+0

我正在考虑按照规范测试文件格式,但由于zlib的实现是由格式创建者完成的,所以我想可以依赖它。谢谢! –

0

您可以在另一个实现中测试您的实现,例如,在命令行gzip工具:

  • 压缩一些数据与您的实现,然后用gunzip解压缩的结果与原
  • ,反之亦然比较,与gzip压缩一些数据,然后用你的执行解压缩和比较