--- Begin Message ---
Source: python-pycdlib
Version: 1.12.0+ds1-5
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240224 ftbfs-trixie
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_IN_TMP=no
> + echo WARNING: --no-py2 is deprecated and always on.
> WARNING: --no-py2 is deprecated and always on.
> + shift
> + PKGOS_IN_TMP=yes
> + shift
> + dpkg-parsechangelog -SSource
> + SRC_PKG_NAME=python-pycdlib
> + + sed s/python-//
> echo python-pycdlib
> + PY_MODULE_NAME=pycdlib
> + py3versions -vr
> + PYTHON3S=3.12 3.11
> + [ yes = yes ]
> + TARGET_DIR=tmp
> + pwd
> + python3.12 setup.py install --install-layout=deb --root
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66:
> SetuptoolsDeprecationWarning: setup.py install is deprecated.
> !!
>
>
> ********************************************************************************
> Please avoid running ``setup.py`` directly.
> Instead, use pypa/build, pypa/installer or other
> standards-based tools.
>
> See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
> for details.
>
> ********************************************************************************
>
> !!
> self.initialize_options()
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/pycdlib
> copying pycdlib/utils.py -> build/lib/pycdlib
> copying pycdlib/__init__.py -> build/lib/pycdlib
> copying pycdlib/rockridge.py -> build/lib/pycdlib
> copying pycdlib/backport_functools.py -> build/lib/pycdlib
> copying pycdlib/path_table_record.py -> build/lib/pycdlib
> copying pycdlib/eltorito.py -> build/lib/pycdlib
> copying pycdlib/pycdlibexception.py -> build/lib/pycdlib
> copying pycdlib/inode.py -> build/lib/pycdlib
> copying pycdlib/dates.py -> build/lib/pycdlib
> copying pycdlib/pycdlib.py -> build/lib/pycdlib
> copying pycdlib/isohybrid.py -> build/lib/pycdlib
> copying pycdlib/udf.py -> build/lib/pycdlib
> copying pycdlib/facade.py -> build/lib/pycdlib
> copying pycdlib/pycdlibio.py -> build/lib/pycdlib
> copying pycdlib/headervd.py -> build/lib/pycdlib
> copying pycdlib/dr.py -> build/lib/pycdlib
> running build_scripts
> creating build/scripts-3.12
> copying and adjusting tools/pycdlib-explorer -> build/scripts-3.12
> copying and adjusting tools/pycdlib-extract-files -> build/scripts-3.12
> copying and adjusting tools/pycdlib-genisoimage -> build/scripts-3.12
> changing mode of build/scripts-3.12/pycdlib-explorer from 644 to 755
> changing mode of build/scripts-3.12/pycdlib-extract-files from 644 to 755
> changing mode of build/scripts-3.12/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/utils.py ->
> /<<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/rockridge.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/path_table_record.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/inode.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/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/udf.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/pycdlibio.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/dr.py ->
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/utils.py to
> utils.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/__init__.py
> to __init__.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/rockridge.py
> to rockridge.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/backport_functools.py
> to backport_functools.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/path_table_record.py
> to path_table_record.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/eltorito.py
> to eltorito.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibexception.py
> to pycdlibexception.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/inode.py to
> inode.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dates.py to
> dates.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlib.py
> to pycdlib.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/isohybrid.py
> to isohybrid.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/udf.py to
> udf.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/facade.py
> to facade.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibio.py
> to pycdlibio.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/headervd.py
> to headervd.cpython-312.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dr.py to
> dr.cpython-312.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.12/pycdlib-genisoimage ->
> /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> copying build/scripts-3.12/pycdlib-extract-files ->
> /<<PKGBUILDDIR>>/debian/tmp/usr/bin
> copying build/scripts-3.12/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.11 setup.py install --install-layout=deb --root
> /<<PKGBUILDDIR>>/debian/tmp
> running install
> /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:66:
> SetuptoolsDeprecationWarning: setup.py install is deprecated.
> !!
>
>
> ********************************************************************************
> Please avoid running ``setup.py`` directly.
> Instead, use pypa/build, pypa/installer or other
> standards-based tools.
>
> See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
> for details.
>
> ********************************************************************************
>
> !!
> self.initialize_options()
> running build
> running build_py
> running build_scripts
> creating build/scripts-3.11
> copying and adjusting tools/pycdlib-explorer -> build/scripts-3.11
> copying and adjusting tools/pycdlib-extract-files -> build/scripts-3.11
> copying and adjusting tools/pycdlib-genisoimage -> build/scripts-3.11
> changing mode of build/scripts-3.11/pycdlib-explorer from 644 to 755
> changing mode of build/scripts-3.11/pycdlib-extract-files from 644 to 755
> changing mode of build/scripts-3.11/pycdlib-genisoimage from 644 to 755
> running install_lib
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/utils.py to
> utils.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/__init__.py
> to __init__.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/rockridge.py
> to rockridge.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/backport_functools.py
> to backport_functools.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/path_table_record.py
> to path_table_record.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/eltorito.py
> to eltorito.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibexception.py
> to pycdlibexception.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/inode.py to
> inode.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dates.py to
> dates.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlib.py
> to pycdlib.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/isohybrid.py
> to isohybrid.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/udf.py to
> udf.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/facade.py
> to facade.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/pycdlibio.py
> to pycdlibio.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/headervd.py
> to headervd.cpython-311.pyc
> byte-compiling
> /<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages/pycdlib/dr.py to
> dr.cpython-311.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
> set -e ; set -x ; for pyvers in 3.12 3.11; do \
> PATH=$PATH:/<<PKGBUILDDIR>>/debian/tmp/usr/bin
> PYTHONPATH=/<<PKGBUILDDIR>>/debian/tmp/usr/lib/python3/dist-packages
> python$pyvers -m pytest tests -k 'not test_volumedescdate_new_nonzero and not
> test_gmtoffset_from_tm'; \
> 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.12 -m pytest tests -k not test_volumedescdate_new_nonzero and not
> test_gmtoffset_from_tm
> ============================= test session starts
> ==============================
> platform linux -- Python 3.12.2, pytest-7.4.4, pluggy-1.4.0
> rootdir: /<<PKGBUILDDIR>>
> configfile: pytest.ini
> collected 1721 items / 3 deselected / 1718 selected
>
> 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%]
> .....................................s..............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
> ___________________________
>
> tmp_path =
> PosixPath('/tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0')
>
> def test_hybrid_sevendeepdirs(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'sevendeepdirs'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> numdirs = 8
> x = indir
> for i in range(1, 1+numdirs):
> x = x / ('dir%d' % i)
> x.mkdir(parents=True)
> 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:1722:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> 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 0x7f98a2a99e40>, 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
> 0x7f98a468a7a0>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a468a7a0> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03740>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03740> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a4694740>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a4694740> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a2a99e40>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_hybrid_sevendeepdirs0/sevendeepdirs/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/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
> ____________________________
>
> tmp_path =
> PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0')
>
> def test_parse_rr_deep_dir(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'rrdeep'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6'
> / 'dir7' / 'dir8'
> newdir.mkdir(parents=True)
> subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1',
> '-no-pad',
> '-rational-rock', '-o', str(outfile), str(indir)])
>
> > do_a_test(tmp_path, outfile, check_rr_deep_dir)
>
> tests/integration/test_parse.py:780:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> 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 0x7f98a45f4440>, 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
> 0x7f98a468b3d0>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a468b3d0> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03060>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03060> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a4603840>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a4603840> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a45f4440>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep_dir0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
> 23 474
> 24 322 rr_moved
> 25 216 dir8
> 26 318 dir1
> 27 318 dir2
> 28 318 dir3
> 29 318 dir4
> 30 318 dir5
> 31 318 dir6
> 32 330 dir7
> Cache hit for 'dir8/.'
> Cache hit for 'dir1/.'
> Cache hit for 'dir1/..'
> Cache hit for 'dir2/.'
> Cache hit for 'dir2/..'
> Cache hit for 'dir3/.'
> Cache hit for 'dir3/..'
> Cache hit for 'dir4/.'
> Cache hit for 'dir4/..'
> Cache hit for 'dir5/.'
> Cache hit for 'dir5/..'
> Cache hit for 'dir6/.'
> Cache hit for 'dir6/..'
> Cache hit for 'dir7/.'
> Cache hit for 'dir7/..'
> Writing: Initial Padblock Start Block 0
> Done with: Initial Padblock Block(s) 16
> Writing: Primary Volume Descriptor Start Block 16
> Done with: Primary Volume Descriptor Block(s) 1
> Writing: End Volume Descriptor Start Block 17
> Done with: End Volume Descriptor Block(s) 1
> Writing: Version block Start Block 18
> Done with: Version block Block(s) 1
> Writing: Path table Start Block 19
> Done with: Path table Block(s) 4
> Writing: Directory tree Start Block 23
> Done with: Directory tree Block(s) 10
> Writing: Directory tree cleanup Start Block 33
> Done with: Directory tree cleanup Block(s) 0
> Writing: Extension record Start Block 33
> Done with: Extension record Block(s) 1
> Writing: The File(s) Start Block 34
> Total extents scheduled to be written = 34
> Total translation table size: 0
> Total rockridge attributes bytes: 2167
> Total directory bytes: 18906
> Path table size(bytes): 122
> Done with: The File(s) Block(s) 0
> Max brk space used 43000
> 34 extents written (0 MB)
> ______________________________ test_parse_rr_deep
> ______________________________
>
> tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0')
>
> def test_parse_rr_deep(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'rrdeep'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6'
> / 'dir7' / 'dir8'
> newdir.mkdir(parents=True)
> with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4',
> 'dir5', 'dir6', 'dir7', 'dir8', 'foo'), 'wb') as outfp:
> outfp.write(b'foo\n')
> subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1',
> '-no-pad',
> '-rational-rock', '-o', str(outfile), str(indir)])
>
> > do_a_test(tmp_path, outfile, check_rr_deep)
>
> tests/integration/test_parse.py:794:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> tests/integration/test_parse.py:21: in do_a_test
> check_func(iso, os.stat(str(outfile)).st_size)
> tests/integration/test_common.py:2268: in check_rr_deep
> internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4,
> data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False,
> rr_onetwelve=False)
> tests/integration/test_common.py:289: in internal_check_root_dir_record
> internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr,
> rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f98a45f4a40>, rr =
> True
> rr_nlinks = 4, xa = False, rr_onetwelve = False
>
> def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa,
> rr_onetwelve):
> # The file identifier for the 'dotdot' directory entry should be the
> byte 1.
> assert(dotdot_record.file_ident == b'\x01')
> # The 'dotdot' directory entry should be a directory.
> assert(dotdot_record.isdir == True)
> # The 'dotdot' directory record length should be exactly 34 with no
> extensions.
> if rr:
> if rr_onetwelve:
> expected_dr_len = 104
> else:
> expected_dr_len = 102
> else:
> expected_dr_len = 34
>
> if xa:
> expected_dr_len += 14
>
> assert(dotdot_record.dr_len == expected_dr_len)
> # The 'dotdot' directory record is not the root.
> assert(dotdot_record.is_root == False)
> # The 'dotdot' directory record should have no children.
> assert(len(dotdot_record.children) == 0)
> assert(dotdot_record.file_flags == 2)
>
> if rr:
> assert(dotdot_record.rock_ridge._initialized == True)
> assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
> if not rr_onetwelve:
> assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
> assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags
> == 0x81)
> assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
> assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
>
> assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode ==
> 0o040555)
> >
> > assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links ==
> > rr_nlinks)
> E assert 3 == 4
> E + where 3 = <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a2a5bb00>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a2a5bb00> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03320>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a3c03320> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a23b9770>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a23b9770> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a45f4a40>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
> 23 474
> 24 322 rr_moved
> 25 332 dir8
> 26 318 dir1
> 27 318 dir2
> 28 318 dir3
> 29 318 dir4
> 30 318 dir5
> 31 318 dir6
> 32 330 dir7
> Cache hit for 'dir8/.'
> 34 34
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/foo
> Cache hit for 'dir1/.'
> Cache hit for 'dir1/..'
> Cache hit for 'dir2/.'
> Cache hit for 'dir2/..'
> Cache hit for 'dir3/.'
> Cache hit for 'dir3/..'
> Cache hit for 'dir4/.'
> Cache hit for 'dir4/..'
> Cache hit for 'dir5/.'
> Cache hit for 'dir5/..'
> Cache hit for 'dir6/.'
> Cache hit for 'dir6/..'
> Cache hit for 'dir7/.'
> Cache hit for 'dir7/..'
> Writing: Initial Padblock Start Block 0
> Done with: Initial Padblock Block(s) 16
> Writing: Primary Volume Descriptor Start Block 16
> Done with: Primary Volume Descriptor Block(s) 1
> Writing: End Volume Descriptor Start Block 17
> Done with: End Volume Descriptor Block(s) 1
> Writing: Version block Start Block 18
> Done with: Version block Block(s) 1
> Writing: Path table Start Block 19
> Done with: Path table Block(s) 4
> Writing: Directory tree Start Block 23
> Done with: Directory tree Block(s) 10
> Writing: Directory tree cleanup Start Block 33
> Done with: Directory tree cleanup Block(s) 0
> Writing: Extension record Start Block 33
> Done with: Extension record Block(s) 1
> Writing: The File(s) Start Block 34
> Total extents scheduled to be written = 35
> Total translation table size: 0
> Total rockridge attributes bytes: 2242
> Total directory bytes: 18906
> Path table size(bytes): 122
> Done with: The File(s) Block(s) 1
> Max brk space used 43000
> 35 extents written (0 MB)
> _____________________________ test_parse_rr_deep2
> ______________________________
>
> tmp_path = PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20')
>
> def test_parse_rr_deep2(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'rrdeep'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6'
> / 'dir7' / 'dir8' / 'dir9'
> newdir.mkdir(parents=True)
> with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4',
> 'dir5', 'dir6', 'dir7', 'dir8', 'dir9', 'foo'), 'wb') as outfp:
> outfp.write(b'foo\n')
> subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1',
> '-no-pad',
> '-rational-rock', '-o', str(outfile), str(indir)])
>
> > do_a_test(tmp_path, outfile, check_rr_deep2)
>
> tests/integration/test_parse.py:808:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> tests/integration/test_parse.py:21: in do_a_test
> check_func(iso, os.stat(str(outfile)).st_size)
> tests/integration/test_common.py:2281: in check_rr_deep2
> internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4,
> data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False,
> rr_onetwelve=False)
> tests/integration/test_common.py:289: in internal_check_root_dir_record
> internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr,
> rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f98a45f6b40>, rr =
> True
> rr_nlinks = 4, xa = False, rr_onetwelve = False
>
> def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa,
> rr_onetwelve):
> # The file identifier for the 'dotdot' directory entry should be the
> byte 1.
> assert(dotdot_record.file_ident == b'\x01')
> # The 'dotdot' directory entry should be a directory.
> assert(dotdot_record.isdir == True)
> # The 'dotdot' directory record length should be exactly 34 with no
> extensions.
> if rr:
> if rr_onetwelve:
> expected_dr_len = 104
> else:
> expected_dr_len = 102
> else:
> expected_dr_len = 34
>
> if xa:
> expected_dr_len += 14
>
> assert(dotdot_record.dr_len == expected_dr_len)
> # The 'dotdot' directory record is not the root.
> assert(dotdot_record.is_root == False)
> # The 'dotdot' directory record should have no children.
> assert(len(dotdot_record.children) == 0)
> assert(dotdot_record.file_flags == 2)
>
> if rr:
> assert(dotdot_record.rock_ridge._initialized == True)
> assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
> if not rr_onetwelve:
> assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
> assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags
> == 0x81)
> assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
> assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
>
> assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode ==
> 0o040555)
> >
> > assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links ==
> > rr_nlinks)
> E assert 3 == 4
> E + where 3 = <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a23f9a80>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a23f9a80> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a23d7270>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a23d7270> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a23ba880>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a23ba880> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a45f6b40>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1
> Scanning /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
> 23 474
> 24 322 rr_moved
> 25 330 dir8
> 26 320 dir9
> 27 318 dir1
> 28 318 dir2
> 29 318 dir3
> 30 318 dir4
> 31 318 dir5
> 32 318 dir6
> 33 330 dir7
> Cache hit for 'dir8/.'
> Cache hit for 'dir9/.'
> Cache hit for 'dir9/..'
> 35 35
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_deep20/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/foo
> Cache hit for 'dir1/.'
> Cache hit for 'dir1/..'
> Cache hit for 'dir2/.'
> Cache hit for 'dir2/..'
> Cache hit for 'dir3/.'
> Cache hit for 'dir3/..'
> Cache hit for 'dir4/.'
> Cache hit for 'dir4/..'
> Cache hit for 'dir5/.'
> Cache hit for 'dir5/..'
> Cache hit for 'dir6/.'
> Cache hit for 'dir6/..'
> Cache hit for 'dir7/.'
> Cache hit for 'dir7/..'
> Writing: Initial Padblock Start Block 0
> Done with: Initial Padblock Block(s) 16
> Writing: Primary Volume Descriptor Start Block 16
> Done with: Primary Volume Descriptor Block(s) 1
> Writing: End Volume Descriptor Start Block 17
> Done with: End Volume Descriptor Block(s) 1
> Writing: Version block Start Block 18
> Done with: Version block Block(s) 1
> Writing: Path table Start Block 19
> Done with: Path table Block(s) 4
> Writing: Directory tree Start Block 23
> Done with: Directory tree Block(s) 11
> Writing: Directory tree cleanup Start Block 34
> Done with: Directory tree cleanup Block(s) 0
> Writing: Extension record Start Block 34
> Done with: Extension record Block(s) 1
> Writing: The File(s) Start Block 35
> Total extents scheduled to be written = 36
> Total translation table size: 0
> Total rockridge attributes bytes: 2452
> Total directory bytes: 20954
> Path table size(bytes): 134
> Done with: The File(s) Block(s) 1
> Max brk space used 43000
> 36 extents written (0 MB)
> __________________________ test_parse_rr_joliet_deep
> ___________________________
>
> tmp_path =
> PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0')
>
> def test_parse_rr_joliet_deep(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'rrjolietdeep'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6'
> / 'dir7' / 'dir8'
> newdir.mkdir(parents=True)
> subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1',
> '-no-pad',
> '-rational-rock', '-J', '-o', str(outfile),
> str(indir)])
>
> > do_a_test(tmp_path, outfile, check_rr_joliet_deep)
>
> tests/integration/test_parse.py:1025:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> tests/integration/test_parse.py:21: in do_a_test
> check_func(iso, os.stat(str(outfile)).st_size)
> tests/integration/test_common.py:2776: in check_rr_joliet_deep
> internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4,
> data_length=2048, extent_location=28, rr=True, rr_nlinks=4, xa=False,
> rr_onetwelve=False)
> tests/integration/test_common.py:289: in internal_check_root_dir_record
> internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr,
> rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f98a23f0440>, rr =
> True
> rr_nlinks = 4, xa = False, rr_onetwelve = False
>
> def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa,
> rr_onetwelve):
> # The file identifier for the 'dotdot' directory entry should be the
> byte 1.
> assert(dotdot_record.file_ident == b'\x01')
> # The 'dotdot' directory entry should be a directory.
> assert(dotdot_record.isdir == True)
> # The 'dotdot' directory record length should be exactly 34 with no
> extensions.
> if rr:
> if rr_onetwelve:
> expected_dr_len = 104
> else:
> expected_dr_len = 102
> else:
> expected_dr_len = 34
>
> if xa:
> expected_dr_len += 14
>
> assert(dotdot_record.dr_len == expected_dr_len)
> # The 'dotdot' directory record is not the root.
> assert(dotdot_record.is_root == False)
> # The 'dotdot' directory record should have no children.
> assert(len(dotdot_record.children) == 0)
> assert(dotdot_record.file_flags == 2)
>
> if rr:
> assert(dotdot_record.rock_ridge._initialized == True)
> assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
> if not rr_onetwelve:
> assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
> assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags
> == 0x81)
> assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
> assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
>
> assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode ==
> 0o040555)
> >
> > assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links ==
> > rr_nlinks)
> E assert 3 == 4
> E + where 3 = <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a2445990>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a2445990> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a244f320>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a244f320> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a23f6a40>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a23f6a40> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a23f0440>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_joliet_deep0/rrjolietdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
> 28 474
> 29 322 rr_moved
> 30 216 dir8
> 31 318 dir1
> 32 318 dir2
> 33 318 dir3
> 34 318 dir4
> 35 318 dir5
> 36 318 dir6
> 37 330 dir7
> Cache hit for 'dir8/.'
> Cache hit for 'dir1/.'
> Cache hit for 'dir1/..'
> Cache hit for 'dir2/.'
> Cache hit for 'dir2/..'
> Cache hit for 'dir3/.'
> Cache hit for 'dir3/..'
> Cache hit for 'dir4/.'
> Cache hit for 'dir4/..'
> Cache hit for 'dir5/.'
> Cache hit for 'dir5/..'
> Cache hit for 'dir6/.'
> Cache hit for 'dir6/..'
> Cache hit for 'dir7/.'
> Cache hit for 'dir7/..'
> Writing: Initial Padblock Start Block 0
> Done with: Initial Padblock Block(s) 16
> Writing: Primary Volume Descriptor Start Block 16
> Done with: Primary Volume Descriptor Block(s) 1
> Writing: Joliet Volume Descriptor Start Block 17
> Done with: Joliet Volume Descriptor Block(s) 1
> Writing: End Volume Descriptor Start Block 18
> Done with: End Volume Descriptor Block(s) 1
> Writing: Version block Start Block 19
> Done with: Version block Block(s) 1
> Writing: Path table Start Block 20
> Done with: Path table Block(s) 4
> Writing: Joliet path table Start Block 24
> Done with: Joliet path table Block(s) 4
> Writing: Directory tree Start Block 28
> Done with: Directory tree Block(s) 10
> Writing: Joliet directory tree Start Block 38
> Done with: Joliet directory tree Block(s) 9
> Writing: Directory tree cleanup Start Block 47
> Done with: Directory tree cleanup Block(s) 0
> Writing: Extension record Start Block 47
> Done with: Extension record Block(s) 1
> Writing: The File(s) Start Block 48
> Total extents scheduled to be written = 48
> Total translation table size: 0
> Total rockridge attributes bytes: 2167
> Total directory bytes: 18906
> Path table size(bytes): 122
> Done with: The File(s) Block(s) 0
> Max brk space used 43000
> 48 extents written (0 MB)
> ________________________ test_parse_rr_hidden_relocated
> ________________________
>
> tmp_path =
> PosixPath('/tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0')
>
> def test_parse_rr_hidden_relocated(tmp_path):
> # First set things up, and generate the ISO with genisoimage.
> indir = tmp_path / 'rrdeep'
> indir.mkdir()
> outfile = str(indir)+'.iso'
> newdir = indir / 'dir1' / 'dir2' / 'dir3' / 'dir4' / 'dir5' / 'dir6'
> / 'dir7' / 'dir8' / 'dir9'
> newdir.mkdir(parents=True)
> with open(os.path.join(str(indir), 'dir1', 'dir2', 'dir3', 'dir4',
> 'dir5', 'dir6', 'dir7', 'dir8', 'dir9', 'foo'), 'wb') as outfp:
> outfp.write(b'foo\n')
> subprocess.call(['genisoimage', '-v', '-v', '-iso-level', '1',
> '-no-pad',
> '-rational-rock', '-hide-rr-moved', '-o',
> str(outfile), str(indir)])
>
> > do_a_test(tmp_path, outfile, check_rr_relocated_hidden)
>
> tests/integration/test_parse.py:2743:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> tests/integration/test_parse.py:21: in do_a_test
> check_func(iso, os.stat(str(outfile)).st_size)
> tests/integration/test_common.py:4098: in check_rr_relocated_hidden
> internal_check_root_dir_record(iso.pvd.root_dir_record, num_children=4,
> data_length=2048, extent_location=23, rr=True, rr_nlinks=4, xa=False,
> rr_onetwelve=False)
> tests/integration/test_common.py:289: in internal_check_root_dir_record
> internal_check_dotdot_dir_record(root_dir_record.children[1], rr=rr,
> rr_nlinks=rr_nlinks, xa=xa, rr_onetwelve=rr_onetwelve)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> dotdot_record = <pycdlib.dr.DirectoryRecord object at 0x7f98a3c0a440>, rr =
> True
> rr_nlinks = 4, xa = False, rr_onetwelve = False
>
> def internal_check_dotdot_dir_record(dotdot_record, rr, rr_nlinks, xa,
> rr_onetwelve):
> # The file identifier for the 'dotdot' directory entry should be the
> byte 1.
> assert(dotdot_record.file_ident == b'\x01')
> # The 'dotdot' directory entry should be a directory.
> assert(dotdot_record.isdir == True)
> # The 'dotdot' directory record length should be exactly 34 with no
> extensions.
> if rr:
> if rr_onetwelve:
> expected_dr_len = 104
> else:
> expected_dr_len = 102
> else:
> expected_dr_len = 34
>
> if xa:
> expected_dr_len += 14
>
> assert(dotdot_record.dr_len == expected_dr_len)
> # The 'dotdot' directory record is not the root.
> assert(dotdot_record.is_root == False)
> # The 'dotdot' directory record should have no children.
> assert(len(dotdot_record.children) == 0)
> assert(dotdot_record.file_flags == 2)
>
> if rr:
> assert(dotdot_record.rock_ridge._initialized == True)
> assert(dotdot_record.rock_ridge.dr_entries.sp_record == None)
> if not rr_onetwelve:
> assert(dotdot_record.rock_ridge.dr_entries.rr_record != None)
> assert(dotdot_record.rock_ridge.dr_entries.rr_record.rr_flags
> == 0x81)
> assert(dotdot_record.rock_ridge.dr_entries.ce_record == None)
> assert(dotdot_record.rock_ridge.dr_entries.px_record != None)
>
> assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_mode ==
> 0o040555)
> >
> > assert(dotdot_record.rock_ridge.dr_entries.px_record.posix_file_links ==
> > rr_nlinks)
> E assert 3 == 4
> E + where 3 = <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a3728d60>.posix_file_links
> E + where <pycdlib.rockridge.RRPXRecord object at
> 0x7f98a3728d60> = <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a2a79bc0>.px_record
> E + where <pycdlib.rockridge.RockRidgeEntries object at
> 0x7f98a2a79bc0> = <pycdlib.rockridge.RockRidge object at
> 0x7f98a23b9af0>.dr_entries
> E + where <pycdlib.rockridge.RockRidge object at
> 0x7f98a23b9af0> = <pycdlib.dr.DirectoryRecord object at
> 0x7f98a3c0a440>.rock_ridge
>
> tests/integration/test_common.py:416: AssertionError
> ----------------------------- Captured stderr call
> -----------------------------
> I: -input-charset not specified, using utf-8 (detected in locale settings)
> genisoimage 1.1.11 (Linux)
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8
> Scanning
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9
> 23 476
> 24 322 .rr_moved
> 25 330 dir8
> 26 320 dir9
> 27 318 dir1
> 28 318 dir2
> 29 318 dir3
> 30 318 dir4
> 31 318 dir5
> 32 318 dir6
> 33 330 dir7
> Cache hit for 'dir8/.'
> Cache hit for 'dir9/.'
> Cache hit for 'dir9/..'
> 35 35
> /tmp/pytest-of-user42/pytest-31/test_parse_rr_hidden_relocated0/rrdeep/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/foo
> Cache hit for 'dir1/.'
> Cache hit for 'dir1/..'
> Cache hit for 'dir2/.'
> Cache hit for 'dir2/..'
> Cache hit for 'dir3/.'
> Cache hit for 'dir3/..'
> Cache hit for 'dir4/.'
> Cache hit for 'dir4/..'
> Cache hit for 'dir5/.'
> Cache hit for 'dir5/..'
> Cache hit for 'dir6/.'
> Cache hit for 'dir6/..'
> Cache hit for 'dir7/.'
> Cache hit for 'dir7/..'
> Writing: Initial Padblock Start Block 0
> Done with: Initial Padblock Block(s) 16
> Writing: Primary Volume Descriptor Start Block 16
> Done with: Primary Volume Descriptor Block(s) 1
> Writing: End Volume Descriptor Start Block 17
> Done with: End Volume Descriptor Block(s) 1
> 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_rr_hidden_relocated -
> asse...
> ========== 6 failed, 1696 passed, 16 skipped, 3 deselected in 14.56s
> ===========
> make[1]: *** [debian/rules:19: override_dh_auto_install] Error 1
The full build log is available from:
http://qa-logs.debian.net/2024/02/24/python-pycdlib_1.12.0+ds1-5_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240224;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20240224&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results
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 mark 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 ---