Mock Version: 5.0
Mock Version: 5.0
Mock Version: 5.0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Wrote: /builddir/build/SRPMS/python-autopage-0.5.2-1.fc39.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.7OY2ui
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf autopage-0.5.2
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/autopage-0.5.2.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd autopage-0.5.2
+ rm -rf /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/mkdir -p /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/0001-Do-not-depend-on-fixtures-streams.patch
+ /usr/bin/patch -s --fuzz=0 --no-backup-if-mismatch -f
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.JVP3kH
+ umask 022
+ cd /builddir/build/BUILD
+ cd autopage-0.5.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ RPM_TOXENV=py312
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires -t
Handling setuptools>=43 from build-system.requires
Requirement not satisfied: setuptools>=43
Handling wheel from build-system.requires
Requirement not satisfied: wheel
Exiting dependency generation pass: build backend
+ cat /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires
+ rm -rfv '*.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-autopage-0.5.2-1.fc39.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Xwd99h
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf autopage-0.5.2
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/autopage-0.5.2.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd autopage-0.5.2
+ rm -rf /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/mkdir -p /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/0001-Do-not-depend-on-fixtures-streams.patch
+ /usr/bin/patch -s --fuzz=0 --no-backup-if-mismatch -f
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.5gf5ht
+ umask 022
+ cd /builddir/build/BUILD
+ cd autopage-0.5.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ RPM_TOXENV=py312
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires -t
Handling setuptools>=43 from build-system.requires
Requirement satisfied: setuptools>=43
   (installed: setuptools 67.7.2)
Handling wheel from build-system.requires
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
running egg_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement not satisfied: tox-current-env >= 0.0.6
Exiting dependency generation pass: tox itself
+ cat /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires
+ rm -rfv '*.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-autopage-0.5.2-1.fc39.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.j9SVtg
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf autopage-0.5.2
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/autopage-0.5.2.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd autopage-0.5.2
+ rm -rf /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/mkdir -p /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/0001-Do-not-depend-on-fixtures-streams.patch
+ /usr/bin/patch -s --fuzz=0 --no-backup-if-mismatch -f
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.zQVpM3
+ umask 022
+ cd /builddir/build/BUILD
+ cd autopage-0.5.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ RPM_TOXENV=py312
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires -t
Handling setuptools>=43 from build-system.requires
Requirement satisfied: setuptools>=43
   (installed: setuptools 67.7.2)
Handling wheel from build-system.requires
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
running egg_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.11)
  py312: OK (0.55 seconds)
  congratulations :) (3.22 seconds)
Handling tox from tox --print-deps-only: py312
Requirement satisfied: tox
   (installed: tox 4.11.1)
Handling pytest from tox --print-deps-only: py312
Requirement not satisfied: pytest
Handling fixtures from tox --print-deps-only: py312
Requirement not satisfied: fixtures
Handling pip>=19;python_version<'3.7' from tox --print-deps-only: py312
Ignoring alien requirement: pip>=19;python_version<'3.7'
Handling testtools from tox --print-deps-only: py312
Requirement not satisfied: testtools
running dist_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
creating '/builddir/build/BUILD/autopage-0.5.2/autopage-0.5.2.dist-info'
+ cat /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires
+ rm -rfv autopage-0.5.2.dist-info/
removed 'autopage-0.5.2.dist-info/LICENSE'
removed 'autopage-0.5.2.dist-info/top_level.txt'
removed 'autopage-0.5.2.dist-info/METADATA'
removed directory 'autopage-0.5.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-autopage-0.5.2-1.fc39.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.O89dbp
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf autopage-0.5.2
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/autopage-0.5.2.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd autopage-0.5.2
+ rm -rf /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/mkdir -p /builddir/build/BUILD/autopage-0.5.2-SPECPARTS
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ /usr/lib/rpm/rpmuncompress /builddir/build/SOURCES/0001-Do-not-depend-on-fixtures-streams.patch
+ /usr/bin/patch -s --fuzz=0 --no-backup-if-mismatch -f
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.YuQc6A
+ umask 022
+ cd /builddir/build/BUILD
+ cd autopage-0.5.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ RPM_TOXENV=py312
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires -t
Handling setuptools>=43 from build-system.requires
Requirement satisfied: setuptools>=43
   (installed: setuptools 67.7.2)
Handling wheel from build-system.requires
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
running egg_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.11)
  py312: OK (0.65 seconds)
  congratulations :) (3.29 seconds)
Handling tox from tox --print-deps-only: py312
Requirement satisfied: tox
   (installed: tox 4.11.1)
Handling pytest from tox --print-deps-only: py312
Requirement satisfied: pytest
   (installed: pytest 7.3.2)
