2013-02-04 102 views
0

鑑於gzip規範的實現,如何測試它是否按照規範進行壓縮,即有效的gzip文件?gzip壓縮函數的單元測試?

我的單元測試壓縮一個輸入,然後對其進行解壓縮,將輸入與解壓縮的輸出進行比較。我不認爲這足以保證它滿足規範。

任何人都知道測試gzip壓縮函數的有效策略嗎?

+0

將輸出與另一個已知好的實現進行比較。 –

+0

你可以預先計算校驗和,然後測試壓縮測試文件的校驗和和預計算值是否匹配 – smk

+0

@OliCharlesworth我想過,但如果其他實現有缺陷,那麼我的測試不是很好(我知道你說的'已知好'但Im尋找不依賴於另一個實施的東西) –

回答

0

只需使用zlib的膨脹測試輸出。出於安全原因,充氣非常小心拒絕無效的放氣數據。

但是,請注意,這隻會測試你通過它運行的流。你需要制定很多測試,以確保你能夠運用你的平減指數可能產生的所有可能的輸出。

+0

我正在考慮按照規範測試文件格式,但由於zlib的實現是由格式創建者完成的,所以我想可以依賴它。謝謝! –

0

您可以在另一個實現中測試您的實現,例如,在命令行gzip工具:

  • 壓縮一些數據與您的實現,然後用gunzip解壓縮的結果與原
  • ,反之亦然比較,與gzip壓縮一些數據,然後用你的執行解壓縮和比較