Warning: Permanently added '98.84.11.220' (ED25519) to the list of known hosts. You can reproduce this build on your computer by running: sudo dnf install copr-rpmbuild /usr/bin/copr-rpmbuild --verbose --drop-resultdir --task-url https://copr.fedorainfracloud.org/backend/get-build-task/10357651-epel-10-x86_64 --chroot epel-10-x86_64 Version: 1.8 PID: 12403 Logging PID: 12405 Task: {'allow_user_ssh': False, 'appstream': False, 'background': False, 'build_id': 10357651, 'buildroot_pkgs': [], 'chroot': 'epel-10-x86_64', 'enable_net': True, 'fedora_review': False, 'git_hash': 'a1020943a65fbc522f7db9785876227f663d88e4', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/rezso/HDL/pyrtl', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'pyrtl', 'package_version': '0.12-20260422.0.git4ace6d36', 'project_dirname': 'HDL', 'project_name': 'HDL', 'project_owner': 'rezso', 'repo_priority': None, 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/rezso/HDL/epel-10-x86_64/', 'id': 'copr_base', 'name': 'Copr repository', 'priority': None}], 'sandbox': 'rezso/HDL--rezso', 'source_json': {}, 'source_type': None, 'ssh_public_keys': None, 'storage': 0, 'submitter': 'rezso', 'tags': [], 'task_id': '10357651-epel-10-x86_64', 'timeout': 172800, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/rezso/HDL/pyrtl /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl --depth 500 --no-single-branch --recursive cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/rezso/HDL/pyrtl', '/var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl'... Running: git checkout a1020943a65fbc522f7db9785876227f663d88e4 -- cmd: ['git', 'checkout', 'a1020943a65fbc522f7db9785876227f663d88e4', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl rc: 0 stdout: stderr: Note: switching to 'a1020943a65fbc522f7db9785876227f663d88e4'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false HEAD is now at a102094 automatic import of pyrtl Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl rc: 0 stdout: stderr: INFO: Reading stdout from command: git rev-parse --abbrev-ref HEAD INFO: Reading stdout from command: git rev-parse HEAD INFO: Reading sources specification file: sources tail: /var/lib/copr-rpmbuild/main.log: file truncated Running (timeout=172800): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1776910369.635312 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.7 starting (python version = 3.14.2, NVR = mock-6.7-1.fc43), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1776910369.635312 -r /var/lib/copr-rpmbuild/results/configs/child.cfg Start(bootstrap): init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish(bootstrap): init plugins Start: init plugins INFO: tmpfs initialized INFO: selinux enabled INFO: chroot_scan: initialized INFO: compress_logs: initialized Finish: init plugins INFO: Signal handler active Start: run INFO: Start(/var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl/pyrtl.spec) Config(centos-stream+epel-10-x86_64) Start: clean chroot Finish: clean chroot Mock Version: 6.7 INFO: Mock Version: 6.7 Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1776910369.635312/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata INFO: Guessed host environment type: unknown INFO: Using container image: quay.io/centos/centos:stream10 INFO: Pulling image: quay.io/centos/centos:stream10 INFO: Tagging container image as mock-bootstrap-e29a26a0-13de-451e-a273-81ef42b4e005 INFO: Checking that 02fbf7e49dbdead156c816b4ee2f5ec642033a6cc5f3303b9f8223fcdd5c5b1e image matches host's architecture INFO: Copy content of container 02fbf7e49dbdead156c816b4ee2f5ec642033a6cc5f3303b9f8223fcdd5c5b1e to /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1776910369.635312/root INFO: mounting 02fbf7e49dbdead156c816b4ee2f5ec642033a6cc5f3303b9f8223fcdd5c5b1e with podman image mount INFO: image 02fbf7e49dbdead156c816b4ee2f5ec642033a6cc5f3303b9f8223fcdd5c5b1e as /var/lib/containers/storage/overlay/1db508c594704744f359831a5d73f81fd8750d7ff3bab66d0f04f1d7854a750a/merged INFO: umounting image 02fbf7e49dbdead156c816b4ee2f5ec642033a6cc5f3303b9f8223fcdd5c5b1e (/var/lib/containers/storage/overlay/1db508c594704744f359831a5d73f81fd8750d7ff3bab66d0f04f1d7854a750a/merged) with podman image umount INFO: Removing image mock-bootstrap-e29a26a0-13de-451e-a273-81ef42b4e005 INFO: Package manager dnf4 detected and used (fallback) INFO: Not updating bootstrap chroot, bootstrap_image_ready=True Start(bootstrap): creating root cache Finish(bootstrap): creating root cache Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf4 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 python3-dnf-4.20.0-23.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-23.el10.noarch Start: installing minimal buildroot with dnf No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 908 kB/s | 79 kB 00:00 CentOS Stream 10 - BaseOS 9.9 MB/s | 6.9 MB 00:00 CentOS Stream 10 - AppStream 2.0 MB/s | 3.6 MB 00:01 CentOS Stream 10 - CRB 2.0 MB/s | 834 kB 00:00 CentOS Stream 10 - Extras packages 13 kB/s | 10 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 16 MB/s | 6.6 MB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repo Size ================================================================================ Installing: bash x86_64 5.2.26-6.el10 baseos 1.8 M bzip2 x86_64 1.0.8-25.el10 baseos 54 k centos-stream-release noarch 10.0-21.el10 baseos 30 k coreutils x86_64 9.5-7.el10 baseos 1.1 M cpio x86_64 2.15-3.el10 baseos 292 k diffutils x86_64 3.10-8.el10 baseos 409 k epel-rpm-macros noarch 10-7.el10_3 epel 8.4 k findutils x86_64 1:4.10.0-5.el10 baseos 551 k gawk x86_64 5.3.0-6.el10 baseos 1.1 M glibc-minimal-langpack x86_64 2.39-117.el10 baseos 29 k grep x86_64 3.11-10.el10 baseos 301 k gzip x86_64 1.13-3.el10 baseos 170 k info x86_64 7.1-6.el10 baseos 183 k patch x86_64 2.7.6-26.el10 appstream 132 k redhat-rpm-config noarch 295-1.el10 appstream 74 k rpm-build x86_64 4.19.1.1-23.el10 appstream 75 k sed x86_64 4.9-5.el10 baseos 318 k shadow-utils x86_64 2:4.15.0-11.el10 baseos 1.3 M tar x86_64 2:1.35-11.el10 baseos 866 k unzip x86_64 6.0-69.el10 baseos 190 k util-linux x86_64 2.40.2-19.el10 baseos 1.3 M which x86_64 2.21-44.el10 baseos 42 k xz x86_64 1:5.6.2-4.el10 baseos 481 k Installing dependencies: R-srpm-macros noarch 1.3.7-1.el10_3 epel 11 k alternatives x86_64 1.30-2.el10 baseos 42 k ansible-srpm-macros noarch 1-21.el10_3 epel 20 k audit-libs x86_64 4.0.3-5.el10 baseos 131 k authselect x86_64 1.5.2-1.el10 baseos 211 k authselect-libs x86_64 1.5.2-1.el10 baseos 254 k basesystem noarch 11-22.el10 baseos 4.3 k binutils x86_64 2.41-65.el10 baseos 6.4 M binutils-gold x86_64 2.41-65.el10 baseos 795 k bzip2-libs x86_64 1.0.8-25.el10 baseos 42 k ca-certificates noarch 2025.2.80_v9.0.305-102.el10 baseos 1.1 M centos-gpg-keys noarch 10.0-21.el10 baseos 26 k centos-stream-repos noarch 10.0-21.el10 baseos 12 k coreutils-common x86_64 9.5-7.el10 baseos 2.1 M cracklib x86_64 2.9.11-8.el10 baseos 96 k cracklib-dicts x86_64 2.9.11-8.el10 baseos 3.6 M crypto-policies noarch 20260216-1.git0e54016.el10 baseos 98 k curl x86_64 8.12.1-5.el10 baseos 217 k cyrus-sasl-lib x86_64 2.1.28-27.el10 baseos 106 k debugedit x86_64 5.1-8.el10 appstream 80 k dwz x86_64 0.16-1.el10 appstream 140 k ed x86_64 1.20-5.el10 baseos 83 k efi-srpm-macros noarch 6-8.el10 appstream 23 k elfutils x86_64 0.194-2.el10 baseos 573 k elfutils-debuginfod-client x86_64 0.194-2.el10 baseos 43 k elfutils-default-yama-scope noarch 0.194-2.el10 baseos 8.3 k elfutils-libelf x86_64 0.194-2.el10 baseos 201 k elfutils-libs x86_64 0.194-2.el10 baseos 267 k file x86_64 5.45-9.el10 baseos 47 k file-libs x86_64 5.45-9.el10 baseos 762 k filesystem x86_64 3.18-17.el10 baseos 4.8 M fonts-srpm-macros noarch 1:2.0.5-18.el10 appstream 27 k forge-srpm-macros noarch 0.4.0-6.el10 appstream 21 k fpc-srpm-macros noarch 1.3-7.el10_1 epel 7.8 k gdb-minimal x86_64 16.3-3.el10 appstream 4.4 M gdbm x86_64 1:1.23-14.el10 baseos 151 k gdbm-libs x86_64 1:1.23-14.el10 baseos 57 k ghc-srpm-macros noarch 1.9.2-1.el10_0 epel 9.1 k glibc x86_64 2.39-117.el10 baseos 2.1 M glibc-common x86_64 2.39-117.el10 baseos 323 k glibc-gconv-extra x86_64 2.39-117.el10 baseos 1.7 M gmp x86_64 1:6.2.1-12.el10 baseos 318 k go-srpm-macros noarch 3.8.0-1.el10 appstream 27 k jansson x86_64 2.14-3.el10 baseos 46 k json-c x86_64 0.18-3.el10 baseos 45 k kernel-srpm-macros noarch 1.0-27.el10 appstream 8.7 k keyutils-libs x86_64 1.6.3-5.el10 baseos 33 k krb5-libs x86_64 1.21.3-9.el10 baseos 766 k libacl x86_64 2.3.2-4.el10 baseos 25 k libarchive x86_64 3.7.7-8.el10 baseos 414 k libattr x86_64 2.5.2-5.el10 baseos 19 k libblkid x86_64 2.40.2-19.el10 baseos 124 k libbrotli x86_64 1.1.0-7.el10 baseos 344 k libcap x86_64 2.69-7.el10 baseos 91 k libcap-ng x86_64 0.8.4-6.el10 baseos 33 k libcbor x86_64 0.11.0-3.el10 baseos 34 k libcom_err x86_64 1.47.1-5.el10 baseos 26 k libcurl x86_64 8.12.1-5.el10 baseos 368 k libeconf x86_64 0.6.2-4.el10 baseos 33 k libevent x86_64 2.1.12-16.el10 baseos 261 k libfdisk x86_64 2.40.2-19.el10 baseos 160 k libffi x86_64 3.4.4-10.el10 baseos 41 k libfido2 x86_64 1.14.0-7.el10 baseos 98 k libgcc x86_64 14.3.1-4.4.el10 baseos 140 k libgomp x86_64 14.3.1-4.4.el10 baseos 363 k libidn2 x86_64 2.3.7-3.el10 baseos 118 k libmount x86_64 2.40.2-19.el10 baseos 154 k libnghttp2 x86_64 1.68.0-4.el10 baseos 73 k libpkgconf x86_64 2.1.0-3.el10 baseos 39 k libpsl x86_64 0.21.5-6.el10 baseos 65 k libpwquality x86_64 1.4.5-12.el10 baseos 123 k libselinux x86_64 3.10-1.el10 baseos 97 k libsemanage x86_64 3.10-1.el10 baseos 122 k libsepol x86_64 3.10-1.el10 baseos 349 k libsmartcols x86_64 2.40.2-19.el10 baseos 83 k libssh x86_64 0.12.0-2.el10 baseos 276 k libssh-config noarch 0.12.0-2.el10 baseos 8.2 k libstdc++ x86_64 14.3.1-4.4.el10 baseos 919 k libtasn1 x86_64 4.20.0-1.el10 baseos 75 k libunistring x86_64 1.1-10.el10 baseos 548 k libutempter x86_64 1.2.1-15.el10 baseos 27 k libuuid x86_64 2.40.2-19.el10 baseos 28 k libverto x86_64 0.3.2-10.el10 baseos 22 k libxcrypt x86_64 4.4.36-10.el10 baseos 120 k libxml2 x86_64 2.12.5-10.el10 baseos 690 k libzstd x86_64 1.5.5-9.el10 baseos 292 k lua-libs x86_64 5.4.8-1.el10 baseos 131 k lua-srpm-macros noarch 1-15.el10 appstream 9.8 k lz4-libs x86_64 1.9.4-8.el10 baseos 68 k mpfr x86_64 4.2.1-8.el10 baseos 346 k ncurses-base noarch 6.4-15.20240127.el10 baseos 98 k ncurses-libs x86_64 6.4-15.20240127.el10 baseos 337 k ocaml-srpm-macros noarch 10-4.el10 appstream 10 k openblas-srpm-macros noarch 2-19.el10 appstream 8.7 k openldap x86_64 2.6.10-1.el10 baseos 239 k openssl-fips-provider x86_64 1:3.5.5-2.el10 baseos 812 k openssl-libs x86_64 1:3.5.5-2.el10 baseos 2.3 M p11-kit x86_64 0.26.2-1.el10 baseos 558 k p11-kit-trust x86_64 0.26.2-1.el10 baseos 140 k package-notes-srpm-macros noarch 0.5-13.el10 appstream 10 k pam x86_64 1.6.1-10.el10 baseos 584 k pam-libs x86_64 1.6.1-10.el10 baseos 56 k pcre2 x86_64 10.44-1.el10.3 baseos 248 k pcre2-syntax noarch 10.44-1.el10.3 baseos 151 k perl-srpm-macros noarch 1-57.el10 appstream 9.5 k pkgconf x86_64 2.1.0-3.el10 baseos 45 k pkgconf-m4 noarch 2.1.0-3.el10 baseos 15 k pkgconf-pkg-config x86_64 2.1.0-3.el10 baseos 11 k popt x86_64 1.19-8.el10 baseos 66 k publicsuffix-list-dafsa noarch 20240107-5.el10 baseos 59 k pyproject-srpm-macros noarch 1.18.5-1.el10 appstream 13 k python-srpm-macros noarch 3.12-11.el10 appstream 22 k qt6-srpm-macros noarch 6.10.1-1.el10 appstream 9.1 k readline x86_64 8.2-11.el10 baseos 214 k rpm x86_64 4.19.1.1-23.el10 baseos 560 k rpm-build-libs x86_64 4.19.1.1-23.el10 baseos 92 k rpm-libs x86_64 4.19.1.1-23.el10 baseos 309 k rpm-sequoia x86_64 1.10.1.1-2.el10 baseos 969 k rust-toolset-srpm-macros noarch 1.94.1-1.el10 appstream 10 k setup noarch 2.14.5-7.el10 baseos 153 k sqlite-libs x86_64 3.46.1-5.el10 baseos 745 k systemd-libs x86_64 257-24.el10 baseos 842 k util-linux-core x86_64 2.40.2-19.el10 baseos 550 k xz-libs x86_64 1:5.6.2-4.el10 baseos 113 k zip x86_64 3.0-45.el10 baseos 270 k zlib-ng-compat x86_64 2.2.3-3.el10 baseos 76 k zstd x86_64 1.5.5-9.el10 baseos 464 k Transaction Summary ================================================================================ Install 150 Packages Total download size: 61 M Installed size: 189 M Downloading Packages: (1/150): alternatives-1.30-2.el10.x86_64.rpm 79 kB/s | 42 kB 00:00 (2/150): audit-libs-4.0.3-5.el10.x86_64.rpm 220 kB/s | 131 kB 00:00 (3/150): authselect-1.5.2-1.el10.x86_64.rpm 315 kB/s | 211 kB 00:00 (4/150): basesystem-11-22.el10.noarch.rpm 32 kB/s | 4.3 kB 00:00 (5/150): authselect-libs-1.5.2-1.el10.x86_64.rp 642 kB/s | 254 kB 00:00 (6/150): binutils-gold-2.41-65.el10.x86_64.rpm 930 kB/s | 795 kB 00:00 (7/150): bzip2-1.0.8-25.el10.x86_64.rpm 413 kB/s | 54 kB 00:00 (8/150): bzip2-libs-1.0.8-25.el10.x86_64.rpm 315 kB/s | 42 kB 00:00 (9/150): bash-5.2.26-6.el10.x86_64.rpm 1.1 MB/s | 1.8 MB 00:01 (10/150): centos-gpg-keys-10.0-21.el10.noarch.r 200 kB/s | 26 kB 00:00 (11/150): centos-stream-release-10.0-21.el10.no 225 kB/s | 30 kB 00:00 (12/150): centos-stream-repos-10.0-21.el10.noar 91 kB/s | 12 kB 00:00 (13/150): ca-certificates-2025.2.80_v9.0.305-10 947 kB/s | 1.1 MB 00:01 (14/150): coreutils-9.5-7.el10.x86_64.rpm 1.1 MB/s | 1.1 MB 00:01 (15/150): cpio-2.15-3.el10.x86_64.rpm 889 kB/s | 292 kB 00:00 (16/150): cracklib-2.9.11-8.el10.x86_64.rpm 442 kB/s | 96 kB 00:00 (17/150): coreutils-common-9.5-7.el10.x86_64.rp 1.0 MB/s | 2.1 MB 00:02 (18/150): crypto-policies-20260216-1.git0e54016 542 kB/s | 98 kB 00:00 (19/150): curl-8.12.1-5.el10.x86_64.rpm 1.6 MB/s | 217 kB 00:00 (20/150): cyrus-sasl-lib-2.1.28-27.el10.x86_64. 796 kB/s | 106 kB 00:00 (21/150): diffutils-3.10-8.el10.x86_64.rpm 2.6 MB/s | 409 kB 00:00 (22/150): ed-1.20-5.el10.x86_64.rpm 624 kB/s | 83 kB 00:00 (23/150): elfutils-0.194-2.el10.x86_64.rpm 4.2 MB/s | 573 kB 00:00 (24/150): binutils-2.41-65.el10.x86_64.rpm 1.1 MB/s | 6.4 MB 00:05 (25/150): elfutils-default-yama-scope-0.194-2.e 59 kB/s | 8.3 kB 00:00 (26/150): elfutils-debuginfod-client-0.194-2.el 88 kB/s | 43 kB 00:00 (27/150): elfutils-libelf-0.194-2.el10.x86_64.r 761 kB/s | 201 kB 00:00 (28/150): elfutils-libs-0.194-2.el10.x86_64.rpm 1.7 MB/s | 267 kB 00:00 (29/150): file-5.45-9.el10.x86_64.rpm 239 kB/s | 47 kB 00:00 (30/150): filesystem-3.18-17.el10.x86_64.rpm 9.6 MB/s | 4.8 MB 00:00 (31/150): file-libs-5.45-9.el10.x86_64.rpm 1.0 MB/s | 762 kB 00:00 (32/150): findutils-4.10.0-5.el10.x86_64.rpm 4.0 MB/s | 551 kB 00:00 (33/150): cracklib-dicts-2.9.11-8.el10.x86_64.r 1.1 MB/s | 3.6 MB 00:03 (34/150): gawk-5.3.0-6.el10.x86_64.rpm 6.6 MB/s | 1.1 MB 00:00 (35/150): gdbm-libs-1.23-14.el10.x86_64.rpm 285 kB/s | 57 kB 00:00 (36/150): gdbm-1.23-14.el10.x86_64.rpm 575 kB/s | 151 kB 00:00 (37/150): glibc-2.39-117.el10.x86_64.rpm 10 MB/s | 2.1 MB 00:00 (38/150): glibc-minimal-langpack-2.39-117.el10. 214 kB/s | 29 kB 00:00 (39/150): glibc-common-2.39-117.el10.x86_64.rpm 819 kB/s | 323 kB 00:00 (40/150): gmp-6.2.1-12.el10.x86_64.rpm 2.3 MB/s | 318 kB 00:00 (41/150): grep-3.11-10.el10.x86_64.rpm 2.0 MB/s | 301 kB 00:00 (42/150): gzip-1.13-3.el10.x86_64.rpm 794 kB/s | 170 kB 00:00 (43/150): info-7.1-6.el10.x86_64.rpm 1.3 MB/s | 183 kB 00:00 (44/150): glibc-gconv-extra-2.39-117.el10.x86_6 2.5 MB/s | 1.7 MB 00:00 (45/150): jansson-2.14-3.el10.x86_64.rpm 351 kB/s | 46 kB 00:00 (46/150): json-c-0.18-3.el10.x86_64.rpm 344 kB/s | 45 kB 00:00 (47/150): keyutils-libs-1.6.3-5.el10.x86_64.rpm 247 kB/s | 33 kB 00:00 (48/150): libacl-2.3.2-4.el10.x86_64.rpm 192 kB/s | 25 kB 00:00 (49/150): libarchive-3.7.7-8.el10.x86_64.rpm 3.0 MB/s | 414 kB 00:00 (50/150): libattr-2.5.2-5.el10.x86_64.rpm 145 kB/s | 19 kB 00:00 (51/150): libblkid-2.40.2-19.el10.x86_64.rpm 932 kB/s | 124 kB 00:00 (52/150): libbrotli-1.1.0-7.el10.x86_64.rpm 2.5 MB/s | 344 kB 00:00 (53/150): libcap-2.69-7.el10.x86_64.rpm 688 kB/s | 91 kB 00:00 (54/150): krb5-libs-1.21.3-9.el10.x86_64.rpm 1.4 MB/s | 766 kB 00:00 (55/150): libcap-ng-0.8.4-6.el10.x86_64.rpm 253 kB/s | 33 kB 00:00 (56/150): libcbor-0.11.0-3.el10.x86_64.rpm 258 kB/s | 34 kB 00:00 (57/150): libcom_err-1.47.1-5.el10.x86_64.rpm 197 kB/s | 26 kB 00:00 (58/150): libcurl-8.12.1-5.el10.x86_64.rpm 2.7 MB/s | 368 kB 00:00 (59/150): libeconf-0.6.2-4.el10.x86_64.rpm 253 kB/s | 33 kB 00:00 (60/150): libevent-2.1.12-16.el10.x86_64.rpm 1.9 MB/s | 261 kB 00:00 (61/150): libffi-3.4.4-10.el10.x86_64.rpm 306 kB/s | 41 kB 00:00 (62/150): libfdisk-2.40.2-19.el10.x86_64.rpm 794 kB/s | 160 kB 00:00 (63/150): libfido2-1.14.0-7.el10.x86_64.rpm 744 kB/s | 98 kB 00:00 (64/150): libgomp-14.3.1-4.4.el10.x86_64.rpm 2.4 MB/s | 363 kB 00:00 (65/150): libidn2-2.3.7-3.el10.x86_64.rpm 811 kB/s | 118 kB 00:00 (66/150): libgcc-14.3.1-4.4.el10.x86_64.rpm 573 kB/s | 140 kB 00:00 (67/150): libmount-2.40.2-19.el10.x86_64.rpm 1.1 MB/s | 154 kB 00:00 (68/150): libnghttp2-1.68.0-4.el10.x86_64.rpm 551 kB/s | 73 kB 00:00 (69/150): libpkgconf-2.1.0-3.el10.x86_64.rpm 296 kB/s | 39 kB 00:00 (70/150): libselinux-3.10-1.el10.x86_64.rpm 733 kB/s | 97 kB 00:00 (71/150): libpsl-0.21.5-6.el10.x86_64.rpm 229 kB/s | 65 kB 00:00 (72/150): libpwquality-1.4.5-12.el10.x86_64.rpm 441 kB/s | 123 kB 00:00 (73/150): libsmartcols-2.40.2-19.el10.x86_64.rp 574 kB/s | 83 kB 00:00 (74/150): libsepol-3.10-1.el10.x86_64.rpm 2.2 MB/s | 349 kB 00:00 (75/150): libsemanage-3.10-1.el10.x86_64.rpm 434 kB/s | 122 kB 00:00 (76/150): libssh-config-0.12.0-2.el10.noarch.rp 62 kB/s | 8.2 kB 00:00 (77/150): libssh-0.12.0-2.el10.x86_64.rpm 1.7 MB/s | 276 kB 00:00 (78/150): libstdc++-14.3.1-4.4.el10.x86_64.rpm 4.5 MB/s | 919 kB 00:00 (79/150): libtasn1-4.20.0-1.el10.x86_64.rpm 569 kB/s | 75 kB 00:00 (80/150): libunistring-1.1-10.el10.x86_64.rpm 2.7 MB/s | 548 kB 00:00 (81/150): libutempter-1.2.1-15.el10.x86_64.rpm 208 kB/s | 27 kB 00:00 (82/150): libuuid-2.40.2-19.el10.x86_64.rpm 210 kB/s | 28 kB 00:00 (83/150): libverto-0.3.2-10.el10.x86_64.rpm 164 kB/s | 22 kB 00:00 (84/150): libxcrypt-4.4.36-10.el10.x86_64.rpm 907 kB/s | 120 kB 00:00 (85/150): libxml2-2.12.5-10.el10.x86_64.rpm 5.0 MB/s | 690 kB 00:00 (86/150): libzstd-1.5.5-9.el10.x86_64.rpm 2.1 MB/s | 292 kB 00:00 (87/150): lua-libs-5.4.8-1.el10.x86_64.rpm 987 kB/s | 131 kB 00:00 (88/150): lz4-libs-1.9.4-8.el10.x86_64.rpm 517 kB/s | 68 kB 00:00 (89/150): mpfr-4.2.1-8.el10.x86_64.rpm 2.5 MB/s | 346 kB 00:00 (90/150): ncurses-base-6.4-15.20240127.el10.noa 740 kB/s | 98 kB 00:00 (91/150): ncurses-libs-6.4-15.20240127.el10.x86 2.5 MB/s | 337 kB 00:00 (92/150): openldap-2.6.10-1.el10.x86_64.rpm 1.8 MB/s | 239 kB 00:00 (93/150): openssl-fips-provider-3.5.5-2.el10.x8 5.9 MB/s | 812 kB 00:00 (94/150): openssl-libs-3.5.5-2.el10.x86_64.rpm 11 MB/s | 2.3 MB 00:00 (95/150): p11-kit-0.26.2-1.el10.x86_64.rpm 4.0 MB/s | 558 kB 00:00 (96/150): p11-kit-trust-0.26.2-1.el10.x86_64.rp 797 kB/s | 140 kB 00:00 (97/150): pam-1.6.1-10.el10.x86_64.rpm 4.2 MB/s | 584 kB 00:00 (98/150): pam-libs-1.6.1-10.el10.x86_64.rpm 421 kB/s | 56 kB 00:00 (99/150): pcre2-10.44-1.el10.3.x86_64.rpm 1.8 MB/s | 248 kB 00:00 (100/150): pkgconf-2.1.0-3.el10.x86_64.rpm 338 kB/s | 45 kB 00:00 (101/150): pcre2-syntax-10.44-1.el10.3.noarch.r 1.0 MB/s | 151 kB 00:00 (102/150): pkgconf-m4-2.1.0-3.el10.noarch.rpm 113 kB/s | 15 kB 00:00 (103/150): pkgconf-pkg-config-2.1.0-3.el10.x86_ 82 kB/s | 11 kB 00:00 (104/150): popt-1.19-8.el10.x86_64.rpm 498 kB/s | 66 kB 00:00 (105/150): publicsuffix-list-dafsa-20240107-5.e 372 kB/s | 59 kB 00:00 (106/150): readline-8.2-11.el10.x86_64.rpm 1.6 MB/s | 214 kB 00:00 (107/150): rpm-build-libs-4.19.1.1-23.el10.x86_ 522 kB/s | 92 kB 00:00 (108/150): rpm-libs-4.19.1.1-23.el10.x86_64.rpm 1.8 MB/s | 309 kB 00:00 (109/150): rpm-sequoia-1.10.1.1-2.el10.x86_64.r 5.8 MB/s | 969 kB 00:00 (110/150): sed-4.9-5.el10.x86_64.rpm 2.0 MB/s | 318 kB 00:00 (111/150): setup-2.14.5-7.el10.noarch.rpm 1.1 MB/s | 153 kB 00:00 (112/150): shadow-utils-4.15.0-11.el10.x86_64.r 8.4 MB/s | 1.3 MB 00:00 (113/150): sqlite-libs-3.46.1-5.el10.x86_64.rpm 5.4 MB/s | 745 kB 00:00 (114/150): systemd-libs-257-24.el10.x86_64.rpm 6.1 MB/s | 842 kB 00:00 (115/150): tar-1.35-11.el10.x86_64.rpm 6.3 MB/s | 866 kB 00:00 (116/150): rpm-4.19.1.1-23.el10.x86_64.rpm 655 kB/s | 560 kB 00:00 (117/150): unzip-6.0-69.el10.x86_64.rpm 1.4 MB/s | 190 kB 00:00 (118/150): util-linux-core-2.40.2-19.el10.x86_6 3.9 MB/s | 550 kB 00:00 (119/150): util-linux-2.40.2-19.el10.x86_64.rpm 6.3 MB/s | 1.3 MB 00:00 (120/150): which-2.21-44.el10.x86_64.rpm 281 kB/s | 42 kB 00:00 (121/150): xz-5.6.2-4.el10.x86_64.rpm 3.5 MB/s | 481 kB 00:00 (122/150): xz-libs-5.6.2-4.el10.x86_64.rpm 852 kB/s | 113 kB 00:00 (123/150): zlib-ng-compat-2.2.3-3.el10.x86_64.r 536 kB/s | 76 kB 00:00 (124/150): zstd-1.5.5-9.el10.x86_64.rpm 3.4 MB/s | 464 kB 00:00 (125/150): zip-3.0-45.el10.x86_64.rpm 820 kB/s | 270 kB 00:00 (126/150): debugedit-5.1-8.el10.x86_64.rpm 516 kB/s | 80 kB 00:00 (127/150): dwz-0.16-1.el10.x86_64.rpm 1.0 MB/s | 140 kB 00:00 (128/150): efi-srpm-macros-6-8.el10.noarch.rpm 169 kB/s | 23 kB 00:00 (129/150): fonts-srpm-macros-2.0.5-18.el10.noar 205 kB/s | 27 kB 00:00 (130/150): forge-srpm-macros-0.4.0-6.el10.noarc 160 kB/s | 21 kB 00:00 (131/150): kernel-srpm-macros-1.0-27.el10.noarc 66 kB/s | 8.7 kB 00:00 (132/150): go-srpm-macros-3.8.0-1.el10.noarch.r 182 kB/s | 27 kB 00:00 (133/150): gdb-minimal-16.3-3.el10.x86_64.rpm 16 MB/s | 4.4 MB 00:00 (134/150): ocaml-srpm-macros-10-4.el10.noarch.r 76 kB/s | 10 kB 00:00 (135/150): lua-srpm-macros-1-15.el10.noarch.rpm 60 kB/s | 9.8 kB 00:00 (136/150): openblas-srpm-macros-2-19.el10.noarc 66 kB/s | 8.7 kB 00:00 (137/150): patch-2.7.6-26.el10.x86_64.rpm 997 kB/s | 132 kB 00:00 (138/150): perl-srpm-macros-1-57.el10.noarch.rp 66 kB/s | 9.5 kB 00:00 (139/150): package-notes-srpm-macros-0.5-13.el1 48 kB/s | 10 kB 00:00 (140/150): pyproject-srpm-macros-1.18.5-1.el10. 90 kB/s | 13 kB 00:00 (141/150): python-srpm-macros-3.12-11.el10.noar 170 kB/s | 22 kB 00:00 (142/150): qt6-srpm-macros-6.10.1-1.el10.noarch 59 kB/s | 9.1 kB 00:00 (143/150): redhat-rpm-config-295-1.el10.noarch. 525 kB/s | 74 kB 00:00 (144/150): rpm-build-4.19.1.1-23.el10.x86_64.rp 564 kB/s | 75 kB 00:00 (145/150): rust-toolset-srpm-macros-1.94.1-1.el 77 kB/s | 10 kB 00:00 (146/150): R-srpm-macros-1.3.7-1.el10_3.noarch. 75 kB/s | 11 kB 00:00 (147/150): epel-rpm-macros-10-7.el10_3.noarch.r 57 kB/s | 8.4 kB 00:00 (148/150): fpc-srpm-macros-1.3-7.el10_1.noarch. 96 kB/s | 7.8 kB 00:00 (149/150): ansible-srpm-macros-1-21.el10_3.noar 93 kB/s | 20 kB 00:00 (150/150): ghc-srpm-macros-1.9.2-1.el10_0.noarc 112 kB/s | 9.1 kB 00:00 -------------------------------------------------------------------------------- Total 4.2 MB/s | 61 MB 00:14 CentOS Stream 10 - BaseOS 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0x8483C65D: Userid : "CentOS (CentOS Official Signing Key) " Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D From : /usr/share/distribution-gpg-keys/centos/RPM-GPG-KEY-CentOS-Official-SHA256 Key imported successfully Extra Packages for Enterprise Linux 10 - x86_64 1.6 MB/s | 1.6 kB 00:00 Importing GPG key 0xE37ED158: Userid : "Fedora (epel10) " Fingerprint: 7D8D 15CB FC4E 6268 8591 FB26 33D9 8517 E37E D158 From : /usr/share/distribution-gpg-keys/epel/RPM-GPG-KEY-EPEL-10 Key imported successfully Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: filesystem-3.18-17.el10.x86_64 1/1 Preparing : 1/1 Installing : libgcc-14.3.1-4.4.el10.x86_64 1/150 Running scriptlet: libgcc-14.3.1-4.4.el10.x86_64 1/150 Installing : ghc-srpm-macros-1.9.2-1.el10_0.noarch 2/150 Installing : fpc-srpm-macros-1.3-7.el10_1.noarch 3/150 Installing : ansible-srpm-macros-1-21.el10_3.noarch 4/150 Installing : rust-toolset-srpm-macros-1.94.1-1.el10.noarch 5/150 Installing : qt6-srpm-macros-6.10.1-1.el10.noarch 6/150 Installing : perl-srpm-macros-1-57.el10.noarch 7/150 Installing : package-notes-srpm-macros-0.5-13.el10.noarch 8/150 Installing : openblas-srpm-macros-2-19.el10.noarch 9/150 Installing : ocaml-srpm-macros-10-4.el10.noarch 10/150 Installing : kernel-srpm-macros-1.0-27.el10.noarch 11/150 Installing : publicsuffix-list-dafsa-20240107-5.el10.noarch 12/150 Installing : pkgconf-m4-2.1.0-3.el10.noarch 13/150 Installing : pcre2-syntax-10.44-1.el10.3.noarch 14/150 Installing : ncurses-base-6.4-15.20240127.el10.noarch 15/150 Installing : libssh-config-0.12.0-2.el10.noarch 16/150 Installing : coreutils-common-9.5-7.el10.x86_64 17/150 Installing : centos-gpg-keys-10.0-21.el10.noarch 18/150 Installing : centos-stream-repos-10.0-21.el10.noarch 19/150 Installing : centos-stream-release-10.0-21.el10.noarch 20/150 Installing : setup-2.14.5-7.el10.noarch 21/150 Running scriptlet: setup-2.14.5-7.el10.noarch 21/150 Installing : filesystem-3.18-17.el10.x86_64 22/150 Installing : basesystem-11-22.el10.noarch 23/150 Installing : glibc-gconv-extra-2.39-117.el10.x86_64 24/150 Running scriptlet: glibc-gconv-extra-2.39-117.el10.x86_64 24/150 Installing : glibc-minimal-langpack-2.39-117.el10.x86_64 25/150 Installing : glibc-common-2.39-117.el10.x86_64 26/150 Running scriptlet: glibc-2.39-117.el10.x86_64 27/150 Installing : glibc-2.39-117.el10.x86_64 27/150 Running scriptlet: glibc-2.39-117.el10.x86_64 27/150 Installing : ncurses-libs-6.4-15.20240127.el10.x86_64 28/150 Installing : bash-5.2.26-6.el10.x86_64 29/150 Running scriptlet: bash-5.2.26-6.el10.x86_64 29/150 Installing : zlib-ng-compat-2.2.3-3.el10.x86_64 30/150 Installing : bzip2-libs-1.0.8-25.el10.x86_64 31/150 Installing : xz-libs-1:5.6.2-4.el10.x86_64 32/150 Installing : readline-8.2-11.el10.x86_64 33/150 Installing : libstdc++-14.3.1-4.4.el10.x86_64 34/150 Installing : libuuid-2.40.2-19.el10.x86_64 35/150 Installing : popt-1.19-8.el10.x86_64 36/150 Installing : libblkid-2.40.2-19.el10.x86_64 37/150 Installing : gmp-1:6.2.1-12.el10.x86_64 38/150 Installing : libattr-2.5.2-5.el10.x86_64 39/150 Installing : libacl-2.3.2-4.el10.x86_64 40/150 Installing : libxcrypt-4.4.36-10.el10.x86_64 41/150 Installing : libzstd-1.5.5-9.el10.x86_64 42/150 Installing : elfutils-libelf-0.194-2.el10.x86_64 43/150 Running scriptlet: crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Installing : crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Running scriptlet: crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Installing : gdbm-libs-1:1.23-14.el10.x86_64 45/150 Installing : libeconf-0.6.2-4.el10.x86_64 46/150 Installing : dwz-0.16-1.el10.x86_64 47/150 Installing : mpfr-4.2.1-8.el10.x86_64 48/150 Installing : gawk-5.3.0-6.el10.x86_64 49/150 Installing : unzip-6.0-69.el10.x86_64 50/150 Installing : file-libs-5.45-9.el10.x86_64 51/150 Installing : file-5.45-9.el10.x86_64 52/150 Installing : alternatives-1.30-2.el10.x86_64 53/150 Installing : jansson-2.14-3.el10.x86_64 54/150 Installing : libcap-ng-0.8.4-6.el10.x86_64 55/150 Installing : audit-libs-4.0.3-5.el10.x86_64 56/150 Installing : pam-libs-1.6.1-10.el10.x86_64 57/150 Installing : libcap-2.69-7.el10.x86_64 58/150 Installing : systemd-libs-257-24.el10.x86_64 59/150 Installing : libffi-3.4.4-10.el10.x86_64 60/150 Installing : libsepol-3.10-1.el10.x86_64 61/150 Installing : libsmartcols-2.40.2-19.el10.x86_64 62/150 Installing : libtasn1-4.20.0-1.el10.x86_64 63/150 Installing : libunistring-1.1-10.el10.x86_64 64/150 Installing : libidn2-2.3.7-3.el10.x86_64 65/150 Installing : lua-libs-5.4.8-1.el10.x86_64 66/150 Installing : lz4-libs-1.9.4-8.el10.x86_64 67/150 Installing : pcre2-10.44-1.el10.3.x86_64 68/150 Installing : libselinux-3.10-1.el10.x86_64 69/150 Installing : sed-4.9-5.el10.x86_64 70/150 Installing : findutils-1:4.10.0-5.el10.x86_64 71/150 Installing : grep-3.11-10.el10.x86_64 72/150 Installing : xz-1:5.6.2-4.el10.x86_64 73/150 Installing : libmount-2.40.2-19.el10.x86_64 74/150 Installing : util-linux-core-2.40.2-19.el10.x86_64 75/150 Installing : libsemanage-3.10-1.el10.x86_64 76/150 Installing : shadow-utils-2:4.15.0-11.el10.x86_64 77/150 Running scriptlet: libutempter-1.2.1-15.el10.x86_64 78/150 Installing : libutempter-1.2.1-15.el10.x86_64 78/150 Installing : tar-2:1.35-11.el10.x86_64 79/150 Installing : zstd-1.5.5-9.el10.x86_64 80/150 Installing : libpsl-0.21.5-6.el10.x86_64 81/150 Installing : p11-kit-0.26.2-1.el10.x86_64 82/150 Installing : p11-kit-trust-0.26.2-1.el10.x86_64 83/150 Running scriptlet: p11-kit-trust-0.26.2-1.el10.x86_64 83/150 Installing : openssl-fips-provider-1:3.5.5-2.el10.x86_64 84/150 Installing : openssl-libs-1:3.5.5-2.el10.x86_64 85/150 Installing : coreutils-9.5-7.el10.x86_64 86/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Installing : ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Installing : authselect-libs-1.5.2-1.el10.x86_64 88/150 Installing : gzip-1.13-3.el10.x86_64 89/150 Installing : cracklib-2.9.11-8.el10.x86_64 90/150 Installing : cracklib-dicts-2.9.11-8.el10.x86_64 91/150 Installing : libpwquality-1.4.5-12.el10.x86_64 92/150 Installing : libevent-2.1.12-16.el10.x86_64 93/150 Installing : rpm-sequoia-1.10.1.1-2.el10.x86_64 94/150 Installing : zip-3.0-45.el10.x86_64 95/150 Installing : cyrus-sasl-lib-2.1.28-27.el10.x86_64 96/150 Installing : openldap-2.6.10-1.el10.x86_64 97/150 Installing : gdbm-1:1.23-14.el10.x86_64 98/150 Installing : pam-1.6.1-10.el10.x86_64 99/150 Installing : libfdisk-2.40.2-19.el10.x86_64 100/150 Installing : libxml2-2.12.5-10.el10.x86_64 101/150 Installing : libarchive-3.7.7-8.el10.x86_64 102/150 Installing : bzip2-1.0.8-25.el10.x86_64 103/150 Installing : sqlite-libs-3.46.1-5.el10.x86_64 104/150 Installing : rpm-libs-4.19.1.1-23.el10.x86_64 105/150 Installing : ed-1.20-5.el10.x86_64 106/150 Installing : patch-2.7.6-26.el10.x86_64 107/150 Installing : elfutils-default-yama-scope-0.194-2.el10.noarch 108/150 Running scriptlet: elfutils-default-yama-scope-0.194-2.el10.noarch 108/150 Installing : cpio-2.15-3.el10.x86_64 109/150 Installing : diffutils-3.10-8.el10.x86_64 110/150 Installing : json-c-0.18-3.el10.x86_64 111/150 Installing : keyutils-libs-1.6.3-5.el10.x86_64 112/150 Installing : libbrotli-1.1.0-7.el10.x86_64 113/150 Installing : libcbor-0.11.0-3.el10.x86_64 114/150 Installing : libfido2-1.14.0-7.el10.x86_64 115/150 Installing : libcom_err-1.47.1-5.el10.x86_64 116/150 Installing : libgomp-14.3.1-4.4.el10.x86_64 117/150 Installing : libnghttp2-1.68.0-4.el10.x86_64 118/150 Installing : libpkgconf-2.1.0-3.el10.x86_64 119/150 Installing : pkgconf-2.1.0-3.el10.x86_64 120/150 Installing : pkgconf-pkg-config-2.1.0-3.el10.x86_64 121/150 Installing : libverto-0.3.2-10.el10.x86_64 122/150 Installing : krb5-libs-1.21.3-9.el10.x86_64 123/150 Installing : libssh-0.12.0-2.el10.x86_64 124/150 Installing : libcurl-8.12.1-5.el10.x86_64 125/150 Installing : elfutils-libs-0.194-2.el10.x86_64 126/150 Installing : elfutils-debuginfod-client-0.194-2.el10.x86_64 127/150 Installing : binutils-gold-2.41-65.el10.x86_64 128/150 Running scriptlet: binutils-gold-2.41-65.el10.x86_64 128/150 Installing : binutils-2.41-65.el10.x86_64 129/150 Running scriptlet: binutils-2.41-65.el10.x86_64 129/150 Installing : elfutils-0.194-2.el10.x86_64 130/150 Installing : gdb-minimal-16.3-3.el10.x86_64 131/150 Installing : debugedit-5.1-8.el10.x86_64 132/150 Installing : rpm-build-libs-4.19.1.1-23.el10.x86_64 133/150 Installing : curl-8.12.1-5.el10.x86_64 134/150 Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 135/150 Installing : rpm-4.19.1.1-23.el10.x86_64 135/150 Installing : efi-srpm-macros-6-8.el10.noarch 136/150 Installing : lua-srpm-macros-1-15.el10.noarch 137/150 Installing : fonts-srpm-macros-1:2.0.5-18.el10.noarch 138/150 Installing : forge-srpm-macros-0.4.0-6.el10.noarch 139/150 Installing : go-srpm-macros-3.8.0-1.el10.noarch 140/150 Installing : python-srpm-macros-3.12-11.el10.noarch 141/150 Installing : redhat-rpm-config-295-1.el10.noarch 142/150 Installing : rpm-build-4.19.1.1-23.el10.x86_64 143/150 Installing : pyproject-srpm-macros-1.18.5-1.el10.noarch 144/150 Installing : R-srpm-macros-1.3.7-1.el10_3.noarch 145/150 Installing : epel-rpm-macros-10-7.el10_3.noarch 146/150 Installing : util-linux-2.40.2-19.el10.x86_64 147/150 Running scriptlet: util-linux-2.40.2-19.el10.x86_64 147/150 Installing : authselect-1.5.2-1.el10.x86_64 148/150 Installing : which-2.21-44.el10.x86_64 149/150 Installing : info-7.1-6.el10.x86_64 150/150 Running scriptlet: filesystem-3.18-17.el10.x86_64 150/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 150/150 Running scriptlet: authselect-libs-1.5.2-1.el10.x86_64 150/150 Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 150/150 Running scriptlet: info-7.1-6.el10.x86_64 150/150 Installed: R-srpm-macros-1.3.7-1.el10_3.noarch alternatives-1.30-2.el10.x86_64 ansible-srpm-macros-1-21.el10_3.noarch audit-libs-4.0.3-5.el10.x86_64 authselect-1.5.2-1.el10.x86_64 authselect-libs-1.5.2-1.el10.x86_64 basesystem-11-22.el10.noarch bash-5.2.26-6.el10.x86_64 binutils-2.41-65.el10.x86_64 binutils-gold-2.41-65.el10.x86_64 bzip2-1.0.8-25.el10.x86_64 bzip2-libs-1.0.8-25.el10.x86_64 ca-certificates-2025.2.80_v9.0.305-102.el10.noarch centos-gpg-keys-10.0-21.el10.noarch centos-stream-release-10.0-21.el10.noarch centos-stream-repos-10.0-21.el10.noarch coreutils-9.5-7.el10.x86_64 coreutils-common-9.5-7.el10.x86_64 cpio-2.15-3.el10.x86_64 cracklib-2.9.11-8.el10.x86_64 cracklib-dicts-2.9.11-8.el10.x86_64 crypto-policies-20260216-1.git0e54016.el10.noarch curl-8.12.1-5.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.1-8.el10.x86_64 diffutils-3.10-8.el10.x86_64 dwz-0.16-1.el10.x86_64 ed-1.20-5.el10.x86_64 efi-srpm-macros-6-8.el10.noarch elfutils-0.194-2.el10.x86_64 elfutils-debuginfod-client-0.194-2.el10.x86_64 elfutils-default-yama-scope-0.194-2.el10.noarch elfutils-libelf-0.194-2.el10.x86_64 elfutils-libs-0.194-2.el10.x86_64 epel-rpm-macros-10-7.el10_3.noarch file-5.45-9.el10.x86_64 file-libs-5.45-9.el10.x86_64 filesystem-3.18-17.el10.x86_64 findutils-1:4.10.0-5.el10.x86_64 fonts-srpm-macros-1:2.0.5-18.el10.noarch forge-srpm-macros-0.4.0-6.el10.noarch fpc-srpm-macros-1.3-7.el10_1.noarch gawk-5.3.0-6.el10.x86_64 gdb-minimal-16.3-3.el10.x86_64 gdbm-1:1.23-14.el10.x86_64 gdbm-libs-1:1.23-14.el10.x86_64 ghc-srpm-macros-1.9.2-1.el10_0.noarch glibc-2.39-117.el10.x86_64 glibc-common-2.39-117.el10.x86_64 glibc-gconv-extra-2.39-117.el10.x86_64 glibc-minimal-langpack-2.39-117.el10.x86_64 gmp-1:6.2.1-12.el10.x86_64 go-srpm-macros-3.8.0-1.el10.noarch grep-3.11-10.el10.x86_64 gzip-1.13-3.el10.x86_64 info-7.1-6.el10.x86_64 jansson-2.14-3.el10.x86_64 json-c-0.18-3.el10.x86_64 kernel-srpm-macros-1.0-27.el10.noarch keyutils-libs-1.6.3-5.el10.x86_64 krb5-libs-1.21.3-9.el10.x86_64 libacl-2.3.2-4.el10.x86_64 libarchive-3.7.7-8.el10.x86_64 libattr-2.5.2-5.el10.x86_64 libblkid-2.40.2-19.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.8.4-6.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-5.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-19.el10.x86_64 libffi-3.4.4-10.el10.x86_64 libfido2-1.14.0-7.el10.x86_64 libgcc-14.3.1-4.4.el10.x86_64 libgomp-14.3.1-4.4.el10.x86_64 libidn2-2.3.7-3.el10.x86_64 libmount-2.40.2-19.el10.x86_64 libnghttp2-1.68.0-4.el10.x86_64 libpkgconf-2.1.0-3.el10.x86_64 libpsl-0.21.5-6.el10.x86_64 libpwquality-1.4.5-12.el10.x86_64 libselinux-3.10-1.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-1.el10.x86_64 libsmartcols-2.40.2-19.el10.x86_64 libssh-0.12.0-2.el10.x86_64 libssh-config-0.12.0-2.el10.noarch libstdc++-14.3.1-4.4.el10.x86_64 libtasn1-4.20.0-1.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-19.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-10.el10.x86_64 libzstd-1.5.5-9.el10.x86_64 lua-libs-5.4.8-1.el10.x86_64 lua-srpm-macros-1-15.el10.noarch lz4-libs-1.9.4-8.el10.x86_64 mpfr-4.2.1-8.el10.x86_64 ncurses-base-6.4-15.20240127.el10.noarch ncurses-libs-6.4-15.20240127.el10.x86_64 ocaml-srpm-macros-10-4.el10.noarch openblas-srpm-macros-2-19.el10.noarch openldap-2.6.10-1.el10.x86_64 openssl-fips-provider-1:3.5.5-2.el10.x86_64 openssl-libs-1:3.5.5-2.el10.x86_64 p11-kit-0.26.2-1.el10.x86_64 p11-kit-trust-0.26.2-1.el10.x86_64 package-notes-srpm-macros-0.5-13.el10.noarch pam-1.6.1-10.el10.x86_64 pam-libs-1.6.1-10.el10.x86_64 patch-2.7.6-26.el10.x86_64 pcre2-10.44-1.el10.3.x86_64 pcre2-syntax-10.44-1.el10.3.noarch perl-srpm-macros-1-57.el10.noarch pkgconf-2.1.0-3.el10.x86_64 pkgconf-m4-2.1.0-3.el10.noarch pkgconf-pkg-config-2.1.0-3.el10.x86_64 popt-1.19-8.el10.x86_64 publicsuffix-list-dafsa-20240107-5.el10.noarch pyproject-srpm-macros-1.18.5-1.el10.noarch python-srpm-macros-3.12-11.el10.noarch qt6-srpm-macros-6.10.1-1.el10.noarch readline-8.2-11.el10.x86_64 redhat-rpm-config-295-1.el10.noarch rpm-4.19.1.1-23.el10.x86_64 rpm-build-4.19.1.1-23.el10.x86_64 rpm-build-libs-4.19.1.1-23.el10.x86_64 rpm-libs-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 rust-toolset-srpm-macros-1.94.1-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-2:4.15.0-11.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-24.el10.x86_64 tar-2:1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-19.el10.x86_64 util-linux-core-2.40.2-19.el10.x86_64 which-2.21-44.el10.x86_64 xz-1:5.6.2-4.el10.x86_64 xz-libs-1:5.6.2-4.el10.x86_64 zip-3.0-45.el10.x86_64 zlib-ng-compat-2.2.3-3.el10.x86_64 zstd-1.5.5-9.el10.x86_64 Complete! Finish: installing minimal buildroot with dnf Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: R-srpm-macros-1.3.7-1.el10_3.noarch alternatives-1.30-2.el10.x86_64 ansible-srpm-macros-1-21.el10_3.noarch audit-libs-4.0.3-5.el10.x86_64 authselect-1.5.2-1.el10.x86_64 authselect-libs-1.5.2-1.el10.x86_64 basesystem-11-22.el10.noarch bash-5.2.26-6.el10.x86_64 binutils-2.41-65.el10.x86_64 binutils-gold-2.41-65.el10.x86_64 bzip2-1.0.8-25.el10.x86_64 bzip2-libs-1.0.8-25.el10.x86_64 ca-certificates-2025.2.80_v9.0.305-102.el10.noarch centos-gpg-keys-10.0-21.el10.noarch centos-stream-release-10.0-21.el10.noarch centos-stream-repos-10.0-21.el10.noarch coreutils-9.5-7.el10.x86_64 coreutils-common-9.5-7.el10.x86_64 cpio-2.15-3.el10.x86_64 cracklib-2.9.11-8.el10.x86_64 cracklib-dicts-2.9.11-8.el10.x86_64 crypto-policies-20260216-1.git0e54016.el10.noarch curl-8.12.1-5.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.1-8.el10.x86_64 diffutils-3.10-8.el10.x86_64 dwz-0.16-1.el10.x86_64 ed-1.20-5.el10.x86_64 efi-srpm-macros-6-8.el10.noarch elfutils-0.194-2.el10.x86_64 elfutils-debuginfod-client-0.194-2.el10.x86_64 elfutils-default-yama-scope-0.194-2.el10.noarch elfutils-libelf-0.194-2.el10.x86_64 elfutils-libs-0.194-2.el10.x86_64 epel-rpm-macros-10-7.el10_3.noarch file-5.45-9.el10.x86_64 file-libs-5.45-9.el10.x86_64 filesystem-3.18-17.el10.x86_64 findutils-4.10.0-5.el10.x86_64 fonts-srpm-macros-2.0.5-18.el10.noarch forge-srpm-macros-0.4.0-6.el10.noarch fpc-srpm-macros-1.3-7.el10_1.noarch gawk-5.3.0-6.el10.x86_64 gdb-minimal-16.3-3.el10.x86_64 gdbm-1.23-14.el10.x86_64 gdbm-libs-1.23-14.el10.x86_64 ghc-srpm-macros-1.9.2-1.el10_0.noarch glibc-2.39-117.el10.x86_64 glibc-common-2.39-117.el10.x86_64 glibc-gconv-extra-2.39-117.el10.x86_64 glibc-minimal-langpack-2.39-117.el10.x86_64 gmp-6.2.1-12.el10.x86_64 go-srpm-macros-3.8.0-1.el10.noarch gpg-pubkey-8483c65d-5ccc5b19 gpg-pubkey-e37ed158-65785fa9 grep-3.11-10.el10.x86_64 gzip-1.13-3.el10.x86_64 info-7.1-6.el10.x86_64 jansson-2.14-3.el10.x86_64 json-c-0.18-3.el10.x86_64 kernel-srpm-macros-1.0-27.el10.noarch keyutils-libs-1.6.3-5.el10.x86_64 krb5-libs-1.21.3-9.el10.x86_64 libacl-2.3.2-4.el10.x86_64 libarchive-3.7.7-8.el10.x86_64 libattr-2.5.2-5.el10.x86_64 libblkid-2.40.2-19.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.8.4-6.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-5.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-19.el10.x86_64 libffi-3.4.4-10.el10.x86_64 libfido2-1.14.0-7.el10.x86_64 libgcc-14.3.1-4.4.el10.x86_64 libgomp-14.3.1-4.4.el10.x86_64 libidn2-2.3.7-3.el10.x86_64 libmount-2.40.2-19.el10.x86_64 libnghttp2-1.68.0-4.el10.x86_64 libpkgconf-2.1.0-3.el10.x86_64 libpsl-0.21.5-6.el10.x86_64 libpwquality-1.4.5-12.el10.x86_64 libselinux-3.10-1.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-1.el10.x86_64 libsmartcols-2.40.2-19.el10.x86_64 libssh-0.12.0-2.el10.x86_64 libssh-config-0.12.0-2.el10.noarch libstdc++-14.3.1-4.4.el10.x86_64 libtasn1-4.20.0-1.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-19.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-10.el10.x86_64 libzstd-1.5.5-9.el10.x86_64 lua-libs-5.4.8-1.el10.x86_64 lua-srpm-macros-1-15.el10.noarch lz4-libs-1.9.4-8.el10.x86_64 mpfr-4.2.1-8.el10.x86_64 ncurses-base-6.4-15.20240127.el10.noarch ncurses-libs-6.4-15.20240127.el10.x86_64 ocaml-srpm-macros-10-4.el10.noarch openblas-srpm-macros-2-19.el10.noarch openldap-2.6.10-1.el10.x86_64 openssl-fips-provider-3.5.5-2.el10.x86_64 openssl-libs-3.5.5-2.el10.x86_64 p11-kit-0.26.2-1.el10.x86_64 p11-kit-trust-0.26.2-1.el10.x86_64 package-notes-srpm-macros-0.5-13.el10.noarch pam-1.6.1-10.el10.x86_64 pam-libs-1.6.1-10.el10.x86_64 patch-2.7.6-26.el10.x86_64 pcre2-10.44-1.el10.3.x86_64 pcre2-syntax-10.44-1.el10.3.noarch perl-srpm-macros-1-57.el10.noarch pkgconf-2.1.0-3.el10.x86_64 pkgconf-m4-2.1.0-3.el10.noarch pkgconf-pkg-config-2.1.0-3.el10.x86_64 popt-1.19-8.el10.x86_64 publicsuffix-list-dafsa-20240107-5.el10.noarch pyproject-srpm-macros-1.18.5-1.el10.noarch python-srpm-macros-3.12-11.el10.noarch qt6-srpm-macros-6.10.1-1.el10.noarch readline-8.2-11.el10.x86_64 redhat-rpm-config-295-1.el10.noarch rpm-4.19.1.1-23.el10.x86_64 rpm-build-4.19.1.1-23.el10.x86_64 rpm-build-libs-4.19.1.1-23.el10.x86_64 rpm-libs-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 rust-toolset-srpm-macros-1.94.1-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-4.15.0-11.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-24.el10.x86_64 tar-1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-19.el10.x86_64 util-linux-core-2.40.2-19.el10.x86_64 which-2.21-44.el10.x86_64 xz-5.6.2-4.el10.x86_64 xz-libs-5.6.2-4.el10.x86_64 zip-3.0-45.el10.x86_64 zlib-ng-compat-2.2.3-3.el10.x86_64 zstd-1.5.5-9.el10.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names Finish: buildsrpm INFO: Done(/var/lib/copr-rpmbuild/workspace/workdir-esvjrgv3/pyrtl/pyrtl.spec) Config(child) 0 minutes 40 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm) Config(centos-stream+epel-10-x86_64) Start(bootstrap): chroot init INFO: mounting tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1776910369.635312/root. INFO: reusing tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1776910369.635312/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start(bootstrap): cleaning package manager metadata Finish(bootstrap): cleaning package manager metadata Finish(bootstrap): chroot init Start: chroot init INFO: mounting tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 python3-dnf-4.20.0-23.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-23.el10.noarch Finish: chroot init Start: build phase for pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Start: build setup for pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 19 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 30 kB/s | 6.4 kB 00:00 CentOS Stream 10 - AppStream 53 kB/s | 6.5 kB 00:00 CentOS Stream 10 - CRB 29 kB/s | 6.3 kB 00:00 CentOS Stream 10 - Extras packages 60 kB/s | 7.0 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 211 kB/s | 29 kB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: git x86_64 2.52.0-1.el10 appstream 40 k make x86_64 1:4.4.1-9.el10 baseos 587 k pyproject-rpm-macros noarch 1.18.5-1.el10 crb 44 k python3 x86_64 3.12.12-6.el10 baseos 27 k python3-hatch-vcs noarch 0.4.0-6.el10_0 epel 23 k python3-pip noarch 23.3.2-7.el10 appstream 3.2 M python3-pyparsing noarch 3.1.1-7.el10 baseos 269 k python3-pytest noarch 7.4.3-5.el10 crb 756 k python3-rpm-macros noarch 3.12-11.el10 appstream 11 k python3-setuptools noarch 69.0.3-12.el10 baseos 1.6 M python3-wheel noarch 1:0.41.2-6.el10 crb 165 k Installing dependencies: expat x86_64 2.7.3-1.el10 baseos 120 k git-core x86_64 2.52.0-1.el10 appstream 5.1 M git-core-doc noarch 2.52.0-1.el10 appstream 3.2 M groff-base x86_64 1.23.0-10.el10 baseos 1.1 M less x86_64 661-3.el10 baseos 191 k libedit x86_64 3.1-52.20230828cvs.el10 baseos 106 k mpdecimal x86_64 2.5.1-12.el10 baseos 90 k ncurses x86_64 6.4-15.20240127.el10 baseos 420 k openssh x86_64 9.9p1-26.el10 baseos 353 k openssh-clients x86_64 9.9p1-26.el10 baseos 768 k perl-AutoLoader noarch 5.74-514.el10 appstream 22 k perl-B x86_64 1.89-514.el10 appstream 178 k perl-Carp noarch 1.54-511.el10 baseos 30 k perl-Class-Struct noarch 0.68-514.el10 appstream 23 k perl-Data-Dumper x86_64 2.189-512.el10 baseos 57 k perl-Digest noarch 1.20-511.el10 baseos 26 k perl-Digest-MD5 x86_64 2.59-6.el10 baseos 37 k perl-DynaLoader x86_64 1.56-514.el10 appstream 27 k perl-Encode x86_64 4:3.21-511.el10 baseos 1.1 M perl-Errno x86_64 1.38-514.el10 appstream 16 k perl-Error noarch 1:0.17029-18.el10 appstream 42 k perl-Exporter noarch 5.78-511.el10 baseos 32 k perl-Fcntl x86_64 1.18-514.el10 appstream 30 k perl-File-Basename noarch 2.86-514.el10 appstream 18 k perl-File-Path noarch 2.18-512.el10 appstream 35 k perl-File-Temp noarch 1:0.231.100-512.el10 baseos 60 k perl-File-stat noarch 1.14-514.el10 appstream 18 k perl-FileHandle noarch 2.05-514.el10 appstream 16 k perl-Getopt-Long noarch 1:2.58-3.el10 baseos 65 k perl-Getopt-Std noarch 1.14-514.el10 appstream 16 k perl-Git noarch 2.52.0-1.el10 appstream 37 k perl-HTTP-Tiny noarch 0.088-512.el10 baseos 57 k perl-IO x86_64 1.55-514.el10 appstream 81 k perl-IO-Socket-IP noarch 0.42-512.el10 baseos 43 k perl-IO-Socket-SSL noarch 2.085-3.el10 baseos 227 k perl-IPC-Open3 noarch 1.22-514.el10 appstream 23 k perl-MIME-Base64 x86_64 3.16-511.el10 baseos 31 k perl-Mozilla-CA noarch 20231213-5.el10 baseos 15 k perl-Net-SSLeay x86_64 1.94-9.el10 appstream 377 k perl-POSIX x86_64 2.20-514.el10 appstream 97 k perl-PathTools x86_64 3.91-512.el10 baseos 85 k perl-Pod-Escapes noarch 1:1.07-511.el10 baseos 21 k perl-Pod-Perldoc noarch 3.28.01-512.el10 baseos 84 k perl-Pod-Simple noarch 1:3.45-511.el10 baseos 218 k perl-Pod-Usage noarch 4:2.03-511.el10 baseos 41 k perl-Scalar-List-Utils x86_64 5:1.63-511.el10 baseos 74 k perl-SelectSaver noarch 1.02-514.el10 appstream 12 k perl-Socket x86_64 4:2.038-511.el10 baseos 56 k perl-Storable x86_64 1:3.32-511.el10 baseos 99 k perl-Symbol noarch 1.09-514.el10 appstream 15 k perl-Term-ANSIColor noarch 5.01-512.el10 baseos 49 k perl-Term-Cap noarch 1.18-511.el10 baseos 23 k perl-TermReadKey x86_64 2.38-24.el10 appstream 37 k perl-Text-ParseWords noarch 3.31-511.el10 baseos 17 k perl-Text-Tabs+Wrap noarch 2024.001-511.el10 baseos 23 k perl-Time-Local noarch 2:1.350-511.el10 baseos 35 k perl-URI noarch 5.27-3.el10 baseos 134 k perl-base noarch 2.27-514.el10 appstream 17 k perl-constant noarch 1.33-512.el10 baseos 24 k perl-if noarch 0.61.000-514.el10 appstream 15 k perl-interpreter x86_64 4:5.40.2-514.el10 appstream 73 k perl-lib x86_64 0.65-514.el10 appstream 16 k perl-libnet noarch 3.15-512.el10 baseos 127 k perl-libs x86_64 4:5.40.2-514.el10 appstream 2.4 M perl-locale noarch 1.12-514.el10 appstream 14 k perl-mro x86_64 1.29-514.el10 appstream 31 k perl-overload noarch 1.37-514.el10 appstream 46 k perl-overloading noarch 0.02-514.el10 appstream 14 k perl-parent noarch 1:0.241-512.el10 baseos 16 k perl-podlators noarch 1:5.01-511.el10 baseos 124 k perl-vars noarch 1.05-514.el10 appstream 14 k python-rpm-macros noarch 3.12-11.el10 appstream 16 k python3-hatchling noarch 1.27.0-1.el10 crb 239 k python3-iniconfig noarch 1.1.1-18.el10 crb 19 k python3-libs x86_64 3.12.12-6.el10 baseos 9.4 M python3-packaging noarch 24.2-2.el10 baseos 153 k python3-pathspec noarch 0.12.1-5.el10 crb 60 k python3-pip-wheel noarch 23.3.2-7.el10 baseos 1.5 M python3-pluggy noarch 1.3.0-5.el10 crb 53 k python3-setuptools_scm noarch 8.0.4-7.el10 crb 117 k python3-trove-classifiers noarch 2025.9.11.17-1.el10 crb 28 k python3-typing-extensions noarch 4.9.0-6.el10 baseos 78 k tzdata noarch 2026a-1.el10 baseos 905 k Transaction Summary ================================================================================ Install 94 Packages Total download size: 37 M Installed size: 146 M Downloading Packages: (1/94): expat-2.7.3-1.el10.x86_64.rpm 252 kB/s | 120 kB 00:00 (2/94): less-661-3.el10.x86_64.rpm 349 kB/s | 191 kB 00:00 (3/94): libedit-3.1-52.20230828cvs.el10.x86_64. 767 kB/s | 106 kB 00:00 (4/94): mpdecimal-2.5.1-12.el10.x86_64.rpm 1.2 MB/s | 90 kB 00:00 (5/94): make-4.4.1-9.el10.x86_64.rpm 2.8 MB/s | 587 kB 00:00 (6/94): groff-base-1.23.0-10.el10.x86_64.rpm 1.4 MB/s | 1.1 MB 00:00 (7/94): ncurses-6.4-15.20240127.el10.x86_64.rpm 2.9 MB/s | 420 kB 00:00 (8/94): openssh-9.9p1-26.el10.x86_64.rpm 4.6 MB/s | 353 kB 00:00 (9/94): openssh-clients-9.9p1-26.el10.x86_64.rp 9.9 MB/s | 768 kB 00:00 (10/94): perl-Carp-1.54-511.el10.noarch.rpm 412 kB/s | 30 kB 00:00 (11/94): perl-Data-Dumper-2.189-512.el10.x86_64 792 kB/s | 57 kB 00:00 (12/94): perl-Digest-1.20-511.el10.noarch.rpm 355 kB/s | 26 kB 00:00 (13/94): perl-Digest-MD5-2.59-6.el10.x86_64.rpm 514 kB/s | 37 kB 00:00 (14/94): perl-Exporter-5.78-511.el10.noarch.rpm 437 kB/s | 32 kB 00:00 (15/94): perl-Encode-3.21-511.el10.x86_64.rpm 7.6 MB/s | 1.1 MB 00:00 (16/94): perl-File-Temp-0.231.100-512.el10.noar 830 kB/s | 60 kB 00:00 (17/94): perl-Getopt-Long-2.58-3.el10.noarch.rp 875 kB/s | 65 kB 00:00 (18/94): perl-HTTP-Tiny-0.088-512.el10.noarch.r 783 kB/s | 57 kB 00:00 (19/94): perl-IO-Socket-IP-0.42-512.el10.noarch 592 kB/s | 43 kB 00:00 (20/94): perl-IO-Socket-SSL-2.085-3.el10.noarch 3.0 MB/s | 227 kB 00:00 (21/94): perl-MIME-Base64-3.16-511.el10.x86_64. 429 kB/s | 31 kB 00:00 (22/94): perl-Mozilla-CA-20231213-5.el10.noarch 206 kB/s | 15 kB 00:00 (23/94): perl-PathTools-3.91-512.el10.x86_64.rp 1.1 MB/s | 85 kB 00:00 (24/94): perl-Pod-Escapes-1.07-511.el10.noarch. 287 kB/s | 21 kB 00:00 (25/94): perl-Pod-Perldoc-3.28.01-512.el10.noar 1.1 MB/s | 84 kB 00:00 (26/94): perl-Pod-Simple-3.45-511.el10.noarch.r 2.9 MB/s | 218 kB 00:00 (27/94): perl-Pod-Usage-2.03-511.el10.noarch.rp 567 kB/s | 41 kB 00:00 (28/94): perl-Scalar-List-Utils-1.63-511.el10.x 1.0 MB/s | 74 kB 00:00 (29/94): perl-Socket-2.038-511.el10.x86_64.rpm 770 kB/s | 56 kB 00:00 (30/94): perl-Storable-3.32-511.el10.x86_64.rpm 1.3 MB/s | 99 kB 00:00 (31/94): perl-Term-ANSIColor-5.01-512.el10.noar 672 kB/s | 49 kB 00:00 (32/94): perl-Term-Cap-1.18-511.el10.noarch.rpm 317 kB/s | 23 kB 00:00 (33/94): perl-Text-ParseWords-3.31-511.el10.noa 239 kB/s | 17 kB 00:00 (34/94): perl-Text-Tabs+Wrap-2024.001-511.el10. 314 kB/s | 23 kB 00:00 (35/94): perl-Time-Local-1.350-511.el10.noarch. 489 kB/s | 35 kB 00:00 (36/94): perl-URI-5.27-3.el10.noarch.rpm 1.8 MB/s | 134 kB 00:00 (37/94): perl-constant-1.33-512.el10.noarch.rpm 330 kB/s | 24 kB 00:00 (38/94): perl-libnet-3.15-512.el10.noarch.rpm 1.7 MB/s | 127 kB 00:00 (39/94): perl-parent-0.241-512.el10.noarch.rpm 220 kB/s | 16 kB 00:00 (40/94): perl-podlators-5.01-511.el10.noarch.rp 1.7 MB/s | 124 kB 00:00 (41/94): python3-3.12.12-6.el10.x86_64.rpm 380 kB/s | 27 kB 00:00 (42/94): python3-packaging-24.2-2.el10.noarch.r 2.1 MB/s | 153 kB 00:00 (43/94): python3-pyparsing-3.1.1-7.el10.noarch. 3.6 MB/s | 269 kB 00:00 (44/94): python3-pip-wheel-23.3.2-7.el10.noarch 10 MB/s | 1.5 MB 00:00 (45/94): python3-typing-extensions-4.9.0-6.el10 1.1 MB/s | 78 kB 00:00 (46/94): python3-setuptools-69.0.3-12.el10.noar 11 MB/s | 1.6 MB 00:00 (47/94): tzdata-2026a-1.el10.noarch.rpm 12 MB/s | 905 kB 00:00 (48/94): python3-libs-3.12.12-6.el10.x86_64.rpm 23 MB/s | 9.4 MB 00:00 (49/94): git-2.52.0-1.el10.x86_64.rpm 92 kB/s | 40 kB 00:00 (50/94): perl-AutoLoader-5.74-514.el10.noarch.r 64 kB/s | 22 kB 00:00 (51/94): git-core-2.52.0-1.el10.x86_64.rpm 6.1 MB/s | 5.1 MB 00:00 (52/94): git-core-doc-2.52.0-1.el10.noarch.rpm 4.0 MB/s | 3.2 MB 00:00 (53/94): perl-Class-Struct-0.68-514.el10.noarch 66 kB/s | 23 kB 00:00 (54/94): perl-B-1.89-514.el10.x86_64.rpm 358 kB/s | 178 kB 00:00 (55/94): perl-DynaLoader-1.56-514.el10.x86_64.r 77 kB/s | 27 kB 00:00 (56/94): perl-Errno-1.38-514.el10.x86_64.rpm 54 kB/s | 16 kB 00:00 (57/94): perl-Fcntl-1.18-514.el10.x86_64.rpm 86 kB/s | 30 kB 00:00 (58/94): perl-Error-0.17029-18.el10.noarch.rpm 114 kB/s | 42 kB 00:00 (59/94): perl-File-Basename-2.86-514.el10.noarc 53 kB/s | 18 kB 00:00 (60/94): perl-File-stat-1.14-514.el10.noarch.rp 53 kB/s | 18 kB 00:00 (61/94): perl-File-Path-2.18-512.el10.noarch.rp 98 kB/s | 35 kB 00:00 (62/94): perl-FileHandle-2.05-514.el10.noarch.r 57 kB/s | 16 kB 00:00 (63/94): perl-Getopt-Std-1.14-514.el10.noarch.r 57 kB/s | 16 kB 00:00 (64/94): perl-Git-2.52.0-1.el10.noarch.rpm 101 kB/s | 37 kB 00:00 (65/94): perl-IO-1.55-514.el10.x86_64.rpm 188 kB/s | 81 kB 00:00 (66/94): perl-IPC-Open3-1.22-514.el10.noarch.rp 65 kB/s | 23 kB 00:00 (67/94): perl-SelectSaver-1.02-514.el10.noarch. 45 kB/s | 12 kB 00:00 (68/94): perl-Net-SSLeay-1.94-9.el10.x86_64.rpm 649 kB/s | 377 kB 00:00 (69/94): perl-POSIX-2.20-514.el10.x86_64.rpm 220 kB/s | 97 kB 00:00 (70/94): perl-Symbol-1.09-514.el10.noarch.rpm 53 kB/s | 15 kB 00:00 (71/94): perl-TermReadKey-2.38-24.el10.x86_64.r 101 kB/s | 37 kB 00:00 (72/94): perl-base-2.27-514.el10.noarch.rpm 50 kB/s | 17 kB 00:00 (73/94): perl-if-0.61.000-514.el10.noarch.rpm 52 kB/s | 15 kB 00:00 (74/94): perl-lib-0.65-514.el10.x86_64.rpm 54 kB/s | 16 kB 00:00 (75/94): perl-interpreter-5.40.2-514.el10.x86_6 175 kB/s | 73 kB 00:00 (76/94): perl-locale-1.12-514.el10.noarch.rpm 51 kB/s | 14 kB 00:00 (77/94): perl-mro-1.29-514.el10.x86_64.rpm 88 kB/s | 31 kB 00:00 (78/94): perl-libs-5.40.2-514.el10.x86_64.rpm 3.2 MB/s | 2.4 MB 00:00 (79/94): perl-overload-1.37-514.el10.noarch.rpm 122 kB/s | 46 kB 00:00 (80/94): perl-overloading-0.02-514.el10.noarch. 49 kB/s | 14 kB 00:00 (81/94): perl-vars-1.05-514.el10.noarch.rpm 49 kB/s | 14 kB 00:00 (82/94): python-rpm-macros-3.12-11.el10.noarch. 57 kB/s | 16 kB 00:00 (83/94): python3-rpm-macros-3.12-11.el10.noarch 39 kB/s | 11 kB 00:00 (84/94): pyproject-rpm-macros-1.18.5-1.el10.noa 203 kB/s | 44 kB 00:00 (85/94): python3-iniconfig-1.1.1-18.el10.noarch 227 kB/s | 19 kB 00:00 (86/94): python3-pathspec-0.12.1-5.el10.noarch. 397 kB/s | 60 kB 00:00 (87/94): python3-hatchling-1.27.0-1.el10.noarch 683 kB/s | 239 kB 00:00 (88/94): python3-pip-23.3.2-7.el10.noarch.rpm 4.2 MB/s | 3.2 MB 00:00 (89/94): python3-pluggy-1.3.0-5.el10.noarch.rpm 722 kB/s | 53 kB 00:00 (90/94): python3-trove-classifiers-2025.9.11.17 382 kB/s | 28 kB 00:00 (91/94): python3-pytest-7.4.3-5.el10.noarch.rpm 3.0 MB/s | 756 kB 00:00 (92/94): python3-wheel-0.41.2-6.el10.noarch.rpm 1.0 MB/s | 165 kB 00:00 (93/94): python3-hatch-vcs-0.4.0-6.el10_0.noarc 430 kB/s | 23 kB 00:00 (94/94): python3-setuptools_scm-8.0.4-7.el10.no 277 kB/s | 117 kB 00:00 -------------------------------------------------------------------------------- Total 4.5 MB/s | 37 MB 00:08 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : python-rpm-macros-3.12-11.el10.noarch 1/94 Installing : expat-2.7.3-1.el10.x86_64 2/94 Installing : python3-rpm-macros-3.12-11.el10.noarch 3/94 Installing : tzdata-2026a-1.el10.noarch 4/94 Installing : python3-pip-wheel-23.3.2-7.el10.noarch 5/94 Installing : openssh-9.9p1-26.el10.x86_64 6/94 Installing : ncurses-6.4-15.20240127.el10.x86_64 7/94 Installing : mpdecimal-2.5.1-12.el10.x86_64 8/94 Installing : python3-3.12.12-6.el10.x86_64 9/94 Installing : python3-libs-3.12.12-6.el10.x86_64 10/94 Installing : python3-packaging-24.2-2.el10.noarch 11/94 Installing : python3-pluggy-1.3.0-5.el10.noarch 12/94 Installing : python3-setuptools-69.0.3-12.el10.noarch 13/94 Installing : python3-typing-extensions-4.9.0-6.el10.noarch 14/94 Installing : python3-setuptools_scm-8.0.4-7.el10.noarch 15/94 Installing : python3-iniconfig-1.1.1-18.el10.noarch 16/94 Installing : python3-pathspec-0.12.1-5.el10.noarch 17/94 Installing : python3-trove-classifiers-2025.9.11.17-1.el10.noar 18/94 Installing : python3-hatchling-1.27.0-1.el10.noarch 19/94 Installing : libedit-3.1-52.20230828cvs.el10.x86_64 20/94 Installing : openssh-clients-9.9p1-26.el10.x86_64 21/94 Running scriptlet: openssh-clients-9.9p1-26.el10.x86_64 21/94 Installing : less-661-3.el10.x86_64 22/94 Installing : git-core-2.52.0-1.el10.x86_64 23/94 Installing : git-core-doc-2.52.0-1.el10.noarch 24/94 Running scriptlet: groff-base-1.23.0-10.el10.x86_64 25/94 Installing : groff-base-1.23.0-10.el10.x86_64 25/94 Running scriptlet: groff-base-1.23.0-10.el10.x86_64 25/94 Installing : perl-Digest-1.20-511.el10.noarch 26/94 Installing : perl-Digest-MD5-2.59-6.el10.x86_64 27/94 Installing : perl-B-1.89-514.el10.x86_64 28/94 Installing : perl-FileHandle-2.05-514.el10.noarch 29/94 Installing : perl-Data-Dumper-2.189-512.el10.x86_64 30/94 Installing : perl-libnet-3.15-512.el10.noarch 31/94 Installing : perl-AutoLoader-5.74-514.el10.noarch 32/94 Installing : perl-URI-5.27-3.el10.noarch 33/94 Installing : perl-Text-Tabs+Wrap-2024.001-511.el10.noarch 34/94 Installing : perl-Time-Local-2:1.350-511.el10.noarch 35/94 Installing : perl-Mozilla-CA-20231213-5.el10.noarch 36/94 Installing : perl-if-0.61.000-514.el10.noarch 37/94 Installing : perl-locale-1.12-514.el10.noarch 38/94 Installing : perl-IO-Socket-IP-0.42-512.el10.noarch 39/94 Installing : perl-Pod-Escapes-1:1.07-511.el10.noarch 40/94 Installing : perl-File-Path-2.18-512.el10.noarch 41/94 Installing : perl-IO-Socket-SSL-2.085-3.el10.noarch 42/94 Installing : perl-Net-SSLeay-1.94-9.el10.x86_64 43/94 Installing : perl-Term-ANSIColor-5.01-512.el10.noarch 44/94 Installing : perl-Class-Struct-0.68-514.el10.noarch 45/94 Installing : perl-POSIX-2.20-514.el10.x86_64 46/94 Installing : perl-IPC-Open3-1.22-514.el10.noarch 47/94 Installing : perl-Term-Cap-1.18-511.el10.noarch 48/94 Installing : perl-File-Temp-1:0.231.100-512.el10.noarch 49/94 Installing : perl-HTTP-Tiny-0.088-512.el10.noarch 50/94 Installing : perl-Pod-Simple-1:3.45-511.el10.noarch 51/94 Installing : perl-Socket-4:2.038-511.el10.x86_64 52/94 Installing : perl-SelectSaver-1.02-514.el10.noarch 53/94 Installing : perl-Symbol-1.09-514.el10.noarch 54/94 Installing : perl-File-stat-1.14-514.el10.noarch 55/94 Installing : perl-podlators-1:5.01-511.el10.noarch 56/94 Installing : perl-Pod-Perldoc-3.28.01-512.el10.noarch 57/94 Installing : perl-Text-ParseWords-3.31-511.el10.noarch 58/94 Installing : perl-Fcntl-1.18-514.el10.x86_64 59/94 Installing : perl-base-2.27-514.el10.noarch 60/94 Installing : perl-mro-1.29-514.el10.x86_64 61/94 Installing : perl-IO-1.55-514.el10.x86_64 62/94 Installing : perl-overloading-0.02-514.el10.noarch 63/94 Installing : perl-Pod-Usage-4:2.03-511.el10.noarch 64/94 Installing : perl-MIME-Base64-3.16-511.el10.x86_64 65/94 Installing : perl-Scalar-List-Utils-5:1.63-511.el10.x86_64 66/94 Installing : perl-constant-1.33-512.el10.noarch 67/94 Installing : perl-parent-1:0.241-512.el10.noarch 68/94 Installing : perl-Errno-1.38-514.el10.x86_64 69/94 Installing : perl-File-Basename-2.86-514.el10.noarch 70/94 Installing : perl-Getopt-Std-1.14-514.el10.noarch 71/94 Installing : perl-Storable-1:3.32-511.el10.x86_64 72/94 Installing : perl-overload-1.37-514.el10.noarch 73/94 Installing : perl-vars-1.05-514.el10.noarch 74/94 Installing : perl-Getopt-Long-1:2.58-3.el10.noarch 75/94 Installing : perl-Carp-1.54-511.el10.noarch 76/94 Installing : perl-Exporter-5.78-511.el10.noarch 77/94 Installing : perl-PathTools-3.91-512.el10.x86_64 78/94 Installing : perl-DynaLoader-1.56-514.el10.x86_64 79/94 Installing : perl-Encode-4:3.21-511.el10.x86_64 80/94 Installing : perl-libs-4:5.40.2-514.el10.x86_64 81/94 Installing : perl-interpreter-4:5.40.2-514.el10.x86_64 82/94 Installing : perl-Error-1:0.17029-18.el10.noarch 83/94 Installing : perl-TermReadKey-2.38-24.el10.x86_64 84/94 Installing : perl-lib-0.65-514.el10.x86_64 85/94 Installing : perl-Git-2.52.0-1.el10.noarch 86/94 Installing : git-2.52.0-1.el10.x86_64 87/94 Installing : python3-hatch-vcs-0.4.0-6.el10_0.noarch 88/94 Installing : python3-pytest-7.4.3-5.el10.noarch 89/94 Installing : python3-pyparsing-3.1.1-7.el10.noarch 90/94 Installing : python3-pip-23.3.2-7.el10.noarch 91/94 Installing : python3-wheel-1:0.41.2-6.el10.noarch 92/94 Installing : pyproject-rpm-macros-1.18.5-1.el10.noarch 93/94 Installing : make-1:4.4.1-9.el10.x86_64 94/94 Running scriptlet: make-1:4.4.1-9.el10.x86_64 94/94 Installed: expat-2.7.3-1.el10.x86_64 git-2.52.0-1.el10.x86_64 git-core-2.52.0-1.el10.x86_64 git-core-doc-2.52.0-1.el10.noarch groff-base-1.23.0-10.el10.x86_64 less-661-3.el10.x86_64 libedit-3.1-52.20230828cvs.el10.x86_64 make-1:4.4.1-9.el10.x86_64 mpdecimal-2.5.1-12.el10.x86_64 ncurses-6.4-15.20240127.el10.x86_64 openssh-9.9p1-26.el10.x86_64 openssh-clients-9.9p1-26.el10.x86_64 perl-AutoLoader-5.74-514.el10.noarch perl-B-1.89-514.el10.x86_64 perl-Carp-1.54-511.el10.noarch perl-Class-Struct-0.68-514.el10.noarch perl-Data-Dumper-2.189-512.el10.x86_64 perl-Digest-1.20-511.el10.noarch perl-Digest-MD5-2.59-6.el10.x86_64 perl-DynaLoader-1.56-514.el10.x86_64 perl-Encode-4:3.21-511.el10.x86_64 perl-Errno-1.38-514.el10.x86_64 perl-Error-1:0.17029-18.el10.noarch perl-Exporter-5.78-511.el10.noarch perl-Fcntl-1.18-514.el10.x86_64 perl-File-Basename-2.86-514.el10.noarch perl-File-Path-2.18-512.el10.noarch perl-File-Temp-1:0.231.100-512.el10.noarch perl-File-stat-1.14-514.el10.noarch perl-FileHandle-2.05-514.el10.noarch perl-Getopt-Long-1:2.58-3.el10.noarch perl-Getopt-Std-1.14-514.el10.noarch perl-Git-2.52.0-1.el10.noarch perl-HTTP-Tiny-0.088-512.el10.noarch perl-IO-1.55-514.el10.x86_64 perl-IO-Socket-IP-0.42-512.el10.noarch perl-IO-Socket-SSL-2.085-3.el10.noarch perl-IPC-Open3-1.22-514.el10.noarch perl-MIME-Base64-3.16-511.el10.x86_64 perl-Mozilla-CA-20231213-5.el10.noarch perl-Net-SSLeay-1.94-9.el10.x86_64 perl-POSIX-2.20-514.el10.x86_64 perl-PathTools-3.91-512.el10.x86_64 perl-Pod-Escapes-1:1.07-511.el10.noarch perl-Pod-Perldoc-3.28.01-512.el10.noarch perl-Pod-Simple-1:3.45-511.el10.noarch perl-Pod-Usage-4:2.03-511.el10.noarch perl-Scalar-List-Utils-5:1.63-511.el10.x86_64 perl-SelectSaver-1.02-514.el10.noarch perl-Socket-4:2.038-511.el10.x86_64 perl-Storable-1:3.32-511.el10.x86_64 perl-Symbol-1.09-514.el10.noarch perl-Term-ANSIColor-5.01-512.el10.noarch perl-Term-Cap-1.18-511.el10.noarch perl-TermReadKey-2.38-24.el10.x86_64 perl-Text-ParseWords-3.31-511.el10.noarch perl-Text-Tabs+Wrap-2024.001-511.el10.noarch perl-Time-Local-2:1.350-511.el10.noarch perl-URI-5.27-3.el10.noarch perl-base-2.27-514.el10.noarch perl-constant-1.33-512.el10.noarch perl-if-0.61.000-514.el10.noarch perl-interpreter-4:5.40.2-514.el10.x86_64 perl-lib-0.65-514.el10.x86_64 perl-libnet-3.15-512.el10.noarch perl-libs-4:5.40.2-514.el10.x86_64 perl-locale-1.12-514.el10.noarch perl-mro-1.29-514.el10.x86_64 perl-overload-1.37-514.el10.noarch perl-overloading-0.02-514.el10.noarch perl-parent-1:0.241-512.el10.noarch perl-podlators-1:5.01-511.el10.noarch perl-vars-1.05-514.el10.noarch pyproject-rpm-macros-1.18.5-1.el10.noarch python-rpm-macros-3.12-11.el10.noarch python3-3.12.12-6.el10.x86_64 python3-hatch-vcs-0.4.0-6.el10_0.noarch python3-hatchling-1.27.0-1.el10.noarch python3-iniconfig-1.1.1-18.el10.noarch python3-libs-3.12.12-6.el10.x86_64 python3-packaging-24.2-2.el10.noarch python3-pathspec-0.12.1-5.el10.noarch python3-pip-23.3.2-7.el10.noarch python3-pip-wheel-23.3.2-7.el10.noarch python3-pluggy-1.3.0-5.el10.noarch python3-pyparsing-3.1.1-7.el10.noarch python3-pytest-7.4.3-5.el10.noarch python3-rpm-macros-3.12-11.el10.noarch python3-setuptools-69.0.3-12.el10.noarch python3-setuptools_scm-8.0.4-7.el10.noarch python3-trove-classifiers-2025.9.11.17-1.el10.noarch python3-typing-extensions-4.9.0-6.el10.noarch python3-wheel-1:0.41.2-6.el10.noarch tzdata-2026a-1.el10.noarch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 57 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 30 kB/s | 6.4 kB 00:00 CentOS Stream 10 - AppStream 31 kB/s | 6.5 kB 00:00 CentOS Stream 10 - CRB 55 kB/s | 6.3 kB 00:00 CentOS Stream 10 - Extras packages 85 kB/s | 7.0 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 446 kB/s | 29 kB 00:00 Package git-2.52.0-1.el10.x86_64 is already installed. Package make-1:4.4.1-9.el10.x86_64 is already installed. Package pyproject-rpm-macros-1.18.5-1.el10.noarch is already installed. Package python3-3.12.12-6.el10.x86_64 is already installed. Package python3-hatch-vcs-0.4.0-6.el10_0.noarch is already installed. Package python3-pip-23.3.2-7.el10.noarch is already installed. Package python3-pyparsing-3.1.1-7.el10.noarch is already installed. Package python3-pytest-7.4.3-5.el10.noarch is already installed. Package python3-rpm-macros-3.12-11.el10.noarch is already installed. Package python3-setuptools-69.0.3-12.el10.noarch is already installed. Package python3-wheel-1:0.41.2-6.el10.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Finish: build setup for pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Start: rpmbuild pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.PijbTx + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf pyrtl + /usr/bin/mkdir -p pyrtl + cd pyrtl + rm -rf /builddir/build/BUILD/pyrtl-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/pyrtl-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + git clone --depth 1 -n -b development https://github.com/UCSBarchlab/PyRTL.git . Cloning into '.'... + git fetch --depth 1 origin 4ace6d36104e5d72c5730e7d7f5eb34c9e88c1f2 From https://github.com/UCSBarchlab/PyRTL * branch 4ace6d36104e5d72c5730e7d7f5eb34c9e88c1f2 -> FETCH_HEAD + git reset --hard 4ace6d36104e5d72c5730e7d7f5eb34c9e88c1f2 HEAD is now at 4ace6d3 Pyrtl floating point library (#475) + git log --format=fuller commit 4ace6d36104e5d72c5730e7d7f5eb34c9e88c1f2 Author: Gabor Szita AuthorDate: Wed Apr 22 13:38:43 2026 -0700 Commit: GitHub CommitDate: Wed Apr 22 13:38:43 2026 -0700 Pyrtl floating point library (#475) + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.G7my6N + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.buildreqs.nosrc.rpm INFO: Going to install missing dynamic buildrequires No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 5.4 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 111 kB/s | 6.4 kB 00:00 CentOS Stream 10 - AppStream 138 kB/s | 6.5 kB 00:00 CentOS Stream 10 - CRB 133 kB/s | 6.3 kB 00:00 CentOS Stream 10 - Extras packages 68 kB/s | 7.0 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 196 kB/s | 29 kB 00:00 Package git-2.52.0-1.el10.x86_64 is already installed. Package make-1:4.4.1-9.el10.x86_64 is already installed. Package pyproject-rpm-macros-1.18.5-1.el10.noarch is already installed. Package python3-3.12.12-6.el10.x86_64 is already installed. Package python3-hatch-vcs-0.4.0-6.el10_0.noarch is already installed. Package python3-pip-23.3.2-7.el10.noarch is already installed. Package python3-pyparsing-3.1.1-7.el10.noarch is already installed. Package python3-pytest-7.4.3-5.el10.noarch is already installed. Package python3-rpm-macros-3.12-11.el10.noarch is already installed. Package python3-setuptools-69.0.3-12.el10.noarch is already installed. Package python3-wheel-1:0.41.2-6.el10.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.9IKrsT + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.6vltbc + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd pyrtl + mkdir -p /builddir/build/BUILD/pyrtl/.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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/pyrtl/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/pyrtl/pyproject-wheeldir Processing /builddir/build/BUILD/pyrtl Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.12/site-packages/setuptools_scm/git.py:163: UserWarning: "/builddir/build/BUILD/pyrtl" is shallow and may cause errors warnings.warn(f'"{wd.path}" is shallow and may cause errors') Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: pyrtl Building wheel for pyrtl (pyproject.toml): started Running command Building wheel for pyrtl (pyproject.toml) Building wheel for pyrtl (pyproject.toml): finished with status 'done' Created wheel for pyrtl: filename=pyrtl-0.1.dev1+g4ace6d3-py3-none-any.whl size=208952 sha256=d1dcfcedf531cb5f8ae35de958f78b42d33db1fef02014e0607ad5ed64856712 Stored in directory: /builddir/build/BUILD/pyrtl/.pyproject-builddir/pip-ephem-wheel-cache-lqog9iua/wheels/01/79/a0/2ccfc8786038f5feb00217f0dae0e258e92db79b5264c8aa03 Successfully built pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.bkSc10 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd pyrtl ++ ls /builddir/build/BUILD/pyrtl/pyproject-wheeldir/pyrtl-0.1.dev1+g4ace6d3-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=pyrtl==0.1.dev1+g4ace6d3 + '[' -z pyrtl==0.1.dev1+g4ace6d3 ']' + TMPDIR=/builddir/build/BUILD/pyrtl/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 --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/pyrtl/pyproject-wheeldir pyrtl==0.1.dev1+g4ace6d3 Using pip 23.3.2 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /builddir/build/BUILD/pyrtl/pyproject-wheeldir Processing ./pyproject-wheeldir/pyrtl-0.1.dev1+g4ace6d3-py3-none-any.whl Installing collected packages: pyrtl Successfully installed pyrtl-0.1.dev1+g4ace6d3 + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64$site_dir/*.dist-info + echo '%ghost %dir /usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 --record /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/RECORD --output /builddir/build/BUILD/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/RECORD removed '/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+g4ace6d3.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64//usr/lib/python3.12/site-packages/tests + /usr/bin/find-debuginfo -j4 --strict-build-id -m -i --build-id-seed 0.12-20260422.0.git4ace6d36.el10 --unique-debug-suffix -0.12-20260422.0.git4ace6d36.el10.x86_64 --unique-debug-src-base pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/pyrtl 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 + /usr/lib/rpm/redhat/brp-python-rpm-in-distinfo + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j4 Bytecompiling .py files below /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12 using python3.12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.QVawIP + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + 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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/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 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd pyrtl + export PYTHONPATH=/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/lib/python3.12/site-packages + python3 -m pytest -vv tests ============================= test session starts ============================== platform linux -- Python 3.12.12, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/pyrtl collecting ... collected 1261 items / 1 skipped tests/test_analysis.py::TestAreaEstimate::test_area_est_unchanged PASSED [ 0%] tests/test_analysis.py::TestAreaEstimate::test_area_est_unchanged_with_rom PASSED [ 0%] tests/test_analysis.py::TestTimingEstimate::test_time_est_unchanged PASSED [ 0%] tests/test_analysis.py::TestPaths::test_all_paths PASSED [ 0%] tests/test_analysis.py::TestPaths::test_one_path_to_one_output PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_empty_src_and_dst_equal_with_no_other_logic PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_loop_and_input PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_loop_get_arbitrary_inner_wires PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_no_path_exists PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_with_loop PASSED [ 0%] tests/test_analysis.py::TestPaths::test_paths_with_memory PASSED [ 0%] tests/test_analysis.py::TestPaths::test_pretty_print PASSED [ 0%] tests/test_analysis.py::TestPaths::test_subset_of_all_paths PASSED [ 1%] tests/test_analysis.py::TestPaths::test_two_paths_to_one_output PASSED [ 1%] tests/test_analysis.py::TestPaths::test_two_paths_to_two_outputs PASSED [ 1%] tests/test_analysis.py::TestDistance::test_several_distances PASSED [ 1%] tests/test_analysis.py::TestDistance::test_simple_distance PASSED [ 1%] tests/test_analysis.py::TestDistance::test_special_cost PASSED [ 1%] tests/test_analysis.py::TestFanout::test_fanout_simple PASSED [ 1%] tests/test_analysis.py::TestFanout::test_fanout_wire_repeated_as_arg PASSED [ 1%] tests/test_analysis.py::TestFanout::test_fanout_wire_repeated_in_concat PASSED [ 1%] tests/test_conditional.py::TestConditional::test_basic_default_condition PASSED [ 1%] tests/test_conditional.py::TestConditional::test_basic_false_condition PASSED [ 1%] tests/test_conditional.py::TestConditional::test_basic_nested_condition PASSED [ 1%] tests/test_conditional.py::TestConditional::test_basic_simple_condition_1 PASSED [ 1%] tests/test_conditional.py::TestConditional::test_basic_true_condition PASSED [ 2%] tests/test_conditional.py::TestConditional::test_basic_two_conditions PASSED [ 2%] tests/test_conditional.py::TestConditional::test_default_value_for_wires PASSED [ 2%] tests/test_conditional.py::TestConditional::test_error_on_conditional_assignment_not_under_conditional PASSED [ 2%] tests/test_conditional.py::TestConditional::test_error_on_non_boolean PASSED [ 2%] tests/test_conditional.py::TestConditional::test_error_on_non_boolean_with_register PASSED [ 2%] tests/test_conditional.py::TestConditional::test_error_on_unconditioned_update_in_under_conditional PASSED [ 2%] tests/test_conditional.py::TestConditional::test_nested_under_default_condition PASSED [ 2%] tests/test_conditional.py::TestConditional::test_short_true_condition PASSED [ 2%] tests/test_conditional.py::TestConditional::test_two_seperate_conditions PASSED [ 2%] tests/test_conditional.py::TestConditional::test_two_signals_under_default_condition PASSED [ 2%] tests/test_conditional.py::TestMemConditionalBlock::test_basic_true_condition_memread PASSED [ 2%] tests/test_conditional.py::TestMemConditionalBlock::test_basic_true_condition_memwrite PASSED [ 3%] tests/test_conditional.py::TestMemConditionalBlock::test_basic_true_condition_memwrite_2 PASSED [ 3%] tests/test_conditional.py::TestMemConditionalBlock::test_true_multi_condition_memread PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_basic_condition_wire PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_boolean_assignment_condition_wire PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_condition_error_when_assigned_wire_has_unspecified_bitwidth PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_condition_nice_error_message PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_condition_nice_error_message_nested PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_condition_nice_error_message_nested2 PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_condition_wire PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_error_condition_connect_const PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_error_condition_connect_input PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_nested_condition_wire PASSED [ 3%] tests/test_conditional.py::TestWireConditionalBlock::test_underspecified_condition_wire PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_basic_nested_non_exclusive_condition PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_one_deep_nested_non_exclusive_condition PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_other_overlaping_assignments_in_non_exclusive_assignments PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_overlaping_assignments_in_non_exclusive_assignments PASSED [ 4%] tests/test_conditional.py::TestSuperWireConditionalBlock::test_super_stress_test PASSED [ 4%] tests/test_core.py::TestDocTests::test_doctests PASSED [ 4%] tests/test_core.py::TestBlock::test_add_wire PASSED [ 4%] tests/test_core.py::TestBlock::test_add_wirevector_simple PASSED [ 4%] tests/test_core.py::TestBlock::test_bad_memblock_name_none PASSED [ 4%] tests/test_core.py::TestBlock::test_bad_memblock_name_strict PASSED [ 4%] tests/test_core.py::TestBlock::test_block_iterators PASSED [ 4%] tests/test_core.py::TestBlock::test_logicsubset_no_op PASSED [ 4%] tests/test_core.py::TestBlock::test_no_logic_net_comparisons PASSED [ 5%] tests/test_core.py::TestBlock::test_no_memblocks PASSED [ 5%] tests/test_core.py::TestBlock::test_same_memblock_referenced_across_multiple_operators PASSED [ 5%] tests/test_core.py::TestBlock::test_sanity_check PASSED [ 5%] tests/test_core.py::TestBlock::test_undriven_net PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_dest_wrong_arity_or_type PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_dest_wrong_bitwidth PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_make_with_not_net PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_no_tuples PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_odd_wires PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_bitwidth PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_num_args PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_num_op_params PASSED [ 6%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_op_param_mem PASSED [ 6%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_op_param_select PASSED [ 6%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_types PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_invalid_set_wb PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_invalid_with_set_wb PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_normal PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_with_block PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_with_block_exception PASSED [ 6%] tests/test_core.py::TestSetWorkingBlock::test_with_block_nested PASSED [ 6%] tests/test_core.py::TestAsGraph::test_as_graph_2 PASSED [ 6%] tests/test_core.py::TestAsGraph::test_as_graph_duplicate_args PASSED [ 6%] tests/test_core.py::TestAsGraph::test_as_graph_memory PASSED [ 6%] tests/test_core.py::TestAsGraph::test_as_graph_trivial PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_duplicate_names PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_extra_wire_in_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_inconsistent_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_missing_bitwidth PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_missing_wire_in_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_not_connected PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_not_driven PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_unknown_wires PASSED [ 7%] tests/test_core.py::TestLogicNets::test_comparison PASSED [ 7%] tests/test_core.py::TestLogicNets::test_equivelence_of_different_nets PASSED [ 7%] tests/test_core.py::TestLogicNets::test_equivelence_of_same_nets PASSED [ 7%] tests/test_core.py::TestLogicNets::test_memory_read_print PASSED [ 8%] tests/test_core.py::TestLogicNets::test_memory_write_print PASSED [ 8%] tests/test_core.py::TestLogicNets::test_net_with_wirevectors PASSED [ 8%] tests/test_core.py::TestLogicNets::test_self_equals PASSED [ 8%] tests/test_core.py::TestLogicNets::test_string_format PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_notpass_with_add PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass_with_cat PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass_with_select PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_normal PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_should_be_empty_at_start PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_with_memblock PASSED [ 8%] tests/test_core.py::TestNetConnections::test_wire_not_in_net_connections PASSED [ 8%] tests/test_core.py::TestNameSanitizer::test_name_collision PASSED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] FAILED [ 10%] tests/test_gate_graph.py::TestDocTests::test_doctests PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_alias_errors PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_attrs PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_retrieval PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_sets PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_get_gate PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_memblock PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_gate_backward PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_gate_forward PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_self_loop PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_select_gate PASSED [ 10%] tests/test_helperfuncs.py::TestDocTests::test_corecircuits_doctests PASSED [ 11%] tests/test_helperfuncs.py::TestDocTests::test_helperfuncs_doctests PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_input_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_output_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_register_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_bitwidth PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_per_wire_width PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_raise_errors PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_infer_val_and_bitwidth PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_log2 PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_truncate_function PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_val_to_signed_integer PASSED [ 11%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_does_simulation_correct PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_no_ones_in_pattern PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_no_zeroes_in_pattern PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_only_wildcards PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_all_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_consecutive_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_non_consecutive_field PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_by_name PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_with_bad_field_map PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_with_field_map PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_several_non_consecutive_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_pattern_type_or_length_mismatch PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_bitpattern_field_not_provided PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_both_ordered_and_named_fields PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_empty_bitpattern PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_invalid_num_unique_patterns PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_unnamed_fields_in_bitpattern PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_value_doesnt_fit_in_field PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_fields_all_different PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_named_fields PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_named_fields_with_field_map PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_no_fields PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_ordered_fields PASSED [ 13%] tests/test_helperfuncs.py::TestChop::test_chop_does_simulation_correct PASSED [ 13%] tests/test_helperfuncs.py::TestChop::test_fields_mismatch PASSED [ 14%] tests/test_helperfuncs.py::TestChop::test_wrong_input_types_fail PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_all_but_lsb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_all_but_msb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_lsb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_msb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_field_too_big PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_field_too_big_truncate PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_no_bits_to_update PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_bitfield PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_field_too_big PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_field_too_big_truncate PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_no_bits_to_update PASSED [ 15%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_overlapping_ranges PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_does_simulation_correct PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_only_on_1_bit_vectors PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_works_with_consts PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_does_simulation_correct PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_only_on_1_bit_vectors PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_works_with_consts PASSED [ 15%] tests/test_helperfuncs.py::TestTreeReduce::test_empty PASSED [ 15%] tests/test_helperfuncs.py::TestTreeReduce::test_xor PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_list_of_long_wires PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_list_of_one_bit_wires PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_one_wirevector PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_enough_inputs_with_default PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_not_enough_inputs PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_not_enough_inputs_but_default PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_too_many_inputs PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_too_many_inputs_with_default PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_mux_with_default PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_select PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_select_no_pred PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_simple_mux_1 PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_simple_mux_2 PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_bad_probe_wire PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_probe_wire PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_simple_probe PASSED [ 17%] tests/test_helperfuncs.py::TestRtlProbe::test_simple_probe_debug PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_big_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_over PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_big_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_over PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_over PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_big PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_big_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_over PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_1 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_1_1 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_2 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_3 PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_fastsimulation PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_simulation PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_bad_type PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_create_assert PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_duplicate_assert PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_invalid_exception_type PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wire_from_another_block PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wire_outside_block PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wrong_len PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_edge_case_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_loop_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_loop_2 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_1 PASSED [ 20%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_reg_1 PASSED [ 20%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_special_ops PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_pixel_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_pixel_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_exceptions PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_input_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_input_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_output_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_output_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireStruct::test_pixel_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireStruct::test_pixel_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireStruct::test_register_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireStruct::test_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_anonymous_wire_matrix_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_anonymous_wire_matrix_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_byte_matrix_const PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_byte_matrix_input_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_byte_matrix_input_slice PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_composition_cached_data PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_composition_dword PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_exceptions PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_input PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_register PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_slice PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_word_concatenate PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_word_slice PASSED [ 22%] tests/test_helperfuncs.py::TestOneHotToBinary::test_multiple_ones PASSED [ 22%] tests/test_helperfuncs.py::TestOneHotToBinary::test_no_ones PASSED [ 22%] tests/test_helperfuncs.py::TestOneHotToBinary::test_simple_onehot PASSED [ 22%] tests/test_helperfuncs.py::TestBinaryToOneHot::test_simple_binary_to_one_hot PASSED [ 22%] tests/test_helperfuncs.py::TestBinaryToOneHot::test_with_max_bitwidth PASSED [ 22%] tests/test_importexport.py::TestInputFromBlif::test_blif_and_gate_correct PASSED [ 22%] tests/test_importexport.py::TestInputFromBlif::test_blif_error_bad_coverset PASSED [ 22%] tests/test_importexport.py::TestInputFromBlif::test_blif_error_zeroes_in_offset PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_input_simulates_correctly_with_merged_outputs PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_input_simulates_correctly_with_unmerged_outputs PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_nand_gate_to_primitives_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_nor_gate_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_not_gate_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_or_gate_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_clock_passing PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_multiple_modules_merged_io PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_multiple_modules_unmerged_io PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_output_as_arg PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_xor_gate_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_combo_blif_input_has_correct_io_interface PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_correct_interface_with_unmerged_io PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_sequential_blif_input_has_correct_io_interface PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_sequential_blif_input_has_correct_io_interface_counter PASSED [ 24%] tests/test_importexport.py::TestVerilogNames::test_verilog_check_valid_name_bad PASSED [ 24%] tests/test_importexport.py::TestVerilogNames::test_verilog_check_valid_name_good PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_bit_slice_inputs PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_custom_module_name PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_error_existing_reset_wire PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_error_invalid_add_reset PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_existing_reset_wire_without_add_reset PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_mems_with_no_writes PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_register_reset_value PASSED [ 24%] tests/test_importexport.py::TestVerilogOutput::test_romblock_does_not_throw_error PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_textual_consistency_large PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_textual_consistency_small PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_textual_consistency_with_async_reset PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_textual_consistency_with_no_reset PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_textual_consistency_with_sync_reset PASSED [ 25%] tests/test_importexport.py::TestVerilogInput::test_error_import_bad_file SKIPPED [ 25%] tests/test_importexport.py::TestVerilogInput::test_import_counter SKIPPED [ 25%] tests/test_importexport.py::TestVerilogInput::test_import_counter_with_reset SKIPPED [ 25%] tests/test_importexport.py::TestVerilogInput::test_import_multi_module_auto_select_top_module SKIPPED [ 25%] tests/test_importexport.py::TestVerilogInput::test_import_multi_module_specified_module SKIPPED [ 25%] tests/test_importexport.py::TestVerilogInput::test_import_small SKIPPED [ 25%] tests/test_importexport.py::TestOutputTestbench::test_custom_module_name_testbench PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_error_verilog_testbench_existing_reset_wire PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_error_verilog_testbench_invalid_add_reset PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_only_initialize_memblocks PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_verilog_testbench_consistency PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_verilog_testbench_does_not_throw_error PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_verilog_testbench_existing_reset_wire_without_add_reset PASSED [ 26%] tests/test_importexport.py::TestOutputTestbench::test_verilog_testbench_no_reset_consistency PASSED [ 26%] tests/test_importexport.py::TestOutputFirrtl::test_textual_consistency_concats PASSED [ 26%] tests/test_importexport.py::TestOutputFirrtl::test_textual_consistency_selects PASSED [ 26%] tests/test_importexport.py::TestInputISCASBench::test_bench_with_same_io_name PASSED [ 26%] tests/test_importexport.py::TestInputISCASBench::test_combinational_bench PASSED [ 26%] tests/test_importexport.py::TestInputISCASBench::test_sequential_bench PASSED [ 26%] tests/test_importexport.py::TestInputISCASBench::test_simulation_bench PASSED [ 27%] tests/test_memblock.py::TestDocTests::test_doctests PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_2read_1write PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_added_default_named PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_added_user_named PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_assign_with_extension PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_connection_with_ints PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_direct_assignment_error PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_simple PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_to_memblock_direct_operation PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_with_write_enable_with_equalsign PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_over_max_read_ports PASSED [ 27%] tests/test_memblock.py::RTLMemBlockDesignBase::test_over_max_write_ports PASSED [ 27%] tests/test_memblock.py::RTLMemBlockErrorTests::test_memblock_enable_signal_not_1_bit PASSED [ 28%] tests/test_memblock.py::RTLMemBlockErrorTests::test_memblock_write_data_larger_than_memory_bitwidth PASSED [ 28%] tests/test_memblock.py::RTLMemBlockErrorTests::test_memindex_bitwidth_greater_than_addrwidth PASSED [ 28%] tests/test_memblock.py::RTLMemBlockErrorTests::test_negative_addrwidth PASSED [ 28%] tests/test_memblock.py::RTLMemBlockErrorTests::test_negative_bitwidth PASSED [ 28%] tests/test_memblock.py::RTLMemBlockErrorTests::test_read_ports_exception PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_memindexed_getitem PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_memindexed_len PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_memindexed_name PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_memindexed_sign_extended PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_memindexed_zero_extended PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_read_memindexed_ilshift PASSED [ 28%] tests/test_memblock.py::MemIndexedTests::test_read_memindexed_ior PASSED [ 29%] tests/test_memblock.py::MemIndexedTests::test_write_memindexed_ilshift PASSED [ 29%] tests/test_memblock.py::MemIndexedTests::test_write_memindexed_ior PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_direct_assignment_error PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_int_index_error PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_other_non_wire_index_error PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_read PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_rom_to_rom_direct_operation PASSED [ 29%] tests/test_memblock.py::RTLRomBlockWiring::test_write PASSED [ 29%] tests/test_memblock.py::RTLRomGetReadData::test_build_new_roms PASSED [ 29%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_address PASSED [ 29%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_address_types PASSED [ 29%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_value_function PASSED [ 29%] tests/test_memblock.py::RTLRomGetReadData::test_out_of_range PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_over_max_read_ports PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_valid_get_read PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_value_out_of_range PASSED [ 30%] tests/test_memblock.py::TestSignedRomBlockData::test_negative_romdata PASSED [ 30%] tests/test_memblock.py::TestSignedRomBlockData::test_unsigned_romdata PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_and_simulation PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_const_nobitwidth_simulation PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_minus_simulation PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_minus_simulation2 PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_mux_simulation PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_not_simulation PASSED [ 30%] tests/test_passes.py::TestSynthesis::test_or_simulation PASSED [ 31%] tests/test_passes.py::TestSynthesis::test_plus_simulation PASSED [ 31%] tests/test_passes.py::TestSynthesis::test_synthesize_regs_mapped_correctly PASSED [ 31%] tests/test_passes.py::TestSynthesis::test_xor_simulation PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_does_not_update_working_block PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_merged_io_mapped_correctly PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_merged_io_names_correct PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_merged_io_simulates_correctly PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_unmerged_io_mapped_correctly PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_unmerged_io_names_correct PASSED [ 31%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_unmerged_io_simulates_correctly PASSED [ 31%] tests/test_passes.py::TestMultiplierSynthesis::test_chained_mul PASSED [ 31%] tests/test_passes.py::TestMultiplierSynthesis::test_single_mul PASSED [ 31%] tests/test_passes.py::TestMultiplierSynthesis::test_singlebit_mul PASSED [ 32%] tests/test_passes.py::TestComparisonSynthesis::test_eq PASSED [ 32%] tests/test_passes.py::TestComparisonSynthesis::test_gt PASSED [ 32%] tests/test_passes.py::TestComparisonSynthesis::test_lt PASSED [ 32%] tests/test_passes.py::TestOptimization::test_dont_remove_double_inverts_another_user PASSED [ 32%] tests/test_passes.py::TestOptimization::test_multiple_double_invert_chains PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_1_invert PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_2_inverts PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_3_inverts PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_4_inverts PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_5_inverts PASSED [ 32%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_6_inverts PASSED [ 32%] tests/test_passes.py::TestOptimization::test_slice_net_removal_1 PASSED [ 32%] tests/test_passes.py::TestOptimization::test_slice_net_removal_2 PASSED [ 33%] tests/test_passes.py::TestOptimization::test_slice_net_removal_3 PASSED [ 33%] tests/test_passes.py::TestOptimization::test_slice_net_removal_4 PASSED [ 33%] tests/test_passes.py::TestOptimization::test_wire_net_removal_1 PASSED [ 33%] tests/test_passes.py::TestOptimization::test_wire_net_removal_2 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_adv_one_var_op_1 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_adv_one_var_op_2 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_basic_one_var_op_1 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_basic_two_var_op_1 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_basic_two_var_op_2 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_basic_two_var_op_3 PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_two_var_op_correct_not_wire_replacement PASSED [ 33%] tests/test_passes.py::TestConstFolding::test_two_var_op_correct_wire_prop PASSED [ 34%] tests/test_passes.py::TestConstFolding::test_two_var_op_produce_not PASSED [ 34%] tests/test_passes.py::TestConstFolding::test_unsynthesized_inversion PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_basic_1 PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_concat PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_const_different_bitwidth_1 PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_const_values_1 PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_const_values_2 PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_different_arg_order PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_multiple_elimination PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_nested_elimination PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_no_elimination_of_different_const_bitwidths PASSED [ 34%] tests/test_passes.py::TestSubexpElimination::test_order_dependent_ops PASSED [ 34%] tests/test_passes.py::TestSynthPasses::test_and_inverter_synth_adder PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_and_inverter_synth_and PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_and_inverter_synth_or PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_and_inverter_synth_xor PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_nand_synth_adder PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_nand_synth_and PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_nand_synth_or PASSED [ 35%] tests/test_passes.py::TestSynthPasses::test_nand_synth_xor PASSED [ 35%] tests/test_passes.py::TestSynthOptTiming::test_adder PASSED [ 35%] tests/test_passes.py::TestSynthOptTiming::test_all_mem_1 PASSED [ 35%] tests/test_passes.py::TestSynthOptTiming::test_combo_1 PASSED [ 35%] tests/test_passes.py::TestSynthOptTiming::test_const_folding_complex_1 PASSED [ 35%] tests/test_passes.py::TestSynthOptTiming::test_sanity_check PASSED [ 36%] tests/test_passes.py::TestSynthOptTiming::test_timing_basic_2 PASSED [ 36%] tests/test_passes.py::TestSynthOptTiming::test_timing_error PASSED [ 36%] tests/test_passes.py::TestSynthOptTiming::test_wirevector_1 PASSED [ 36%] tests/test_passes.py::TestConcatAndSelectSimplification::test_one_bit_selects PASSED [ 36%] tests/test_passes.py::TestConcatAndSelectSimplification::test_two_way_concat PASSED [ 36%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_several_outputs PASSED [ 36%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_several_outputs_simulates_correctly PASSED [ 36%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_single_output PASSED [ 36%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_single_output_simulates_correctly PASSED [ 36%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_some_outputs_unaffected PASSED [ 36%] tests/test_passes.py::TestTwoWayFanout::test_two_way_fanout_large_design PASSED [ 36%] tests/test_passes.py::TestTwoWayFanout::test_two_way_fanout_medium_design PASSED [ 36%] tests/test_passes.py::TestTwoWayFanout::test_two_way_fanout_small_design PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_signed_gt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_signed_gte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_signed_lt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_signed_lte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_unsigned_gt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_unsigned_gte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_unsigned_lt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_unsigned_lte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_gt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_gte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_lt PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_lte PASSED [ 37%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_unsigned_gt PASSED [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_unsigned_gte PASSED [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_unsigned_lt PASSED [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_unsigned_lte PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_add PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_add_neg_integer PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_add_signed_const PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_commutative PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_const_with_bitwidth PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_neg_integer PASSED [ 38%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_signed_const PASSED [ 38%] tests/test_signed.py::TestSignedArithmeticExhaustive::test_signed_add PASSED [ 39%] tests/test_signed.py::TestSignedArithmeticExhaustive::test_signed_mult PASSED [ 39%] tests/test_signed.py::TestSignedArithmeticExhaustive::test_signed_sub PASSED [ 39%] tests/test_simulation.py::TestDocTests::test_doctests PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_and_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_bitslice2_and_concat_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_bitslice_and_concat_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_associativity_int_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_associativity_string_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_nobitwidth_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_rawint_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_verilogbig_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_veriloghuge2_simulation PASSED [ 39%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_veriloghuge_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_verilogsmall_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_minus_sim_overflow PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_minus_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_multiply_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_nand_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_negative_input PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_not_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_or_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_plus_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_reg_to_reg_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_xor_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_and_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_bitslice2_and_concat_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_bitslice_and_concat_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_associativity_int_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_associativity_string_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_nobitwidth_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_rawint_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_verilogbig_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_veriloghuge2_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_veriloghuge_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_verilogsmall_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_minus_sim_overflow PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_minus_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_multiply_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_nand_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_negative_input PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_not_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_or_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_plus_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_reg_to_reg_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_xor_simulation PASSED [ 42%] tests/test_simulation.py::TestRenderTraceSimulation::test_bin_trace PASSED [ 42%] tests/test_simulation.py::TestRenderTraceSimulation::test_decimal_trace PASSED [ 42%] tests/test_simulation.py::TestRenderTraceSimulation::test_hex_trace PASSED [ 42%] tests/test_simulation.py::TestRenderTraceSimulation::test_oct_trace PASSED [ 42%] tests/test_simulation.py::TestRenderTraceFastSimulation::test_bin_trace PASSED [ 42%] tests/test_simulation.py::TestRenderTraceFastSimulation::test_decimal_trace PASSED [ 43%] tests/test_simulation.py::TestRenderTraceFastSimulation::test_hex_trace PASSED [ 43%] tests/test_simulation.py::TestRenderTraceFastSimulation::test_oct_trace PASSED [ 43%] tests/test_simulation.py::TestRenderLongTraceSimulation::test_long_decimal_trace PASSED [ 43%] tests/test_simulation.py::TestRenderLongTraceFastSimulation::test_long_decimal_trace PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomSimulation::test_custom_repr_per_wire PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomSimulation::test_enum_name PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomSimulation::test_val_to_signed_integer PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_custom_repr_per_wire PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_enum_name PASSED [ 43%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_val_to_signed_integer PASSED [ 43%] tests/test_simulation.py::TestPrintTraceSimulation::test_print_trace_base16 PASSED [ 43%] tests/test_simulation.py::TestPrintTraceSimulation::test_print_trace_base2 PASSED [ 44%] tests/test_simulation.py::TestPrintTraceSimulation::test_print_trace_base8 PASSED [ 44%] tests/test_simulation.py::TestPrintTraceSimulation::test_print_trace_single_dig_notcompact PASSED [ 44%] tests/test_simulation.py::TestPrintTraceFastSimulation::test_print_trace_base16 PASSED [ 44%] tests/test_simulation.py::TestPrintTraceFastSimulation::test_print_trace_base2 PASSED [ 44%] tests/test_simulation.py::TestPrintTraceFastSimulation::test_print_trace_base8 PASSED [ 44%] tests/test_simulation.py::TestPrintTraceFastSimulation::test_print_trace_single_dig_notcompact PASSED [ 44%] tests/test_simulation.py::TestPrintPerfCountersSimulation::test_print_perf_counters PASSED [ 44%] tests/test_simulation.py::TestPrintPerfCountersFastSimulation::test_print_perf_counters PASSED [ 44%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_consts_from_int_enums PASSED [ 44%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_default_value_for_registers_without_reset_value PASSED [ 44%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_fastsim_wire_names PASSED [ 44%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_named_consts PASSED [ 44%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_reg_directly_before_reg PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_reset_value_in_reg PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_reset_value_overridden_in_simulation PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_weird_wire_names PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_consts_from_int_enums PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_default_value_for_registers_without_reset_value PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_fastsim_wire_names PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_named_consts PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_reg_directly_before_reg PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_reset_value_in_reg PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_reset_value_overridden_in_simulation PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_weird_wire_names PASSED [ 45%] tests/test_simulation.py::TestSimInputValidationSimulation::test_input_out_of_bitwidth PASSED [ 45%] tests/test_simulation.py::TestSimInputValidationSimulation::test_no_named_wires_erro PASSED [ 46%] tests/test_simulation.py::TestSimInputValidationFastSimulation::test_input_out_of_bitwidth PASSED [ 46%] tests/test_simulation.py::TestSimInputValidationFastSimulation::test_no_named_wires_erro PASSED [ 46%] tests/test_simulation.py::TestSimStepAccessInternalMemorySimulation::test_step_with_internal_memory PASSED [ 46%] tests/test_simulation.py::TestSimStepAccessInternalMemoryFastSimulation::test_step_with_internal_memory PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_bad_nsteps1 PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_bad_nsteps2 PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_dont_care_expected PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_many_errors_report_all PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_many_errors_report_only_first PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_errors PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_errors_nsteps_specified PASSED [ 46%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_expected_check PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_inputs PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_values_for_each_step_of_given_outputs PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_values_for_each_step_of_input PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_nsteps_gt_ninputs PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_nsteps_no_inputs PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_bad_nsteps1 PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_bad_nsteps2 PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_dont_care_expected PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_many_errors_report_all PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_many_errors_report_only_first PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_errors PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_errors_nsteps_specified PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_expected_check PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_inputs PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_values_for_each_step_of_given_outputs PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_values_for_each_step_of_input PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_nsteps_gt_ninputs PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_nsteps_no_inputs PASSED [ 48%] tests/test_simulation.py::TestTraceWithAdderSimulation::test_adder_simulation PASSED [ 48%] tests/test_simulation.py::TestTraceWithAdderFastSimulation::test_adder_simulation PASSED [ 48%] tests/test_simulation.py::TestSimulationVCDWithAdderSimulation::test_vcd_output PASSED [ 48%] tests/test_simulation.py::TestSimulationVCDWithAdderFastSimulation::test_vcd_output PASSED [ 48%] tests/test_simulation.py::TestSimTraceWithMuxSimulation::test_adder_simulation PASSED [ 48%] tests/test_simulation.py::TestSimTraceWithMuxFastSimulation::test_adder_simulation PASSED [ 48%] tests/test_simulation.py::TestMemBlockSimulation::test_mem_val_map PASSED [ 49%] tests/test_simulation.py::TestMemBlockSimulation::test_mem_val_map_defaults PASSED [ 49%] tests/test_simulation.py::TestMemBlockSimulation::test_simple2_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockSimulation::test_simple_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockSimulation::test_synth_simple_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockFastSimulation::test_mem_val_map PASSED [ 49%] tests/test_simulation.py::TestMemBlockFastSimulation::test_mem_val_map_defaults PASSED [ 49%] tests/test_simulation.py::TestMemBlockFastSimulation::test_simple2_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockFastSimulation::test_simple_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockFastSimulation::test_synth_simple_memblock PASSED [ 49%] tests/test_simulation.py::TestMemBlockLargeSimulation::test_mem_blocks_very_large PASSED [ 49%] tests/test_simulation.py::TestMemBlockLargeFastSimulation::test_mem_blocks_very_large PASSED [ 49%] tests/test_simulation.py::TestRegisterDefaultsSimulation::test_default_value PASSED [ 49%] tests/test_simulation.py::TestRegisterDefaultsSimulation::test_map_and_default PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsSimulation::test_partial_map PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsSimulation::test_register_map PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsFastSimulation::test_default_value PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsFastSimulation::test_map_and_default PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsFastSimulation::test_partial_map PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsFastSimulation::test_register_map PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimSimulation::test_function_RomBlock PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimSimulation::test_function_RomBlock_with_optimization PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimSimulation::test_rom_out_of_range_error PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimSimulation::test_rom_val_map PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_function_RomBlock PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_function_RomBlock_with_optimization PASSED [ 50%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_rom_out_of_range_error PASSED [ 51%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_rom_val_map PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimSimulation::test_negative_memory_value_map PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimSimulation::test_simultaneous_read_write PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimSimulation::test_unsigned_memory_value_map PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimFastSimulation::test_negative_memory_value_map PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimFastSimulation::test_simultaneous_read_write PASSED [ 51%] tests/test_simulation.py::TestMemBlockSimFastSimulation::test_unsigned_memory_value_map PASSED [ 51%] tests/test_simulation.py::TestInspectSimulation::test_inspect PASSED [ 51%] tests/test_simulation.py::TestInspectSimulation::test_inspect_mem PASSED [ 51%] tests/test_simulation.py::TestInspectSimulation::test_invalid_inspect PASSED [ 51%] tests/test_simulation.py::TestInspectFastSimulation::test_inspect PASSED [ 51%] tests/test_simulation.py::TestInspectFastSimulation::test_inspect_mem PASSED [ 52%] tests/test_simulation.py::TestInspectFastSimulation::test_invalid_inspect PASSED [ 52%] tests/test_simulation.py::TestTraceErrorSimulation::test_empty_trace PASSED [ 52%] tests/test_simulation.py::TestTraceErrorSimulation::test_invalid_base PASSED [ 52%] tests/test_simulation.py::TestTraceErrorFastSimulation::test_empty_trace PASSED [ 52%] tests/test_simulation.py::TestTraceErrorFastSimulation::test_invalid_base PASSED [ 52%] tests/test_simulation.py::TestNoTracerSimulation::test_no_tracer PASSED [ 52%] tests/test_simulation.py::TestNoTracerFastSimulation::test_no_tracer PASSED [ 52%] tests/test_transform.py::TestWireTransform::test_randomly_replace PASSED [ 52%] tests/test_transform.py::TestWireTransform::test_replace_input PASSED [ 52%] tests/test_transform.py::TestWireTransform::test_replace_output PASSED [ 52%] tests/test_transform.py::TestCopyBlock::test_blank PASSED [ 52%] tests/test_transform.py::TestCopyBlock::test_block PASSED [ 52%] tests/test_transform.py::TestCopyBlock::test_copy_mem PASSED [ 53%] tests/test_transform.py::TestFastWireReplace::test_replace_multiple_wires PASSED [ 53%] tests/test_transform.py::TestFastWireReplace::test_replace_multiple_wires_2 PASSED [ 53%] tests/test_transform.py::TestFastWireReplace::test_replace_only_dst_wire PASSED [ 53%] tests/test_transform.py::TestFastWireReplace::test_replace_only_src_wire PASSED [ 53%] tests/test_transform.py::TestFastWireReplace::test_wire_used_in_multiple_places PASSED [ 53%] tests/test_transform.py::TestCloning::test_clone_wire_different_name_different_block PASSED [ 53%] tests/test_transform.py::TestCloning::test_clone_wire_different_name_same_block PASSED [ 53%] tests/test_transform.py::TestCloning::test_clone_wire_no_name_same_block PASSED [ 53%] tests/test_transform.py::TestCloning::test_clone_wire_no_or_same_name_different_block PASSED [ 53%] tests/test_transform.py::TestCloning::test_clone_wire_same_name_same_block PASSED [ 53%] tests/test_transform.py::TestCloning::test_same_type PASSED [ 53%] tests/test_visualization.py::TestOutputGraphs::test_output_to_graphviz_correct_detailed_output PASSED [ 54%] tests/test_visualization.py::TestOutputGraphs::test_output_to_graphviz_correct_output_with_arg_ordering PASSED [ 54%] tests/test_visualization.py::TestOutputGraphs::test_output_to_graphviz_correct_output_without_arg_ordering PASSED [ 54%] tests/test_visualization.py::TestOutputGraphs::test_output_to_graphviz_does_not_throw_error PASSED [ 54%] tests/test_visualization.py::TestOutputGraphs::test_output_to_graphviz_with_custom_namer_does_not_throw_error PASSED [ 54%] tests/test_visualization.py::TestOutputGraphs::test_output_to_tgf_does_not_throw_error PASSED [ 54%] tests/test_visualization.py::TestNetGraph::test_as_graph PASSED [ 54%] tests/test_visualization.py::TestNetGraph::test_netgraph_same_wire_multiple_edges_to_same_net PASSED [ 54%] tests/test_visualization.py::TestNetGraph::test_netgraph_unused_wires PASSED [ 54%] tests/test_visualization.py::TestOutputIPynb::test_one_bit_adder_matches_expected PASSED [ 54%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html PASSED [ 54%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_func PASSED [ 54%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_per_name PASSED [ 54%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_per_name_enum_is_bool PASSED [ 55%] tests/test_wire.py::TestDocTests::test_doctests PASSED [ 55%] tests/test_wire.py::TestWireVector::test_assign_to_value PASSED [ 55%] tests/test_wire.py::TestWireVector::test_basic_assignment PASSED [ 55%] tests/test_wire.py::TestWireVector::test_rename PASSED [ 55%] tests/test_wire.py::TestWireVector::test_sign_extend PASSED [ 55%] tests/test_wire.py::TestWireVector::test_truncating PASSED [ 55%] tests/test_wire.py::TestWireVector::test_unset_bitwidth PASSED [ 55%] tests/test_wire.py::TestWireVector::test_wirevector_length PASSED [ 55%] tests/test_wire.py::TestWireVector::test_zero_extend PASSED [ 55%] tests/test_wire.py::TestWireVectorNames::test_invalid_name PASSED [ 55%] tests/test_wire.py::TestWireVectorNames::test_invalid_name_setter PASSED [ 55%] tests/test_wire.py::TestWireVectorNames::test_valid_name_setter PASSED [ 55%] tests/test_wire.py::TestWireVectorNames::test_valid_names PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_bad_bitwidth PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_no_immed_operators PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_sign_and_zero_extend_only_increase_bitwidth PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_truncate_only_reduces_bitwidth PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_truncate_only_takes_integers PASSED [ 56%] tests/test_wire.py::TestWireVectorFail::test_undef_wirevector_length PASSED [ 56%] tests/test_wire.py::TestWireVectorSlicing::test_invalid_indicies PASSED [ 56%] tests/test_wire.py::TestWireVectorSlicing::test_invalid_slices PASSED [ 56%] tests/test_wire.py::TestWireVectorSlicing::test_valid_indicies PASSED [ 56%] tests/test_wire.py::TestWireVectorSlicing::test_valid_slices PASSED [ 56%] tests/test_wire.py::TestWireVectorSlicing::test_wire_wo_bitwidth_fails PASSED [ 56%] tests/test_wire.py::TestInput::test_no_connection_to_inputs PASSED [ 57%] tests/test_wire.py::TestRegister::test_connect_next PASSED [ 57%] tests/test_wire.py::TestRegister::test_connection_large PASSED [ 57%] tests/test_wire.py::TestRegister::test_connection_raw PASSED [ 57%] tests/test_wire.py::TestRegister::test_connection_small PASSED [ 57%] tests/test_wire.py::TestRegister::test_connection_unspec_width PASSED [ 57%] tests/test_wire.py::TestRegister::test_extending_negative_reset_value_as_string PASSED [ 57%] tests/test_wire.py::TestRegister::test_invalid_negative_reset_value_as_string PASSED [ 57%] tests/test_wire.py::TestRegister::test_invalid_reset_value_not_an_integer PASSED [ 57%] tests/test_wire.py::TestRegister::test_invalid_reset_value_too_large PASSED [ 57%] tests/test_wire.py::TestRegister::test_invalid_reset_value_too_large_as_string PASSED [ 57%] tests/test_wire.py::TestRegister::test_logic_operations PASSED [ 57%] tests/test_wire.py::TestRegister::test_negative_reset_value PASSED [ 57%] tests/test_wire.py::TestRegister::test_negative_reset_value_as_string PASSED [ 58%] tests/test_wire.py::TestRegister::test_next_logic_operations PASSED [ 58%] tests/test_wire.py::TestRegister::test_register_assignment PASSED [ 58%] tests/test_wire.py::TestRegister::test_register_assignment_not_next PASSED [ 58%] tests/test_wire.py::TestRegister::test_reset_value_as_string PASSED [ 58%] tests/test_wire.py::TestRegister::test_reset_value_is_correct PASSED [ 58%] tests/test_wire.py::TestRegister::test_reset_value_is_none PASSED [ 58%] tests/test_wire.py::TestConst::test_assignment PASSED [ 58%] tests/test_wire.py::TestConst::test_bad_neg_integers PASSED [ 58%] tests/test_wire.py::TestConst::test_bad_string PASSED [ 58%] tests/test_wire.py::TestConst::test_badbool PASSED [ 58%] tests/test_wire.py::TestConst::test_badtype PASSED [ 58%] tests/test_wire.py::TestConst::test_bool PASSED [ 59%] tests/test_wire.py::TestConst::test_integers PASSED [ 59%] tests/test_wire.py::TestConst::test_invalid_bitwidth PASSED [ 59%] tests/test_wire.py::TestConst::test_named PASSED [ 59%] tests/test_wire.py::TestConst::test_neg_integers PASSED [ 59%] tests/test_wire.py::TestConst::test_string PASSED [ 59%] tests/test_wire.py::TestConst::test_too_big PASSED [ 59%] tests/test_wire.py::TestOutput::test_assign_output PASSED [ 59%] tests/test_wire.py::TestOutput::test_log_op_output PASSED [ 59%] tests/test_wire.py::TestOutput::test_slice_output PASSED [ 59%] tests/test_wire.py::TestKeepingCallStack::test_get_call_stack PASSED [ 59%] tests/test_wire.py::TestKeepingCallStack::test_no_call_stack PASSED [ 59%] tests/test_wire.py::TestWrappedWireVector::test_attr PASSED [ 59%] tests/test_wire.py::TestWrappedWireVector::test_conditional_assignment PASSED [ 60%] tests/test_wire.py::TestWrappedWireVector::test_exceptions PASSED [ 60%] tests/test_wire.py::TestWrappedWireVector::test_ops PASSED [ 60%] tests/rtllib/test_adders.py::TestDocTests::test_doctests PASSED [ 60%] tests/rtllib/test_adders.py::TestAdders::test_carry_save_1 PASSED [ 60%] tests/rtllib/test_adders.py::TestAdders::test_carrylookahead_1 PASSED [ 60%] tests/rtllib/test_adders.py::TestAdders::test_fast_group_adder_1 PASSED [ 60%] tests/rtllib/test_adders.py::TestAdders::test_kogge_stone_1 PASSED [ 60%] tests/rtllib/test_adders.py::TestAdders::test_ripple_1 PASSED [ 60%] tests/rtllib/test_aes.py::TestAESDecrypt::test_aes_full PASSED [ 60%] tests/rtllib/test_aes.py::TestAESDecrypt::test_aes_state_machine PASSED [ 60%] tests/rtllib/test_aes.py::TestAESDecrypt::test_inv_mix_columns PASSED [ 60%] tests/rtllib/test_aes.py::TestAESDecrypt::test_inv_shift_rows PASSED [ 60%] tests/rtllib/test_aes.py::TestAESDecrypt::test_inv_sub_bytes PASSED [ 61%] tests/rtllib/test_aes.py::TestAESEncrypt::test_aes_full PASSED [ 61%] tests/rtllib/test_aes.py::TestAESEncrypt::test_aes_state_machine PASSED [ 61%] tests/rtllib/test_aes.py::TestAESEncrypt::test_mix_columns PASSED [ 61%] tests/rtllib/test_aes.py::TestAESEncrypt::test_shift_rows PASSED [ 61%] tests/rtllib/test_aes.py::TestAESEncrypt::test_sub_bytes PASSED [ 61%] tests/rtllib/test_barrel.py::TestDocTests::test_doctests PASSED [ 61%] tests/rtllib/test_barrel.py::TestBarrel::test_shift_left PASSED [ 61%] tests/rtllib/test_barrel.py::TestBarrel::test_shift_right PASSED [ 61%] tests/rtllib/test_libutils.py::TestPartitionWire::test_failing_partition PASSED [ 61%] tests/rtllib/test_libutils.py::TestPartitionWire::test_partition_sim PASSED [ 61%] tests/rtllib/test_libutils.py::TestPartitionWire::test_successful_partition PASSED [ 61%] tests/rtllib/test_libutils.py::TestStringConversion::test_binary_conversion PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_empty PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_bin_str PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_str PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_multiline PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_no_override PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_simple_conversion PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_inverse_functionality PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_low_bw_error PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_twos_comp_sim PASSED [ 62%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic PASSED [ 62%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic_wirevector PASSED [ 62%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_columns PASSED [ 62%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_rows PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_int_instead_of_matrix PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_bits PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_column PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_row PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_bit PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_column PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_row PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits_wirevector PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column_wirevector PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_wirevector_mismatch PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits_trunicate PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_negative PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_string PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_zero PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_no_change PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_3_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_by_2_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_2_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_by_3_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_basic_case PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_negative PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_row_negative PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_negative PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_slice PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_column_only PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_columns PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_rows PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_row PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_back PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_front PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_returns_single PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_1 PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_2 PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_3 PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_1 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_3 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v1 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_rows PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_single PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_raw PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_shorthand PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_tuple_indices PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_3 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_3 PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_basic_case PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_negative PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_slice PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_negative PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_slice PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_column PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_row PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_rows_only PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_columns PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_rows PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_wire_for_matrix PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_row_item PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_back PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_front PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_negative PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_raw_int PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v1 PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v2 PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_rows_with_negative_index_slice PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_raw PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_shorthand PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_tuple_indices PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_basic PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_one_by_four PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_three_by_three PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_1_by_4 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_3_by_3 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_4_by_1 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_basic PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_1_by_4 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_3_by_3 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_4_by_1 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_basic PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_2_by_3 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_2 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_different PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_same PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_basic_case PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_2_by_2_add_3_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_2_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_3_by_2 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_add_one PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_different PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_same PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_basic PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_2_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_3_by_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_different PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_same PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_basic PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_3_by_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_int PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_different_positive_result PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_same PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_basic PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_3_by_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_different PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_same PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_basic PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_2_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_fail_int PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_1_by_4 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_3_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_4_by_1 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_one PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_zero PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_different PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_same PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_basic PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_2_by_3 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_3_by_2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_1_by_2_multiply_2_by_1 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_different PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_same PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_basic PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_2_multiply_3_by_2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_int PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_1_by_2_multiply_2_by_1 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_different PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_same PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_basic PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_3_by_2 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_0 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_1 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_2 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_negative_power PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_nonsquare PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_string PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_0 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_1 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_fail_string PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_matrix PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_scalar PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_1 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_3 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_4 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_5 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_count PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_1 PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_2 PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_4 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_5 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_4 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_5 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1_column_order PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2_column_order PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_1 PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_2 PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_3 PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_invalid_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_3 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_empty PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_negative PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_tuple_values PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_matrix PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_tuple_indices PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4 PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_column PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_row PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3 PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_column PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_row PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_column PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_row PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_column PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_row PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_axis_out_of_bounds PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_axis PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_bits PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_axis PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_bits PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_zero_bits PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_wire PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_basic PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_negative PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_out_of_bounds PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_negative PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_zero PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_wire PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4 PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_columns PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_rows PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3 PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_negative PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_out_of_bounds PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_string PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_negative PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_string PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_zero PASSED [ 86%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_string PASSED [ 86%] tests/rtllib/test_matrix.py::TestMax::test_max_wire PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_rows PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_rows PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_rows PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_negative PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_out_of_bounds PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_columns PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_rows PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_negative PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_zero PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_wire PASSED [ 87%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_1_by_2 PASSED [ 87%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_2_by_1 PASSED [ 87%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_1_by_2 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_2_by_1 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_different PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_same PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_basic PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_both_wires PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_1_by_2_multiply_1_by_3 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_3_by_3_multiply_2_by_2 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_first PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_second PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_first_wire PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_second_wire PASSED [ 88%] tests/rtllib/test_matrix.py::TestHStack::test_concatenate PASSED [ 88%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_empty_args_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_fail_on_inconsistent_rows PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_on_non_matrices_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_one_row_vector PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_several_matrices PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_two_row_vectors PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_concatenate PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_empty_args_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_fail_on_inconsistent_cols PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_on_non_matrices_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_one_column_vector PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_several_matrix PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_two_column_vectors PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative_truncates PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_non_positive_n_bits PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_truncates PASSED [ 90%] tests/rtllib/test_multipliers.py::TestDocTests::test_doctests PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_1 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_2 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_2 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_3 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_1 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_4 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_dada_tree PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_fma_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_gen_fma_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_2 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_dada_tree PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_small_bitwidth_error PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_2 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_3 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_1 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_2 PASSED [ 92%] tests/rtllib/test_muxes.py::TestDocTests::test_doctests PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_different_sel_and_val_lengths PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_empty PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_invalid_select_width PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_one_wire PASSED [ 93%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_2_wires PASSED [ 93%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_5_wires PASSED [ 93%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent PASSED [ 93%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent_const PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts1 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts2 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_value PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup_2 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_one_value PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMux::test_multiple_bitwidths PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_big_close PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals PASSED [ 94%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals_big PASSED [ 94%] tests/rtllib/test_muxes.py::TestSmartMuxDefault::test_default PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires_2 PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_value_already_set PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_really_simple PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_simple PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_demux_2 PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_large_demux PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_simple_demux PASSED [ 94%] tests/rtllib/test_prngs.py::TestPrngs::test_csprng_trivium PASSED [ 94%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_lfsr PASSED [ 95%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_xoroshiro128 PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_denormalized_flushed_to_zero PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_half_plus_half PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_infinity_minus_infinity_is_nan PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_infinity_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_nan_propagates PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_negative_infinity_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_negative_zero_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_half PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_quarter PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_two PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_opposite_signs_equal_magnitude PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_with_carry PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_zero_to_number PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_carry_g1_r0_s0_lsb0_tie_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_carry_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_overflow_rne_produces_infinity PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_overflow_rtz_produces_largest_finite PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g0_r1_s1_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s0_lsb0_tie_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s1_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r1_s0_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_overflow_by_subtracting_negative PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_denormalized_flushed_to_zero PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_double_negative PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_equal_numbers PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_exact_no_rounding PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_from_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_infinity_from_infinity_is_nan PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_infinity_from_number PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_nan_propagates PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_neg_infinity_from_pos_infinity PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_neg_zero_minus_neg_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_one_point_five_minus_half PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_pos_zero_minus_pos_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_rne_rounds_up PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_three_minus_one PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_two_minus_half PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_zero_from_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_both_negative PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_by_negative_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_by_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_denormalized_flushed_to_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_half_times_two PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_infinity PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_zero_is_nan PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_nan_propagates PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_neg_infinity_by_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_one_point_five_times_one_point_five PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_one_point_five_times_two PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_opposite_signs PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_pos_infinity_by_neg_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_negative_overflow_rne_produces_neg_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_negative_overflow_rtz_produces_neg_largest_finite PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_overflow_rne_produces_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_overflow_rtz_produces_largest_finite PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g0_s0_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g0_s1_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l0_s0_tie_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l0_s1_rounds_up PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l1_s0_tie_rounds_up PASSED [100%] =================================== FAILURES =================================== _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError =========================== short test summary info ============================ FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] ================= 13 failed, 1242 passed, 7 skipped in 14.37s ================== + true + RPM_EC=0 ++ jobs -p + exit 0 Processing files: pyrtl-0.12-20260422.0.git4ace6d36.el10.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.gtqCLR + umask 022 + cd /builddir/build/BUILD + cd pyrtl + DOCDIR=/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/doc/pyrtl + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/doc/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/README.md /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/doc/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.nkz5uX + umask 022 + cd /builddir/build/BUILD + cd pyrtl + LICENSEDIR=/builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/licenses/pyrtl + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/licenses/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/LICENSE.md /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64/usr/share/licenses/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Provides: pyrtl = 0.12-20260422.0.git4ace6d36.el10 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Wrote: /builddir/build/RPMS/pyrtl-0.12-20260422.0.git4ace6d36.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.475ztB + umask 022 + cd /builddir/build/BUILD + cd pyrtl + /usr/bin/rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260422.0.git4ace6d36.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.V2e4L4 + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/pyrtl-SPECPARTS + rm -rf pyrtl pyrtl.gemspec + RPM_EC=0 ++ jobs -p + exit 0 Finish: rpmbuild pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm Finish: build phase for pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1776910369.635312/root/var/log/dnf.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names INFO: Done(/var/lib/copr-rpmbuild/results/pyrtl-0.12-20260422.0.git4ace6d36.el10.src.rpm) Config(child) 0 minutes 40 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "pyrtl", "epoch": null, "version": "0.12", "release": "20260422.0.git4ace6d36.el10", "arch": "noarch" }, { "name": "pyrtl", "epoch": null, "version": "0.12", "release": "20260422.0.git4ace6d36.el10", "arch": "src" } ] } RPMResults finished