Handling fixtures from tox --print-deps-only: py312
Requirement satisfied: fixtures
   (installed: fixtures 4.0.1)
Handling pip>=19;python_version<'3.7' from tox --print-deps-only: py312
Ignoring alien requirement: pip>=19;python_version<'3.7'
Handling testtools from tox --print-deps-only: py312
Requirement satisfied: testtools
   (installed: testtools 2.6.0)
running dist_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
creating '/builddir/build/BUILD/autopage-0.5.2/autopage-0.5.2.dist-info'
+ cat /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires
+ rm -rfv autopage-0.5.2.dist-info/
removed 'autopage-0.5.2.dist-info/LICENSE'
removed 'autopage-0.5.2.dist-info/top_level.txt'
removed 'autopage-0.5.2.dist-info/METADATA'
removed directory 'autopage-0.5.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-autopage-0.5.2-1.fc39.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'], chrootPath='/var/lib/mock/f39-build-1781231-41557/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0xffffffa68f5c10>timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False)
Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1697414400
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.5CqWIq
+ umask 022
+ cd /builddir/build/BUILD
+ cd autopage-0.5.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ RPM_TOXENV=py312
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires -t
Handling setuptools>=43 from build-system.requires
Requirement satisfied: setuptools>=43
   (installed: setuptools 67.7.2)
Handling wheel from build-system.requires
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
running egg_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
Handling wheel from get_requires_for_build_wheel
Requirement satisfied: wheel
   (installed: wheel 0.40.0)
Handling tox-current-env >= 0.0.6 from tox itself
Requirement satisfied: tox-current-env >= 0.0.6
   (installed: tox-current-env 0.0.11)
  py312: OK (0.60 seconds)
  congratulations :) (3.52 seconds)
Handling tox from tox --print-deps-only: py312
Requirement satisfied: tox
   (installed: tox 4.11.1)
Handling pytest from tox --print-deps-only: py312
Requirement satisfied: pytest
   (installed: pytest 7.3.2)
Handling fixtures from tox --print-deps-only: py312
Requirement satisfied: fixtures
   (installed: fixtures 4.0.1)
Handling pip>=19;python_version<'3.7' from tox --print-deps-only: py312
Ignoring alien requirement: pip>=19;python_version<'3.7'
Handling testtools from tox --print-deps-only: py312
Requirement satisfied: testtools
   (installed: testtools 2.6.0)
running dist_info
writing autopage.egg-info/PKG-INFO
writing dependency_links to autopage.egg-info/dependency_links.txt
writing top-level names to autopage.egg-info/top_level.txt
reading manifest file 'autopage.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'autopage.egg-info/SOURCES.txt'
creating '/builddir/build/BUILD/autopage-0.5.2/autopage-0.5.2.dist-info'
+ cat /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-buildrequires
+ rm -rfv autopage-0.5.2.dist-info/
removed 'autopage-0.5.2.dist-info/LICENSE'
removed 'autopage-0.5.2.dist-info/top_level.txt'
removed 'autopage-0.5.2.dist-info/METADATA'
removed directory 'autopage-0.5.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.Wy72df
+ umask 022
+ cd /builddir/build/BUILD
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd autopage-0.5.2
+ mkdir -p /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir
Processing /builddir/build/BUILD/autopage-0.5.2
  Preparing metadata (pyproject.toml): started
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info
  writing /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/PKG-INFO
  writing dependency_links to /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/dependency_links.txt
  writing top-level names to /builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/top_level.txt
  writing manifest file '/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/SOURCES.txt'
  reading manifest file '/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file '/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage.egg-info/SOURCES.txt'
  creating '/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-modern-metadata-1ffi7x7q/autopage-0.5.2.dist-info'
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: autopage
  Building wheel for autopage (pyproject.toml): started
  Running command Building wheel for autopage (pyproject.toml)
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/autopage
  copying autopage/argparse.py -> build/lib/autopage
  copying autopage/command.py -> build/lib/autopage
  copying autopage/__init__.py -> build/lib/autopage
  creating build/lib/autopage/tests
  copying autopage/tests/test_autopage.py -> build/lib/autopage/tests
  copying autopage/tests/test_command.py -> build/lib/autopage/tests
  copying autopage/tests/test_end_to_end.py -> build/lib/autopage/tests
  copying autopage/tests/test_argparse.py -> build/lib/autopage/tests
  copying autopage/tests/test_pager_settings.py -> build/lib/autopage/tests
  copying autopage/tests/test_line_buffer_from_input.py -> build/lib/autopage/tests
  copying autopage/tests/__init__.py -> build/lib/autopage/tests
  copying autopage/tests/sinks.py -> build/lib/autopage/tests
  copying autopage/tests/isolation.py -> build/lib/autopage/tests
  copying autopage/py.typed -> build/lib/autopage
  installing to build/bdist.linux-riscv64/wheel
  running install
  running install_lib
  creating build/bdist.linux-riscv64
  creating build/bdist.linux-riscv64/wheel
  creating build/bdist.linux-riscv64/wheel/autopage
  copying build/lib/autopage/argparse.py -> build/bdist.linux-riscv64/wheel/autopage
  copying build/lib/autopage/command.py -> build/bdist.linux-riscv64/wheel/autopage
  copying build/lib/autopage/py.typed -> build/bdist.linux-riscv64/wheel/autopage
  creating build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_autopage.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_command.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_end_to_end.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_argparse.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_pager_settings.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/test_line_buffer_from_input.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/__init__.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/sinks.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/tests/isolation.py -> build/bdist.linux-riscv64/wheel/autopage/tests
  copying build/lib/autopage/__init__.py -> build/bdist.linux-riscv64/wheel/autopage
  running install_egg_info
  running egg_info
  writing autopage.egg-info/PKG-INFO
  writing dependency_links to autopage.egg-info/dependency_links.txt
  writing top-level names to autopage.egg-info/top_level.txt
  reading manifest file 'autopage.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file 'autopage.egg-info/SOURCES.txt'
  Copying autopage.egg-info to build/bdist.linux-riscv64/wheel/autopage-0.5.2-py3.12.egg-info
  running install_scripts
  creating build/bdist.linux-riscv64/wheel/autopage-0.5.2.dist-info/WHEEL
  creating '/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir/pip-wheel-3gmdcvs1/.tmp-tgwgexv_/autopage-0.5.2-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it
  adding 'autopage/__init__.py'
  adding 'autopage/argparse.py'
  adding 'autopage/command.py'
  adding 'autopage/py.typed'
  adding 'autopage/tests/__init__.py'
  adding 'autopage/tests/isolation.py'
  adding 'autopage/tests/sinks.py'
  adding 'autopage/tests/test_argparse.py'
  adding 'autopage/tests/test_autopage.py'
  adding 'autopage/tests/test_command.py'
  adding 'autopage/tests/test_end_to_end.py'
  adding 'autopage/tests/test_line_buffer_from_input.py'
  adding 'autopage/tests/test_pager_settings.py'
  adding 'autopage-0.5.2.dist-info/LICENSE'
  adding 'autopage-0.5.2.dist-info/METADATA'
  adding 'autopage-0.5.2.dist-info/WHEEL'
  adding 'autopage-0.5.2.dist-info/top_level.txt'
  adding 'autopage-0.5.2.dist-info/RECORD'
  removing build/bdist.linux-riscv64/wheel
  Building wheel for autopage (pyproject.toml): finished with status 'done'
  Created wheel for autopage: filename=autopage-0.5.2-py3-none-any.whl size=30231 sha256=f9c4076f106ddad740389aa7db332e1da6e1dc85c8331d46a04ea75f4d21bbcc
  Stored in directory: /builddir/.cache/pip/wheels/6a/63/72/4f31269fa36aee557808af6cfaec7dc407cdb808231e51ac9e
Successfully built autopage
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.XtHrAa
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch
++ dirname /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd autopage-0.5.2
++ xargs basename --multiple
++ ls /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir/autopage-0.5.2-py3-none-any.whl
++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/'
+ specifier=autopage==0.5.2
+ TMPDIR=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir
+ /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir autopage==0.5.2
Using pip 23.2.1 from /usr/lib/python3.12/site-packages/pip (python 3.12)
Looking in links: /builddir/build/BUILD/autopage-0.5.2/pyproject-wheeldir
Processing ./pyproject-wheeldir/autopage-0.5.2-py3-none-any.whl
Installing collected packages: autopage
Successfully installed autopage-0.5.2
+ '[' -d /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/bin ']'
+ rm -f /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-ghost-distinfo
+ site_dirs=()
+ '[' -d /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages ']'
+ site_dirs+=("/usr/lib/python3.12/site-packages")
+ '[' /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages ']'
+ '[' -d /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib64/python3.12/site-packages ']'
+ for site_dir in ${site_dirs[@]}
+ for distinfo in /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch$site_dir/*.dist-info
+ echo '%ghost /usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info'
+ sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/INSTALLER
+ PYTHONPATH=/usr/lib/rpm/redhat
+ /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch --record /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/RECORD --output /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-record
+ rm -fv /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/RECORD
removed '/builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/RECORD'
+ rm -fv /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/REQUESTED
removed '/builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages/autopage-0.5.2.dist-info/REQUESTED'
++ cut -f1 '-d '
++ wc -l /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-ghost-distinfo
+ lines=1
+ '[' 1 -ne 1 ']'
+ RPM_PERCENTAGES_COUNT=2
+ /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch --sitelib /usr/lib/python3.12/site-packages --sitearch /usr/lib64/python3.12/site-packages --python-version 3.12 --pyproject-record /builddir/build/BUILD/python-autopage-0.5.2-1.fc39.noarch-pyproject-record --prefix /usr autopage
+ /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 0.5.2-1.fc39 --unique-debug-suffix -0.5.2-1.fc39.noarch --unique-debug-src-base python-autopage-0.5.2-1.fc39.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/autopage-0.5.2
find-debuginfo: starting
Extracting debug info from 0 files
Creating .debug symlinks for symlinks to ELF files
find: ‘debug’: No such file or directory
find-debuginfo: done
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
+ /usr/lib/rpm/brp-remove-la-files
+ env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j8
Bytecompiling .py files below /builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12 using python3.12
+ /usr/lib/rpm/redhat/brp-python-hardlink
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.RvaNpE
+ umask 022
+ cd /builddir/build/BUILD
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn'
+ export RUSTFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd autopage-0.5.2
+ TOX_TESTENV_PASSENV='*'
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ PATH=/builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-autopage-0.5.2-1.fc39.noarch/usr/lib/python3.12/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/autopage-0.5.2/.pyproject-builddir'
+ PYTEST_XDIST_AUTO_NUM_WORKERS=8
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -m tox --current-env -q --recreate -e py312
============================= test session starts ==============================
platform linux -- Python 3.12.0, pytest-7.3.2, pluggy-1.2.0
cachedir: .tox/py312/.pytest_cache
rootdir: /builddir/build/BUILD/autopage-0.5.2
collected 153 items
autopage/tests/test_argparse.py ......                                   [  3%]
autopage/tests/test_autopage.py ........................................ [ 30%]
                                                                         [ 30%]
autopage/tests/test_command.py ......................................... [ 56%]
.....................................                                    [ 81%]
autopage/tests/test_end_to_end.py FFFFFFFFFFFFFFFFF                      [ 92%]
autopage/tests/test_line_buffer_from_input.py ....                       [ 94%]
autopage/tests/test_pager_settings.py ........                           [100%]
=================================== FAILURES ===================================
________________________ InvokePagerTest.test_exception ________________________
child_function = <function with_exception at 0xffffffb0c63600>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exception>
    def test_exception(self) -> None:
        num_lines = 50
        with isolation.isolate(with_exception) as env:
            pager = isolation.PagerControl(env)
    
            lines = num_lines
            while lines > 0:
                expected = min(lines, MAX_LINES_PER_PAGE)
>               self.assertEqual(expected, pager.advance())
autopage/tests/test_end_to_end.py:226: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exception>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exception>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exception>
    def test_exception(self) -> None:
        num_lines = 50
>       with isolation.isolate(with_exception) as env:
autopage/tests/test_end_to_end.py:220: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562863 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
____________________ InvokePagerTest.test_exit_pager_early _____________________
child_function = <function infinite at 0xffffffb0c40ae0>, stdin_pipe = False
stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exit_pager_early>
    def test_exit_pager_early(self) -> None:
        with isolation.isolate(infinite) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(MAX_LINES_PER_PAGE, pager.advance())
autopage/tests/test_end_to_end.py:122: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exit_pager_early>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exit_pager_early>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_exit_pager_early>
    def test_exit_pager_early(self) -> None:
>       with isolation.isolate(infinite) as env:
autopage/tests/test_end_to_end.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562867 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_____________ InvokePagerTest.test_interrupt_at_end_after_complete _____________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b37680>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_at_end_after_complete>
    def test_interrupt_at_end_after_complete(self) -> None:
        num_lines = 100
        with isolation.isolate(finite(num_lines)) as env:
            pager = isolation.PagerControl(env)
    
            while pager.advance():
                continue
    
>           self.assertEqual(num_lines, pager.total_lines())
autopage/tests/test_end_to_end.py:173: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_at_end_after_complete>
first = 100, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_at_end_after_complete>
first = 100, second = 0, msg = '100 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 100 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_at_end_after_complete>
    def test_interrupt_at_end_after_complete(self) -> None:
        num_lines = 100
>       with isolation.isolate(finite(num_lines)) as env:
autopage/tests/test_end_to_end.py:167: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562871 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_____________________ InvokePagerTest.test_interrupt_early _____________________
child_function = <function infinite at 0xffffffb0c40ae0>, stdin_pipe = False
stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early>
    def test_interrupt_early(self) -> None:
        with isolation.isolate(infinite) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(MAX_LINES_PER_PAGE, pager.advance())
autopage/tests/test_end_to_end.py:131: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early>
    def test_interrupt_early(self) -> None:
>       with isolation.isolate(infinite) as env:
autopage/tests/test_end_to_end.py:128: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562875 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
__________________ InvokePagerTest.test_interrupt_early_quit ___________________
child_function = <function infinite at 0xffffffb0c40ae0>, stdin_pipe = False
stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early_quit>
    def test_interrupt_early_quit(self) -> None:
        with isolation.isolate(infinite) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(MAX_LINES_PER_PAGE, pager.advance())
autopage/tests/test_end_to_end.py:144: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early_quit>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early_quit>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_early_quit>
    def test_interrupt_early_quit(self) -> None:
>       with isolation.isolate(infinite) as env:
autopage/tests/test_end_to_end.py:141: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562879 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
___________ InvokePagerTest.test_interrupt_in_middle_after_complete ____________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b57230>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_in_middle_after_complete>
    def test_interrupt_in_middle_after_complete(self) -> None:
        num_lines = 100
        with isolation.isolate(finite(num_lines)) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(MAX_LINES_PER_PAGE, pager.advance())
autopage/tests/test_end_to_end.py:156: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_in_middle_after_complete>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_in_middle_after_complete>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_interrupt_in_middle_after_complete>
    def test_interrupt_in_middle_after_complete(self) -> None:
        num_lines = 100
>       with isolation.isolate(finite(num_lines)) as env:
autopage/tests/test_end_to_end.py:153: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562883 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_______________________ InvokePagerTest.test_page_to_end _______________________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b47830>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_end>
    def test_page_to_end(self) -> None:
        num_lines = 100
        with isolation.isolate(finite(num_lines)) as env:
            pager = isolation.PagerControl(env)
    
            lines = num_lines
            while lines > 0:
                expected = min(lines, MAX_LINES_PER_PAGE)
>               self.assertEqual(expected, pager.advance())
autopage/tests/test_end_to_end.py:97: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_end>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_end>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_end>
    def test_page_to_end(self) -> None:
        num_lines = 100
>       with isolation.isolate(finite(num_lines)) as env:
autopage/tests/test_end_to_end.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562887 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_____________________ InvokePagerTest.test_page_to_middle ______________________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b46030>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_middle>
    def test_page_to_middle(self) -> None:
        num_lines = 100
        with isolation.isolate(finite(num_lines)) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(MAX_LINES_PER_PAGE, pager.advance())
autopage/tests/test_end_to_end.py:112: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_middle>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_middle>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_page_to_middle>
    def test_page_to_middle(self) -> None:
        num_lines = 100
>       with isolation.isolate(finite(num_lines)) as env:
autopage/tests/test_end_to_end.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562891 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
______________________ InvokePagerTest.test_short_output _______________________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b478f0>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output>
    def test_short_output(self) -> None:
        num_lines = 10
        with isolation.isolate(finite(num_lines)) as env:
            pager = isolation.PagerControl(env)
    
>           for i, l in enumerate(pager.read_lines(num_lines)):
autopage/tests/test_end_to_end.py:187: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.0 = <generator object PagerControl._iter_lines at 0xffffffb0c58af0>
>   return itertools.islice((line for line in self._lines
                             if line is not self._page_end), count)
autopage/tests/isolation.py:168: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.isolation.PagerControl object at 0xffffffb0b47fb0>
    def _iter_lines(self) -> Generator[typing.Union[str, None],
                                       None, None]:
        def get_content(segment: str) -> Tuple[bool,
                                               typing.Union[str, None]]:
            if not segment:
                return False, ''
            if segment == '\x1b[1m~\x1b[0m\n':
                # Ignore lines that are filling blank vertical space with
                # '~' after hitting Ctrl-C when the screen is not full
                return False, ''
            visible = self._ctrl_chars.sub('', segment)
            if ((visible.rstrip() == ':' or '(END)' in visible
                    or 'Waiting for data...' in visible)
                    and segment.replace('\x1b[m', '') != visible):
                return True, self._page_end
            elif visible.rstrip() or segment == visible:
                self._total_lines += 1
                self.env.record_output(visible)
                return True, visible
            return False, ''
    
        while True:
            line = '\x1b[?'
            while line.lstrip(' q').startswith('\x1b[?'):
>               rawline = self.env.readline()
autopage/tests/isolation.py:153: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.isolation.IsolationEnvironment object at 0xffffffb0b47fe0>
    def readline(self) -> str:
>       line = self._tty.readline()
E       OSError: [Errno 5] Input/output error
autopage/tests/isolation.py:70: OSError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output>
    def test_short_output(self) -> None:
        num_lines = 10
>       with isolation.isolate(finite(num_lines)) as env:
autopage/tests/test_end_to_end.py:184: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562895 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
___________________ InvokePagerTest.test_short_output_reset ____________________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b46e40>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output_reset>
    def test_short_output_reset(self) -> None:
        num_lines = 10
        with isolation.isolate(finite(num_lines, reset_on_exit=True)) as env:
            pager = isolation.PagerControl(env)
    
>           self.assertEqual(num_lines, pager.quit())
autopage/tests/test_end_to_end.py:197: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output_reset>
first = 10, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output_reset>
first = 10, second = 0, msg = '10 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 10 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_output_reset>
    def test_short_output_reset(self) -> None:
        num_lines = 10
>       with isolation.isolate(finite(num_lines, reset_on_exit=True)) as env:
autopage/tests/test_end_to_end.py:194: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562899 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_________________ InvokePagerTest.test_short_streaming_output __________________
child_function = <function from_stdin at 0xffffffb0c63560>, stdin_pipe = True
stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_streaming_output>
    def test_short_streaming_output(self) -> None:
        num_lines = 10
        with isolation.isolate(from_stdin, stdin_pipe=True) as env:
            pager = isolation.PagerControl(env)
    
            with env.stdin_pipe() as in_pipe:
                for i in range(num_lines):
                    print(i, file=in_pipe)
    
>           for i, l in enumerate(pager.read_lines(num_lines)):
autopage/tests/test_end_to_end.py:210: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
.0 = <generator object PagerControl._iter_lines at 0xffffffb0c5a3e0>
>   return itertools.islice((line for line in self._lines
                             if line is not self._page_end), count)
autopage/tests/isolation.py:168: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.isolation.PagerControl object at 0xffffffb0b44d40>
    def _iter_lines(self) -> Generator[typing.Union[str, None],
                                       None, None]:
        def get_content(segment: str) -> Tuple[bool,
                                               typing.Union[str, None]]:
            if not segment:
                return False, ''
            if segment == '\x1b[1m~\x1b[0m\n':
                # Ignore lines that are filling blank vertical space with
                # '~' after hitting Ctrl-C when the screen is not full
                return False, ''
            visible = self._ctrl_chars.sub('', segment)
            if ((visible.rstrip() == ':' or '(END)' in visible
                    or 'Waiting for data...' in visible)
                    and segment.replace('\x1b[m', '') != visible):
                return True, self._page_end
            elif visible.rstrip() or segment == visible:
                self._total_lines += 1
                self.env.record_output(visible)
                return True, visible
            return False, ''
    
        while True:
            line = '\x1b[?'
            while line.lstrip(' q').startswith('\x1b[?'):
>               rawline = self.env.readline()
autopage/tests/isolation.py:153: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.isolation.IsolationEnvironment object at 0xffffffb0b44ce0>
    def readline(self) -> str:
>       line = self._tty.readline()
E       OSError: [Errno 5] Input/output error
autopage/tests/isolation.py:70: OSError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_short_streaming_output>
    def test_short_streaming_output(self) -> None:
        num_lines = 10
>       with isolation.isolate(from_stdin, stdin_pipe=True) as env:
autopage/tests/test_end_to_end.py:203: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562904 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
______________________ InvokePagerTest.test_stderr_output ______________________
child_function = <function with_stderr_output at 0xffffffb0c636a0>
stdin_pipe = False, stdout_pipe = False, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_stderr_output>
    def test_stderr_output(self) -> None:
        num_lines = 50
        with isolation.isolate(with_stderr_output) as env:
            pager = isolation.PagerControl(env)
    
            lines = num_lines
            while lines > 0:
                expected = min(lines, MAX_LINES_PER_PAGE)
>               self.assertEqual(expected, pager.advance())
autopage/tests/test_end_to_end.py:244: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_stderr_output>
first = 23, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_stderr_output>
first = 23, second = 0, msg = '23 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 23 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.InvokePagerTest testMethod=test_stderr_output>
    def test_stderr_output(self) -> None:
        num_lines = 50
>       with isolation.isolate(with_stderr_output) as env:
autopage/tests/test_end_to_end.py:238: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562908 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_________________________ NoPagerTest.test_exit_early __________________________
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_exit_early>
    def test_exit_early(self) -> None:
>       with isolation.isolate(infinite, stdout_pipe=True) as env:
autopage/tests/test_end_to_end.py:268: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:144: in __exit__
    next(self.gen)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562912 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_____________________ NoPagerTest.test_exit_early_buffered _____________________
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_exit_early_buffered>
    def test_exit_early_buffered(self) -> None:
        num_lines = 10
>       with isolation.isolate(from_stdin,
                               stdin_pipe=True, stdout_pipe=True) as env:
autopage/tests/test_end_to_end.py:277: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:144: in __exit__
    next(self.gen)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562916 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_______________________ NoPagerTest.test_interrupt_early _______________________
child_function = <function infinite at 0xffffffb0c40ae0>, stdin_pipe = False
stdout_pipe = True, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_interrupt_early>
    def test_interrupt_early(self) -> None:
        with isolation.isolate(infinite, stdout_pipe=True) as env:
            env.interrupt()
            with env.stdout_pipe() as out:
                output = out.readlines()
>           self.assertGreater(len(output), 0)
autopage/tests/test_end_to_end.py:293: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_interrupt_early>
a = 0, b = 0, msg = None
    def assertGreater(self, a, b, msg=None):
        """Just like self.assertTrue(a > b), but with a nicer default message."""
        if not a > b:
            standardMsg = '%s not greater than %s' % (safe_repr(a), safe_repr(b))
>           self.fail(self._formatMessage(msg, standardMsg))
/usr/lib64/python3.12/unittest/case.py:1269: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_interrupt_early>
msg = '0 not greater than 0'
    def fail(self, msg=None):
        """Fail immediately, with the given message."""
>       raise self.failureException(msg)
E       AssertionError: 0 not greater than 0
/usr/lib64/python3.12/unittest/case.py:715: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_interrupt_early>
    def test_interrupt_early(self) -> None:
>       with isolation.isolate(infinite, stdout_pipe=True) as env:
autopage/tests/test_end_to_end.py:289: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562920 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
_____________________ NoPagerTest.test_pipe_output_to_end ______________________
child_function = <autopage.tests.test_end_to_end.finite object at 0xffffffb0b40aa0>
stdin_pipe = False, stdout_pipe = True, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_pipe_output_to_end>
    def test_pipe_output_to_end(self) -> None:
        num_lines = 100
        with isolation.isolate(finite(num_lines),
                               stdout_pipe=True) as env:
            with env.stdout_pipe() as out:
                output = out.readlines()
    
>           self.assertEqual(num_lines, len(output))
autopage/tests/test_end_to_end.py:263: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_pipe_output_to_end>
first = 100, second = 0, msg = None
    def assertEqual(self, first, second, msg=None):
        """Fail if the two objects are unequal as determined by the '=='
           operator.
        """
        assertion_func = self._getAssertEqualityFunc(first, second)
>       assertion_func(first, second, msg=msg)
/usr/lib64/python3.12/unittest/case.py:885: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_pipe_output_to_end>
first = 100, second = 0, msg = '100 != 0'
    def _baseAssertEqual(self, first, second, msg=None):
        """The default assertEqual implementation, not type specific."""
        if not first == second:
            standardMsg = '%s != %s' % _common_shorten_repr(first, second)
            msg = self._formatMessage(msg, standardMsg)
>           raise self.failureException(msg)
E           AssertionError: 100 != 0
/usr/lib64/python3.12/unittest/case.py:878: AssertionError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_pipe_output_to_end>
    def test_pipe_output_to_end(self) -> None:
        num_lines = 100
>       with isolation.isolate(finite(num_lines),
                               stdout_pipe=True) as env:
autopage/tests/test_end_to_end.py:258: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562924 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
___________________ NoPagerTest.test_short_streaming_output ____________________
child_function = <function from_stdin at 0xffffffb0c63560>, stdin_pipe = True
stdout_pipe = True, stderr_pipe = True
    @contextlib.contextmanager
    def isolate(child_function: typing.Callable[[], int],
                stdin_pipe: bool = False,
                stdout_pipe: bool = False,
                stderr_pipe: bool = True,
                *,
                lines: int = LINES,
                columns: int = COLUMNS) -> Generator[IsolationEnvironment,
                                                     None, None]:
        with _fifos('stdin' if stdin_pipe else None,
                    'stdout' if stdout_pipe else None,
                    'stderr' if stderr_pipe else None) as fifo_paths:
            result_r, result_w = os.pipe()
            env_pid, tty = pty.fork()
            if env_pid == pty.CHILD:
                try:
                    os.close(result_r)
                    # Get ttyname from original stdout, even if test runner has
                    # replaced stdout with another file
                    pts = os.ttyname(pty.STDOUT_FILENO)
    
                    ctx = multiprocessing.get_context('spawn')
                    p = ctx.Process(target=_run_test, args=(child_function, pts,
                                                            *fifo_paths))
                    p.start()
    
                    def handle_terminate(signum: int,
                                         frame: Optional[types.FrameType]) -> None:
                        if p.is_alive():
                            p.terminate()
    
                    signal.signal(signal.SIGTERM, handle_terminate)
                    # Signals from the pty are for the test process, not us
                    signal.signal(signal.SIGINT, signal.SIG_IGN)
    
                    p.join(2)  # Wait at most 2s
                    if p.exitcode is None:
                        raise TimeoutException(p.pid)
                except BaseException:
                    try:
                        with os.fdopen(result_w, 'w') as result_writer:
                            traceback.print_exc(file=result_writer)
                    finally:
                        # Prevent blocking in parent process by opening our end of
                        # all FIFOs.
                        for path, write in zip(fifo_paths, [False, True, True]):
                            _open_fifo(path, write)
                        os._exit(1)
                with os.fdopen(result_w, 'w') as result_writer:
                    result_writer.write(f'{p.exitcode}\n')
    
                os._exit(0)
            else:
                os.close(result_w)
                fcntl.ioctl(tty, termios.TIOCSWINSZ,
                            struct.pack('HHHH', lines, columns, 0, 0))
                env = IsolationEnvironment(env_pid, tty, *fifo_paths)
                time.sleep(0.01)
                try:
                    try:
>                       yield env
autopage/tests/isolation.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_short_streaming_output>
    def test_short_streaming_output(self) -> None:
        num_lines = 10
        with isolation.isolate(from_stdin,
                               stdin_pipe=True, stdout_pipe=True) as env:
            with env.stdin_pipe() as in_pipe:
                for i in range(num_lines):
                    print(i, file=in_pipe)
    
            with env.stdout_pipe() as out:
                for i in range(num_lines):
>                   self.assertEqual(i, int(out.readline()))
E                   ValueError: invalid literal for int() with base 10: ''
autopage/tests/test_end_to_end.py:307: ValueError
During handling of the above exception, another exception occurred:
self = <autopage.tests.test_end_to_end.NoPagerTest testMethod=test_short_streaming_output>
    def test_short_streaming_output(self) -> None:
        num_lines = 10
>       with isolation.isolate(from_stdin,
                               stdin_pipe=True, stdout_pipe=True) as env:
autopage/tests/test_end_to_end.py:299: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib64/python3.12/contextlib.py:155: in __exit__
    self.gen.throw(value)
autopage/tests/isolation.py:299: in isolate
    env.close(get_return_code)
autopage/tests/isolation.py:99: in close
    self._exit_code = get_return_code()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_return_code() -> int:
        with os.fdopen(result_r) as result_reader:
            result = result_reader.readline().rstrip()
            try:
                return int(result)
            except ValueError:
                pass
            trace = result_reader.read()
>           raise TestProcessNotComplete('\n'.join([result,
                                                    trace]))
E           autopage.tests.isolation.TestProcessNotComplete: Traceback (most recent call last):
E             File "/builddir/build/BUILD/autopage-0.5.2/autopage/tests/isolation.py", line 263, in isolate
E               raise TimeoutException(p.pid)
E           autopage.tests.isolation.TimeoutException: Test process 562928 timed out
autopage/tests/isolation.py:296: TestProcessNotComplete
=========================== short test summary info ============================
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_exception - a...
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_exit_pager_early
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_interrupt_at_end_after_complete
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_interrupt_early
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_interrupt_early_quit
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_interrupt_in_middle_after_complete
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_page_to_end
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_page_to_middle
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_short_output
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_short_output_reset
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_short_streaming_output
FAILED autopage/tests/test_end_to_end.py::InvokePagerTest::test_stderr_output
FAILED autopage/tests/test_end_to_end.py::NoPagerTest::test_exit_early - auto...
FAILED autopage/tests/test_end_to_end.py::NoPagerTest::test_exit_early_buffered
FAILED autopage/tests/test_end_to_end.py::NoPagerTest::test_interrupt_early
FAILED autopage/tests/test_end_to_end.py::NoPagerTest::test_pipe_output_to_end
FAILED autopage/tests/test_end_to_end.py::NoPagerTest::test_short_streaming_output
================== 17 failed, 136 passed in 93.16s (0:01:33) ===================
py312: exit 1 (103.95 seconds) /builddir/build/BUILD/autopage-0.5.2> pytest pid=562726
  py312: FAIL code 1 (104.80 seconds)
  evaluation failed :( (108.52 seconds)
error: Bad exit status from /var/tmp/rpm-tmp.RvaNpE (%check)
RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.RvaNpE (%check)
Child return code was: 1
EXCEPTION: [Error('Command failed: \n # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec\n', 1)]
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mockbuild/util.py", line 597, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (command, output), child.returncode)
mockbuild.exception.Error: Command failed: 
 # bash --login -c /usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-autopage.spec