with open(os.path.join(str(sidepackage), '__init__.py'), 'wb') as outfp:
outfp.write(b'"""a side package with nothing in it\n"""\n')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_deep_weird_layout)
tests/integration/test_parse.py:2495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:3986: in check_rr_deep_weird_layout
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False, rr_onetwelve=False)
tests/integration/test_common.py:289: in internal_check_root_dir_record
internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr, rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f9c871d2440>, rr = True
rr_nlinks = 4, xa = False, rr_onetwelve = False
def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa, rr_onetwelve):
# The file identifier for the 'dotdot' directory entry should be the byte 1.
assert(dotdot_record.file_ident == b'\x01')
# The 'dotdot' directory entry should be a directory.
assert(dotdot_record.isdir == True)
# The 'dotdot' directory record length should be exactly 34 with no extensions.
if rr:
if rr_onetwelve:
expected_dr_len = 104
else:
expected_dr_len = 102
else:
expected_dr_len = 34
if xa:
expected_dr_len += 14
assert(dotdot_record.dr_len == expected_dr_len)
# The 'dotdot' directory record is not the root.
assert(dotdot_record.is_root == False)
# The 'dotdot' directory record should have no children.
assert(len(dotdot_record.children) == 0)
assert(dotdot_record.file_flags == 2)
if rr:
assert(dotdot_record.rock_ridge._initialized == True)
assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
if not rr_onetwelve:
assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags == 0x81)
assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode == 0o040555)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links == rr_nlinks)E assert 3 == 4
E + where 3 = <pycdlib.rockridge.RRPXRecord object at 0x7f9c882d4d10>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c882d4d10> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c87173480>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c87173480> = <pycdlib.rockridge.RockRidge object at 0x7f9c8724fbc0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c8724fbc0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c871d2440>.rock_ridge
tests/integration/test_common.py:416: AssertionError ----------------------------- Captured stderr call -----------------------------
I: -input-charset not specified, using utf-8 (detected in locale settings) genisoimage 1.1.11 (Linux)
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/sidepackage
23 480
24 334 rr_moved
25 346 sidepackage
26 324 astroid
27 320 astroid
28 326 tests
29 324 testdata
30 318 python3
31 322 data
32 468 absimp
Cache hit for 'sidepackage/.'
34 34 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/sidepackage/__init__.py
Cache hit for 'astroid/.'
Cache hit for 'astroid/..'
Cache hit for 'astroid/.'
Cache hit for 'astroid/..'
Cache hit for 'tests/.'
Cache hit for 'tests/..'
Cache hit for 'testdata/.'
Cache hit for 'testdata/..'
Cache hit for 'python3/.'
Cache hit for 'python3/..'
Cache hit for 'data/.'
Cache hit for 'data/..'
Cache hit for 'absimp/.'
Cache hit for 'absimp/..'
35 35 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/string.py
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 17
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 18
Done with: Version block Block(s) 1
Writing: Path table Start Block 19
Done with: Path table Block(s) 4
Writing: Directory tree Start Block 23
Done with: Directory tree Block(s) 10
Writing: Directory tree cleanup Start Block 33
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 33
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 34
Total extents scheduled to be written = 36
Total translation table size: 0
Total rockridge attributes bytes: 2361
Total directory bytes: 18912
Path table size(bytes): 146
Done with: The File(s) Block(s) 2
Max brk space used 43000
36 extents written (0 MB)
________________________ test_parse_rr_hidden_relocated ________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0')
def test_parse_rr_hidden_relocated(tmpdir):
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('rrdeep')
outfile = str(indir)+'.iso'
indir.mkdir('dir1').mkdir('dir2').mkdir('dir3').mkdir('dir4').mkdir('dir5').mkdir('dir6').mkdir('dir7').mkdir('dir8').mkdir('dir9')
with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4', 'dir5', 'dir6', 'dir7', 'dir8', 'dir9', 'foo'), 'wb') as outfp:
outfp.write(b'foo\n')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-hide-rr-moved', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_relocated_hidden)
tests/integration/test_parse.py:2516:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:4098: in check_rr_relocated_hidden
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False, rr_onetwelve=False)
tests/integration/test_common.py:289: in internal_check_root_dir_record
internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr, rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f9c86fe9040>, rr = True
rr_nlinks = 4, xa = False, rr_onetwelve = False
def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa, rr_onetwelve):
# The file identifier for the 'dotdot' directory entry should be the byte 1.
assert(dotdot_record.file_ident == b'\x01')
# The 'dotdot' directory entry should be a directory.
assert(dotdot_record.isdir == True)
# The 'dotdot' directory record length should be exactly 34 with no extensions.
if rr:
if rr_onetwelve:
expected_dr_len = 104
else:
expected_dr_len = 102
else:
expected_dr_len = 34
if xa:
expected_dr_len += 14
assert(dotdot_record.dr_len == expected_dr_len)
# The 'dotdot' directory record is not the root.
assert(dotdot_record.is_root == False)
# The 'dotdot' directory record should have no children.
assert(len(dotdot_record.children) == 0)
assert(dotdot_record.file_flags == 2)
if rr:
assert(dotdot_record.rock_ridge._initialized == True)
assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
if not rr_onetwelve:
assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags == 0x81)
assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode == 0o040555)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links == rr_nlinks)E assert 3 == 4
E + where 3 = <pycdlib.rockridge.RRPXRecord object at 0x7f9c87d168e0>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87d168e0> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b63060>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b63060> = <pycdlib.rockridge.RockRidge object at 0x7f9c871e6ab0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c871e6ab0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86fe9040>.rock_ridge
tests/integration/test_common.py:416: AssertionError ----------------------------- Captured stderr call -----------------------------
I: -input-charset not specified, using utf-8 (detected in locale settings) genisoimage 1.1.11 (Linux)
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
23 476
24 322 .rr_moved
25 330 dir8
26 320 dir9
27 318 dir1
28 318 dir2
29 318 dir3
30 318 dir4
31 318 dir5
32 318 dir6
33 330 dir7
Cache hit for 'dir8/.'
Cache hit for 'dir9/.'
Cache hit for 'dir9/..'
35 35 /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/foo
Cache hit for 'dir1/.'
Cache hit for 'dir1/..'
Cache hit for 'dir2/.'
Cache hit for 'dir2/..'
Cache hit for 'dir3/.'
Cache hit for 'dir3/..'
Cache hit for 'dir4/.'
Cache hit for 'dir4/..'
Cache hit for 'dir5/.'
Cache hit for 'dir5/..'
Cache hit for 'dir6/.'
Cache hit for 'dir6/..'
Cache hit for 'dir7/.'
Cache hit for 'dir7/..'
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 17
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 18
Done with: Version block Block(s) 1
Writing: Path table Start Block 19
Done with: Path table Block(s) 4
Writing: Directory tree Start Block 23
Done with: Directory tree Block(s) 11
Writing: Directory tree cleanup Start Block 34
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 34
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 35
Total extents scheduled to be written = 36
Total translation table size: 0
Total rockridge attributes bytes: 2453
Total directory bytes: 20956
Path table size(bytes): 134
Done with: The File(s) Block(s) 1
Max brk space used 43000
36 extents written (0 MB)
=========================== short test summary info ============================
FAILED tests/integration/test_hybrid.py::test_hybrid_sevendeepdirs - assert 2...
FAILED tests/integration/test_parse.py::test_parse_rr_deep_dir - assert 3 == 4
FAILED tests/integration/test_parse.py::test_parse_rr_deep - assert 3 == 4 FAILED tests/integration/test_parse.py::test_parse_rr_deep2 - assert 3 == 4 FAILED tests/integration/test_parse.py::test_parse_rr_joliet_deep - assert 3 ...
FAILED tests/integration/test_parse.py::test_parse_duplicate_rrmoved_name - a...
FAILED tests/integration/test_parse.py::test_parse_rr_deep_weird_layout - ass...
FAILED tests/integration/test_parse.py::test_parse_rr_hidden_relocated - asse...
================== 8 failed, 1697 passed, 16 skipped in 9.23s ==================
make[1]: *** [debian/rules:19: override_dh_auto_install] Error 1
with open(os.path.join(str(absimp), 'string.py'), 'wb') as outfp:
outfp.write(b'from __future__ import absolute_import, print_functino\nimport string\nprint(string)\n')
with open(os.path.join(str(sidepackage), '__init__.py'), 'wb') as outfp:
outfp.write(b'"""a side package with nothing in it\n"""\n')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_deep_weird_layout)
tests/integration/test_parse.py:2495:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:3986: in check_rr_deep_weird_layout
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False, rr_onetwelve=False)
tests/integration/test_common.py:289: in internal_check_root_dir_record
internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr, rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f9c871d2440>, rr = True
rr_nlinks = 4, xa = False, rr_onetwelve = False
def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa, rr_onetwelve):
# The file identifier for the 'dotdot' directory entry should be the byte 1.
assert(dotdot_record.file_ident == b'\x01')
# The 'dotdot' directory entry should be a directory.
assert(dotdot_record.isdir == True)
# The 'dotdot' directory record length should be exactly 34 with no extensions.
if rr:
if rr_onetwelve:
expected_dr_len = 104
else:
expected_dr_len = 102
else:
expected_dr_len = 34
if xa:
expected_dr_len += 14
assert(dotdot_record.dr_len == expected_dr_len)
# The 'dotdot' directory record is not the root.
assert(dotdot_record.is_root == False)
# The 'dotdot' directory record should have no children.
assert(len(dotdot_record.children) == 0)
assert(dotdot_record.file_flags == 2)
if rr:
assert(dotdot_record.rock_ridge._initialized == True)
assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
if not rr_onetwelve:
assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags == 0x81)
assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode == 0o040555)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links == rr_nlinks)E assert 3 == 4
E + where 3 = <pycdlib.rockridge.RRPXRecord object at 0x7f9c882d4d10>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c882d4d10> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c87173480>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c87173480> = <pycdlib.rockridge.RockRidge object at 0x7f9c8724fbc0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c8724fbc0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c871d2440>.rock_ridge
tests/integration/test_common.py:416: AssertionError ----------------------------- Captured stderr call -----------------------------
I: -input-charset not specified, using utf-8 (detected in locale settings) genisoimage 1.1.11 (Linux)
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/sidepackage
23 480
24 334 rr_moved
25 346 sidepackage
26 324 astroid
27 320 astroid
28 326 tests
29 324 testdata
30 318 python3
31 322 data
32 468 absimp
Cache hit for 'sidepackage/.'
34 34 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/sidepackage/__init__.py
Cache hit for 'astroid/.'
Cache hit for 'astroid/..'
Cache hit for 'astroid/.'
Cache hit for 'astroid/..'
Cache hit for 'tests/.'
Cache hit for 'tests/..'
Cache hit for 'testdata/.'
Cache hit for 'testdata/..'
Cache hit for 'python3/.'
Cache hit for 'python3/..'
Cache hit for 'data/.'
Cache hit for 'data/..'
Cache hit for 'absimp/.'
Cache hit for 'absimp/..'
35 35 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0/rrdeepweird/astroid/astroid/tests/testdata/python3/data/absimp/string.py
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 17
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 18
Done with: Version block Block(s) 1
Writing: Path table Start Block 19
Done with: Path table Block(s) 4
Writing: Directory tree Start Block 23
Done with: Directory tree Block(s) 10
Writing: Directory tree cleanup Start Block 33
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 33
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 34
Total extents scheduled to be written = 36
Total translation table size: 0
Total rockridge attributes bytes: 2361
Total directory bytes: 18912
Path table size(bytes): 146
Done with: The File(s) Block(s) 2
Max brk space used 43000
36 extents written (0 MB)
________________________ test_parse_rr_hidden_relocated ________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0')
def test_parse_rr_hidden_relocated(tmpdir):
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('rrdeep')
outfile = str(indir)+'.iso'
indir.mkdir('dir1').mkdir('dir2').mkdir('dir3').mkdir('dir4').mkdir('dir5').mkdir('dir6').mkdir('dir7').mkdir('dir8').mkdir('dir9')
with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4', 'dir5', 'dir6', 'dir7', 'dir8', 'dir9', 'foo'), 'wb') as outfp:
outfp.write(b'foo\n')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-hide-rr-moved', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_relocated_hidden)
tests/integration/test_parse.py:2516:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:4098: in check_rr_relocated_hidden
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False, rr_onetwelve=False)
tests/integration/test_common.py:289: in internal_check_root_dir_record
internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr, rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f9c86fe9040>, rr = True
rr_nlinks = 4, xa = False, rr_onetwelve = False
def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa, rr_onetwelve):
# The file identifier for the 'dotdot' directory entry should be the byte 1.
assert(dotdot_record.file_ident == b'\x01')
# The 'dotdot' directory entry should be a directory.
assert(dotdot_record.isdir == True)
# The 'dotdot' directory record length should be exactly 34 with no extensions.
if rr:
if rr_onetwelve:
expected_dr_len = 104
else:
expected_dr_len = 102
else:
expected_dr_len = 34
if xa:
expected_dr_len += 14
assert(dotdot_record.dr_len == expected_dr_len)
# The 'dotdot' directory record is not the root.
assert(dotdot_record.is_root == False)
# The 'dotdot' directory record should have no children.
assert(len(dotdot_record.children) == 0)
assert(dotdot_record.file_flags == 2)
if rr:
assert(dotdot_record.rock_ridge._initialized == True)
assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
if not rr_onetwelve:
assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags == 0x81)
assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode == 0o040555)
assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links == rr_nlinks)E assert 3 == 4
E + where 3 = <pycdlib.rockridge.RRPXRecord object at 0x7f9c87d168e0>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87d168e0> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b63060>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b63060> = <pycdlib.rockridge.RockRidge object at 0x7f9c871e6ab0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c871e6ab0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86fe9040>.rock_ridge
tests/integration/test_common.py:416: AssertionError ----------------------------- Captured stderr call -----------------------------
I: -input-charset not specified, using utf-8 (detected in locale settings) genisoimage 1.1.11 (Linux)
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
23 476
24 322 .rr_moved
25 330 dir8
26 320 dir9
27 318 dir1
28 318 dir2
29 318 dir3
30 318 dir4
31 318 dir5
32 318 dir6
33 330 dir7
Cache hit for 'dir8/.'
Cache hit for 'dir9/.'
Cache hit for 'dir9/..'
35 35 /tmp/pytest-of-user42/pytest-11/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/foo
Cache hit for 'dir1/.'
Cache hit for 'dir1/..'
Cache hit for 'dir2/.'
Cache hit for 'dir2/..'
Cache hit for 'dir3/.'
Cache hit for 'dir3/..'
Cache hit for 'dir4/.'
Cache hit for 'dir4/..'
Cache hit for 'dir5/.'
Cache hit for 'dir5/..'
Cache hit for 'dir6/.'
Cache hit for 'dir6/..'
Cache hit for 'dir7/.'
Cache hit for 'dir7/..'
Writing: Initial Padblock Start Block 0
Done with: Initial Padblock Block(s) 16
Writing: Primary Volume Descriptor Start Block 16
Done with: Primary Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 17
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 18
Done with: Version block Block(s) 1
Writing: Path table Start Block 19
Done with: Path table Block(s) 4
Writing: Directory tree Start Block 23
Done with: Directory tree Block(s) 11
Writing: Directory tree cleanup Start Block 34
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 34
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 35
Total extents scheduled to be written = 36
Total translation table size: 0
Total rockridge attributes bytes: 2453
Total directory bytes: 20956
Path table size(bytes): 134
Done with: The File(s) Block(s) 1
Max brk space used 43000
36 extents written (0 MB)
=========================== short test summary info ============================
FAILED tests/integration/test_hybrid.py::test_hybrid_sevendeepdirs - assert 2...
FAILED tests/integration/test_parse.py::test_parse_rr_deep_dir - assert 3 == 4
FAILED tests/integration/test_parse.py::test_parse_rr_deep - assert 3 == 4 FAILED tests/integration/test_parse.py::test_parse_rr_deep2 - assert 3 == 4 FAILED tests/integration/test_parse.py::test_parse_rr_joliet_deep - assert 3 ...
FAILED tests/integration/test_parse.py::test_parse_duplicate_rrmoved_name - a...
FAILED tests/integration/test_parse.py::test_parse_rr_deep_weird_layout - ass...
FAILED tests/integration/test_parse.py::test_parse_rr_hidden_relocated - asse...
================== 8 failed, 1697 passed, 16 skipped in 9.23s ==================
make[1]: *** [debian/rules:19: override_dh_auto_install] Error 1
Control: reopen 1002789
Control: found 1002789 1.12.0+ds1-5
Hi all,
Unfortunately, I can still reproduce this failure with version
1.12.0+ds1-5, as shown in the attached build log.
Sorry about that.
Let us (Santiago or myself) know if it would be useful to provide a VM
to reproduce this issue.
Lucas
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 297 |
Nodes: | 16 (2 / 14) |
Uptime: | 03:07:02 |
Calls: | 6,666 |
Calls today: | 4 |
Files: | 12,212 |
Messages: | 5,335,697 |