• Bug#1064775: marked as done (python-pycdlib: FTBFS: failed tests) (2/3)

    From Debian Bug Tracking System@21:1/5 to Lucas Nussbaum on Mon Feb 26 00:40:02 2024
    [continued from previous message]

    I: -input-charset not specified, using utf-8 (detected in locale settings) genisoimage 1.1.11 (Linux)
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
    23 474
    24 322 rr_moved
    25 216 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/.'
    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 = 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 ______________________________

    tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0')

    def test_parse_rr_deep(tmp_path):
    # First set things up, and generate the ISO with genisoimage.
    indir = tmp_path / 'rrdeep'
    indir.mkdir()
    outfile = str(indir)+'.iso'
    newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6' / 'dir7' / 'dir8'
    newdir.mkdir(parents=True)
    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(tmp_path, outfile, check_rr_deep)

    tests/integration/test_parse.py:794:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    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 0x7f98a45f4a40>, 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 0x7f98a2a5bb00>.posix_file_links
    E + where <pycdlib.rockridge.RRPXRecord object at 0x7f98a2a5bb00> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a3c03320>.px_record
    E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a3c03320> = <pycdlib.rockridge.RockRidge object at 0x7f98a23b9770>.dr_entries
    E + where <pycdlib.rockridge.RockRidge object at 0x7f98a23b9770> = <pycdlib.dr.DirectoryRecord object at 0x7f98a45f4a40>.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-31/test_parse_rr_deep0/rrdeep
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2 Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
    Scanning /tmp/pytest-of-user42/pytest-31/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-31/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 ______________________________

    tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20')

    def test_parse_rr_deep2(tmp_path):
    # First set things up, and generate the ISO with genisoimage.
    indir = tmp_path / 'rrdeep'
    indir.mkdir()
    outfile = str(indir)+'.iso'
    newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6' / 'dir7' / 'dir8' / 'dir9'
    newdir.mkdir(parents=True)
    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(tmp_path, outfile, check_rr_deep2)

    tests/integration/test_parse.py:808:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    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 0x7f98a45f6b40>, 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 0x7f98a23f9a80>.posix_file_links
    E + where <pycdlib.rockridge.RRPXRecord object at 0x7f98a23f9a80> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a23d7270>.px_record
    E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a23d7270> = <pycdlib.rockridge.RockRidge object at 0x7f98a23ba880>.dr_entries
    E + where <pycdlib.rockridge.RockRidge object at 0x7f98a23ba880> = <pycdlib.dr.DirectoryRecord object at 0x7f98a45f6b40>.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-31/test_parse_rr_deep20/rrdeep
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1 Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
    Scanning /tmp/pytest-of-user42/pytest-31/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-31/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 ___________________________

    tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0')

    def test_parse_rr_joliet_deep(tmp_path):
    # First set things up, and generate the ISO with genisoimage.
    indir = tmp_path / 'rrjolietdeep'
    indir.mkdir()
    outfile = str(indir)+'.iso'
    newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6' / 'dir7' / 'dir8'
    newdir.mkdir(parents=True)
    subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', '-no-pad',
    '-rational-rock', '-J', '-o', str(outfile), str(indir)])

    do_a_test(tmp_path, outfile, check_rr_joliet_deep)

    tests/integration/test_parse.py:1025:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    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 0x7f98a23f0440>, 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 0x7f98a2445990>.posix_file_links
    E + where <pycdlib.rockridge.RRPXRecord object at 0x7f98a2445990> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a244f320>.px_record
    E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a244f320> = <pycdlib.rockridge.RockRidge object at 0x7f98a23f6a40>.dr_entries
    E + where <pycdlib.rockridge.RockRidge object at 0x7f98a23f6a40> = <pycdlib.dr.DirectoryRecord object at 0x7f98a23f0440>.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-31/test_parse_rr_joliet_deep0/rrjolietdeep
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
    Scanning /tmp/pytest-of-user42/pytest-31/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_rr_hidden_relocated ________________________

    tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0')

    def test_parse_rr_hidden_relocated(tmp_path):
    # First set things up, and generate the ISO with genisoimage.
    indir = tmp_path / 'rrdeep'
    indir.mkdir()
    outfile = str(indir)+'.iso'
    newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6' / 'dir7' / 'dir8' / 'dir9'
    newdir.mkdir(parents=True)
    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(tmp_path, outfile, check_rr_relocated_hidden)

    tests/integration/test_parse.py:2743:
    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    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 0x7f98a3c0a440>, 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 0x7f98a3728d60>.posix_file_links
    E + where <pycdlib.rockridge.RRPXRecord object at 0x7f98a3728d60> = <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a2a79bc0>.px_record
    E + where <pycdlib.rockridge.RockRidgeEntries object at 0x7f98a2a79bc0> = <pycdlib.rockridge.RockRidge object at 0x7f98a23b9af0>.dr_entries
    E + where <pycdlib.rockridge.RockRidge object at 0x7f98a23b9af0> = <pycdlib.dr.DirectoryRecord object at 0x7f98a3c0a440>.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-31/test_parse_rr_hidden_relocated0/rrdeep
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
    Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
    Scanning /tmp/pytest-of-user42/pytest-31/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-31/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

    [continued in next message]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)