mirror of
https://github.com/python/cpython.git
synced 2025-12-04 00:30:19 +00:00
SF #857297 and 916874, improve handling of hard links when extracting
This commit is contained in:
parent
0662f8a5ea
commit
a4f651a2ae
3 changed files with 30 additions and 1 deletions
|
|
@ -293,6 +293,24 @@ class WriteGNULongTest(unittest.TestCase):
|
|||
self._test(("longnam/" * 127) + "longname_",
|
||||
("longlnk/" * 127) + "longlink_")
|
||||
|
||||
class ExtractHardlinkTest(BaseTest):
|
||||
|
||||
def test_hardlink(self):
|
||||
"""Test hardlink extraction (bug #857297)
|
||||
"""
|
||||
# Prevent errors from being caught
|
||||
self.tar.errorlevel = 1
|
||||
|
||||
self.tar.extract("0-REGTYPE", dirname())
|
||||
try:
|
||||
# Extract 1-LNKTYPE which is a hardlink to 0-REGTYPE
|
||||
self.tar.extract("1-LNKTYPE", dirname())
|
||||
except EnvironmentError, e:
|
||||
import errno
|
||||
if e.errno == errno.ENOENT:
|
||||
self.fail("hardlink not extracted properly")
|
||||
|
||||
|
||||
# Gzip TestCases
|
||||
class ReadTestGzip(ReadTest):
|
||||
comp = "gz"
|
||||
|
|
@ -337,6 +355,9 @@ def test_main():
|
|||
WriteGNULongTest,
|
||||
]
|
||||
|
||||
if hasattr(os, "link"):
|
||||
tests.append(ExtractHardlinkTest)
|
||||
|
||||
if gzip:
|
||||
tests.extend([
|
||||
ReadTestGzip, ReadStreamTestGzip,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue