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 = 34
Total translation table size: 0
Total rockridge attributes bytes: 2167
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 0
Max brk space used 43000
34 extents written (0 MB)
______________________________ test_parse_rr_deep ______________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0')
def test_parse_rr_deep(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')
with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4', 'dir5', 'dir6', 'dir7', 'dir8', 'foo'), 'wb') as outfp:
outfp.write(b'foo\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)
tests/integration/test_parse.py:718:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2268: in check_rr_deep
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 0x7f9c86b14140>, 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 0x7f9c87ce7e20>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87ce7e20> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b816f0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b816f0> = <pycdlib.rockridge.RockRidge object at 0x7f9c8675f5a0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c8675f5a0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b14140>.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_deep0/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
23 474
24 322 rr_moved
25 332 dir8
26 318 dir1
27 318 dir2
28 318 dir3
29 318 dir4
30 318 dir5
31 318 dir6
32 330 dir7
Cache hit for 'dir8/.'
34 34 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/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) 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 = 35
Total translation table size: 0
Total rockridge attributes bytes: 2242
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 1
Max brk space used 43000
35 extents written (0 MB)
_____________________________ test_parse_rr_deep2 ______________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20')
def test_parse_rr_deep2(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', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_deep2)
tests/integration/test_parse.py:730:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2281: in check_rr_deep2
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 0x7f9c86b14d40>, 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 0x7f9c87015b20>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87015b20> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c879ce090>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c879ce090> = <pycdlib.rockridge.RockRidge object at 0x7f9c86b3e030>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86b3e030> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b14d40>.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_deep20/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
23 474
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_deep20/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: 2452
Total directory bytes: 20954
Path table size(bytes): 134
Done with: The File(s) Block(s) 1
Max brk space used 43000
36 extents written (0 MB)
__________________________ test_parse_rr_joliet_deep ___________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0')
def test_parse_rr_joliet_deep(tmpdir):
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('rrjolietdeep')
outfile = str(indir)+'.iso'
indir.mkdir('dir1').mkdir('dir2').mkdir('dir3').mkdir('dir4').mkdir('dir5').mkdir('dir6').mkdir('dir7').mkdir('dir8')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-J', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_joliet_deep)
tests/integration/test_parse.py:923:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2776: in check_rr_joliet_deep
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=28, 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 0x7f9c87716840>, 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 0x7f9c869d7c40>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c869d7c40> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86c092d0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86c092d0> = <pycdlib.rockridge.RockRidge object at 0x7f9c86b2f760>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86b2f760> = <pycdlib.dr.DirectoryRecord object at 0x7f9c87716840>.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_joliet_deep0/rrjolietdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
28 474
29 322 rr_moved
30 216 dir8
31 318 dir1
32 318 dir2
33 318 dir3
34 318 dir4
35 318 dir5
36 318 dir6
37 330 dir7
Cache hit for 'dir8/.'
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: Joliet Volume Descriptor Start Block 17
Done with: Joliet Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 18
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 19
Done with: Version block Block(s) 1
Writing: Path table Start Block 20
Done with: Path table Block(s) 4
Writing: Joliet path table Start Block 24
Done with: Joliet path table Block(s) 4
Writing: Directory tree Start Block 28
Done with: Directory tree Block(s) 10
Writing: Joliet directory tree Start Block 38
Done with: Joliet directory tree Block(s) 9
Writing: Directory tree cleanup Start Block 47
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 47
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 48
Total extents scheduled to be written = 48
Total translation table size: 0
Total rockridge attributes bytes: 2167
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 0
Max brk space used 43000
48 extents written (0 MB)
______________________ test_parse_duplicate_rrmoved_name _______________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0')
def test_parse_duplicate_rrmoved_name(tmpdir):
iso = pycdlib.PyCdlib()
iso.new(rock_ridge='1.09')
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('eltoritonofiles')
outfile = str(indir)+'.iso'
fdir = indir.mkdir('A').mkdir('B').mkdir('C').mkdir('D').mkdir('E').mkdir('F')
fdir.mkdir('G').mkdir('1')
fdir.mkdir('H').mkdir('1')
with open(os.path.join(str(indir), 'A', 'B', 'C', 'D', 'E', 'F', 'G', '1', 'first'), 'wb') as outfp:
outfp.write(b'first\n')
with open(os.path.join(str(indir), 'A', 'B', 'C', 'D', 'E', 'F', 'H', '1', 'second'), 'wb') as outfp:
outfp.write(b'second\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_two_dirs_same_level)
tests/integration/test_parse.py:2305:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:3567: in check_rr_two_dirs_same_level
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 0x7f9c86b9a340>, 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 0x7f9c86aad260>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c86aad260> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c870292d0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c870292d0> = <pycdlib.rockridge.RockRidge object at 0x7f9c86c04a50>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86c04a50> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b9a340>.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_duplicate_rrmoved_n0/eltoritonofiles
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H/1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G/1
Using 1000 for ./rr_moved/1 (1)
23 468
24 432 rr_moved
25 336 1
26 336 1
27 312 A
28 312 B
29 312 C
30 312 D
31 312 E
32 420 F
33 324 H
34 324 G
Cache hit for '1/.'
36 36 /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H/1/second
Cache hit for '1/.'
37 37 /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G/1/first
Cache hit for 'A/.'
Cache hit for 'A/..'
Cache hit for 'B/.'
Cache hit for 'B/..'
Cache hit for 'C/.'
Cache hit for 'C/..'
Cache hit for 'D/.'
Cache hit for 'D/..'
Cache hit for 'E/.'
Cache hit for 'E/..'
Cache hit for 'F/.'
Cache hit for 'F/..'
Cache hit for 'H/.'
Cache hit for 'H/..'
Cache hit for 'G/.'
Cache hit for 'G/..'
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) 12
Writing: Directory tree cleanup Start Block 35
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 35
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 36
Total extents scheduled to be written = 38
Total translation table size: 0
Total rockridge attributes bytes: 2810
Total directory bytes: 22996
Path table size(bytes): 128
Done with: The File(s) Block(s) 2
Max brk space used 43000
38 extents written (0 MB)
_______________________ test_parse_rr_deep_weird_layout ________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0')
def test_parse_rr_deep_weird_layout(tmpdir):
indir = tmpdir.mkdir('rrdeepweird')
outfile = str(indir) + '.iso'
absimp = indir.mkdir('astroid').mkdir('astroid').mkdir('tests').mkdir('testdata').mkdir('python3').mkdir('data').mkdir('absimp')
sidepackage = absimp.mkdir('sidepackage')
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')
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 = 34
Total translation table size: 0
Total rockridge attributes bytes: 2167
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 0
Max brk space used 43000
34 extents written (0 MB)
______________________________ test_parse_rr_deep ______________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0')
def test_parse_rr_deep(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')
with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4', 'dir5', 'dir6', 'dir7', 'dir8', 'foo'), 'wb') as outfp:
outfp.write(b'foo\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)
tests/integration/test_parse.py:718:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2268: in check_rr_deep
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 0x7f9c86b14140>, 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 0x7f9c87ce7e20>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87ce7e20> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b816f0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86b816f0> = <pycdlib.rockridge.RockRidge object at 0x7f9c8675f5a0>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c8675f5a0> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b14140>.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_deep0/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
23 474
24 322 rr_moved
25 332 dir8
26 318 dir1
27 318 dir2
28 318 dir3
29 318 dir4
30 318 dir5
31 318 dir6
32 330 dir7
Cache hit for 'dir8/.'
34 34 /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/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) 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 = 35
Total translation table size: 0
Total rockridge attributes bytes: 2242
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 1
Max brk space used 43000
35 extents written (0 MB)
_____________________________ test_parse_rr_deep2 ______________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20')
def test_parse_rr_deep2(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', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_deep2)
tests/integration/test_parse.py:730:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2281: in check_rr_deep2
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 0x7f9c86b14d40>, 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 0x7f9c87015b20>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c87015b20> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c879ce090>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c879ce090> = <pycdlib.rockridge.RockRidge object at 0x7f9c86b3e030>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86b3e030> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b14d40>.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_deep20/rrdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
23 474
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_deep20/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: 2452
Total directory bytes: 20954
Path table size(bytes): 134
Done with: The File(s) Block(s) 1
Max brk space used 43000
36 extents written (0 MB)
__________________________ test_parse_rr_joliet_deep ___________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0')
def test_parse_rr_joliet_deep(tmpdir):
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('rrjolietdeep')
outfile = str(indir)+'.iso'
indir.mkdir('dir1').mkdir('dir2').mkdir('dir3').mkdir('dir4').mkdir('dir5').mkdir('dir6').mkdir('dir7').mkdir('dir8')
subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
'-rational-rock', '-J', '-o', str(outfile), str(indir)])
do_a_test(tmpdir, outfile, check_rr_joliet_deep)
tests/integration/test_parse.py:923:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:2776: in check_rr_joliet_deep
internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4, data_length=2048, extent_location=28, 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 0x7f9c87716840>, 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 0x7f9c869d7c40>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c869d7c40> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86c092d0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c86c092d0> = <pycdlib.rockridge.RockRidge object at 0x7f9c86b2f760>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86b2f760> = <pycdlib.dr.DirectoryRecord object at 0x7f9c87716840>.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_joliet_deep0/rrjolietdeep
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
28 474
29 322 rr_moved
30 216 dir8
31 318 dir1
32 318 dir2
33 318 dir3
34 318 dir4
35 318 dir5
36 318 dir6
37 330 dir7
Cache hit for 'dir8/.'
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: Joliet Volume Descriptor Start Block 17
Done with: Joliet Volume Descriptor Block(s) 1
Writing: End Volume Descriptor Start Block 18
Done with: End Volume Descriptor Block(s) 1
Writing: Version block Start Block 19
Done with: Version block Block(s) 1
Writing: Path table Start Block 20
Done with: Path table Block(s) 4
Writing: Joliet path table Start Block 24
Done with: Joliet path table Block(s) 4
Writing: Directory tree Start Block 28
Done with: Directory tree Block(s) 10
Writing: Joliet directory tree Start Block 38
Done with: Joliet directory tree Block(s) 9
Writing: Directory tree cleanup Start Block 47
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 47
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 48
Total extents scheduled to be written = 48
Total translation table size: 0
Total rockridge attributes bytes: 2167
Total directory bytes: 18906
Path table size(bytes): 122
Done with: The File(s) Block(s) 0
Max brk space used 43000
48 extents written (0 MB)
______________________ test_parse_duplicate_rrmoved_name _______________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0')
def test_parse_duplicate_rrmoved_name(tmpdir):
iso = pycdlib.PyCdlib()
iso.new(rock_ridge='1.09')
# First set things up, and generate the ISO with genisoimage.
indir = tmpdir.mkdir('eltoritonofiles')
outfile = str(indir)+'.iso'
fdir = indir.mkdir('A').mkdir('B').mkdir('C').mkdir('D').mkdir('E').mkdir('F')
fdir.mkdir('G').mkdir('1')
fdir.mkdir('H').mkdir('1')
with open(os.path.join(str(indir), 'A', 'B', 'C', 'D', 'E', 'F', 'G', '1', 'first'), 'wb') as outfp:
outfp.write(b'first\n')
with open(os.path.join(str(indir), 'A', 'B', 'C', 'D', 'E', 'F', 'H', '1', 'second'), 'wb') as outfp:
outfp.write(b'second\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_two_dirs_same_level)
tests/integration/test_parse.py:2305:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
tests/integration/test_parse.py:21: in do_a_test
check_func(iso, os.stat(str(outfile)).st_size) tests/integration/test_common.py:3567: in check_rr_two_dirs_same_level
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 0x7f9c86b9a340>, 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 0x7f9c86aad260>.posix_file_links
E + where <pycdlib.rockridge.RRPXRecord object at 0x7f9c86aad260> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c870292d0>.px_record
E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f9c870292d0> = <pycdlib.rockridge.RockRidge object at 0x7f9c86c04a50>.dr_entries
E + where <pycdlib.rockridge.RockRidge object at 0x7f9c86c04a50> = <pycdlib.dr.DirectoryRecord object at 0x7f9c86b9a340>.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_duplicate_rrmoved_n0/eltoritonofiles
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H/1
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G
Scanning /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G/1
Using 1000 for ./rr_moved/1 (1)
23 468
24 432 rr_moved
25 336 1
26 336 1
27 312 A
28 312 B
29 312 C
30 312 D
31 312 E
32 420 F
33 324 H
34 324 G
Cache hit for '1/.'
36 36 /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/H/1/second
Cache hit for '1/.'
37 37 /tmp/pytest-of-user42/pytest-11/test_parse_duplicate_rrmoved_n0/eltoritonofiles/A/B/C/D/E/F/G/1/first
Cache hit for 'A/.'
Cache hit for 'A/..'
Cache hit for 'B/.'
Cache hit for 'B/..'
Cache hit for 'C/.'
Cache hit for 'C/..'
Cache hit for 'D/.'
Cache hit for 'D/..'
Cache hit for 'E/.'
Cache hit for 'E/..'
Cache hit for 'F/.'
Cache hit for 'F/..'
Cache hit for 'H/.'
Cache hit for 'H/..'
Cache hit for 'G/.'
Cache hit for 'G/..'
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) 12
Writing: Directory tree cleanup Start Block 35
Done with: Directory tree cleanup Block(s) 0
Writing: Extension record Start Block 35
Done with: Extension record Block(s) 1
Writing: The File(s) Start Block 36
Total extents scheduled to be written = 38
Total translation table size: 0
Total rockridge attributes bytes: 2810
Total directory bytes: 22996
Path table size(bytes): 128
Done with: The File(s) Block(s) 2
Max brk space used 43000
38 extents written (0 MB)
_______________________ test_parse_rr_deep_weird_layout ________________________
tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_weird_layou0')
def test_parse_rr_deep_weird_layout(tmpdir):
indir = tmpdir.mkdir('rrdeepweird')
outfile = str(indir) + '.iso'
absimp = indir.mkdir('astroid').mkdir('astroid').mkdir('tests').mkdir('testdata').mkdir('python3').mkdir('data').mkdir('absimp')
sidepackage = absimp.mkdir('sidepackage')
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 297 |
Nodes: | 16 (2 / 14) |
Uptime: | 01:13:55 |
Calls: | 6,666 |
Calls today: | 4 |
Files: | 12,212 |
Messages: | 5,335,472 |