Commit 1f5694c8 authored by Chris Lamb's avatar Chris Lamb 💬

Test that we do not recursively unpack archive quines. See...

Test that we do not recursively unpack archive quines. See <> for more information.
Signed-off-by: Chris Lamb's avatarChris Lamb <>
parent bb3555b7
@@ -1 +1 @@
-gzip compressed data, was "recursive", from FAT filesystem (MS-DOS, OS/2, NT)
+Zip archive data, at least v2.0 to extract
# -*- coding: utf-8 -*-
# diffoscope: in-depth comparison of files, archives, and directories
# Copyright © 2017 Chris Lamb <>
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with diffoscope. If not, see <>.
import pytest
from import ZipFile
from diffoscope.comparators.gzip import GzipFile
from import load_fixture, get_data
quine1 = load_fixture('quine.gz')
quine2 = load_fixture('')
def test_identification(quine1, quine2):
assert isinstance(quine1, GzipFile)
assert isinstance(quine2, ZipFile)
def test_no_differences(quine1):
difference =
assert difference is None
def differences(quine1, quine2):
def test_difference(differences):
# Check that we are not recursively unpacking the quines in an infinite
# loop. See <>
expected_diff = get_data('quine_expected_diff')
assert differences[0].unified_diff == expected_diff
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment