--- 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 ---