Your message dated Tue, 23 Jan 2024 16:22:33 +0000
with message-id <e1rsjxl-00bnqe...@fasolo.debian.org>
and subject line Bug#1002789: fixed in python-pycdlib 1.12.0+ds1-5
has caused the Debian Bug report #1002789,
regarding python-pycdlib: FTBFS: failed tests
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1002789: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1002789
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Source: python-pycdlib
Version: 1.12.0+ds1-3
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20211228 ftbfs-bookworm

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.


Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> make[1]: pyversions: No such file or directory
> py3versions: no X-Python3-Version in control file, using supported versions
> pkgos-dh_auto_install --no-py2 --in-tmp
> + PKGOS_USE_PY2=yes
> + PKGOS_USE_PY3=yes
> + PKGOS_IN_TMP=no
> + PKGOS_USE_PY2=no
> + shift
> + PKGOS_IN_TMP=yes
> + shift
> + dpkg-parsechangelog -SSource
> + SRC_PKG_NAME=python-pycdlib
> + echo python-pycdlib
> + sed s/python-//
> + PY_MODULE_NAME=pycdlib
> + [ no = yes ]
> + [ yes = yes ]
> + py3versions -vr
> + PYTHON3S=3.10 3.9
> + [ no = yes ]
> + [ yes = yes ]
> + [ yes = yes ]
> + TARGET_DIR=tmp
> + pwd
> + python3.10 setup.py install --install-layout=deb --root 
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/command/install.py:34: 
> SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and 
> pip and other standards-based tools.
>   warnings.warn(
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/pycdlib
> copying pycdlib/__init__.py -> build/lib/pycdlib
> copying pycdlib/dates.py -> build/lib/pycdlib
> copying pycdlib/backport_functools.py -> build/lib/pycdlib
> copying pycdlib/eltorito.py -> build/lib/pycdlib
> copying pycdlib/pycdlibexception.py -> build/lib/pycdlib
> copying pycdlib/udf.py -> build/lib/pycdlib
> copying pycdlib/rockridge.py -> build/lib/pycdlib
> copying pycdlib/pycdlib.py -> build/lib/pycdlib
> copying pycdlib/isohybrid.py -> build/lib/pycdlib
> copying pycdlib/headervd.py -> build/lib/pycdlib
> copying pycdlib/path_table_record.py -> build/lib/pycdlib
> copying pycdlib/facade.py -> build/lib/pycdlib
> copying pycdlib/dr.py -> build/lib/pycdlib
> copying pycdlib/inode.py -> build/lib/pycdlib
> copying pycdlib/pycdlibio.py -> build/lib/pycdlib
> copying pycdlib/utils.py -> build/lib/pycdlib
> running build_scripts
> creating build/scripts-3.10
> copying and adjusting tools/pycdlib-explorer -> build/scripts-3.10
> copying and adjusting tools/pycdlib-extract-files -> build/scripts-3.10
> copying and adjusting tools/pycdlib-genisoimage -> build/scripts-3.10
> changing mode of build/scripts-3.10/pycdlib-explorer from 644 to 755
> changing mode of build/scripts-3.10/pycdlib-extract-files from 644 to 755
> changing mode of build/scripts-3.10/pycdlib-genisoimage from 644 to 755
> running install_lib
> creating /<<PKGBUILDDIR>>/debian/tmp
> creating /<<PKGBUILDDIR>>/debian/tmp/usr
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/__init__.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/dates.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/backport_functools.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/eltorito.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/pycdlibexception.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/udf.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/rockridge.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/pycdlib.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/isohybrid.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/headervd.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/path_table_record.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/facade.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/dr.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/inode.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/pycdlibio.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> copying build/lib/pycdlib/utils.py -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/__init__.py 
> to __init__.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dates.py to 
> dates.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/backport_functools.py
>  to backport_functools.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/eltorito.py 
> to eltorito.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibexception.py
>  to pycdlibexception.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/udf.py to 
> udf.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/rockridge.py
>  to rockridge.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlib.py 
> to pycdlib.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/isohybrid.py
>  to isohybrid.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/headervd.py 
> to headervd.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/path_table_record.py
>  to path_table_record.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/facade.py 
> to facade.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dr.py to 
> dr.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/inode.py to 
> inode.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibio.py
>  to pycdlibio.cpython-310.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/utils.py to 
> utils.cpython-310.pyc
> running install_data
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/share
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/share/man
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man1
> copying man/pycdlib-explorer.1 -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man1
> copying man/pycdlib-extract-files.1 -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man1
> copying man/pycdlib-genisoimage.1 -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/share/man/man1
> running install_egg_info
> running egg_info
> creating pycdlib.egg-info
> writing pycdlib.egg-info/PKG-INFO
> writing dependency_links to pycdlib.egg-info/dependency_links.txt
> writing top-level names to pycdlib.egg-info/top_level.txt
> writing manifest file 'pycdlib.egg-info/SOURCES.txt'
> reading manifest file 'pycdlib.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'COPYING'
> writing manifest file 'pycdlib.egg-info/SOURCES.txt'
> Copying pycdlib.egg-info to 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib-1.12.0.egg-info
> Skipping SOURCES.txt
> running install_scripts
> creating /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> copying build/scripts-3.10/pycdlib-genisoimage -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> copying build/scripts-3.10/pycdlib-extract-files -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> copying build/scripts-3.10/pycdlib-explorer -> 
> /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-genisoimage to 
> 755
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-extract-files to 
> 755
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-explorer to 755
> + pwd
> + python3.9 setup.py install --install-layout=deb --root 
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/command/install.py:34: 
> SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and 
> pip and other standards-based tools.
>   warnings.warn(
> running build
> running build_py
> running build_scripts
> creating build/scripts-3.9
> copying and adjusting tools/pycdlib-explorer -> build/scripts-3.9
> copying and adjusting tools/pycdlib-extract-files -> build/scripts-3.9
> copying and adjusting tools/pycdlib-genisoimage -> build/scripts-3.9
> changing mode of build/scripts-3.9/pycdlib-explorer from 644 to 755
> changing mode of build/scripts-3.9/pycdlib-extract-files from 644 to 755
> changing mode of build/scripts-3.9/pycdlib-genisoimage from 644 to 755
> running install_lib
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/__init__.py 
> to __init__.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dates.py to 
> dates.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/backport_functools.py
>  to backport_functools.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/eltorito.py 
> to eltorito.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibexception.py
>  to pycdlibexception.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/udf.py to 
> udf.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/rockridge.py
>  to rockridge.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlib.py 
> to pycdlib.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/isohybrid.py
>  to isohybrid.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/headervd.py 
> to headervd.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/path_table_record.py
>  to path_table_record.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/facade.py 
> to facade.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dr.py to 
> dr.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/inode.py to 
> inode.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibio.py
>  to pycdlibio.cpython-39.pyc
> byte-compiling 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/utils.py to 
> utils.cpython-39.pyc
> running install_data
> running install_egg_info
> running egg_info
> writing pycdlib.egg-info/PKG-INFO
> writing dependency_links to pycdlib.egg-info/dependency_links.txt
> writing top-level names to pycdlib.egg-info/top_level.txt
> reading manifest file 'pycdlib.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> adding license file 'COPYING'
> writing manifest file 'pycdlib.egg-info/SOURCES.txt'
> removing 
> '/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib-1.12.0.egg-info'
>  (and everything under it)
> Copying pycdlib.egg-info to 
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib-1.12.0.egg-info
> Skipping SOURCES.txt
> running install_scripts
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-genisoimage to 
> 755
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-extract-files to 
> 755
> changing mode of /<<PKGBUILDDIR>>/debian/tmp/usr/bin/pycdlib-explorer to 755
> + pwd
> + rm -rf /<<PKGBUILDDIR>>/debian/python*/usr/lib/python*/dist-packages/*.pth
> + pwd
> + rm -rf /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python*/dist-packages/*.pth
> + pwd
> + [ -d /<<PKGBUILDDIR>>/debian/python-pycdlib/usr/bin ]
> set -e ; set -x ; for pyvers in 3.10 3.9; do \
>       PATH=$PATH:/<<PKGBUILDDIR>>/debian/tmp/usr/bin 
> PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages 
> python$pyvers -m pytest tests ; \
> done
> + 
> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/<<PKGBUILDDIR>>/debian/tmp/usr/bin
>  PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages 
> python3.10 -m pytest tests
> ============================= test session starts 
> ==============================
> platform linux -- Python 3.10.1, pytest-6.2.5, py-1.10.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>, configfile: pytest.ini
> collected 1721 items
> 
> tests/integration/test_facade.py ....................................... [  
> 2%]
> ..................                                                       [  
> 3%]
> tests/integration/test_hybrid.py ....................................... [  
> 5%]
> ....................s..............F.................................... [  
> 9%]
> .........s.....................                                          [ 
> 11%]
> tests/integration/test_new.py .......................................... [ 
> 14%]
> ........................................................................ [ 
> 18%]
> ........................................................................ [ 
> 22%]
> ........................................................................ [ 
> 26%]
> ......................................................ssss.............. [ 
> 30%]
> ........................................................................ [ 
> 34%]
> ..................................................................s      [ 
> 38%]
> tests/integration/test_parse.py ........................................ [ 
> 41%]
> ....sss...FFF................F.......................................... [ 
> 45%]
> ...................................F.s............F.F................... [ 
> 49%]
> ......s.................                                                 [ 
> 50%]
> tests/tools/test_pycdlib_genisoimage.py .ssss.                           [ 
> 51%]
> tests/unit/test_dates.py .........................                       [ 
> 52%]
> tests/unit/test_dr.py .........................................          [ 
> 55%]
> tests/unit/test_eltorito.py ...............................              [ 
> 56%]
> tests/unit/test_headervd.py ............................................ [ 
> 59%]
> .......                                                                  [ 
> 59%]
> tests/unit/test_inode.py .......                                         [ 
> 60%]
> tests/unit/test_isohybrid.py ........................................... [ 
> 62%]
>                                                                          [ 
> 62%]
> tests/unit/test_ptr.py ........                                          [ 
> 63%]
> tests/unit/test_rockridge.py ........................................... [ 
> 65%]
> ........................................................................ [ 
> 69%]
> ........................................................................ [ 
> 74%]
> .....................................................                    [ 
> 77%]
> tests/unit/test_udf.py ................................................. [ 
> 80%]
> ........................................................................ [ 
> 84%]
> ........................................................................ [ 
> 88%]
> ........................................................................ [ 
> 92%]
> ........................................................................ [ 
> 96%]
> ................                                                         [ 
> 97%]
> tests/unit/test_utils.py ........................................        
> [100%]
> 
> =================================== FAILURES 
> ===================================
> __________________________ test_hybrid_sevendeepdirs 
> ___________________________
> 
> tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0')
> 
>     def test_hybrid_sevendeepdirs(tmpdir):
>         # First set things up, and generate the ISO with genisoimage.
>         indir = tmpdir.mkdir('sevendeepdirs')
>         outfile = str(indir)+'.iso'
>         numdirs = 8
>         x = indir
>         for i in range(1, 1+numdirs):
>             x = x.mkdir('dir%d' % i)
>         subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1', 
> '-no-pad',
>                          '-rational-rock', '-o', str(outfile), str(indir)])
>     
>         # Now open up the ISO with pycdlib and check some things out.
>         iso = pycdlib.PyCdlib()
>     
>         iso.open(str(outfile))
>     
>         iso.rm_directory('/DIR1/DIR2/DIR3/DIR4/DIR5/DIR6/DIR7/DIR8', 
> rr_name='dir8')
>     
> >       do_a_test(iso, check_sevendeepdirs)
> 
> tests/integration/test_hybrid.py:1622: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> tests/integration/test_hybrid.py:21: in do_a_test
>     check_func(iso, len(out.getvalue()))
> tests/integration/test_common.py:2340: in check_sevendeepdirs
>     internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=3, 
> data_length=2048, extent_location=23, rr=True, rr_nlinks=3, 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 0x7f9c86f94640>, rr = 
> True
> rr_nlinks = 3, 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 2 == 3
> E            +  where 2 = <pycdlib.rockridge.RRPXRecord object at 
> 0x7f9c87d34f90>.posix_file_links
> E            +    where <pycdlib.rockridge.RRPXRecord object at 
> 0x7f9c87d34f90> = <pycdlib.rockridge.RockRidgeEntries object at 
> 0x7f9c876f1dd0>.px_record
> E            +      where <pycdlib.rockridge.RockRidgeEntries object at 
> 0x7f9c876f1dd0> = <pycdlib.rockridge.RockRidge object at 
> 0x7f9c8675f140>.dr_entries
> E            +        where <pycdlib.rockridge.RockRidge object at 
> 0x7f9c8675f140> = <pycdlib.dr.DirectoryRecord object at 
> 0x7f9c86f94640>.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_hybrid_sevendeepdirs0/sevendeepdirs
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_hybrid_sevendeepdirs0/sevendeepdirs/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_dir 
> ____________________________
> 
> tmpdir = local('/tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0')
> 
>     def test_parse_rr_deep_dir(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')
>         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_dir)
> 
> tests/integration/test_parse.py:706: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> tests/integration/test_parse.py:21: in do_a_test
>     check_func(iso, os.stat(str(outfile)).st_size)
> tests/integration/test_common.py:2257: in check_rr_deep_dir
>     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 0x7f9c87e23d40>, 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 
> 0x7f9c88267fb0>.posix_file_links
> E            +    where <pycdlib.rockridge.RRPXRecord object at 
> 0x7f9c88267fb0> = <pycdlib.rockridge.RockRidgeEntries object at 
> 0x7f9c86b7b110>.px_record
> E            +      where <pycdlib.rockridge.RockRidgeEntries object at 
> 0x7f9c86b7b110> = <pycdlib.rockridge.RockRidge object at 
> 0x7f9c87e35c40>.dr_entries
> E            +        where <pycdlib.rockridge.RockRidge object at 
> 0x7f9c87e35c40> = <pycdlib.dr.DirectoryRecord object at 
> 0x7f9c87e23d40>.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_dir0/rrdeep
> Scanning /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning 
> /tmp/pytest-of-user42/pytest-11/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning 
> /tmp/pytest-of-user42/pytest-11/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 
> ______________________________
> 
> 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')
>         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


The full build log is available from:
http://qa-logs.debian.net/2021/12/28/python-pycdlib_1.12.0+ds1-3_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

--- End Message ---
--- Begin Message ---
Source: python-pycdlib
Source-Version: 1.12.0+ds1-5
Done: Thomas Goirand <z...@debian.org>

We believe that the bug you reported is fixed in the latest version of
python-pycdlib, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1002...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Thomas Goirand <z...@debian.org> (supplier of updated python-pycdlib package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Tue, 23 Jan 2024 16:26:37 +0100
Source: python-pycdlib
Architecture: source
Version: 1.12.0+ds1-5
Distribution: unstable
Urgency: medium
Maintainer: Debian OpenStack <team+openst...@tracker.debian.org>
Changed-By: Thomas Goirand <z...@debian.org>
Closes: 1002789
Changes:
 python-pycdlib (1.12.0+ds1-5) unstable; urgency=medium
 .
   * Add Use-tmp_path-instead-of-tmpdir.patch (Closes: #1002789).
   * Blacklist test_volumedescdate_new_nonzero and test_gmtoffset_from_tm.
Checksums-Sha1:
 c612150b537d094ca92940000bd451fe42596cc2 2151 python-pycdlib_1.12.0+ds1-5.dsc
 f851d4c628ec3dd0896c286fe4c0cbd60787ef23 18704 
python-pycdlib_1.12.0+ds1-5.debian.tar.xz
 457a9b91d798fc63210629035f9539eae5d45ab0 7474 
python-pycdlib_1.12.0+ds1-5_amd64.buildinfo
Checksums-Sha256:
 946fae016d334170d49b5fb6df89d78650d40eb7f89efe01a0476ab3000ab863 2151 
python-pycdlib_1.12.0+ds1-5.dsc
 b335b0c434b726da39631bfbfe1bc733237bbc7895de1e2a6fd9de3598dcde0f 18704 
python-pycdlib_1.12.0+ds1-5.debian.tar.xz
 1901e840deb36e2f489b5936e3857a6d094a23e6bfb99e036de060ed2e4d4995 7474 
python-pycdlib_1.12.0+ds1-5_amd64.buildinfo
Files:
 240a2a4e09e7b9fd7615e24a9ebb6d57 2151 python optional 
python-pycdlib_1.12.0+ds1-5.dsc
 8b0d7e801ddd2211bf787a066e2abe32 18704 python optional 
python-pycdlib_1.12.0+ds1-5.debian.tar.xz
 8f27c6f494090e00f8ac16be9d0667eb 7474 python optional 
python-pycdlib_1.12.0+ds1-5_amd64.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmWv3QEACgkQ1BatFaxr
Q/5SmhAAnfFGw0cuuHqc1gnRY1QI8qUMMywuJm9HN/w7U8x7E/12gyLvobogzO47
+JgzgU6h0hGibq7xhKzZCuI1VSK4WolDytVCj5+M9vVhqEMyOg2CdWGlMNccIksX
KFl3Hn4OLtQsL/Er8RB9K6q7GIbMUO0Mo+qiBKZgxh46wzAdHWc/Nb+4+M/iGvDM
M49EvYiz6e8BAngpEeJSJzw83vTdOQnxwfNnmjmTfKhgrdB5X1J//Ixbsry2PCK1
nmVHFrnbHKACpiTfPsvQsEpfvmSUx74nAwrsyFKiVGjFkygX6nxCeMJeobcM02JK
+NsvfwlRARpWdK0Fl3WwmZnRUp9vcbjXARB1QN0xAYfidAnHTwqoMa/kLmExdSDa
kWe+vT+4E/xLW5Z2/k2PQWiVNMeM/aM6vftiUQflXCkRUA4HnH2lDRTVGfjlWHMF
lLsNWKmXS8lws2iNeT7niWaCL7ULT6camjP7+FNp8agrqrTAW6yITTGfe0J5ixwJ
a8AkWoOamjIdp7rbfwWVbhzavN1X+kruJtQZVRUKsEkWxdBCxtzY4KgfXpkrMG3W
iwiiN5cyE2yvEpcftDPsw+wcGte5jxr4RlrQnYBfYuGDGzdfYIilvL46H1AsELv1
CD5EWyFSuDX5H0MfP7oHSs5nVhMk9lrACrT9M3OC/Kq6a1Ke6+o=
=CSfI
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to