Warning: Permanently added '2620:52:6:1161:dead:beef:cafe:c14a' (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/10623090-epel-10-x86_64 --chroot epel-10-x86_64 Version: 1.8 PID: 6259 Logging PID: 6261 Task: {'allow_user_ssh': False, 'appstream': False, 'background': False, 'build_id': 10623090, 'buildroot_pkgs': [], 'chroot': 'epel-10-x86_64', 'enable_net': True, 'fedora_review': False, 'git_hash': 'f6d4706b97c1ea4ca8f310aa05f666ed92402f11', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/rezso/HDL/pyrtl', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'pyrtl', 'package_version': '1.0.0-20260619.0.gitf68c7ee1', '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': '10623090-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-8llfcrh4/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-8llfcrh4/pyrtl', '--depth', '500', '--no-single-branch', '--recursive'] cwd: . rc: 0 stdout: stderr: Cloning into '/var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/pyrtl'... Running: git checkout f6d4706b97c1ea4ca8f310aa05f666ed92402f11 -- cmd: ['git', 'checkout', 'f6d4706b97c1ea4ca8f310aa05f666ed92402f11', '--'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/pyrtl rc: 0 stdout: stderr: Note: switching to 'f6d4706b97c1ea4ca8f310aa05f666ed92402f11'. 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 f6d4706 automatic import of pyrtl Running: dist-git-client sources cmd: ['dist-git-client', 'sources'] cwd: /var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/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-8llfcrh4/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1782100014.794805 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.7 starting (python version = 3.14.5, NVR = mock-6.7-1.fc44), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-8llfcrh4/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1782100014.794805 -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-8llfcrh4/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-1782100014.794805/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-14a793ed-5ae3-456e-9888-9565ee6e589a INFO: Checking that b1a4589db028c44d3d6d6c2dc43bd027a6807caa2d181cc5e15a6ef2a269a088 image matches host's architecture INFO: Copy content of container b1a4589db028c44d3d6d6c2dc43bd027a6807caa2d181cc5e15a6ef2a269a088 to /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1782100014.794805/root INFO: mounting b1a4589db028c44d3d6d6c2dc43bd027a6807caa2d181cc5e15a6ef2a269a088 with podman image mount INFO: image b1a4589db028c44d3d6d6c2dc43bd027a6807caa2d181cc5e15a6ef2a269a088 as /var/lib/containers/storage/overlay/ea33bf46a376d737bfe1d3983ff6d92c6522a993d86024b0bab82de3be25874c/merged INFO: umounting image b1a4589db028c44d3d6d6c2dc43bd027a6807caa2d181cc5e15a6ef2a269a088 (/var/lib/containers/storage/overlay/ea33bf46a376d737bfe1d3983ff6d92c6522a993d86024b0bab82de3be25874c/merged) with podman image umount INFO: Removing image mock-bootstrap-14a793ed-5ae3-456e-9888-9565ee6e589a 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-1782100014.794805/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.2.1-1.el10.x86_64 python3-dnf-4.20.0-24.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-24.el10.noarch Start: installing minimal buildroot with dnf No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 203 kB/s | 73 kB 00:00 CentOS Stream 10 - BaseOS 5.0 MB/s | 7.0 MB 00:01 CentOS Stream 10 - AppStream 2.2 MB/s | 3.6 MB 00:01 CentOS Stream 10 - CRB 630 kB/s | 841 kB 00:01 CentOS Stream 10 - Extras packages 9.3 kB/s | 10 kB 00:01 Extra Packages for Enterprise Linux 10 - x86_64 84 MB/s | 6.8 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-23.el10 baseos 29 k coreutils x86_64 9.5-11.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-124.el10 baseos 25 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-12.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-20.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-2.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-23.el10 baseos 26 k centos-stream-repos noarch 10.0-23.el10 baseos 11 k coreutils-common x86_64 9.5-11.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 20260525-1.gitf5f5370.el10 baseos 96 k curl x86_64 8.12.1-6.el10 baseos 216 k cyrus-sasl-lib x86_64 2.1.28-27.el10 baseos 106 k debugedit x86_64 5.3-2.el10 appstream 87 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.195-1.el10 baseos 578 k elfutils-debuginfod-client x86_64 0.195-1.el10 baseos 44 k elfutils-default-yama-scope noarch 0.195-1.el10 baseos 8.6 k elfutils-libelf x86_64 0.195-1.el10 baseos 205 k elfutils-libs x86_64 0.195-1.el10 baseos 268 k file x86_64 5.45-12.el10 baseos 48 k file-libs x86_64 5.45-12.el10 baseos 763 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-124.el10 baseos 2.1 M glibc-common x86_64 2.39-124.el10 baseos 320 k glibc-gconv-extra x86_64 2.39-124.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-11.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-20.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.9.3-1.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-6.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-20.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-20.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-2.el10 baseos 97 k libsemanage x86_64 3.10-1.el10 baseos 122 k libsepol x86_64 3.10-2.el10 baseos 349 k libsmartcols x86_64 2.40.2-20.el10 baseos 82 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-5.el10 baseos 74 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-20.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-12.el10 baseos 691 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.13-1.el10 baseos 240 k openssl-fips-provider x86_64 1:3.5.5-3.el10 baseos 813 k openssl-libs x86_64 1:3.5.5-3.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.2.1-1.el10 baseos 958 k rust-toolset-srpm-macros noarch 1.96.0-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-26.el10 baseos 844 k util-linux-core x86_64 2.40.2-20.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 81 kB/s | 42 kB 00:00 (2/150): audit-libs-4.0.3-5.el10.x86_64.rpm 204 kB/s | 131 kB 00:00 (3/150): authselect-1.5.2-1.el10.x86_64.rpm 300 kB/s | 211 kB 00:00 (4/150): basesystem-11-22.el10.noarch.rpm 52 kB/s | 4.3 kB 00:00 (5/150): authselect-libs-1.5.2-1.el10.x86_64.rp 840 kB/s | 254 kB 00:00 (6/150): bash-5.2.26-6.el10.x86_64.rpm 4.9 MB/s | 1.8 MB 00:00 (7/150): binutils-gold-2.41-65.el10.x86_64.rpm 3.0 MB/s | 795 kB 00:00 (8/150): bzip2-libs-1.0.8-25.el10.x86_64.rpm 508 kB/s | 42 kB 00:00 (9/150): bzip2-1.0.8-25.el10.x86_64.rpm 648 kB/s | 54 kB 00:00 (10/150): centos-gpg-keys-10.0-23.el10.noarch.r 315 kB/s | 26 kB 00:00 (11/150): ca-certificates-2025.2.80_v9.0.305-10 9.6 MB/s | 1.1 MB 00:00 (12/150): binutils-2.41-65.el10.x86_64.rpm 11 MB/s | 6.4 MB 00:00 (13/150): centos-stream-release-10.0-23.el10.no 351 kB/s | 29 kB 00:00 (14/150): centos-stream-repos-10.0-23.el10.noar 140 kB/s | 11 kB 00:00 (15/150): coreutils-9.5-11.el10.x86_64.rpm 12 MB/s | 1.1 MB 00:00 (16/150): cpio-2.15-3.el10.x86_64.rpm 3.2 MB/s | 292 kB 00:00 (17/150): cracklib-2.9.11-8.el10.x86_64.rpm 1.1 MB/s | 96 kB 00:00 (18/150): coreutils-common-9.5-11.el10.x86_64.r 9.2 MB/s | 2.1 MB 00:00 (19/150): crypto-policies-20260525-1.gitf5f5370 1.1 MB/s | 96 kB 00:00 (20/150): cracklib-dicts-2.9.11-8.el10.x86_64.r 19 MB/s | 3.6 MB 00:00 (21/150): cyrus-sasl-lib-2.1.28-27.el10.x86_64. 1.2 MB/s | 106 kB 00:00 (22/150): curl-8.12.1-6.el10.x86_64.rpm 2.5 MB/s | 216 kB 00:00 (23/150): ed-1.20-5.el10.x86_64.rpm 1.0 MB/s | 83 kB 00:00 (24/150): diffutils-3.10-8.el10.x86_64.rpm 4.7 MB/s | 409 kB 00:00 (25/150): elfutils-0.195-1.el10.x86_64.rpm 5.9 MB/s | 578 kB 00:00 (26/150): elfutils-debuginfod-client-0.195-1.el 534 kB/s | 44 kB 00:00 (27/150): elfutils-default-yama-scope-0.195-1.e 105 kB/s | 8.6 kB 00:00 (28/150): elfutils-libelf-0.195-1.el10.x86_64.r 2.3 MB/s | 205 kB 00:00 (29/150): elfutils-libs-0.195-1.el10.x86_64.rpm 3.1 MB/s | 268 kB 00:00 (30/150): file-5.45-12.el10.x86_64.rpm 583 kB/s | 48 kB 00:00 (31/150): file-libs-5.45-12.el10.x86_64.rpm 7.5 MB/s | 763 kB 00:00 (32/150): findutils-4.10.0-5.el10.x86_64.rpm 6.2 MB/s | 551 kB 00:00 (33/150): gawk-5.3.0-6.el10.x86_64.rpm 10 MB/s | 1.1 MB 00:00 (34/150): gdbm-1.23-14.el10.x86_64.rpm 1.8 MB/s | 151 kB 00:00 (35/150): filesystem-3.18-17.el10.x86_64.rpm 26 MB/s | 4.8 MB 00:00 (36/150): gdbm-libs-1.23-14.el10.x86_64.rpm 690 kB/s | 57 kB 00:00 (37/150): glibc-common-2.39-124.el10.x86_64.rpm 3.7 MB/s | 320 kB 00:00 (38/150): glibc-2.39-124.el10.x86_64.rpm 20 MB/s | 2.1 MB 00:00 (39/150): glibc-gconv-extra-2.39-124.el10.x86_6 14 MB/s | 1.7 MB 00:00 (40/150): glibc-minimal-langpack-2.39-124.el10. 311 kB/s | 25 kB 00:00 (41/150): gmp-6.2.1-12.el10.x86_64.rpm 3.7 MB/s | 318 kB 00:00 (42/150): gzip-1.13-3.el10.x86_64.rpm 2.0 MB/s | 170 kB 00:00 (43/150): grep-3.11-10.el10.x86_64.rpm 3.3 MB/s | 301 kB 00:00 (44/150): info-7.1-6.el10.x86_64.rpm 2.2 MB/s | 183 kB 00:00 (45/150): jansson-2.14-3.el10.x86_64.rpm 567 kB/s | 46 kB 00:00 (46/150): json-c-0.18-3.el10.x86_64.rpm 554 kB/s | 45 kB 00:00 (47/150): keyutils-libs-1.6.3-5.el10.x86_64.rpm 399 kB/s | 33 kB 00:00 (48/150): libacl-2.3.2-4.el10.x86_64.rpm 313 kB/s | 25 kB 00:00 (49/150): libarchive-3.7.7-8.el10.x86_64.rpm 4.7 MB/s | 414 kB 00:00 (50/150): krb5-libs-1.21.3-11.el10.x86_64.rpm 7.5 MB/s | 766 kB 00:00 (51/150): libattr-2.5.2-5.el10.x86_64.rpm 235 kB/s | 19 kB 00:00 (52/150): libblkid-2.40.2-20.el10.x86_64.rpm 1.5 MB/s | 124 kB 00:00 (53/150): libbrotli-1.1.0-7.el10.x86_64.rpm 3.8 MB/s | 344 kB 00:00 (54/150): libcap-2.69-7.el10.x86_64.rpm 1.1 MB/s | 91 kB 00:00 (55/150): libcap-ng-0.9.3-1.el10.x86_64.rpm 402 kB/s | 33 kB 00:00 (56/150): libcbor-0.11.0-3.el10.x86_64.rpm 417 kB/s | 34 kB 00:00 (57/150): libcom_err-1.47.1-5.el10.x86_64.rpm 319 kB/s | 26 kB 00:00 (58/150): libcurl-8.12.1-6.el10.x86_64.rpm 4.2 MB/s | 368 kB 00:00 (59/150): libeconf-0.6.2-4.el10.x86_64.rpm 408 kB/s | 33 kB 00:00 (60/150): libevent-2.1.12-16.el10.x86_64.rpm 3.0 MB/s | 261 kB 00:00 (61/150): libfdisk-2.40.2-20.el10.x86_64.rpm 1.9 MB/s | 160 kB 00:00 (62/150): libffi-3.4.4-10.el10.x86_64.rpm 495 kB/s | 41 kB 00:00 (63/150): libfido2-1.14.0-7.el10.x86_64.rpm 1.2 MB/s | 98 kB 00:00 (64/150): libgcc-14.3.1-4.4.el10.x86_64.rpm 1.6 MB/s | 140 kB 00:00 (65/150): libgomp-14.3.1-4.4.el10.x86_64.rpm 3.9 MB/s | 363 kB 00:00 (66/150): libidn2-2.3.7-3.el10.x86_64.rpm 1.4 MB/s | 118 kB 00:00 (67/150): libmount-2.40.2-20.el10.x86_64.rpm 1.8 MB/s | 154 kB 00:00 (68/150): libnghttp2-1.68.0-4.el10.x86_64.rpm 886 kB/s | 73 kB 00:00 (69/150): libpkgconf-2.1.0-3.el10.x86_64.rpm 480 kB/s | 39 kB 00:00 (70/150): libpsl-0.21.5-6.el10.x86_64.rpm 796 kB/s | 65 kB 00:00 (71/150): libpwquality-1.4.5-12.el10.x86_64.rpm 1.4 MB/s | 123 kB 00:00 (72/150): libselinux-3.10-2.el10.x86_64.rpm 1.2 MB/s | 97 kB 00:00 (73/150): libsemanage-3.10-1.el10.x86_64.rpm 1.5 MB/s | 122 kB 00:00 (74/150): libsepol-3.10-2.el10.x86_64.rpm 3.8 MB/s | 349 kB 00:00 (75/150): libsmartcols-2.40.2-20.el10.x86_64.rp 1.0 MB/s | 82 kB 00:00 (76/150): libssh-0.12.0-2.el10.x86_64.rpm 3.2 MB/s | 276 kB 00:00 (77/150): libssh-config-0.12.0-2.el10.noarch.rp 101 kB/s | 8.2 kB 00:00 (78/150): libstdc++-14.3.1-4.4.el10.x86_64.rpm 9.9 MB/s | 919 kB 00:00 (79/150): libtasn1-4.20.0-5.el10.x86_64.rpm 910 kB/s | 74 kB 00:00 (80/150): libunistring-1.1-10.el10.x86_64.rpm 5.7 MB/s | 548 kB 00:00 (81/150): libutempter-1.2.1-15.el10.x86_64.rpm 338 kB/s | 27 kB 00:00 (82/150): libuuid-2.40.2-20.el10.x86_64.rpm 340 kB/s | 28 kB 00:00 (83/150): libverto-0.3.2-10.el10.x86_64.rpm 264 kB/s | 22 kB 00:00 (84/150): libxcrypt-4.4.36-10.el10.x86_64.rpm 1.4 MB/s | 120 kB 00:00 (85/150): libxml2-2.12.5-12.el10.x86_64.rpm 7.6 MB/s | 691 kB 00:00 (86/150): libzstd-1.5.5-9.el10.x86_64.rpm 3.2 MB/s | 292 kB 00:00 (87/150): lua-libs-5.4.8-1.el10.x86_64.rpm 1.6 MB/s | 131 kB 00:00 (88/150): lz4-libs-1.9.4-8.el10.x86_64.rpm 835 kB/s | 68 kB 00:00 (89/150): mpfr-4.2.1-8.el10.x86_64.rpm 3.8 MB/s | 346 kB 00:00 (90/150): ncurses-base-6.4-15.20240127.el10.noa 1.2 MB/s | 98 kB 00:00 (91/150): ncurses-libs-6.4-15.20240127.el10.x86 3.9 MB/s | 337 kB 00:00 (92/150): openldap-2.6.13-1.el10.x86_64.rpm 2.7 MB/s | 240 kB 00:00 (93/150): openssl-fips-provider-3.5.5-3.el10.x8 8.6 MB/s | 813 kB 00:00 (94/150): openssl-libs-3.5.5-3.el10.x86_64.rpm 21 MB/s | 2.3 MB 00:00 (95/150): p11-kit-0.26.2-1.el10.x86_64.rpm 5.8 MB/s | 558 kB 00:00 (96/150): p11-kit-trust-0.26.2-1.el10.x86_64.rp 1.7 MB/s | 140 kB 00:00 (97/150): pam-1.6.1-10.el10.x86_64.rpm 6.5 MB/s | 584 kB 00:00 (98/150): pam-libs-1.6.1-10.el10.x86_64.rpm 677 kB/s | 56 kB 00:00 (99/150): pcre2-10.44-1.el10.3.x86_64.rpm 2.9 MB/s | 248 kB 00:00 (100/150): pcre2-syntax-10.44-1.el10.3.noarch.r 1.8 MB/s | 151 kB 00:00 (101/150): pkgconf-2.1.0-3.el10.x86_64.rpm 543 kB/s | 45 kB 00:00 (102/150): pkgconf-m4-2.1.0-3.el10.noarch.rpm 184 kB/s | 15 kB 00:00 (103/150): pkgconf-pkg-config-2.1.0-3.el10.x86_ 132 kB/s | 11 kB 00:00 (104/150): popt-1.19-8.el10.x86_64.rpm 789 kB/s | 66 kB 00:00 (105/150): publicsuffix-list-dafsa-20240107-5.e 726 kB/s | 59 kB 00:00 (106/150): readline-8.2-11.el10.x86_64.rpm 2.5 MB/s | 214 kB 00:00 (107/150): rpm-4.19.1.1-23.el10.x86_64.rpm 5.8 MB/s | 560 kB 00:00 (108/150): rpm-build-libs-4.19.1.1-23.el10.x86_ 1.1 MB/s | 92 kB 00:00 (109/150): rpm-libs-4.19.1.1-23.el10.x86_64.rpm 3.6 MB/s | 309 kB 00:00 (110/150): sed-4.9-5.el10.x86_64.rpm 3.7 MB/s | 318 kB 00:00 (111/150): rpm-sequoia-1.10.2.1-1.el10.x86_64.r 8.9 MB/s | 958 kB 00:00 (112/150): setup-2.14.5-7.el10.noarch.rpm 1.8 MB/s | 153 kB 00:00 (113/150): shadow-utils-4.15.0-12.el10.x86_64.r 14 MB/s | 1.3 MB 00:00 (114/150): sqlite-libs-3.46.1-5.el10.x86_64.rpm 7.3 MB/s | 745 kB 00:00 (115/150): systemd-libs-257-26.el10.x86_64.rpm 9.1 MB/s | 844 kB 00:00 (116/150): tar-1.35-11.el10.x86_64.rpm 9.4 MB/s | 866 kB 00:00 (117/150): unzip-6.0-69.el10.x86_64.rpm 2.2 MB/s | 190 kB 00:00 (118/150): util-linux-2.40.2-20.el10.x86_64.rpm 13 MB/s | 1.3 MB 00:00 (119/150): util-linux-core-2.40.2-20.el10.x86_6 6.2 MB/s | 550 kB 00:00 (120/150): which-2.21-44.el10.x86_64.rpm 512 kB/s | 42 kB 00:00 (121/150): xz-5.6.2-4.el10.x86_64.rpm 5.4 MB/s | 481 kB 00:00 (122/150): xz-libs-5.6.2-4.el10.x86_64.rpm 1.4 MB/s | 113 kB 00:00 (123/150): zip-3.0-45.el10.x86_64.rpm 3.0 MB/s | 270 kB 00:00 (124/150): zlib-ng-compat-2.2.3-3.el10.x86_64.r 934 kB/s | 76 kB 00:00 (125/150): zstd-1.5.5-9.el10.x86_64.rpm 5.3 MB/s | 464 kB 00:00 (126/150): efi-srpm-macros-6-8.el10.noarch.rpm 32 kB/s | 23 kB 00:00 (127/150): debugedit-5.3-2.el10.x86_64.rpm 71 kB/s | 87 kB 00:01 (128/150): fonts-srpm-macros-2.0.5-18.el10.noar 50 kB/s | 27 kB 00:00 (129/150): dwz-0.16-1.el10.x86_64.rpm 93 kB/s | 140 kB 00:01 (130/150): forge-srpm-macros-0.4.0-6.el10.noarc 69 kB/s | 21 kB 00:00 (131/150): go-srpm-macros-3.8.0-1.el10.noarch.r 129 kB/s | 27 kB 00:00 (132/150): kernel-srpm-macros-1.0-27.el10.noarc 41 kB/s | 8.7 kB 00:00 (133/150): lua-srpm-macros-1-15.el10.noarch.rpm 26 kB/s | 9.8 kB 00:00 (134/150): ocaml-srpm-macros-10-4.el10.noarch.r 26 kB/s | 10 kB 00:00 (135/150): openblas-srpm-macros-2-19.el10.noarc 32 kB/s | 8.7 kB 00:00 (136/150): gdb-minimal-16.3-3.el10.x86_64.rpm 4.1 MB/s | 4.4 MB 00:01 (137/150): package-notes-srpm-macros-0.5-13.el1 39 kB/s | 10 kB 00:00 (138/150): perl-srpm-macros-1-57.el10.noarch.rp 4.7 kB/s | 9.5 kB 00:02 (139/150): pyproject-srpm-macros-1.18.5-1.el10. 6.5 kB/s | 13 kB 00:02 (140/150): patch-2.7.6-26.el10.x86_64.rpm 37 kB/s | 132 kB 00:03 (141/150): python-srpm-macros-3.12-11.el10.noar 15 kB/s | 22 kB 00:01 (142/150): qt6-srpm-macros-6.10.1-1.el10.noarch 5.9 kB/s | 9.1 kB 00:01 (143/150): redhat-rpm-config-295-1.el10.noarch. 25 kB/s | 74 kB 00:03 (144/150): rust-toolset-srpm-macros-1.96.0-1.el 3.4 kB/s | 10 kB 00:03 (145/150): R-srpm-macros-1.3.7-2.el10_3.noarch. 993 kB/s | 11 kB 00:00 (146/150): ansible-srpm-macros-1-21.el10_3.noar 1.4 MB/s | 20 kB 00:00 (147/150): epel-rpm-macros-10-7.el10_3.noarch.r 1.8 MB/s | 8.4 kB 00:00 (148/150): ghc-srpm-macros-1.9.2-1.el10_0.noarc 3.4 MB/s | 9.1 kB 00:00 (149/150): fpc-srpm-macros-1.3-7.el10_1.noarch. 1.8 MB/s | 7.8 kB 00:00 (150/150): rpm-build-4.19.1.1-23.el10.x86_64.rp 24 kB/s | 75 kB 00:03 -------------------------------------------------------------------------------- Total 4.4 MB/s | 61 MB 00:13 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.96.0-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-11.el10.x86_64 17/150 Installing : centos-gpg-keys-10.0-23.el10.noarch 18/150 Installing : centos-stream-repos-10.0-23.el10.noarch 19/150 Installing : centos-stream-release-10.0-23.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-124.el10.x86_64 24/150 Running scriptlet: glibc-gconv-extra-2.39-124.el10.x86_64 24/150 Installing : glibc-minimal-langpack-2.39-124.el10.x86_64 25/150 Installing : glibc-common-2.39-124.el10.x86_64 26/150 Running scriptlet: glibc-2.39-124.el10.x86_64 27/150 Installing : glibc-2.39-124.el10.x86_64 27/150 Running scriptlet: glibc-2.39-124.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-20.el10.x86_64 35/150 Installing : popt-1.19-8.el10.x86_64 36/150 Installing : libblkid-2.40.2-20.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.195-1.el10.x86_64 43/150 Running scriptlet: crypto-policies-20260525-1.gitf5f5370.el10.noarc 44/150 Installing : crypto-policies-20260525-1.gitf5f5370.el10.noarc 44/150 Running scriptlet: crypto-policies-20260525-1.gitf5f5370.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-12.el10.x86_64 51/150 Installing : file-5.45-12.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.9.3-1.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-26.el10.x86_64 59/150 Installing : libffi-3.4.4-10.el10.x86_64 60/150 Installing : libsepol-3.10-2.el10.x86_64 61/150 Installing : libsmartcols-2.40.2-20.el10.x86_64 62/150 Installing : libtasn1-4.20.0-5.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-2.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-20.el10.x86_64 74/150 Installing : util-linux-core-2.40.2-20.el10.x86_64 75/150 Installing : libsemanage-3.10-1.el10.x86_64 76/150 Installing : shadow-utils-2:4.15.0-12.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-3.el10.x86_64 84/150 Installing : openssl-libs-1:3.5.5-3.el10.x86_64 85/150 Installing : coreutils-9.5-11.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.2.1-1.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.13-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-20.el10.x86_64 100/150 Installing : libxml2-2.12.5-12.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.195-1.el10.noarch 108/150 Running scriptlet: elfutils-default-yama-scope-0.195-1.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-11.el10.x86_64 123/150 Installing : libssh-0.12.0-2.el10.x86_64 124/150 Installing : libcurl-8.12.1-6.el10.x86_64 125/150 Installing : elfutils-libs-0.195-1.el10.x86_64 126/150 Installing : elfutils-debuginfod-client-0.195-1.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.195-1.el10.x86_64 130/150 Installing : gdb-minimal-16.3-3.el10.x86_64 131/150 Installing : debugedit-5.3-2.el10.x86_64 132/150 Installing : rpm-build-libs-4.19.1.1-23.el10.x86_64 133/150 Installing : curl-8.12.1-6.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-2.el10_3.noarch 145/150 Installing : epel-rpm-macros-10-7.el10_3.noarch 146/150 Installing : util-linux-2.40.2-20.el10.x86_64 147/150 Running scriptlet: util-linux-2.40.2-20.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-2.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-23.el10.noarch centos-stream-release-10.0-23.el10.noarch centos-stream-repos-10.0-23.el10.noarch coreutils-9.5-11.el10.x86_64 coreutils-common-9.5-11.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-20260525-1.gitf5f5370.el10.noarch curl-8.12.1-6.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.3-2.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.195-1.el10.x86_64 elfutils-debuginfod-client-0.195-1.el10.x86_64 elfutils-default-yama-scope-0.195-1.el10.noarch elfutils-libelf-0.195-1.el10.x86_64 elfutils-libs-0.195-1.el10.x86_64 epel-rpm-macros-10-7.el10_3.noarch file-5.45-12.el10.x86_64 file-libs-5.45-12.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-124.el10.x86_64 glibc-common-2.39-124.el10.x86_64 glibc-gconv-extra-2.39-124.el10.x86_64 glibc-minimal-langpack-2.39-124.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-11.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-20.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.9.3-1.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-6.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-20.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-20.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-2.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-2.el10.x86_64 libsmartcols-2.40.2-20.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-5.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-20.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-12.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.13-1.el10.x86_64 openssl-fips-provider-1:3.5.5-3.el10.x86_64 openssl-libs-1:3.5.5-3.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.2.1-1.el10.x86_64 rust-toolset-srpm-macros-1.96.0-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-2:4.15.0-12.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-26.el10.x86_64 tar-2:1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-20.el10.x86_64 util-linux-core-2.40.2-20.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-2.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-23.el10.noarch centos-stream-release-10.0-23.el10.noarch centos-stream-repos-10.0-23.el10.noarch coreutils-9.5-11.el10.x86_64 coreutils-common-9.5-11.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-20260525-1.gitf5f5370.el10.noarch curl-8.12.1-6.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.3-2.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.195-1.el10.x86_64 elfutils-debuginfod-client-0.195-1.el10.x86_64 elfutils-default-yama-scope-0.195-1.el10.noarch elfutils-libelf-0.195-1.el10.x86_64 elfutils-libs-0.195-1.el10.x86_64 epel-rpm-macros-10-7.el10_3.noarch file-5.45-12.el10.x86_64 file-libs-5.45-12.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-124.el10.x86_64 glibc-common-2.39-124.el10.x86_64 glibc-gconv-extra-2.39-124.el10.x86_64 glibc-minimal-langpack-2.39-124.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-11.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-20.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.9.3-1.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-6.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-20.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-20.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-2.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-2.el10.x86_64 libsmartcols-2.40.2-20.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-5.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-20.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-12.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.13-1.el10.x86_64 openssl-fips-provider-3.5.5-3.el10.x86_64 openssl-libs-3.5.5-3.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.2.1-1.el10.x86_64 rust-toolset-srpm-macros-1.96.0-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-4.15.0-12.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-26.el10.x86_64 tar-1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-20.el10.x86_64 util-linux-core-2.40.2-20.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-1.0.0-20260619.0.gitf68c7ee1.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-1782100014.794805/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1782100014.794805/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1782100014.794805/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-8llfcrh4/pyrtl/pyrtl.spec) Config(child) 0 minutes 47 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-1.0.0-20260619.0.gitf68c7ee1.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-1782100014.794805/root. INFO: reusing tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1782100014.794805/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-1782100014.794805/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.2.1-1.el10.x86_64 python3-dnf-4.20.0-24.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-24.el10.noarch Finish: chroot init Start: build phase for pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm Start: build setup for pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 9.5 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 1.4 MB/s | 25 kB 00:00 CentOS Stream 10 - AppStream 1.3 MB/s | 25 kB 00:00 CentOS Stream 10 - CRB 1.0 MB/s | 24 kB 00:00 CentOS Stream 10 - Extras packages 1.5 MB/s | 28 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 905 kB/s | 23 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.13-2.el10 baseos 28 k python3-hatch-vcs noarch 0.4.0-6.el10_0 epel 23 k python3-pip noarch 23.3.2-11.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.13-2.el10 baseos 9.5 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-11.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 2026b-1.el10 baseos 904 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 104 kB/s | 120 kB 00:01 (2/94): less-661-3.el10.x86_64.rpm 148 kB/s | 191 kB 00:01 (3/94): libedit-3.1-52.20230828cvs.el10.x86_64. 478 kB/s | 106 kB 00:00 (4/94): mpdecimal-2.5.1-12.el10.x86_64.rpm 439 kB/s | 90 kB 00:00 (5/94): groff-base-1.23.0-10.el10.x86_64.rpm 657 kB/s | 1.1 MB 00:01 (6/94): make-4.4.1-9.el10.x86_64.rpm 1.0 MB/s | 587 kB 00:00 (7/94): openssh-9.9p1-26.el10.x86_64.rpm 1.8 MB/s | 353 kB 00:00 (8/94): ncurses-6.4-15.20240127.el10.x86_64.rpm 1.0 MB/s | 420 kB 00:00 (9/94): perl-Carp-1.54-511.el10.noarch.rpm 149 kB/s | 30 kB 00:00 (10/94): perl-Data-Dumper-2.189-512.el10.x86_64 285 kB/s | 57 kB 00:00 (11/94): openssh-clients-9.9p1-26.el10.x86_64.r 2.0 MB/s | 768 kB 00:00 (12/94): perl-Digest-1.20-511.el10.noarch.rpm 117 kB/s | 26 kB 00:00 (13/94): perl-Digest-MD5-2.59-6.el10.x86_64.rpm 195 kB/s | 37 kB 00:00 (14/94): perl-Encode-3.21-511.el10.x86_64.rpm 5.1 MB/s | 1.1 MB 00:00 (15/94): perl-Exporter-5.78-511.el10.noarch.rpm 158 kB/s | 32 kB 00:00 (16/94): perl-File-Temp-0.231.100-512.el10.noar 274 kB/s | 60 kB 00:00 (17/94): perl-Getopt-Long-2.58-3.el10.noarch.rp 319 kB/s | 65 kB 00:00 (18/94): perl-HTTP-Tiny-0.088-512.el10.noarch.r 274 kB/s | 57 kB 00:00 (19/94): perl-IO-Socket-IP-0.42-512.el10.noarch 224 kB/s | 43 kB 00:00 (20/94): perl-IO-Socket-SSL-2.085-3.el10.noarch 1.1 MB/s | 227 kB 00:00 (21/94): perl-MIME-Base64-3.16-511.el10.x86_64. 163 kB/s | 31 kB 00:00 (22/94): perl-Mozilla-CA-20231213-5.el10.noarch 74 kB/s | 15 kB 00:00 (23/94): perl-PathTools-3.91-512.el10.x86_64.rp 461 kB/s | 85 kB 00:00 (24/94): perl-Pod-Escapes-1.07-511.el10.noarch. 101 kB/s | 21 kB 00:00 (25/94): perl-Pod-Perldoc-3.28.01-512.el10.noar 438 kB/s | 84 kB 00:00 (26/94): perl-Pod-Simple-3.45-511.el10.noarch.r 1.2 MB/s | 218 kB 00:00 (27/94): perl-Pod-Usage-2.03-511.el10.noarch.rp 200 kB/s | 41 kB 00:00 (28/94): perl-Scalar-List-Utils-1.63-511.el10.x 386 kB/s | 74 kB 00:00 (29/94): perl-Socket-2.038-511.el10.x86_64.rpm 303 kB/s | 56 kB 00:00 (30/94): perl-Storable-3.32-511.el10.x86_64.rpm 495 kB/s | 99 kB 00:00 (31/94): perl-Term-ANSIColor-5.01-512.el10.noar 238 kB/s | 49 kB 00:00 (32/94): perl-Term-Cap-1.18-511.el10.noarch.rpm 118 kB/s | 23 kB 00:00 (33/94): perl-Text-ParseWords-3.31-511.el10.noa 86 kB/s | 17 kB 00:00 (34/94): perl-Time-Local-1.350-511.el10.noarch. 185 kB/s | 35 kB 00:00 (35/94): perl-Text-Tabs+Wrap-2024.001-511.el10. 102 kB/s | 23 kB 00:00 (36/94): perl-constant-1.33-512.el10.noarch.rpm 121 kB/s | 24 kB 00:00 (37/94): perl-URI-5.27-3.el10.noarch.rpm 614 kB/s | 134 kB 00:00 (38/94): perl-libnet-3.15-512.el10.noarch.rpm 658 kB/s | 127 kB 00:00 (39/94): perl-parent-0.241-512.el10.noarch.rpm 83 kB/s | 16 kB 00:00 (40/94): python3-3.12.13-2.el10.x86_64.rpm 146 kB/s | 28 kB 00:00 (41/94): perl-podlators-5.01-511.el10.noarch.rp 620 kB/s | 124 kB 00:00 (42/94): python3-packaging-24.2-2.el10.noarch.r 662 kB/s | 153 kB 00:00 (43/94): python3-pip-wheel-23.3.2-11.el10.noarc 3.5 MB/s | 1.5 MB 00:00 (44/94): python3-pyparsing-3.1.1-7.el10.noarch. 1.3 MB/s | 269 kB 00:00 (45/94): python3-setuptools-69.0.3-12.el10.noar 7.4 MB/s | 1.6 MB 00:00 (46/94): python3-typing-extensions-4.9.0-6.el10 365 kB/s | 78 kB 00:00 (47/94): python3-libs-3.12.13-2.el10.x86_64.rpm 12 MB/s | 9.5 MB 00:00 (48/94): tzdata-2026b-1.el10.noarch.rpm 3.5 MB/s | 904 kB 00:00 (49/94): git-2.52.0-1.el10.x86_64.rpm 30 kB/s | 40 kB 00:01 (50/94): perl-AutoLoader-5.74-514.el10.noarch.r 76 kB/s | 22 kB 00:00 (51/94): perl-B-1.89-514.el10.x86_64.rpm 211 kB/s | 178 kB 00:00 (52/94): perl-Class-Struct-0.68-514.el10.noarch 81 kB/s | 23 kB 00:00 (53/94): perl-DynaLoader-1.56-514.el10.x86_64.r 94 kB/s | 27 kB 00:00 (54/94): git-core-2.52.0-1.el10.x86_64.rpm 1.7 MB/s | 5.1 MB 00:03 (55/94): perl-Errno-1.38-514.el10.x86_64.rpm 54 kB/s | 16 kB 00:00 (56/94): git-core-doc-2.52.0-1.el10.noarch.rpm 1.0 MB/s | 3.2 MB 00:03 (57/94): perl-Error-0.17029-18.el10.noarch.rpm 142 kB/s | 42 kB 00:00 (58/94): perl-Fcntl-1.18-514.el10.x86_64.rpm 112 kB/s | 30 kB 00:00 (59/94): perl-File-Basename-2.86-514.el10.noarc 67 kB/s | 18 kB 00:00 (60/94): perl-File-Path-2.18-512.el10.noarch.rp 119 kB/s | 35 kB 00:00 (61/94): perl-File-stat-1.14-514.el10.noarch.rp 66 kB/s | 18 kB 00:00 (62/94): perl-FileHandle-2.05-514.el10.noarch.r 61 kB/s | 16 kB 00:00 (63/94): perl-Getopt-Std-1.14-514.el10.noarch.r 60 kB/s | 16 kB 00:00 (64/94): perl-Git-2.52.0-1.el10.noarch.rpm 136 kB/s | 37 kB 00:00 (65/94): perl-IO-1.55-514.el10.x86_64.rpm 263 kB/s | 81 kB 00:00 (66/94): perl-IPC-Open3-1.22-514.el10.noarch.rp 75 kB/s | 23 kB 00:00 (67/94): perl-POSIX-2.20-514.el10.x86_64.rpm 321 kB/s | 97 kB 00:00 (68/94): perl-SelectSaver-1.02-514.el10.noarch. 43 kB/s | 12 kB 00:00 (69/94): perl-Net-SSLeay-1.94-9.el10.x86_64.rpm 668 kB/s | 377 kB 00:00 (70/94): perl-Symbol-1.09-514.el10.noarch.rpm 56 kB/s | 15 kB 00:00 (71/94): perl-TermReadKey-2.38-24.el10.x86_64.r 135 kB/s | 37 kB 00:00 (72/94): perl-base-2.27-514.el10.noarch.rpm 57 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-interpreter-5.40.2-514.el10.x86_6 251 kB/s | 73 kB 00:00 (75/94): perl-lib-0.65-514.el10.x86_64.rpm 56 kB/s | 16 kB 00:00 (76/94): perl-locale-1.12-514.el10.noarch.rpm 53 kB/s | 14 kB 00:00 (77/94): perl-mro-1.29-514.el10.x86_64.rpm 102 kB/s | 31 kB 00:00 (78/94): perl-libs-5.40.2-514.el10.x86_64.rpm 4.1 MB/s | 2.4 MB 00:00 (79/94): perl-overload-1.37-514.el10.noarch.rpm 164 kB/s | 46 kB 00:00 (80/94): perl-overloading-0.02-514.el10.noarch. 50 kB/s | 14 kB 00:00 (81/94): perl-vars-1.05-514.el10.noarch.rpm 48 kB/s | 14 kB 00:00 (82/94): python-rpm-macros-3.12-11.el10.noarch. 51 kB/s | 16 kB 00:00 (83/94): python3-rpm-macros-3.12-11.el10.noarch 37 kB/s | 11 kB 00:00 (84/94): python3-pip-23.3.2-11.el10.noarch.rpm 3.5 MB/s | 3.2 MB 00:00 (85/94): pyproject-rpm-macros-1.18.5-1.el10.noa 62 kB/s | 44 kB 00:00 (86/94): python3-iniconfig-1.1.1-18.el10.noarch 101 kB/s | 19 kB 00:00 (87/94): python3-pathspec-0.12.1-5.el10.noarch. 139 kB/s | 60 kB 00:00 (88/94): python3-hatchling-1.27.0-1.el10.noarch 246 kB/s | 239 kB 00:00 (89/94): python3-setuptools_scm-8.0.4-7.el10.no 587 kB/s | 117 kB 00:00 (90/94): python3-pluggy-1.3.0-5.el10.noarch.rpm 100 kB/s | 53 kB 00:00 (91/94): python3-trove-classifiers-2025.9.11.17 142 kB/s | 28 kB 00:00 (92/94): python3-hatch-vcs-0.4.0-6.el10_0.noarc 2.0 MB/s | 23 kB 00:00 (93/94): python3-pytest-7.4.3-5.el10.noarch.rpm 1.4 MB/s | 756 kB 00:00 (94/94): python3-wheel-0.41.2-6.el10.noarch.rpm 466 kB/s | 165 kB 00:00 -------------------------------------------------------------------------------- Total 2.9 MB/s | 37 MB 00:12 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-2026b-1.el10.noarch 4/94 Installing : python3-pip-wheel-23.3.2-11.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.13-2.el10.x86_64 9/94 Installing : python3-libs-3.12.13-2.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-11.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.13-2.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.13-2.el10.x86_64 python3-packaging-24.2-2.el10.noarch python3-pathspec-0.12.1-5.el10.noarch python3-pip-23.3.2-11.el10.noarch python3-pip-wheel-23.3.2-11.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-2026b-1.el10.noarch Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 9.6 kB/s | 1.5 kB 00:00 Copr repository 127 kB/s | 74 kB 00:00 CentOS Stream 10 - BaseOS 1.3 MB/s | 25 kB 00:00 CentOS Stream 10 - AppStream 1.4 MB/s | 25 kB 00:00 CentOS Stream 10 - CRB 1.2 MB/s | 24 kB 00:00 CentOS Stream 10 - Extras packages 1.5 MB/s | 28 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 1.1 MB/s | 23 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.13-2.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-11.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-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm Start: rpmbuild pyrtl-1.0.0-20260619.0.gitf68c7ee1.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.u4kCPl + 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 f68c7ee1361b373ed69cff9fd5301c69d6862134 From https://github.com/UCSBarchlab/PyRTL * branch f68c7ee1361b373ed69cff9fd5301c69d6862134 -> FETCH_HEAD + git reset --hard f68c7ee1361b373ed69cff9fd5301c69d6862134 HEAD is now at f68c7ee Add doctest examples for `output_to_verilog`, `output_verilog_testbench`, and `output_to_firrtl`. Also: + git log --format=fuller commit f68c7ee1361b373ed69cff9fd5301c69d6862134 Author: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> AuthorDate: Fri Jun 19 08:03:31 2026 -0700 Commit: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> CommitDate: Fri Jun 19 08:44:05 2026 -0700 Add doctest examples for `output_to_verilog`, `output_verilog_testbench`, and `output_to_firrtl`. Also: * Add an example for `input_from_verilog`, which can't be a doctest because it requires yosys. * Update `output_to_firrtl` to use `print` instead of `write` so it can be doctested. * Minor documentation improvements for `print_vcd`, `trace_to_json`. * Improve some type hints. + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.4THZpp + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/pyrtl-1.0.0-20260619.0.gitf68c7ee1.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 9.7 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 1.4 MB/s | 25 kB 00:00 CentOS Stream 10 - AppStream 1.4 MB/s | 25 kB 00:00 CentOS Stream 10 - CRB 1.2 MB/s | 24 kB 00:00 CentOS Stream 10 - Extras packages 1.1 MB/s | 28 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 1.1 MB/s | 23 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.13-2.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-11.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.P3OHNr + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.vq9doW + 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+gf68c7ee-py3-none-any.whl size=214072 sha256=4da36e708fdc70e2be3db461e6df600b21b5ebc4f56b7a10782b73f0e87cd09b Stored in directory: /builddir/build/BUILD/pyrtl/.pyproject-builddir/pip-ephem-wheel-cache-kzh8f9la/wheels/01/79/a0/2ccfc8786038f5feb00217f0dae0e258e92db79b5264c8aa03 Successfully built pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.essf1H + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.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+gf68c7ee-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ xargs basename --multiple + specifier=pyrtl==0.1.dev1+gf68c7ee + '[' -z pyrtl==0.1.dev1+gf68c7ee ']' + TMPDIR=/builddir/build/BUILD/pyrtl/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.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+gf68c7ee 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+gf68c7ee-py3-none-any.whl Installing collected packages: pyrtl Successfully installed pyrtl-0.1.dev1+gf68c7ee + '[' -d /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64$site_dir/*.dist-info + echo '%ghost %dir /usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.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-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 --record /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info/RECORD --output /builddir/build/BUILD/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info/RECORD removed '/builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+gf68c7ee.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64//usr/lib/python3.12/site-packages/tests + /usr/bin/find-debuginfo -j2 --strict-build-id -m -i --build-id-seed 1.0.0-20260619.0.gitf68c7ee1.el10 --unique-debug-suffix -1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 --unique-debug-src-base pyrtl-1.0.0-20260619.0.gitf68c7ee1.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 -j2 Bytecompiling .py files below /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.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.fjZSmY + 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-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/lib/python3.12/site-packages + python3 -m pytest -vv tests ============================= test session starts ============================== platform linux -- Python 3.12.13, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/pyrtl collecting ... collected 1279 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 [ 2%] 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 [ 3%] 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 [ 5%] 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 [ 6%] 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 [ 7%] tests/test_core.py::TestLogicNets::test_memory_write_print PASSED [ 7%] 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 [ 8%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] FAILED [ 8%] 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 [ 9%] 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 [ 10%] tests/test_helperfuncs.py::TestDocTests::test_helperfuncs_doctests PASSED [ 10%] 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 [ 11%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_no_ones_in_pattern PASSED [ 11%] 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 [ 12%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_bitpattern_field_not_provided PASSED [ 12%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_both_ordered_and_named_fields PASSED [ 12%] 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 [ 13%] tests/test_helperfuncs.py::TestChop::test_wrong_input_types_fail PASSED [ 13%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield PASSED [ 13%] 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 [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_overlapping_ranges PASSED [ 14%] 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 [ 15%] tests/test_helperfuncs.py::TestMux::test_mux_enough_inputs_with_default PASSED [ 15%] tests/test_helperfuncs.py::TestMux::test_mux_not_enough_inputs PASSED [ 15%] 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 [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_simple_probe_debug PASSED [ 16%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla PASSED [ 16%] 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 [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_integer_shift_amount PASSED [ 17%] 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 [ 18%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_fastsimulation PASSED [ 18%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_simulation PASSED [ 18%] tests/test_helperfuncs.py::TestRtlAssert::test_bad_type PASSED [ 18%] 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 [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_reg_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_special_ops PASSED [ 19%] 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_delayed_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_delayed_conditional_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_delayed_conditional_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_delayed_slice 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::TestWireStruct::test_underscore_value_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_delayed_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_delayed_conditional_concatenate PASSED [ 21%] tests/test_helperfuncs.py::TestWireMatrix::test_delayed_conditional_slice PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_delayed_slice PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_composition_cached_data PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_composition_dword PASSED [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_wire_matrix_concatenate PASSED [ 22%] 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 [ 23%] tests/test_helperfuncs.py::TestBinaryToOneHot::test_simple_binary_to_one_hot PASSED [ 23%] tests/test_helperfuncs.py::TestBinaryToOneHot::test_with_max_bitwidth PASSED [ 23%] tests/test_importexport.py::TestDocTests::test_doctests PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_and_gate_correct PASSED [ 23%] tests/test_importexport.py::TestInputFromBlif::test_blif_error_bad_coverset PASSED [ 23%] 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 [ 24%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_clock_passing PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_multiple_modules_merged_io PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_multiple_modules_unmerged_io PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_blif_with_output_as_arg PASSED [ 24%] tests/test_importexport.py::TestInputFromBlif::test_blif_xor_gate_correct PASSED [ 24%] 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 [ 25%] tests/test_importexport.py::TestVerilogOutput::test_error_existing_reset_wire PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_error_invalid_add_reset PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_existing_reset_wire_without_add_reset PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_mems_with_no_writes PASSED [ 25%] tests/test_importexport.py::TestVerilogOutput::test_register_reset_value PASSED [ 25%] 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 [ 26%] tests/test_importexport.py::TestVerilogInput::test_import_counter_with_reset SKIPPED [ 26%] tests/test_importexport.py::TestVerilogInput::test_import_multi_module_auto_select_top_module SKIPPED [ 26%] tests/test_importexport.py::TestVerilogInput::test_import_multi_module_specified_module SKIPPED [ 26%] tests/test_importexport.py::TestVerilogInput::test_import_small SKIPPED [ 26%] 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 [ 27%] tests/test_importexport.py::TestOutputFirrtl::test_textual_consistency_selects PASSED [ 27%] tests/test_importexport.py::TestInputISCASBench::test_bench_with_same_io_name PASSED [ 27%] tests/test_importexport.py::TestInputISCASBench::test_combinational_bench PASSED [ 27%] tests/test_importexport.py::TestInputISCASBench::test_sequential_bench PASSED [ 27%] 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 [ 28%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_to_memblock_direct_operation PASSED [ 28%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_with_write_enable_with_equalsign PASSED [ 28%] tests/test_memblock.py::RTLMemBlockDesignBase::test_over_max_read_ports PASSED [ 28%] tests/test_memblock.py::RTLMemBlockDesignBase::test_over_max_write_ports PASSED [ 28%] 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 [ 29%] tests/test_memblock.py::MemIndexedTests::test_memindexed_name PASSED [ 29%] tests/test_memblock.py::MemIndexedTests::test_memindexed_sign_extended PASSED [ 29%] tests/test_memblock.py::MemIndexedTests::test_memindexed_zero_extended PASSED [ 29%] tests/test_memblock.py::MemIndexedTests::test_read_memindexed_ilshift PASSED [ 29%] 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 [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_build_new_roms PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_address PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_address_types PASSED [ 30%] tests/test_memblock.py::RTLRomGetReadData::test_invalid_value_function PASSED [ 30%] 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 [ 31%] tests/test_passes.py::TestSynthesis::test_minus_simulation2 PASSED [ 31%] tests/test_passes.py::TestSynthesis::test_mux_simulation PASSED [ 31%] tests/test_passes.py::TestSynthesis::test_not_simulation PASSED [ 31%] 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 [ 32%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_unmerged_io_simulates_correctly PASSED [ 32%] tests/test_passes.py::TestMultiplierSynthesis::test_chained_mul PASSED [ 32%] tests/test_passes.py::TestMultiplierSynthesis::test_single_mul PASSED [ 32%] 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 [ 33%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_5_inverts PASSED [ 33%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_6_inverts PASSED [ 33%] tests/test_passes.py::TestOptimization::test_slice_net_removal_1 PASSED [ 33%] 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 [ 34%] tests/test_passes.py::TestConstFolding::test_basic_two_var_op_2 PASSED [ 34%] tests/test_passes.py::TestConstFolding::test_basic_two_var_op_3 PASSED [ 34%] tests/test_passes.py::TestConstFolding::test_two_var_op_correct_not_wire_replacement PASSED [ 34%] 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 [ 35%] tests/test_passes.py::TestSubexpElimination::test_nested_elimination PASSED [ 35%] tests/test_passes.py::TestSubexpElimination::test_no_elimination_of_different_const_bitwidths PASSED [ 35%] tests/test_passes.py::TestSubexpElimination::test_order_dependent_ops PASSED [ 35%] 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 [ 36%] tests/test_passes.py::TestSynthOptTiming::test_combo_1 PASSED [ 36%] tests/test_passes.py::TestSynthOptTiming::test_const_folding_complex_1 PASSED [ 36%] 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 [ 37%] tests/test_passes.py::TestTwoWayFanout::test_two_way_fanout_large_design PASSED [ 37%] tests/test_passes.py::TestTwoWayFanout::test_two_way_fanout_medium_design PASSED [ 37%] 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 [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_lt PASSED [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_lte PASSED [ 38%] 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 [ 39%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_neg_integer PASSED [ 39%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_signed_const PASSED [ 39%] 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 [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_verilogbig_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_veriloghuge2_simulation PASSED [ 40%] 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 [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_xor_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_and_simulation PASSED [ 41%] 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 [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_minus_simulation PASSED [ 42%] 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 [ 43%] tests/test_simulation.py::TestRenderTraceSimulation::test_oct_trace PASSED [ 43%] tests/test_simulation.py::TestRenderTraceFastSimulation::test_bin_trace PASSED [ 43%] 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_state_register 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 [ 44%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_state_register PASSED [ 44%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_val_to_signed_integer PASSED [ 44%] tests/test_simulation.py::TestPrintTraceSimulation::test_print_trace_base16 PASSED [ 44%] 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 [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_default_value_for_registers_without_reset_value PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_fastsim_wire_names PASSED [ 45%] tests/test_simulation.py::TestSimWithSpecialWiresSimulation::test_named_consts PASSED [ 45%] 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 [ 46%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_reset_value_overridden_in_simulation PASSED [ 46%] tests/test_simulation.py::TestSimWithSpecialWiresFastSimulation::test_weird_wire_names PASSED [ 46%] tests/test_simulation.py::TestSimInputValidationSimulation::test_input_out_of_bitwidth PASSED [ 46%] 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 [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_errors PASSED [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_no_errors_nsteps_specified PASSED [ 47%] 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 [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_many_errors_report_only_first PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_errors PASSED [ 48%] tests/test_simulation.py::TestSimStepMultipleFastSimulation::test_step_multiple_no_errors_nsteps_specified PASSED [ 48%] 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 [ 49%] tests/test_simulation.py::TestSimTraceWithMuxSimulation::test_adder_simulation PASSED [ 49%] tests/test_simulation.py::TestSimTraceWithMuxFastSimulation::test_adder_simulation PASSED [ 49%] 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 [ 50%] tests/test_simulation.py::TestMemBlockLargeFastSimulation::test_mem_blocks_very_large PASSED [ 50%] tests/test_simulation.py::TestRegisterDefaultsSimulation::test_default_value PASSED [ 50%] 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 [ 51%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_function_RomBlock PASSED [ 51%] tests/test_simulation.py::TestRomBlockSimFastSimulation::test_function_RomBlock_with_optimization PASSED [ 51%] 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 [ 52%] tests/test_simulation.py::TestInspectFastSimulation::test_inspect PASSED [ 52%] 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 [ 53%] tests/test_transform.py::TestCopyBlock::test_blank PASSED [ 53%] tests/test_transform.py::TestCopyBlock::test_block PASSED [ 53%] 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 [ 54%] tests/test_transform.py::TestCloning::test_same_type PASSED [ 54%] tests/test_visualization.py::TestDocTests::test_doctests FAILED [ 54%] 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_json PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_json_repr_func PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_json_repr_per_name PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_json_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 [ 56%] tests/test_wire.py::TestWireVectorNames::test_invalid_name_setter PASSED [ 56%] tests/test_wire.py::TestWireVectorNames::test_valid_name_setter PASSED [ 56%] 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 [ 57%] tests/test_wire.py::TestWireVectorSlicing::test_wire_wo_bitwidth_fails PASSED [ 57%] 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 [ 58%] tests/test_wire.py::TestRegister::test_logic_operations PASSED [ 58%] tests/test_wire.py::TestRegister::test_negative_reset_value PASSED [ 58%] 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::TestStateRegister::test_bitwidth 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 [ 59%] tests/test_wire.py::TestConst::test_badbool PASSED [ 59%] tests/test_wire.py::TestConst::test_badtype PASSED [ 59%] 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 [ 60%] tests/test_wire.py::TestKeepingCallStack::test_no_call_stack PASSED [ 60%] tests/test_wire.py::TestWrappedWireVector::test_attr PASSED [ 60%] 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 [ 61%] tests/rtllib/test_aes.py::TestAESDecrypt::test_inv_mix_columns PASSED [ 61%] tests/rtllib/test_aes.py::TestAESDecrypt::test_inv_shift_rows PASSED [ 61%] 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_float.py::TestDocTests::test_add_sub_doctests PASSED [ 62%] tests/rtllib/test_float.py::TestDocTests::test_mult_doctests PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_denormalized_flushed_to_zero PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_half_plus_half PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_infinity_minus_infinity_is_nan PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_infinity_to_number PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_nan_propagates PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_negative_infinity_to_number PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_negative_zero_to_number PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_one_plus_half PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_one_plus_quarter PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_one_plus_two PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_opposite_signs_equal_magnitude PASSED [ 62%] tests/rtllib/test_float.py::TestAddition::test_add_with_carry PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_add_zero_to_number PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_carry_g1_r0_s0_lsb0_tie_truncates PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_carry_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_mismatched_types PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_overflow_rne_produces_infinity PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_overflow_rtz_produces_largest_finite PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_rounding_g0_r1_s1_truncates PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_rounding_g1_r0_s0_lsb0_tie_truncates PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_rounding_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_rounding_g1_r0_s1_rounds_up PASSED [ 63%] tests/rtllib/test_float.py::TestAddition::test_rounding_g1_r1_s0_rounds_up PASSED [ 63%] tests/rtllib/test_float.py::TestSubtraction::test_overflow_by_subtracting_negative PASSED [ 63%] tests/rtllib/test_float.py::TestSubtraction::test_sub_denormalized_flushed_to_zero PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_double_negative PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_equal_numbers PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_exact_no_rounding PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_from_zero PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_infinity_from_infinity_is_nan PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_infinity_from_number PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_nan_propagates PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_neg_infinity_from_pos_infinity PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_neg_zero_minus_neg_zero PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_one_point_five_minus_half PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_pos_zero_minus_pos_zero PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_rne_rounds_up PASSED [ 64%] tests/rtllib/test_float.py::TestSubtraction::test_sub_three_minus_one PASSED [ 65%] tests/rtllib/test_float.py::TestSubtraction::test_sub_two_minus_half PASSED [ 65%] tests/rtllib/test_float.py::TestSubtraction::test_sub_zero_from_number PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mismatched_types PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_both_negative PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_by_negative_zero PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_by_zero PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_denormalized_flushed_to_zero PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_half_times_two PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_infinity_by_infinity PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_infinity_by_number PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_infinity_by_zero_is_nan PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_nan_propagates PASSED [ 65%] tests/rtllib/test_float.py::TestMultiplication::test_mul_neg_infinity_by_number PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_mul_one_point_five_times_one_point_five PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_mul_one_point_five_times_two PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_mul_opposite_signs PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_mul_pos_infinity_by_neg_infinity PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_negative_overflow_rne_produces_neg_infinity PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_negative_overflow_rtz_produces_neg_largest_finite PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_overflow_rne_produces_infinity PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_overflow_rtz_produces_largest_finite PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_rounding_g0_s0_truncates PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_rounding_g0_s1_truncates PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_rounding_g1_l0_s0_tie_truncates PASSED [ 66%] tests/rtllib/test_float.py::TestMultiplication::test_rounding_g1_l0_s1_rounds_up PASSED [ 67%] tests/rtllib/test_float.py::TestMultiplication::test_rounding_g1_l1_s0_tie_rounds_up PASSED [ 67%] tests/rtllib/test_libutils.py::TestPartitionWire::test_failing_partition PASSED [ 67%] tests/rtllib/test_libutils.py::TestPartitionWire::test_partition_sim PASSED [ 67%] tests/rtllib/test_libutils.py::TestPartitionWire::test_successful_partition PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_binary_conversion PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_empty PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_bin_str PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_str PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_multiline PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_no_override PASSED [ 67%] tests/rtllib/test_libutils.py::TestStringConversion::test_simple_conversion PASSED [ 67%] tests/rtllib/test_libutils.py::TestTwosComp::test_inverse_functionality PASSED [ 67%] tests/rtllib/test_libutils.py::TestTwosComp::test_low_bw_error PASSED [ 68%] tests/rtllib/test_libutils.py::TestTwosComp::test_twos_comp_sim PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic_wirevector PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_columns PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_rows PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_int_instead_of_matrix PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_bits PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_column PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_row PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_bit PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_column PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_row PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three_wirevector PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_wirevector_mismatch PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits_trunicate PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_negative PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_string PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_zero PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_no_change PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_3_slice PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_by_2_slice PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_2_slice PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_by_3_slice PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_basic_case PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_negative PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_slice PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_row_negative PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_negative PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_slice PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_column_only PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_columns PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_rows PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_row PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_back PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_front PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_returns_single PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_1 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_1 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v1 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_rows PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_single PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_raw PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_shorthand PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_tuple_indices PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_basic_case PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_negative PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_slice PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_negative PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_slice PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_column PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_row PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_rows_only PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_columns PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_rows PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_wire_for_matrix PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_row_item PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_back PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_front PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_negative PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_raw_int PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v1 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_rows_with_negative_index_slice PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_raw PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_shorthand PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_tuple_indices PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_basic PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_one_by_four PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_three_by_three PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_1_by_4 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_3_by_3 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_4_by_1 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_basic PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_1_by_4 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_3_by_3 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_4_by_1 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_basic PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_2_by_3 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_different PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_same PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_basic_case PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_2_by_2_add_3_by_3 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_2_by_3 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_3_by_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_add_one PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_different PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_same PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_basic PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_2_by_3 PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_3_by_2 PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_different PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_same PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_basic PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_2_by_3 PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_3_by_2 PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_int PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_different_positive_result PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_same PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_basic PASSED [ 77%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_2_by_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_3_by_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_2_by_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_different PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_same PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_basic PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_2_by_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_3_by_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_fail_int PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_1_by_4 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_3_by_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_4_by_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_one PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_zero PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_different PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_same PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_basic PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_2_by_3 PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_3_by_2 PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_1_by_2_multiply_2_by_1 PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_different PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_same PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_basic PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_2_multiply_3_by_2 PASSED [ 79%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_int PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_1_by_2_multiply_2_by_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_different PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_same PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_basic PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_3_by_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_0 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_negative_power PASSED [ 81%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_nonsquare PASSED [ 81%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_string PASSED [ 81%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_0 PASSED [ 81%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_fail_string PASSED [ 81%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_matrix PASSED [ 81%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_scalar PASSED [ 81%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_3 PASSED [ 81%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_4 PASSED [ 81%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_5 PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_count PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape_column_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape_column_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape_column_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape_column_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape_column_order PASSED [ 82%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_1 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_2 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_3 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_4 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_5 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_1 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_2 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_3 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_4 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_5 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1_column_order PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2 PASSED [ 83%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2_column_order PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape_column_order PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape_column_order PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape_column_order PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape PASSED [ 84%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape_column_order PASSED [ 84%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise PASSED [ 84%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_1 PASSED [ 84%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_2 PASSED [ 84%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_3 PASSED [ 84%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_invalid_order PASSED [ 85%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise PASSED [ 85%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_2 PASSED [ 85%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_3 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_empty PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_2 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_2 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_2 PASSED [ 85%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_negative PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_1 PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_2 PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_tuple_values PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_1 PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_2 PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_matrix PASSED [ 86%] tests/rtllib/test_matrix.py::TestPut::test_put_tuple_indices PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4 PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_column PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_row PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3 PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_column PASSED [ 86%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_row PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1 PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_column PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_row PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_column PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_row PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_axis_out_of_bounds PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_axis PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_bits PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_axis PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_bits PASSED [ 87%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_zero_bits PASSED [ 88%] tests/rtllib/test_matrix.py::TestSum::test_sum_wire PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4 PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_column PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_row PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3 PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_column PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_row PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1 PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_column PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_row PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_basic PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_column PASSED [ 88%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_row PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_negative PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_out_of_bounds PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_string PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_negative PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_string PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_zero PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_string PASSED [ 89%] tests/rtllib/test_matrix.py::TestMin::test_min_wire PASSED [ 89%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4 PASSED [ 89%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_columns PASSED [ 89%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_rows PASSED [ 89%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3 PASSED [ 89%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_columns PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_rows PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1 PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_columns PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_rows PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_basic PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_columns PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_rows PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_negative PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_out_of_bounds PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_string PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_negative PASSED [ 90%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_string PASSED [ 91%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_zero PASSED [ 91%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_string PASSED [ 91%] tests/rtllib/test_matrix.py::TestMax::test_max_wire PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4 PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_columns PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_rows PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3 PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_columns PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_rows PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1 PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_columns PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_rows PASSED [ 91%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_negative PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_out_of_bounds PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_string PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_columns PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_rows PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_negative PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_string PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_zero PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_string PASSED [ 92%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_wire PASSED [ 92%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_1_by_2 PASSED [ 92%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_2_by_1 PASSED [ 92%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_1_by_2 PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_2_by_1 PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_different PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_same PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_basic PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_both_wires PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_1_by_2_multiply_1_by_3 PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_3_by_3_multiply_2_by_2 PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_first PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_second PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_first_wire PASSED [ 93%] tests/rtllib/test_matrix.py::TestDot::test_dot_second_wire PASSED [ 93%] tests/rtllib/test_matrix.py::TestHStack::test_concatenate PASSED [ 93%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_empty_args_fails PASSED [ 94%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_fail_on_inconsistent_rows PASSED [ 94%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_on_non_matrices_fails PASSED [ 94%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_one_row_vector PASSED [ 94%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_several_matrices PASSED [ 94%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_two_row_vectors PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_concatenate PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_empty_args_fails PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_fail_on_inconsistent_cols PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_on_non_matrices_fails PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_one_column_vector PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_several_matrix PASSED [ 94%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_two_column_vectors PASSED [ 94%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int PASSED [ 95%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative PASSED [ 95%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative_truncates PASSED [ 95%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_non_positive_n_bits PASSED [ 95%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_truncates PASSED [ 95%] tests/rtllib/test_multipliers.py::TestDocTests::test_doctests PASSED [ 95%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_1 PASSED [ 95%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_2 PASSED [ 95%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case PASSED [ 95%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_2 PASSED [ 95%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_3 PASSED [ 95%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_1 PASSED [ 95%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_2 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_3 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_4 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case PASSED [ 96%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_2 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_3 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_dada_tree PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_fma_1 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_gen_fma_1 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_2 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_3 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_1 PASSED [ 96%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_2 PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_dada_tree PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_small_bitwidth_error PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_2 PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_3 PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_1 PASSED [ 97%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_2 PASSED [ 97%] tests/rtllib/test_muxes.py::TestDocTests::test_doctests PASSED [ 97%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_different_sel_and_val_lengths PASSED [ 97%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_empty PASSED [ 97%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_invalid_select_width PASSED [ 97%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_one_wire PASSED [ 97%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_2_wires PASSED [ 98%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_5_wires PASSED [ 98%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent PASSED [ 98%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent_const PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts1 PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts2 PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_value PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup_2 PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_one_value PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMux::test_multiple_bitwidths PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_big_close PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals PASSED [ 98%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals_big PASSED [ 99%] tests/rtllib/test_muxes.py::TestSmartMuxDefault::test_default PASSED [ 99%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires PASSED [ 99%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires_2 PASSED [ 99%] tests/rtllib/test_muxes.py::TestMultiSelector::test_value_already_set PASSED [ 99%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_really_simple PASSED [ 99%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_simple PASSED [ 99%] tests/rtllib/test_muxes.py::TestDemux::test_demux_2 PASSED [ 99%] tests/rtllib/test_muxes.py::TestDemux::test_large_demux PASSED [ 99%] tests/rtllib/test_muxes.py::TestDemux::test_simple_demux PASSED [ 99%] tests/rtllib/test_prngs.py::TestPrngs::test_csprng_trivium PASSED [ 99%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_lfsr PASSED [ 99%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_xoroshiro128 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 __________________________ TestDocTests.test_doctests __________________________ self = def test_doctests(self): failures, tests = doctest.testmod(m=pyrtl.visualization) self.assertGreater(tests, 0) > self.assertEqual(failures, 0) E AssertionError: 2 != 0 tests/test_visualization.py:16: AssertionError ----------------------------- Captured stdout call ----------------------------- ********************************************************************** File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 601, in pyrtl.visualization.block_to_svg Failed example: svg_data = pyrtl.block_to_svg() Exception raised: Traceback (most recent call last): File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 619, in block_to_svg from graphviz import Source ModuleNotFoundError: No module named 'graphviz' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib64/python3.12/doctest.py", line 1368, in __run exec(compile(example.source, filename, "single", File "", line 1, in svg_data = pyrtl.block_to_svg() ^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 632, in block_to_svg raise PyrtlError(msg) from exc pyrtl.pyrtlexceptions.PyrtlError: need graphviz installed (try "pip install graphviz") ********************************************************************** File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 371, in pyrtl.visualization.graphviz_detailed_namer Failed example: svg_data = pyrtl.block_to_svg(namer=namer) Exception raised: Traceback (most recent call last): File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 619, in block_to_svg from graphviz import Source ModuleNotFoundError: No module named 'graphviz' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/lib64/python3.12/doctest.py", line 1368, in __run exec(compile(example.source, filename, "single", File "", line 1, in svg_data = pyrtl.block_to_svg(namer=namer) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/pyrtl/pyrtl/visualization.py", line 632, in block_to_svg raise PyrtlError(msg) from exc pyrtl.pyrtlexceptions.PyrtlError: need graphviz installed (try "pip install graphviz") ********************************************************************** 2 items had failures: 1 of 7 in pyrtl.visualization.block_to_svg 1 of 11 in pyrtl.visualization.graphviz_detailed_namer ***Test Failed*** 2 failures. =========================== 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] FAILED tests/test_visualization.py::TestDocTests::test_doctests - AssertionEr... ================= 14 failed, 1259 passed, 7 skipped in 17.82s ================== + true + RPM_EC=0 ++ jobs -p + exit 0 Processing files: pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.YIutJu + umask 022 + cd /builddir/build/BUILD + cd pyrtl + DOCDIR=/builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/doc/pyrtl + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/doc/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/README.md /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/doc/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.SFjuDQ + umask 022 + cd /builddir/build/BUILD + cd pyrtl + LICENSEDIR=/builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/licenses/pyrtl + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/licenses/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/LICENSE.md /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64/usr/share/licenses/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Provides: pyrtl = 1.0.0-20260619.0.gitf68c7ee1.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-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 Wrote: /builddir/build/SRPMS/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm Wrote: /builddir/build/RPMS/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.ttGNXA + umask 022 + cd /builddir/build/BUILD + cd pyrtl + /usr/bin/rm -rf /builddir/build/BUILDROOT/pyrtl-1.0.0-20260619.0.gitf68c7ee1.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.rOCgQV + 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-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm Finish: build phase for pyrtl-1.0.0-20260619.0.gitf68c7ee1.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-1782100014.794805/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1782100014.794805/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1782100014.794805/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-1.0.0-20260619.0.gitf68c7ee1.el10.src.rpm) Config(child) 0 minutes 50 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": "1.0.0", "release": "20260619.0.gitf68c7ee1.el10", "arch": "src" }, { "name": "pyrtl", "epoch": null, "version": "1.0.0", "release": "20260619.0.gitf68c7ee1.el10", "arch": "noarch" } ] } RPMResults finished