Warning: Permanently added '2620:52:6:1161:dead:beef:cafe:c101' (ED25519) to the list of known hosts. Running (timeout=172800): unbuffer mock --spec /var/lib/copr-rpmbuild/workspace/workdir-6er1pbtf/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-6er1pbtf/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1778568247.281058 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 6.7 starting (python version = 3.14.2, NVR = mock-6.7-1.fc43), args: /usr/libexec/mock/mock --spec /var/lib/copr-rpmbuild/workspace/workdir-6er1pbtf/pyrtl/pyrtl.spec --sources /var/lib/copr-rpmbuild/workspace/workdir-6er1pbtf/pyrtl --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1778568247.281058 -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-6er1pbtf/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-1778568247.281058/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-6cdb1ea1-6367-45c9-93fa-70e7e7f335f3 INFO: Checking that 7ec7d39d2e00c9183c656c97de834109ddede999392a7a020f84b4304b6793b1 image matches host's architecture INFO: Copy content of container 7ec7d39d2e00c9183c656c97de834109ddede999392a7a020f84b4304b6793b1 to /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1778568247.281058/root INFO: mounting 7ec7d39d2e00c9183c656c97de834109ddede999392a7a020f84b4304b6793b1 with podman image mount INFO: image 7ec7d39d2e00c9183c656c97de834109ddede999392a7a020f84b4304b6793b1 as /var/lib/containers/storage/overlay/09e4f1fff9454cb295432dfceff2c6b02033058a9534347b275577b5398bdcc3/merged INFO: umounting image 7ec7d39d2e00c9183c656c97de834109ddede999392a7a020f84b4304b6793b1 (/var/lib/containers/storage/overlay/09e4f1fff9454cb295432dfceff2c6b02033058a9534347b275577b5398bdcc3/merged) with podman image umount INFO: Removing image mock-bootstrap-6cdb1ea1-6367-45c9-93fa-70e7e7f335f3 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-1778568247.281058/root. INFO: calling preinit hooks INFO: enabled root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Package manager dnf4 detected and used (direct choice) INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 python3-dnf-4.20.0-23.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-23.el10.noarch Start: installing minimal buildroot with dnf No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 174 kB/s | 74 kB 00:00 CentOS Stream 10 - BaseOS 16 MB/s | 6.9 MB 00:00 CentOS Stream 10 - AppStream 1.7 MB/s | 3.6 MB 00:02 CentOS Stream 10 - CRB 508 kB/s | 838 kB 00:01 CentOS Stream 10 - Extras packages 25 kB/s | 10 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 99 MB/s | 6.7 MB 00:00 Dependencies resolved. ================================================================================ Package Arch Version Repo Size ================================================================================ Installing: bash x86_64 5.2.26-6.el10 baseos 1.8 M bzip2 x86_64 1.0.8-25.el10 baseos 54 k centos-stream-release noarch 10.0-21.el10 baseos 30 k coreutils x86_64 9.5-7.el10 baseos 1.1 M cpio x86_64 2.15-3.el10 baseos 292 k diffutils x86_64 3.10-8.el10 baseos 409 k epel-rpm-macros noarch 10-7.el10_3 epel 8.4 k findutils x86_64 1:4.10.0-5.el10 baseos 551 k gawk x86_64 5.3.0-6.el10 baseos 1.1 M glibc-minimal-langpack x86_64 2.39-117.el10 baseos 29 k grep x86_64 3.11-10.el10 baseos 301 k gzip x86_64 1.13-3.el10 baseos 170 k info x86_64 7.1-6.el10 baseos 183 k patch x86_64 2.7.6-26.el10 appstream 132 k redhat-rpm-config noarch 295-1.el10 appstream 74 k rpm-build x86_64 4.19.1.1-23.el10 appstream 75 k sed x86_64 4.9-5.el10 baseos 318 k shadow-utils x86_64 2:4.15.0-11.el10 baseos 1.3 M tar x86_64 2:1.35-11.el10 baseos 866 k unzip x86_64 6.0-69.el10 baseos 190 k util-linux x86_64 2.40.2-19.el10 baseos 1.3 M which x86_64 2.21-44.el10 baseos 42 k xz x86_64 1:5.6.2-4.el10 baseos 481 k Installing dependencies: R-srpm-macros noarch 1.3.7-1.el10_3 epel 11 k alternatives x86_64 1.30-2.el10 baseos 42 k ansible-srpm-macros noarch 1-21.el10_3 epel 20 k audit-libs x86_64 4.0.3-5.el10 baseos 131 k authselect x86_64 1.5.2-1.el10 baseos 211 k authselect-libs x86_64 1.5.2-1.el10 baseos 254 k basesystem noarch 11-22.el10 baseos 4.3 k binutils x86_64 2.41-65.el10 baseos 6.4 M binutils-gold x86_64 2.41-65.el10 baseos 795 k bzip2-libs x86_64 1.0.8-25.el10 baseos 42 k ca-certificates noarch 2025.2.80_v9.0.305-102.el10 baseos 1.1 M centos-gpg-keys noarch 10.0-21.el10 baseos 26 k centos-stream-repos noarch 10.0-21.el10 baseos 12 k coreutils-common x86_64 9.5-7.el10 baseos 2.1 M cracklib x86_64 2.9.11-8.el10 baseos 96 k cracklib-dicts x86_64 2.9.11-8.el10 baseos 3.6 M crypto-policies noarch 20260216-1.git0e54016.el10 baseos 98 k curl x86_64 8.12.1-5.el10 baseos 217 k cyrus-sasl-lib x86_64 2.1.28-27.el10 baseos 106 k debugedit x86_64 5.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-10.el10 baseos 48 k file-libs x86_64 5.45-10.el10 baseos 762 k filesystem x86_64 3.18-17.el10 baseos 4.8 M fonts-srpm-macros noarch 1:2.0.5-18.el10 appstream 27 k forge-srpm-macros noarch 0.4.0-6.el10 appstream 21 k fpc-srpm-macros noarch 1.3-7.el10_1 epel 7.8 k gdb-minimal x86_64 16.3-3.el10 appstream 4.4 M gdbm x86_64 1:1.23-14.el10 baseos 151 k gdbm-libs x86_64 1:1.23-14.el10 baseos 57 k ghc-srpm-macros noarch 1.9.2-1.el10_0 epel 9.1 k glibc x86_64 2.39-117.el10 baseos 2.1 M glibc-common x86_64 2.39-117.el10 baseos 323 k glibc-gconv-extra x86_64 2.39-117.el10 baseos 1.7 M gmp x86_64 1:6.2.1-12.el10 baseos 318 k go-srpm-macros noarch 3.8.0-1.el10 appstream 27 k jansson x86_64 2.14-3.el10 baseos 46 k json-c x86_64 0.18-3.el10 baseos 45 k kernel-srpm-macros noarch 1.0-27.el10 appstream 8.7 k keyutils-libs x86_64 1.6.3-5.el10 baseos 33 k krb5-libs x86_64 1.21.3-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-19.el10 baseos 124 k libbrotli x86_64 1.1.0-7.el10 baseos 344 k libcap x86_64 2.69-7.el10 baseos 91 k libcap-ng x86_64 0.8.4-6.el10 baseos 33 k libcbor x86_64 0.11.0-3.el10 baseos 34 k libcom_err x86_64 1.47.1-5.el10 baseos 26 k libcurl x86_64 8.12.1-5.el10 baseos 368 k libeconf x86_64 0.6.2-4.el10 baseos 33 k libevent x86_64 2.1.12-16.el10 baseos 261 k libfdisk x86_64 2.40.2-19.el10 baseos 160 k libffi x86_64 3.4.4-10.el10 baseos 41 k libfido2 x86_64 1.14.0-7.el10 baseos 98 k libgcc x86_64 14.3.1-4.4.el10 baseos 140 k libgomp x86_64 14.3.1-4.4.el10 baseos 363 k libidn2 x86_64 2.3.7-3.el10 baseos 118 k libmount x86_64 2.40.2-19.el10 baseos 154 k libnghttp2 x86_64 1.68.0-4.el10 baseos 73 k libpkgconf x86_64 2.1.0-3.el10 baseos 39 k libpsl x86_64 0.21.5-6.el10 baseos 65 k libpwquality x86_64 1.4.5-12.el10 baseos 123 k libselinux x86_64 3.10-1.el10 baseos 97 k libsemanage x86_64 3.10-1.el10 baseos 122 k libsepol x86_64 3.10-1.el10 baseos 349 k libsmartcols x86_64 2.40.2-19.el10 baseos 83 k libssh x86_64 0.12.0-2.el10 baseos 276 k libssh-config noarch 0.12.0-2.el10 baseos 8.2 k libstdc++ x86_64 14.3.1-4.4.el10 baseos 919 k libtasn1 x86_64 4.20.0-1.el10 baseos 75 k libunistring x86_64 1.1-10.el10 baseos 548 k libutempter x86_64 1.2.1-15.el10 baseos 27 k libuuid x86_64 2.40.2-19.el10 baseos 28 k libverto x86_64 0.3.2-10.el10 baseos 22 k libxcrypt x86_64 4.4.36-10.el10 baseos 120 k libxml2 x86_64 2.12.5-10.el10 baseos 690 k libzstd x86_64 1.5.5-9.el10 baseos 292 k lua-libs x86_64 5.4.8-1.el10 baseos 131 k lua-srpm-macros noarch 1-15.el10 appstream 9.8 k lz4-libs x86_64 1.9.4-8.el10 baseos 68 k mpfr x86_64 4.2.1-8.el10 baseos 346 k ncurses-base noarch 6.4-15.20240127.el10 baseos 98 k ncurses-libs x86_64 6.4-15.20240127.el10 baseos 337 k ocaml-srpm-macros noarch 10-4.el10 appstream 10 k openblas-srpm-macros noarch 2-19.el10 appstream 8.7 k openldap x86_64 2.6.13-1.el10 baseos 240 k openssl-fips-provider x86_64 1:3.5.5-2.el10 baseos 812 k openssl-libs x86_64 1:3.5.5-2.el10 baseos 2.3 M p11-kit x86_64 0.26.2-1.el10 baseos 558 k p11-kit-trust x86_64 0.26.2-1.el10 baseos 140 k package-notes-srpm-macros noarch 0.5-13.el10 appstream 10 k pam x86_64 1.6.1-10.el10 baseos 584 k pam-libs x86_64 1.6.1-10.el10 baseos 56 k pcre2 x86_64 10.44-1.el10.3 baseos 248 k pcre2-syntax noarch 10.44-1.el10.3 baseos 151 k perl-srpm-macros noarch 1-57.el10 appstream 9.5 k pkgconf x86_64 2.1.0-3.el10 baseos 45 k pkgconf-m4 noarch 2.1.0-3.el10 baseos 15 k pkgconf-pkg-config x86_64 2.1.0-3.el10 baseos 11 k popt x86_64 1.19-8.el10 baseos 66 k publicsuffix-list-dafsa noarch 20240107-5.el10 baseos 59 k pyproject-srpm-macros noarch 1.18.5-1.el10 appstream 13 k python-srpm-macros noarch 3.12-11.el10 appstream 22 k qt6-srpm-macros noarch 6.10.1-1.el10 appstream 9.1 k readline x86_64 8.2-11.el10 baseos 214 k rpm x86_64 4.19.1.1-23.el10 baseos 560 k rpm-build-libs x86_64 4.19.1.1-23.el10 baseos 92 k rpm-libs x86_64 4.19.1.1-23.el10 baseos 309 k rpm-sequoia x86_64 1.10.1.1-2.el10 baseos 969 k rust-toolset-srpm-macros noarch 1.95.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-24.el10 baseos 842 k util-linux-core x86_64 2.40.2-19.el10 baseos 550 k xz-libs x86_64 1:5.6.2-4.el10 baseos 113 k zip x86_64 3.0-45.el10 baseos 270 k zlib-ng-compat x86_64 2.2.3-3.el10 baseos 76 k zstd x86_64 1.5.5-9.el10 baseos 464 k Transaction Summary ================================================================================ Install 150 Packages Total download size: 61 M Installed size: 189 M Downloading Packages: (1/150): alternatives-1.30-2.el10.x86_64.rpm 93 kB/s | 42 kB 00:00 (2/150): audit-libs-4.0.3-5.el10.x86_64.rpm 231 kB/s | 131 kB 00:00 (3/150): basesystem-11-22.el10.noarch.rpm 37 kB/s | 4.3 kB 00:00 (4/150): authselect-1.5.2-1.el10.x86_64.rpm 307 kB/s | 211 kB 00:00 (5/150): authselect-libs-1.5.2-1.el10.x86_64.rp 561 kB/s | 254 kB 00:00 (6/150): bash-5.2.26-6.el10.x86_64.rpm 2.7 MB/s | 1.8 MB 00:00 (7/150): binutils-gold-2.41-65.el10.x86_64.rpm 1.7 MB/s | 795 kB 00:00 (8/150): binutils-2.41-65.el10.x86_64.rpm 9.3 MB/s | 6.4 MB 00:00 (9/150): bzip2-1.0.8-25.el10.x86_64.rpm 475 kB/s | 54 kB 00:00 (10/150): bzip2-libs-1.0.8-25.el10.x86_64.rpm 362 kB/s | 42 kB 00:00 (11/150): ca-certificates-2025.2.80_v9.0.305-10 9.1 MB/s | 1.1 MB 00:00 (12/150): centos-gpg-keys-10.0-21.el10.noarch.r 230 kB/s | 26 kB 00:00 (13/150): centos-stream-release-10.0-21.el10.no 253 kB/s | 30 kB 00:00 (14/150): centos-stream-repos-10.0-21.el10.noar 104 kB/s | 12 kB 00:00 (15/150): cpio-2.15-3.el10.x86_64.rpm 2.4 MB/s | 292 kB 00:00 (16/150): coreutils-9.5-7.el10.x86_64.rpm 4.9 MB/s | 1.1 MB 00:00 (17/150): coreutils-common-9.5-7.el10.x86_64.rp 9.3 MB/s | 2.1 MB 00:00 (18/150): cracklib-2.9.11-8.el10.x86_64.rpm 828 kB/s | 96 kB 00:00 (19/150): crypto-policies-20260216-1.git0e54016 850 kB/s | 98 kB 00:00 (20/150): curl-8.12.1-5.el10.x86_64.rpm 1.8 MB/s | 217 kB 00:00 (21/150): cracklib-dicts-2.9.11-8.el10.x86_64.r 16 MB/s | 3.6 MB 00:00 (22/150): cyrus-sasl-lib-2.1.28-27.el10.x86_64. 927 kB/s | 106 kB 00:00 (23/150): diffutils-3.10-8.el10.x86_64.rpm 3.4 MB/s | 409 kB 00:00 (24/150): ed-1.20-5.el10.x86_64.rpm 715 kB/s | 83 kB 00:00 (25/150): elfutils-0.195-1.el10.x86_64.rpm 4.8 MB/s | 578 kB 00:00 (26/150): elfutils-debuginfod-client-0.195-1.el 375 kB/s | 44 kB 00:00 (27/150): elfutils-default-yama-scope-0.195-1.e 75 kB/s | 8.6 kB 00:00 (28/150): elfutils-libelf-0.195-1.el10.x86_64.r 1.7 MB/s | 205 kB 00:00 (29/150): elfutils-libs-0.195-1.el10.x86_64.rpm 2.2 MB/s | 268 kB 00:00 (30/150): file-5.45-10.el10.x86_64.rpm 415 kB/s | 48 kB 00:00 (31/150): file-libs-5.45-10.el10.x86_64.rpm 6.1 MB/s | 762 kB 00:00 (32/150): filesystem-3.18-17.el10.x86_64.rpm 35 MB/s | 4.8 MB 00:00 (33/150): findutils-4.10.0-5.el10.x86_64.rpm 4.6 MB/s | 551 kB 00:00 (34/150): gawk-5.3.0-6.el10.x86_64.rpm 9.1 MB/s | 1.1 MB 00:00 (35/150): gdbm-1.23-14.el10.x86_64.rpm 1.3 MB/s | 151 kB 00:00 (36/150): gdbm-libs-1.23-14.el10.x86_64.rpm 480 kB/s | 57 kB 00:00 (37/150): glibc-2.39-117.el10.x86_64.rpm 17 MB/s | 2.1 MB 00:00 (38/150): glibc-common-2.39-117.el10.x86_64.rpm 2.7 MB/s | 323 kB 00:00 (39/150): glibc-gconv-extra-2.39-117.el10.x86_6 14 MB/s | 1.7 MB 00:00 (40/150): glibc-minimal-langpack-2.39-117.el10. 248 kB/s | 29 kB 00:00 (41/150): gmp-6.2.1-12.el10.x86_64.rpm 2.7 MB/s | 318 kB 00:00 (42/150): grep-3.11-10.el10.x86_64.rpm 2.5 MB/s | 301 kB 00:00 (43/150): gzip-1.13-3.el10.x86_64.rpm 1.4 MB/s | 170 kB 00:00 (44/150): info-7.1-6.el10.x86_64.rpm 1.5 MB/s | 183 kB 00:00 (45/150): jansson-2.14-3.el10.x86_64.rpm 401 kB/s | 46 kB 00:00 (46/150): json-c-0.18-3.el10.x86_64.rpm 396 kB/s | 45 kB 00:00 (47/150): keyutils-libs-1.6.3-5.el10.x86_64.rpm 281 kB/s | 33 kB 00:00 (48/150): krb5-libs-1.21.3-11.el10.x86_64.rpm 6.4 MB/s | 766 kB 00:00 (49/150): libacl-2.3.2-4.el10.x86_64.rpm 222 kB/s | 25 kB 00:00 (50/150): libarchive-3.7.7-8.el10.x86_64.rpm 3.4 MB/s | 414 kB 00:00 (51/150): libattr-2.5.2-5.el10.x86_64.rpm 167 kB/s | 19 kB 00:00 (52/150): libblkid-2.40.2-19.el10.x86_64.rpm 1.1 MB/s | 124 kB 00:00 (53/150): libbrotli-1.1.0-7.el10.x86_64.rpm 2.9 MB/s | 344 kB 00:00 (54/150): libcap-2.69-7.el10.x86_64.rpm 794 kB/s | 91 kB 00:00 (55/150): libcap-ng-0.8.4-6.el10.x86_64.rpm 290 kB/s | 33 kB 00:00 (56/150): libcbor-0.11.0-3.el10.x86_64.rpm 295 kB/s | 34 kB 00:00 (57/150): libcom_err-1.47.1-5.el10.x86_64.rpm 228 kB/s | 26 kB 00:00 (58/150): libcurl-8.12.1-5.el10.x86_64.rpm 3.1 MB/s | 368 kB 00:00 (59/150): libeconf-0.6.2-4.el10.x86_64.rpm 289 kB/s | 33 kB 00:00 (60/150): libevent-2.1.12-16.el10.x86_64.rpm 2.2 MB/s | 261 kB 00:00 (61/150): libfdisk-2.40.2-19.el10.x86_64.rpm 1.4 MB/s | 160 kB 00:00 (62/150): libffi-3.4.4-10.el10.x86_64.rpm 350 kB/s | 41 kB 00:00 (63/150): libgcc-14.3.1-4.4.el10.x86_64.rpm 1.2 MB/s | 140 kB 00:00 (64/150): libgomp-14.3.1-4.4.el10.x86_64.rpm 3.0 MB/s | 363 kB 00:00 (65/150): libfido2-1.14.0-7.el10.x86_64.rpm 433 kB/s | 98 kB 00:00 (66/150): libidn2-2.3.7-3.el10.x86_64.rpm 1.0 MB/s | 118 kB 00:00 (67/150): libmount-2.40.2-19.el10.x86_64.rpm 1.3 MB/s | 154 kB 00:00 (68/150): libnghttp2-1.68.0-4.el10.x86_64.rpm 632 kB/s | 73 kB 00:00 (69/150): libpkgconf-2.1.0-3.el10.x86_64.rpm 341 kB/s | 39 kB 00:00 (70/150): libpsl-0.21.5-6.el10.x86_64.rpm 562 kB/s | 65 kB 00:00 (71/150): libpwquality-1.4.5-12.el10.x86_64.rpm 1.0 MB/s | 123 kB 00:00 (72/150): libselinux-3.10-1.el10.x86_64.rpm 843 kB/s | 97 kB 00:00 (73/150): libsemanage-3.10-1.el10.x86_64.rpm 1.0 MB/s | 122 kB 00:00 (74/150): libsepol-3.10-1.el10.x86_64.rpm 2.9 MB/s | 349 kB 00:00 (75/150): libsmartcols-2.40.2-19.el10.x86_64.rp 717 kB/s | 83 kB 00:00 (76/150): libssh-0.12.0-2.el10.x86_64.rpm 2.3 MB/s | 276 kB 00:00 (77/150): libssh-config-0.12.0-2.el10.noarch.rp 72 kB/s | 8.2 kB 00:00 (78/150): libstdc++-14.3.1-4.4.el10.x86_64.rpm 7.5 MB/s | 919 kB 00:00 (79/150): libtasn1-4.20.0-1.el10.x86_64.rpm 650 kB/s | 75 kB 00:00 (80/150): libunistring-1.1-10.el10.x86_64.rpm 4.6 MB/s | 548 kB 00:00 (81/150): libutempter-1.2.1-15.el10.x86_64.rpm 240 kB/s | 27 kB 00:00 (82/150): libuuid-2.40.2-19.el10.x86_64.rpm 239 kB/s | 28 kB 00:00 (83/150): libverto-0.3.2-10.el10.x86_64.rpm 188 kB/s | 22 kB 00:00 (84/150): libxcrypt-4.4.36-10.el10.x86_64.rpm 1.0 MB/s | 120 kB 00:00 (85/150): libxml2-2.12.5-10.el10.x86_64.rpm 5.7 MB/s | 690 kB 00:00 (86/150): libzstd-1.5.5-9.el10.x86_64.rpm 2.4 MB/s | 292 kB 00:00 (87/150): lua-libs-5.4.8-1.el10.x86_64.rpm 1.1 MB/s | 131 kB 00:00 (88/150): lz4-libs-1.9.4-8.el10.x86_64.rpm 585 kB/s | 68 kB 00:00 (89/150): mpfr-4.2.1-8.el10.x86_64.rpm 2.9 MB/s | 346 kB 00:00 (90/150): ncurses-base-6.4-15.20240127.el10.noa 847 kB/s | 98 kB 00:00 (91/150): ncurses-libs-6.4-15.20240127.el10.x86 2.8 MB/s | 337 kB 00:00 (92/150): openldap-2.6.13-1.el10.x86_64.rpm 2.0 MB/s | 240 kB 00:00 (93/150): openssl-fips-provider-3.5.5-2.el10.x8 6.7 MB/s | 812 kB 00:00 (94/150): openssl-libs-3.5.5-2.el10.x86_64.rpm 18 MB/s | 2.3 MB 00:00 (95/150): p11-kit-0.26.2-1.el10.x86_64.rpm 4.7 MB/s | 558 kB 00:00 (96/150): p11-kit-trust-0.26.2-1.el10.x86_64.rp 1.2 MB/s | 140 kB 00:00 (97/150): pam-1.6.1-10.el10.x86_64.rpm 4.8 MB/s | 584 kB 00:00 (98/150): pam-libs-1.6.1-10.el10.x86_64.rpm 486 kB/s | 56 kB 00:00 (99/150): pcre2-10.44-1.el10.3.x86_64.rpm 2.1 MB/s | 248 kB 00:00 (100/150): pcre2-syntax-10.44-1.el10.3.noarch.r 1.3 MB/s | 151 kB 00:00 (101/150): pkgconf-2.1.0-3.el10.x86_64.rpm 386 kB/s | 45 kB 00:00 (102/150): pkgconf-m4-2.1.0-3.el10.noarch.rpm 131 kB/s | 15 kB 00:00 (103/150): pkgconf-pkg-config-2.1.0-3.el10.x86_ 93 kB/s | 11 kB 00:00 (104/150): popt-1.19-8.el10.x86_64.rpm 557 kB/s | 66 kB 00:00 (105/150): publicsuffix-list-dafsa-20240107-5.e 515 kB/s | 59 kB 00:00 (106/150): readline-8.2-11.el10.x86_64.rpm 1.8 MB/s | 214 kB 00:00 (107/150): rpm-4.19.1.1-23.el10.x86_64.rpm 4.5 MB/s | 560 kB 00:00 (108/150): rpm-build-libs-4.19.1.1-23.el10.x86_ 803 kB/s | 92 kB 00:00 (109/150): rpm-libs-4.19.1.1-23.el10.x86_64.rpm 2.5 MB/s | 309 kB 00:00 (110/150): rpm-sequoia-1.10.1.1-2.el10.x86_64.r 8.0 MB/s | 969 kB 00:00 (111/150): sed-4.9-5.el10.x86_64.rpm 2.7 MB/s | 318 kB 00:00 (112/150): setup-2.14.5-7.el10.noarch.rpm 1.3 MB/s | 153 kB 00:00 (113/150): shadow-utils-4.15.0-11.el10.x86_64.r 11 MB/s | 1.3 MB 00:00 (114/150): sqlite-libs-3.46.1-5.el10.x86_64.rpm 6.2 MB/s | 745 kB 00:00 (115/150): systemd-libs-257-24.el10.x86_64.rpm 6.9 MB/s | 842 kB 00:00 (116/150): unzip-6.0-69.el10.x86_64.rpm 1.6 MB/s | 190 kB 00:00 (117/150): tar-1.35-11.el10.x86_64.rpm 7.1 MB/s | 866 kB 00:00 (118/150): util-linux-2.40.2-19.el10.x86_64.rpm 10 MB/s | 1.3 MB 00:00 (119/150): util-linux-core-2.40.2-19.el10.x86_6 4.6 MB/s | 550 kB 00:00 (120/150): which-2.21-44.el10.x86_64.rpm 362 kB/s | 42 kB 00:00 (121/150): xz-5.6.2-4.el10.x86_64.rpm 4.0 MB/s | 481 kB 00:00 (122/150): xz-libs-5.6.2-4.el10.x86_64.rpm 983 kB/s | 113 kB 00:00 (123/150): zip-3.0-45.el10.x86_64.rpm 2.3 MB/s | 270 kB 00:00 (124/150): zlib-ng-compat-2.2.3-3.el10.x86_64.r 657 kB/s | 76 kB 00:00 (125/150): zstd-1.5.5-9.el10.x86_64.rpm 3.9 MB/s | 464 kB 00:00 (126/150): debugedit-5.3-2.el10.x86_64.rpm 144 kB/s | 87 kB 00:00 (127/150): efi-srpm-macros-6-8.el10.noarch.rpm 45 kB/s | 23 kB 00:00 (128/150): dwz-0.16-1.el10.x86_64.rpm 213 kB/s | 140 kB 00:00 (129/150): fonts-srpm-macros-2.0.5-18.el10.noar 61 kB/s | 27 kB 00:00 (130/150): forge-srpm-macros-0.4.0-6.el10.noarc 48 kB/s | 21 kB 00:00 (131/150): kernel-srpm-macros-1.0-27.el10.noarc 24 kB/s | 8.7 kB 00:00 (132/150): go-srpm-macros-3.8.0-1.el10.noarch.r 60 kB/s | 27 kB 00:00 (133/150): gdb-minimal-16.3-3.el10.x86_64.rpm 4.5 MB/s | 4.4 MB 00:00 (134/150): lua-srpm-macros-1-15.el10.noarch.rpm 28 kB/s | 9.8 kB 00:00 (135/150): ocaml-srpm-macros-10-4.el10.noarch.r 28 kB/s | 10 kB 00:00 (136/150): openblas-srpm-macros-2-19.el10.noarc 24 kB/s | 8.7 kB 00:00 (137/150): package-notes-srpm-macros-0.5-13.el1 28 kB/s | 10 kB 00:00 (138/150): perl-srpm-macros-1-57.el10.noarch.rp 26 kB/s | 9.5 kB 00:00 (139/150): patch-2.7.6-26.el10.x86_64.rpm 218 kB/s | 132 kB 00:00 (140/150): pyproject-srpm-macros-1.18.5-1.el10. 37 kB/s | 13 kB 00:00 (141/150): qt6-srpm-macros-6.10.1-1.el10.noarch 25 kB/s | 9.1 kB 00:00 (142/150): python-srpm-macros-3.12-11.el10.noar 51 kB/s | 22 kB 00:00 (143/150): redhat-rpm-config-295-1.el10.noarch. 138 kB/s | 74 kB 00:00 (144/150): R-srpm-macros-1.3.7-1.el10_3.noarch. 814 kB/s | 11 kB 00:00 (145/150): ansible-srpm-macros-1-21.el10_3.noar 1.2 MB/s | 20 kB 00:00 (146/150): epel-rpm-macros-10-7.el10_3.noarch.r 3.7 MB/s | 8.4 kB 00:00 (147/150): fpc-srpm-macros-1.3-7.el10_1.noarch. 4.0 MB/s | 7.8 kB 00:00 (148/150): ghc-srpm-macros-1.9.2-1.el10_0.noarc 3.9 MB/s | 9.1 kB 00:00 (149/150): rust-toolset-srpm-macros-1.95.0-1.el 28 kB/s | 10 kB 00:00 (150/150): rpm-build-4.19.1.1-23.el10.x86_64.rp 139 kB/s | 75 kB 00:00 -------------------------------------------------------------------------------- Total 6.5 MB/s | 61 MB 00:09 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.95.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-7.el10.x86_64 17/150 Installing : centos-gpg-keys-10.0-21.el10.noarch 18/150 Installing : centos-stream-repos-10.0-21.el10.noarch 19/150 Installing : centos-stream-release-10.0-21.el10.noarch 20/150 Installing : setup-2.14.5-7.el10.noarch 21/150 Running scriptlet: setup-2.14.5-7.el10.noarch 21/150 Installing : filesystem-3.18-17.el10.x86_64 22/150 Installing : basesystem-11-22.el10.noarch 23/150 Installing : glibc-gconv-extra-2.39-117.el10.x86_64 24/150 Running scriptlet: glibc-gconv-extra-2.39-117.el10.x86_64 24/150 Installing : glibc-minimal-langpack-2.39-117.el10.x86_64 25/150 Installing : glibc-common-2.39-117.el10.x86_64 26/150 Running scriptlet: glibc-2.39-117.el10.x86_64 27/150 Installing : glibc-2.39-117.el10.x86_64 27/150 Running scriptlet: glibc-2.39-117.el10.x86_64 27/150 Installing : ncurses-libs-6.4-15.20240127.el10.x86_64 28/150 Installing : bash-5.2.26-6.el10.x86_64 29/150 Running scriptlet: bash-5.2.26-6.el10.x86_64 29/150 Installing : zlib-ng-compat-2.2.3-3.el10.x86_64 30/150 Installing : bzip2-libs-1.0.8-25.el10.x86_64 31/150 Installing : xz-libs-1:5.6.2-4.el10.x86_64 32/150 Installing : readline-8.2-11.el10.x86_64 33/150 Installing : libstdc++-14.3.1-4.4.el10.x86_64 34/150 Installing : libuuid-2.40.2-19.el10.x86_64 35/150 Installing : popt-1.19-8.el10.x86_64 36/150 Installing : libblkid-2.40.2-19.el10.x86_64 37/150 Installing : gmp-1:6.2.1-12.el10.x86_64 38/150 Installing : libattr-2.5.2-5.el10.x86_64 39/150 Installing : libacl-2.3.2-4.el10.x86_64 40/150 Installing : libxcrypt-4.4.36-10.el10.x86_64 41/150 Installing : libzstd-1.5.5-9.el10.x86_64 42/150 Installing : elfutils-libelf-0.195-1.el10.x86_64 43/150 Running scriptlet: crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Installing : crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Running scriptlet: crypto-policies-20260216-1.git0e54016.el10.noarc 44/150 Installing : gdbm-libs-1:1.23-14.el10.x86_64 45/150 Installing : libeconf-0.6.2-4.el10.x86_64 46/150 Installing : dwz-0.16-1.el10.x86_64 47/150 Installing : mpfr-4.2.1-8.el10.x86_64 48/150 Installing : gawk-5.3.0-6.el10.x86_64 49/150 Installing : unzip-6.0-69.el10.x86_64 50/150 Installing : file-libs-5.45-10.el10.x86_64 51/150 Installing : file-5.45-10.el10.x86_64 52/150 Installing : alternatives-1.30-2.el10.x86_64 53/150 Installing : jansson-2.14-3.el10.x86_64 54/150 Installing : libcap-ng-0.8.4-6.el10.x86_64 55/150 Installing : audit-libs-4.0.3-5.el10.x86_64 56/150 Installing : pam-libs-1.6.1-10.el10.x86_64 57/150 Installing : libcap-2.69-7.el10.x86_64 58/150 Installing : systemd-libs-257-24.el10.x86_64 59/150 Installing : libffi-3.4.4-10.el10.x86_64 60/150 Installing : libsepol-3.10-1.el10.x86_64 61/150 Installing : libsmartcols-2.40.2-19.el10.x86_64 62/150 Installing : libtasn1-4.20.0-1.el10.x86_64 63/150 Installing : libunistring-1.1-10.el10.x86_64 64/150 Installing : libidn2-2.3.7-3.el10.x86_64 65/150 Installing : lua-libs-5.4.8-1.el10.x86_64 66/150 Installing : lz4-libs-1.9.4-8.el10.x86_64 67/150 Installing : pcre2-10.44-1.el10.3.x86_64 68/150 Installing : libselinux-3.10-1.el10.x86_64 69/150 Installing : sed-4.9-5.el10.x86_64 70/150 Installing : findutils-1:4.10.0-5.el10.x86_64 71/150 Installing : grep-3.11-10.el10.x86_64 72/150 Installing : xz-1:5.6.2-4.el10.x86_64 73/150 Installing : libmount-2.40.2-19.el10.x86_64 74/150 Installing : util-linux-core-2.40.2-19.el10.x86_64 75/150 Installing : libsemanage-3.10-1.el10.x86_64 76/150 Installing : shadow-utils-2:4.15.0-11.el10.x86_64 77/150 Running scriptlet: libutempter-1.2.1-15.el10.x86_64 78/150 Installing : libutempter-1.2.1-15.el10.x86_64 78/150 Installing : tar-2:1.35-11.el10.x86_64 79/150 Installing : zstd-1.5.5-9.el10.x86_64 80/150 Installing : libpsl-0.21.5-6.el10.x86_64 81/150 Installing : p11-kit-0.26.2-1.el10.x86_64 82/150 Installing : p11-kit-trust-0.26.2-1.el10.x86_64 83/150 Running scriptlet: p11-kit-trust-0.26.2-1.el10.x86_64 83/150 Installing : openssl-fips-provider-1:3.5.5-2.el10.x86_64 84/150 Installing : openssl-libs-1:3.5.5-2.el10.x86_64 85/150 Installing : coreutils-9.5-7.el10.x86_64 86/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Installing : ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 87/150 Installing : authselect-libs-1.5.2-1.el10.x86_64 88/150 Installing : gzip-1.13-3.el10.x86_64 89/150 Installing : cracklib-2.9.11-8.el10.x86_64 90/150 Installing : cracklib-dicts-2.9.11-8.el10.x86_64 91/150 Installing : libpwquality-1.4.5-12.el10.x86_64 92/150 Installing : libevent-2.1.12-16.el10.x86_64 93/150 Installing : rpm-sequoia-1.10.1.1-2.el10.x86_64 94/150 Installing : zip-3.0-45.el10.x86_64 95/150 Installing : cyrus-sasl-lib-2.1.28-27.el10.x86_64 96/150 Installing : openldap-2.6.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-19.el10.x86_64 100/150 Installing : libxml2-2.12.5-10.el10.x86_64 101/150 Installing : libarchive-3.7.7-8.el10.x86_64 102/150 Installing : bzip2-1.0.8-25.el10.x86_64 103/150 Installing : sqlite-libs-3.46.1-5.el10.x86_64 104/150 Installing : rpm-libs-4.19.1.1-23.el10.x86_64 105/150 Installing : ed-1.20-5.el10.x86_64 106/150 Installing : patch-2.7.6-26.el10.x86_64 107/150 Installing : elfutils-default-yama-scope-0.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-5.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-5.el10.x86_64 134/150 Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 135/150 Installing : rpm-4.19.1.1-23.el10.x86_64 135/150 Installing : efi-srpm-macros-6-8.el10.noarch 136/150 Installing : lua-srpm-macros-1-15.el10.noarch 137/150 Installing : fonts-srpm-macros-1:2.0.5-18.el10.noarch 138/150 Installing : forge-srpm-macros-0.4.0-6.el10.noarch 139/150 Installing : go-srpm-macros-3.8.0-1.el10.noarch 140/150 Installing : python-srpm-macros-3.12-11.el10.noarch 141/150 Installing : redhat-rpm-config-295-1.el10.noarch 142/150 Installing : rpm-build-4.19.1.1-23.el10.x86_64 143/150 Installing : pyproject-srpm-macros-1.18.5-1.el10.noarch 144/150 Installing : R-srpm-macros-1.3.7-1.el10_3.noarch 145/150 Installing : epel-rpm-macros-10-7.el10_3.noarch 146/150 Installing : util-linux-2.40.2-19.el10.x86_64 147/150 Running scriptlet: util-linux-2.40.2-19.el10.x86_64 147/150 Installing : authselect-1.5.2-1.el10.x86_64 148/150 Installing : which-2.21-44.el10.x86_64 149/150 Installing : info-7.1-6.el10.x86_64 150/150 Running scriptlet: filesystem-3.18-17.el10.x86_64 150/150 Running scriptlet: ca-certificates-2025.2.80_v9.0.305-102.el10.noar 150/150 Running scriptlet: authselect-libs-1.5.2-1.el10.x86_64 150/150 Running scriptlet: rpm-4.19.1.1-23.el10.x86_64 150/150 Running scriptlet: info-7.1-6.el10.x86_64 150/150 Installed: R-srpm-macros-1.3.7-1.el10_3.noarch alternatives-1.30-2.el10.x86_64 ansible-srpm-macros-1-21.el10_3.noarch audit-libs-4.0.3-5.el10.x86_64 authselect-1.5.2-1.el10.x86_64 authselect-libs-1.5.2-1.el10.x86_64 basesystem-11-22.el10.noarch bash-5.2.26-6.el10.x86_64 binutils-2.41-65.el10.x86_64 binutils-gold-2.41-65.el10.x86_64 bzip2-1.0.8-25.el10.x86_64 bzip2-libs-1.0.8-25.el10.x86_64 ca-certificates-2025.2.80_v9.0.305-102.el10.noarch centos-gpg-keys-10.0-21.el10.noarch centos-stream-release-10.0-21.el10.noarch centos-stream-repos-10.0-21.el10.noarch coreutils-9.5-7.el10.x86_64 coreutils-common-9.5-7.el10.x86_64 cpio-2.15-3.el10.x86_64 cracklib-2.9.11-8.el10.x86_64 cracklib-dicts-2.9.11-8.el10.x86_64 crypto-policies-20260216-1.git0e54016.el10.noarch curl-8.12.1-5.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.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-10.el10.x86_64 file-libs-5.45-10.el10.x86_64 filesystem-3.18-17.el10.x86_64 findutils-1:4.10.0-5.el10.x86_64 fonts-srpm-macros-1:2.0.5-18.el10.noarch forge-srpm-macros-0.4.0-6.el10.noarch fpc-srpm-macros-1.3-7.el10_1.noarch gawk-5.3.0-6.el10.x86_64 gdb-minimal-16.3-3.el10.x86_64 gdbm-1:1.23-14.el10.x86_64 gdbm-libs-1:1.23-14.el10.x86_64 ghc-srpm-macros-1.9.2-1.el10_0.noarch glibc-2.39-117.el10.x86_64 glibc-common-2.39-117.el10.x86_64 glibc-gconv-extra-2.39-117.el10.x86_64 glibc-minimal-langpack-2.39-117.el10.x86_64 gmp-1:6.2.1-12.el10.x86_64 go-srpm-macros-3.8.0-1.el10.noarch grep-3.11-10.el10.x86_64 gzip-1.13-3.el10.x86_64 info-7.1-6.el10.x86_64 jansson-2.14-3.el10.x86_64 json-c-0.18-3.el10.x86_64 kernel-srpm-macros-1.0-27.el10.noarch keyutils-libs-1.6.3-5.el10.x86_64 krb5-libs-1.21.3-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-19.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.8.4-6.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-5.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-19.el10.x86_64 libffi-3.4.4-10.el10.x86_64 libfido2-1.14.0-7.el10.x86_64 libgcc-14.3.1-4.4.el10.x86_64 libgomp-14.3.1-4.4.el10.x86_64 libidn2-2.3.7-3.el10.x86_64 libmount-2.40.2-19.el10.x86_64 libnghttp2-1.68.0-4.el10.x86_64 libpkgconf-2.1.0-3.el10.x86_64 libpsl-0.21.5-6.el10.x86_64 libpwquality-1.4.5-12.el10.x86_64 libselinux-3.10-1.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-1.el10.x86_64 libsmartcols-2.40.2-19.el10.x86_64 libssh-0.12.0-2.el10.x86_64 libssh-config-0.12.0-2.el10.noarch libstdc++-14.3.1-4.4.el10.x86_64 libtasn1-4.20.0-1.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-19.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-10.el10.x86_64 libzstd-1.5.5-9.el10.x86_64 lua-libs-5.4.8-1.el10.x86_64 lua-srpm-macros-1-15.el10.noarch lz4-libs-1.9.4-8.el10.x86_64 mpfr-4.2.1-8.el10.x86_64 ncurses-base-6.4-15.20240127.el10.noarch ncurses-libs-6.4-15.20240127.el10.x86_64 ocaml-srpm-macros-10-4.el10.noarch openblas-srpm-macros-2-19.el10.noarch openldap-2.6.13-1.el10.x86_64 openssl-fips-provider-1:3.5.5-2.el10.x86_64 openssl-libs-1:3.5.5-2.el10.x86_64 p11-kit-0.26.2-1.el10.x86_64 p11-kit-trust-0.26.2-1.el10.x86_64 package-notes-srpm-macros-0.5-13.el10.noarch pam-1.6.1-10.el10.x86_64 pam-libs-1.6.1-10.el10.x86_64 patch-2.7.6-26.el10.x86_64 pcre2-10.44-1.el10.3.x86_64 pcre2-syntax-10.44-1.el10.3.noarch perl-srpm-macros-1-57.el10.noarch pkgconf-2.1.0-3.el10.x86_64 pkgconf-m4-2.1.0-3.el10.noarch pkgconf-pkg-config-2.1.0-3.el10.x86_64 popt-1.19-8.el10.x86_64 publicsuffix-list-dafsa-20240107-5.el10.noarch pyproject-srpm-macros-1.18.5-1.el10.noarch python-srpm-macros-3.12-11.el10.noarch qt6-srpm-macros-6.10.1-1.el10.noarch readline-8.2-11.el10.x86_64 redhat-rpm-config-295-1.el10.noarch rpm-4.19.1.1-23.el10.x86_64 rpm-build-4.19.1.1-23.el10.x86_64 rpm-build-libs-4.19.1.1-23.el10.x86_64 rpm-libs-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 rust-toolset-srpm-macros-1.95.0-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-2:4.15.0-11.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-24.el10.x86_64 tar-2:1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-19.el10.x86_64 util-linux-core-2.40.2-19.el10.x86_64 which-2.21-44.el10.x86_64 xz-1:5.6.2-4.el10.x86_64 xz-libs-1:5.6.2-4.el10.x86_64 zip-3.0-45.el10.x86_64 zlib-ng-compat-2.2.3-3.el10.x86_64 zstd-1.5.5-9.el10.x86_64 Complete! Finish: installing minimal buildroot with dnf Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: R-srpm-macros-1.3.7-1.el10_3.noarch alternatives-1.30-2.el10.x86_64 ansible-srpm-macros-1-21.el10_3.noarch audit-libs-4.0.3-5.el10.x86_64 authselect-1.5.2-1.el10.x86_64 authselect-libs-1.5.2-1.el10.x86_64 basesystem-11-22.el10.noarch bash-5.2.26-6.el10.x86_64 binutils-2.41-65.el10.x86_64 binutils-gold-2.41-65.el10.x86_64 bzip2-1.0.8-25.el10.x86_64 bzip2-libs-1.0.8-25.el10.x86_64 ca-certificates-2025.2.80_v9.0.305-102.el10.noarch centos-gpg-keys-10.0-21.el10.noarch centos-stream-release-10.0-21.el10.noarch centos-stream-repos-10.0-21.el10.noarch coreutils-9.5-7.el10.x86_64 coreutils-common-9.5-7.el10.x86_64 cpio-2.15-3.el10.x86_64 cracklib-2.9.11-8.el10.x86_64 cracklib-dicts-2.9.11-8.el10.x86_64 crypto-policies-20260216-1.git0e54016.el10.noarch curl-8.12.1-5.el10.x86_64 cyrus-sasl-lib-2.1.28-27.el10.x86_64 debugedit-5.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-10.el10.x86_64 file-libs-5.45-10.el10.x86_64 filesystem-3.18-17.el10.x86_64 findutils-4.10.0-5.el10.x86_64 fonts-srpm-macros-2.0.5-18.el10.noarch forge-srpm-macros-0.4.0-6.el10.noarch fpc-srpm-macros-1.3-7.el10_1.noarch gawk-5.3.0-6.el10.x86_64 gdb-minimal-16.3-3.el10.x86_64 gdbm-1.23-14.el10.x86_64 gdbm-libs-1.23-14.el10.x86_64 ghc-srpm-macros-1.9.2-1.el10_0.noarch glibc-2.39-117.el10.x86_64 glibc-common-2.39-117.el10.x86_64 glibc-gconv-extra-2.39-117.el10.x86_64 glibc-minimal-langpack-2.39-117.el10.x86_64 gmp-6.2.1-12.el10.x86_64 go-srpm-macros-3.8.0-1.el10.noarch gpg-pubkey-8483c65d-5ccc5b19 gpg-pubkey-e37ed158-65785fa9 grep-3.11-10.el10.x86_64 gzip-1.13-3.el10.x86_64 info-7.1-6.el10.x86_64 jansson-2.14-3.el10.x86_64 json-c-0.18-3.el10.x86_64 kernel-srpm-macros-1.0-27.el10.noarch keyutils-libs-1.6.3-5.el10.x86_64 krb5-libs-1.21.3-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-19.el10.x86_64 libbrotli-1.1.0-7.el10.x86_64 libcap-2.69-7.el10.x86_64 libcap-ng-0.8.4-6.el10.x86_64 libcbor-0.11.0-3.el10.x86_64 libcom_err-1.47.1-5.el10.x86_64 libcurl-8.12.1-5.el10.x86_64 libeconf-0.6.2-4.el10.x86_64 libevent-2.1.12-16.el10.x86_64 libfdisk-2.40.2-19.el10.x86_64 libffi-3.4.4-10.el10.x86_64 libfido2-1.14.0-7.el10.x86_64 libgcc-14.3.1-4.4.el10.x86_64 libgomp-14.3.1-4.4.el10.x86_64 libidn2-2.3.7-3.el10.x86_64 libmount-2.40.2-19.el10.x86_64 libnghttp2-1.68.0-4.el10.x86_64 libpkgconf-2.1.0-3.el10.x86_64 libpsl-0.21.5-6.el10.x86_64 libpwquality-1.4.5-12.el10.x86_64 libselinux-3.10-1.el10.x86_64 libsemanage-3.10-1.el10.x86_64 libsepol-3.10-1.el10.x86_64 libsmartcols-2.40.2-19.el10.x86_64 libssh-0.12.0-2.el10.x86_64 libssh-config-0.12.0-2.el10.noarch libstdc++-14.3.1-4.4.el10.x86_64 libtasn1-4.20.0-1.el10.x86_64 libunistring-1.1-10.el10.x86_64 libutempter-1.2.1-15.el10.x86_64 libuuid-2.40.2-19.el10.x86_64 libverto-0.3.2-10.el10.x86_64 libxcrypt-4.4.36-10.el10.x86_64 libxml2-2.12.5-10.el10.x86_64 libzstd-1.5.5-9.el10.x86_64 lua-libs-5.4.8-1.el10.x86_64 lua-srpm-macros-1-15.el10.noarch lz4-libs-1.9.4-8.el10.x86_64 mpfr-4.2.1-8.el10.x86_64 ncurses-base-6.4-15.20240127.el10.noarch ncurses-libs-6.4-15.20240127.el10.x86_64 ocaml-srpm-macros-10-4.el10.noarch openblas-srpm-macros-2-19.el10.noarch openldap-2.6.13-1.el10.x86_64 openssl-fips-provider-3.5.5-2.el10.x86_64 openssl-libs-3.5.5-2.el10.x86_64 p11-kit-0.26.2-1.el10.x86_64 p11-kit-trust-0.26.2-1.el10.x86_64 package-notes-srpm-macros-0.5-13.el10.noarch pam-1.6.1-10.el10.x86_64 pam-libs-1.6.1-10.el10.x86_64 patch-2.7.6-26.el10.x86_64 pcre2-10.44-1.el10.3.x86_64 pcre2-syntax-10.44-1.el10.3.noarch perl-srpm-macros-1-57.el10.noarch pkgconf-2.1.0-3.el10.x86_64 pkgconf-m4-2.1.0-3.el10.noarch pkgconf-pkg-config-2.1.0-3.el10.x86_64 popt-1.19-8.el10.x86_64 publicsuffix-list-dafsa-20240107-5.el10.noarch pyproject-srpm-macros-1.18.5-1.el10.noarch python-srpm-macros-3.12-11.el10.noarch qt6-srpm-macros-6.10.1-1.el10.noarch readline-8.2-11.el10.x86_64 redhat-rpm-config-295-1.el10.noarch rpm-4.19.1.1-23.el10.x86_64 rpm-build-4.19.1.1-23.el10.x86_64 rpm-build-libs-4.19.1.1-23.el10.x86_64 rpm-libs-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 rust-toolset-srpm-macros-1.95.0-1.el10.noarch sed-4.9-5.el10.x86_64 setup-2.14.5-7.el10.noarch shadow-utils-4.15.0-11.el10.x86_64 sqlite-libs-3.46.1-5.el10.x86_64 systemd-libs-257-24.el10.x86_64 tar-1.35-11.el10.x86_64 unzip-6.0-69.el10.x86_64 util-linux-2.40.2-19.el10.x86_64 util-linux-core-2.40.2-19.el10.x86_64 which-2.21-44.el10.x86_64 xz-5.6.2-4.el10.x86_64 xz-libs-5.6.2-4.el10.x86_64 zip-3.0-45.el10.x86_64 zlib-ng-compat-2.2.3-3.el10.x86_64 zstd-1.5.5-9.el10.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260501.0.gita9688753.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-1778568247.281058/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1778568247.281058/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1778568247.281058/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-6er1pbtf/pyrtl/pyrtl.spec) Config(child) 0 minutes 40 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot INFO: Start(/var/lib/copr-rpmbuild/results/pyrtl-0.12-20260501.0.gita9688753.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-1778568247.281058/root. INFO: reusing tmpfs at /var/lib/mock/centos-stream+epel-10-x86_64-bootstrap-1778568247.281058/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-1778568247.281058/root. INFO: calling preinit hooks INFO: enabled root cache Start: unpacking root cache Finish: unpacking root cache INFO: enabled package manager cache Start: cleaning package manager metadata Finish: cleaning package manager metadata INFO: enabled HW Info plugin INFO: Buildroot is handled by package management downloaded with a bootstrap image: rpm-4.19.1.1-23.el10.x86_64 rpm-sequoia-1.10.1.1-2.el10.x86_64 python3-dnf-4.20.0-23.el10.noarch python3-dnf-plugins-core-4.7.0-10.el10.noarch yum-4.20.0-23.el10.noarch Finish: chroot init Start: build phase for pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm Start: build setup for pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 8.7 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 1.3 MB/s | 27 kB 00:00 CentOS Stream 10 - AppStream 1.5 MB/s | 27 kB 00:00 CentOS Stream 10 - CRB 1.4 MB/s | 26 kB 00:00 CentOS Stream 10 - Extras packages 1.7 MB/s | 29 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 2.2 MB/s | 43 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-7.el10 appstream 3.2 M python3-pyparsing noarch 3.1.1-7.el10 baseos 269 k python3-pytest noarch 7.4.3-5.el10 crb 756 k python3-rpm-macros noarch 3.12-11.el10 appstream 11 k python3-setuptools noarch 69.0.3-12.el10 baseos 1.6 M python3-wheel noarch 1:0.41.2-6.el10 crb 165 k Installing dependencies: expat x86_64 2.7.3-1.el10 baseos 120 k git-core x86_64 2.52.0-1.el10 appstream 5.1 M git-core-doc noarch 2.52.0-1.el10 appstream 3.2 M groff-base x86_64 1.23.0-10.el10 baseos 1.1 M less x86_64 661-3.el10 baseos 191 k libedit x86_64 3.1-52.20230828cvs.el10 baseos 106 k mpdecimal x86_64 2.5.1-12.el10 baseos 90 k ncurses x86_64 6.4-15.20240127.el10 baseos 420 k openssh x86_64 9.9p1-26.el10 baseos 353 k openssh-clients x86_64 9.9p1-26.el10 baseos 768 k perl-AutoLoader noarch 5.74-514.el10 appstream 22 k perl-B x86_64 1.89-514.el10 appstream 178 k perl-Carp noarch 1.54-511.el10 baseos 30 k perl-Class-Struct noarch 0.68-514.el10 appstream 23 k perl-Data-Dumper x86_64 2.189-512.el10 baseos 57 k perl-Digest noarch 1.20-511.el10 baseos 26 k perl-Digest-MD5 x86_64 2.59-6.el10 baseos 37 k perl-DynaLoader x86_64 1.56-514.el10 appstream 27 k perl-Encode x86_64 4:3.21-511.el10 baseos 1.1 M perl-Errno x86_64 1.38-514.el10 appstream 16 k perl-Error noarch 1:0.17029-18.el10 appstream 42 k perl-Exporter noarch 5.78-511.el10 baseos 32 k perl-Fcntl x86_64 1.18-514.el10 appstream 30 k perl-File-Basename noarch 2.86-514.el10 appstream 18 k perl-File-Path noarch 2.18-512.el10 appstream 35 k perl-File-Temp noarch 1:0.231.100-512.el10 baseos 60 k perl-File-stat noarch 1.14-514.el10 appstream 18 k perl-FileHandle noarch 2.05-514.el10 appstream 16 k perl-Getopt-Long noarch 1:2.58-3.el10 baseos 65 k perl-Getopt-Std noarch 1.14-514.el10 appstream 16 k perl-Git noarch 2.52.0-1.el10 appstream 37 k perl-HTTP-Tiny noarch 0.088-512.el10 baseos 57 k perl-IO x86_64 1.55-514.el10 appstream 81 k perl-IO-Socket-IP noarch 0.42-512.el10 baseos 43 k perl-IO-Socket-SSL noarch 2.085-3.el10 baseos 227 k perl-IPC-Open3 noarch 1.22-514.el10 appstream 23 k perl-MIME-Base64 x86_64 3.16-511.el10 baseos 31 k perl-Mozilla-CA noarch 20231213-5.el10 baseos 15 k perl-Net-SSLeay x86_64 1.94-9.el10 appstream 377 k perl-POSIX x86_64 2.20-514.el10 appstream 97 k perl-PathTools x86_64 3.91-512.el10 baseos 85 k perl-Pod-Escapes noarch 1:1.07-511.el10 baseos 21 k perl-Pod-Perldoc noarch 3.28.01-512.el10 baseos 84 k perl-Pod-Simple noarch 1:3.45-511.el10 baseos 218 k perl-Pod-Usage noarch 4:2.03-511.el10 baseos 41 k perl-Scalar-List-Utils x86_64 5:1.63-511.el10 baseos 74 k perl-SelectSaver noarch 1.02-514.el10 appstream 12 k perl-Socket x86_64 4:2.038-511.el10 baseos 56 k perl-Storable x86_64 1:3.32-511.el10 baseos 99 k perl-Symbol noarch 1.09-514.el10 appstream 15 k perl-Term-ANSIColor noarch 5.01-512.el10 baseos 49 k perl-Term-Cap noarch 1.18-511.el10 baseos 23 k perl-TermReadKey x86_64 2.38-24.el10 appstream 37 k perl-Text-ParseWords noarch 3.31-511.el10 baseos 17 k perl-Text-Tabs+Wrap noarch 2024.001-511.el10 baseos 23 k perl-Time-Local noarch 2:1.350-511.el10 baseos 35 k perl-URI noarch 5.27-3.el10 baseos 134 k perl-base noarch 2.27-514.el10 appstream 17 k perl-constant noarch 1.33-512.el10 baseos 24 k perl-if noarch 0.61.000-514.el10 appstream 15 k perl-interpreter x86_64 4:5.40.2-514.el10 appstream 73 k perl-lib x86_64 0.65-514.el10 appstream 16 k perl-libnet noarch 3.15-512.el10 baseos 127 k perl-libs x86_64 4:5.40.2-514.el10 appstream 2.4 M perl-locale noarch 1.12-514.el10 appstream 14 k perl-mro x86_64 1.29-514.el10 appstream 31 k perl-overload noarch 1.37-514.el10 appstream 46 k perl-overloading noarch 0.02-514.el10 appstream 14 k perl-parent noarch 1:0.241-512.el10 baseos 16 k perl-podlators noarch 1:5.01-511.el10 baseos 124 k perl-vars noarch 1.05-514.el10 appstream 14 k python-rpm-macros noarch 3.12-11.el10 appstream 16 k python3-hatchling noarch 1.27.0-1.el10 crb 239 k python3-iniconfig noarch 1.1.1-18.el10 crb 19 k python3-libs x86_64 3.12.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-7.el10 baseos 1.5 M python3-pluggy noarch 1.3.0-5.el10 crb 53 k python3-setuptools_scm noarch 8.0.4-7.el10 crb 117 k python3-trove-classifiers noarch 2025.9.11.17-1.el10 crb 28 k python3-typing-extensions noarch 4.9.0-6.el10 baseos 78 k tzdata noarch 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 191 kB/s | 120 kB 00:00 (2/94): less-661-3.el10.x86_64.rpm 286 kB/s | 191 kB 00:00 (3/94): libedit-3.1-52.20230828cvs.el10.x86_64. 514 kB/s | 106 kB 00:00 (4/94): mpdecimal-2.5.1-12.el10.x86_64.rpm 871 kB/s | 90 kB 00:00 (5/94): make-4.4.1-9.el10.x86_64.rpm 1.5 MB/s | 587 kB 00:00 (6/94): groff-base-1.23.0-10.el10.x86_64.rpm 1.0 MB/s | 1.1 MB 00:01 (7/94): openssh-9.9p1-26.el10.x86_64.rpm 3.6 MB/s | 353 kB 00:00 (8/94): ncurses-6.4-15.20240127.el10.x86_64.rpm 2.0 MB/s | 420 kB 00:00 (9/94): openssh-clients-9.9p1-26.el10.x86_64.rp 6.5 MB/s | 768 kB 00:00 (10/94): perl-Carp-1.54-511.el10.noarch.rpm 317 kB/s | 30 kB 00:00 (11/94): perl-Data-Dumper-2.189-512.el10.x86_64 555 kB/s | 57 kB 00:00 (12/94): perl-Digest-MD5-2.59-6.el10.x86_64.rpm 393 kB/s | 37 kB 00:00 (13/94): perl-Digest-1.20-511.el10.noarch.rpm 232 kB/s | 26 kB 00:00 (14/94): perl-Exporter-5.78-511.el10.noarch.rpm 335 kB/s | 32 kB 00:00 (15/94): perl-File-Temp-0.231.100-512.el10.noar 541 kB/s | 60 kB 00:00 (16/94): perl-Encode-3.21-511.el10.x86_64.rpm 5.1 MB/s | 1.1 MB 00:00 (17/94): perl-Getopt-Long-2.58-3.el10.noarch.rp 682 kB/s | 65 kB 00:00 (18/94): perl-IO-Socket-IP-0.42-512.el10.noarch 415 kB/s | 43 kB 00:00 (19/94): perl-HTTP-Tiny-0.088-512.el10.noarch.r 509 kB/s | 57 kB 00:00 (20/94): perl-IO-Socket-SSL-2.085-3.el10.noarch 2.3 MB/s | 227 kB 00:00 (21/94): perl-MIME-Base64-3.16-511.el10.x86_64. 300 kB/s | 31 kB 00:00 (22/94): perl-Mozilla-CA-20231213-5.el10.noarch 135 kB/s | 15 kB 00:00 (23/94): perl-PathTools-3.91-512.el10.x86_64.rp 900 kB/s | 85 kB 00:00 (24/94): perl-Pod-Escapes-1.07-511.el10.noarch. 201 kB/s | 21 kB 00:00 (25/94): perl-Pod-Perldoc-3.28.01-512.el10.noar 757 kB/s | 84 kB 00:00 (26/94): perl-Pod-Simple-3.45-511.el10.noarch.r 2.2 MB/s | 218 kB 00:00 (27/94): perl-Pod-Usage-2.03-511.el10.noarch.rp 396 kB/s | 41 kB 00:00 (28/94): perl-Scalar-List-Utils-1.63-511.el10.x 669 kB/s | 74 kB 00:00 (29/94): perl-Socket-2.038-511.el10.x86_64.rpm 591 kB/s | 56 kB 00:00 (30/94): perl-Storable-3.32-511.el10.x86_64.rpm 960 kB/s | 99 kB 00:00 (31/94): perl-Term-Cap-1.18-511.el10.noarch.rpm 244 kB/s | 23 kB 00:00 (32/94): perl-Term-ANSIColor-5.01-512.el10.noar 439 kB/s | 49 kB 00:00 (33/94): perl-Text-ParseWords-3.31-511.el10.noa 168 kB/s | 17 kB 00:00 (34/94): perl-Text-Tabs+Wrap-2024.001-511.el10. 240 kB/s | 23 kB 00:00 (35/94): perl-Time-Local-1.350-511.el10.noarch. 319 kB/s | 35 kB 00:00 (36/94): perl-URI-5.27-3.el10.noarch.rpm 1.3 MB/s | 134 kB 00:00 (37/94): perl-constant-1.33-512.el10.noarch.rpm 252 kB/s | 24 kB 00:00 (38/94): perl-libnet-3.15-512.el10.noarch.rpm 1.1 MB/s | 127 kB 00:00 (39/94): perl-podlators-5.01-511.el10.noarch.rp 1.3 MB/s | 124 kB 00:00 (40/94): perl-parent-0.241-512.el10.noarch.rpm 155 kB/s | 16 kB 00:00 (41/94): python3-3.12.13-2.el10.x86_64.rpm 253 kB/s | 28 kB 00:00 (42/94): python3-packaging-24.2-2.el10.noarch.r 883 kB/s | 153 kB 00:00 (43/94): python3-pip-wheel-23.3.2-7.el10.noarch 6.6 MB/s | 1.5 MB 00:00 (44/94): python3-pyparsing-3.1.1-7.el10.noarch. 1.9 MB/s | 269 kB 00:00 (45/94): python3-typing-extensions-4.9.0-6.el10 584 kB/s | 78 kB 00:00 (46/94): python3-setuptools-69.0.3-12.el10.noar 7.1 MB/s | 1.6 MB 00:00 (47/94): python3-libs-3.12.13-2.el10.x86_64.rpm 17 MB/s | 9.5 MB 00:00 (48/94): tzdata-2026b-1.el10.noarch.rpm 8.0 MB/s | 904 kB 00:00 (49/94): git-2.52.0-1.el10.x86_64.rpm 152 kB/s | 40 kB 00:00 (50/94): perl-AutoLoader-5.74-514.el10.noarch.r 8.3 kB/s | 22 kB 00:02 (51/94): git-core-doc-2.52.0-1.el10.noarch.rpm 996 kB/s | 3.2 MB 00:03 (52/94): git-core-2.52.0-1.el10.x86_64.rpm 1.5 MB/s | 5.1 MB 00:03 (53/94): perl-B-1.89-514.el10.x86_64.rpm 341 kB/s | 178 kB 00:00 (54/94): perl-Class-Struct-0.68-514.el10.noarch 320 kB/s | 23 kB 00:00 (55/94): perl-DynaLoader-1.56-514.el10.x86_64.r 298 kB/s | 27 kB 00:00 (56/94): perl-Errno-1.38-514.el10.x86_64.rpm 221 kB/s | 16 kB 00:00 (57/94): perl-Error-0.17029-18.el10.noarch.rpm 577 kB/s | 42 kB 00:00 (58/94): perl-Fcntl-1.18-514.el10.x86_64.rpm 411 kB/s | 30 kB 00:00 (59/94): perl-File-Basename-2.86-514.el10.noarc 181 kB/s | 18 kB 00:00 (60/94): perl-File-Path-2.18-512.el10.noarch.rp 334 kB/s | 35 kB 00:00 (61/94): perl-File-stat-1.14-514.el10.noarch.rp 215 kB/s | 18 kB 00:00 (62/94): perl-FileHandle-2.05-514.el10.noarch.r 134 kB/s | 16 kB 00:00 (63/94): perl-Getopt-Std-1.14-514.el10.noarch.r 127 kB/s | 16 kB 00:00 (64/94): perl-Git-2.52.0-1.el10.noarch.rpm 275 kB/s | 37 kB 00:00 (65/94): perl-IO-1.55-514.el10.x86_64.rpm 876 kB/s | 81 kB 00:00 (66/94): perl-IPC-Open3-1.22-514.el10.noarch.rp 283 kB/s | 23 kB 00:00 (67/94): perl-Net-SSLeay-1.94-9.el10.x86_64.rpm 3.0 MB/s | 377 kB 00:00 (68/94): perl-POSIX-2.20-514.el10.x86_64.rpm 937 kB/s | 97 kB 00:00 (69/94): perl-SelectSaver-1.02-514.el10.noarch. 130 kB/s | 12 kB 00:00 (70/94): perl-Symbol-1.09-514.el10.noarch.rpm 200 kB/s | 15 kB 00:00 (71/94): perl-TermReadKey-2.38-24.el10.x86_64.r 426 kB/s | 37 kB 00:00 (72/94): perl-base-2.27-514.el10.noarch.rpm 168 kB/s | 17 kB 00:00 (73/94): perl-if-0.61.000-514.el10.noarch.rpm 208 kB/s | 15 kB 00:00 (74/94): perl-interpreter-5.40.2-514.el10.x86_6 1.0 MB/s | 73 kB 00:00 (75/94): perl-lib-0.65-514.el10.x86_64.rpm 222 kB/s | 16 kB 00:00 (76/94): perl-libs-5.40.2-514.el10.x86_64.rpm 15 MB/s | 2.4 MB 00:00 (77/94): perl-locale-1.12-514.el10.noarch.rpm 127 kB/s | 14 kB 00:00 (78/94): perl-mro-1.29-514.el10.x86_64.rpm 257 kB/s | 31 kB 00:00 (79/94): perl-overload-1.37-514.el10.noarch.rpm 555 kB/s | 46 kB 00:00 (80/94): perl-overloading-0.02-514.el10.noarch. 153 kB/s | 14 kB 00:00 (81/94): perl-vars-1.05-514.el10.noarch.rpm 211 kB/s | 14 kB 00:00 (82/94): python-rpm-macros-3.12-11.el10.noarch. 222 kB/s | 16 kB 00:00 (83/94): python3-rpm-macros-3.12-11.el10.noarch 151 kB/s | 11 kB 00:00 (84/94): python3-pip-23.3.2-7.el10.noarch.rpm 15 MB/s | 3.2 MB 00:00 (85/94): python3-iniconfig-1.1.1-18.el10.noarch 22 kB/s | 19 kB 00:00 (86/94): pyproject-rpm-macros-1.18.5-1.el10.noa 39 kB/s | 44 kB 00:01 (87/94): python3-pluggy-1.3.0-5.el10.noarch.rpm 192 kB/s | 53 kB 00:00 (88/94): python3-pathspec-0.12.1-5.el10.noarch. 109 kB/s | 60 kB 00:00 (89/94): python3-hatchling-1.27.0-1.el10.noarch 144 kB/s | 239 kB 00:01 (90/94): python3-trove-classifiers-2025.9.11.17 93 kB/s | 28 kB 00:00 (91/94): python3-setuptools_scm-8.0.4-7.el10.no 192 kB/s | 117 kB 00:00 (92/94): python3-hatch-vcs-0.4.0-6.el10_0.noarc 1.6 MB/s | 23 kB 00:00 (93/94): python3-wheel-0.41.2-6.el10.noarch.rpm 437 kB/s | 165 kB 00:00 (94/94): python3-pytest-7.4.3-5.el10.noarch.rpm 665 kB/s | 756 kB 00:01 -------------------------------------------------------------------------------- Total 3.8 MB/s | 37 MB 00:09 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-7.el10.noarch 5/94 Installing : openssh-9.9p1-26.el10.x86_64 6/94 Installing : ncurses-6.4-15.20240127.el10.x86_64 7/94 Installing : mpdecimal-2.5.1-12.el10.x86_64 8/94 Installing : python3-3.12.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-7.el10.noarch 91/94 Installing : python3-wheel-1:0.41.2-6.el10.noarch 92/94 Installing : pyproject-rpm-macros-1.18.5-1.el10.noarch 93/94 Installing : make-1:4.4.1-9.el10.x86_64 94/94 Running scriptlet: make-1:4.4.1-9.el10.x86_64 94/94 Installed: expat-2.7.3-1.el10.x86_64 git-2.52.0-1.el10.x86_64 git-core-2.52.0-1.el10.x86_64 git-core-doc-2.52.0-1.el10.noarch groff-base-1.23.0-10.el10.x86_64 less-661-3.el10.x86_64 libedit-3.1-52.20230828cvs.el10.x86_64 make-1:4.4.1-9.el10.x86_64 mpdecimal-2.5.1-12.el10.x86_64 ncurses-6.4-15.20240127.el10.x86_64 openssh-9.9p1-26.el10.x86_64 openssh-clients-9.9p1-26.el10.x86_64 perl-AutoLoader-5.74-514.el10.noarch perl-B-1.89-514.el10.x86_64 perl-Carp-1.54-511.el10.noarch perl-Class-Struct-0.68-514.el10.noarch perl-Data-Dumper-2.189-512.el10.x86_64 perl-Digest-1.20-511.el10.noarch perl-Digest-MD5-2.59-6.el10.x86_64 perl-DynaLoader-1.56-514.el10.x86_64 perl-Encode-4:3.21-511.el10.x86_64 perl-Errno-1.38-514.el10.x86_64 perl-Error-1:0.17029-18.el10.noarch perl-Exporter-5.78-511.el10.noarch perl-Fcntl-1.18-514.el10.x86_64 perl-File-Basename-2.86-514.el10.noarch perl-File-Path-2.18-512.el10.noarch perl-File-Temp-1:0.231.100-512.el10.noarch perl-File-stat-1.14-514.el10.noarch perl-FileHandle-2.05-514.el10.noarch perl-Getopt-Long-1:2.58-3.el10.noarch perl-Getopt-Std-1.14-514.el10.noarch perl-Git-2.52.0-1.el10.noarch perl-HTTP-Tiny-0.088-512.el10.noarch perl-IO-1.55-514.el10.x86_64 perl-IO-Socket-IP-0.42-512.el10.noarch perl-IO-Socket-SSL-2.085-3.el10.noarch perl-IPC-Open3-1.22-514.el10.noarch perl-MIME-Base64-3.16-511.el10.x86_64 perl-Mozilla-CA-20231213-5.el10.noarch perl-Net-SSLeay-1.94-9.el10.x86_64 perl-POSIX-2.20-514.el10.x86_64 perl-PathTools-3.91-512.el10.x86_64 perl-Pod-Escapes-1:1.07-511.el10.noarch perl-Pod-Perldoc-3.28.01-512.el10.noarch perl-Pod-Simple-1:3.45-511.el10.noarch perl-Pod-Usage-4:2.03-511.el10.noarch perl-Scalar-List-Utils-5:1.63-511.el10.x86_64 perl-SelectSaver-1.02-514.el10.noarch perl-Socket-4:2.038-511.el10.x86_64 perl-Storable-1:3.32-511.el10.x86_64 perl-Symbol-1.09-514.el10.noarch perl-Term-ANSIColor-5.01-512.el10.noarch perl-Term-Cap-1.18-511.el10.noarch perl-TermReadKey-2.38-24.el10.x86_64 perl-Text-ParseWords-3.31-511.el10.noarch perl-Text-Tabs+Wrap-2024.001-511.el10.noarch perl-Time-Local-2:1.350-511.el10.noarch perl-URI-5.27-3.el10.noarch perl-base-2.27-514.el10.noarch perl-constant-1.33-512.el10.noarch perl-if-0.61.000-514.el10.noarch perl-interpreter-4:5.40.2-514.el10.x86_64 perl-lib-0.65-514.el10.x86_64 perl-libnet-3.15-512.el10.noarch perl-libs-4:5.40.2-514.el10.x86_64 perl-locale-1.12-514.el10.noarch perl-mro-1.29-514.el10.x86_64 perl-overload-1.37-514.el10.noarch perl-overloading-0.02-514.el10.noarch perl-parent-1:0.241-512.el10.noarch perl-podlators-1:5.01-511.el10.noarch perl-vars-1.05-514.el10.noarch pyproject-rpm-macros-1.18.5-1.el10.noarch python-rpm-macros-3.12-11.el10.noarch python3-3.12.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-7.el10.noarch python3-pip-wheel-23.3.2-7.el10.noarch python3-pluggy-1.3.0-5.el10.noarch python3-pyparsing-3.1.1-7.el10.noarch python3-pytest-7.4.3-5.el10.noarch python3-rpm-macros-3.12-11.el10.noarch python3-setuptools-69.0.3-12.el10.noarch python3-setuptools_scm-8.0.4-7.el10.noarch python3-trove-classifiers-2025.9.11.17-1.el10.noarch python3-typing-extensions-4.9.0-6.el10.noarch python3-wheel-1:0.41.2-6.el10.noarch tzdata-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-0.12-20260501.0.gita9688753.el10.src.rpm No matches found for the following disable plugin patterns: local, spacewalk, versionlock Copr repository 8.4 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 1.5 MB/s | 27 kB 00:00 CentOS Stream 10 - AppStream 1.5 MB/s | 27 kB 00:00 CentOS Stream 10 - CRB 1.5 MB/s | 26 kB 00:00 CentOS Stream 10 - Extras packages 1.6 MB/s | 29 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 2.1 MB/s | 43 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-7.el10.noarch is already installed. Package python3-pyparsing-3.1.1-7.el10.noarch is already installed. Package python3-pytest-7.4.3-5.el10.noarch is already installed. Package python3-rpm-macros-3.12-11.el10.noarch is already installed. Package python3-setuptools-69.0.3-12.el10.noarch is already installed. Package python3-wheel-1:0.41.2-6.el10.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Finish: build setup for pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm Start: rpmbuild pyrtl-0.12-20260501.0.gita9688753.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.sK1xuW + 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 a9688753a3bf4aaac91cf6a664988d90f3624305 From https://github.com/UCSBarchlab/PyRTL * branch a9688753a3bf4aaac91cf6a664988d90f3624305 -> FETCH_HEAD + git reset --hard a9688753a3bf4aaac91cf6a664988d90f3624305 HEAD is now at a968875 Revert `isinstance` changes from 3a1bbd2 because they weren't always working. + git log --format=fuller commit a9688753a3bf4aaac91cf6a664988d90f3624305 Author: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> AuthorDate: Fri May 1 16:57:58 2026 -0700 Commit: Jeremy Lau <30300826+fdxmw@users.noreply.github.com> CommitDate: Fri May 1 17:08:49 2026 -0700 Revert `isinstance` changes from 3a1bbd2 because they weren't always working. 3a1bbd2 attempted to make `wire_struct` and `wire_matrix` pass `isinstance` checks without a call to `as_wires`. This did not work reliably because there is only one `wire_struct` or `wire_matrix` class created for each type, and that one class would get registered as subclasses for different WireVector types. So this example did not work: ``` const_byte = Byte(Byte=0xAB) input_byte = Byte(concatenated_type=pyrtl.Input) # With 3a1bbd2, this would return True, but it should return False. isinstance(const_byte, pyrtl.Input) ``` This commit reverts broken the subclass registration. The safest way to check the actual type of a `wire_struct` or `wire_matrix` is to call `as_wires` to unwrap the `WrappedWireVector`. Added documentation and tests. + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.Cg2zXe + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260501.0.gita9688753.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 7.1 kB/s | 1.5 kB 00:00 CentOS Stream 10 - BaseOS 1.3 MB/s | 27 kB 00:00 CentOS Stream 10 - AppStream 1.4 MB/s | 27 kB 00:00 CentOS Stream 10 - CRB 1.3 MB/s | 26 kB 00:00 CentOS Stream 10 - Extras packages 1.6 MB/s | 29 kB 00:00 Extra Packages for Enterprise Linux 10 - x86_64 2.1 MB/s | 43 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-7.el10.noarch is already installed. Package python3-pyparsing-3.1.1-7.el10.noarch is already installed. Package python3-pytest-7.4.3-5.el10.noarch is already installed. Package python3-rpm-macros-3.12-11.el10.noarch is already installed. Package python3-setuptools-69.0.3-12.el10.noarch is already installed. Package python3-wheel-1:0.41.2-6.el10.noarch is already installed. Dependencies resolved. Nothing to do. Complete! Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1582243200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.MgeSPY + umask 022 + cd /builddir/build/BUILD + cd pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.DjsPV4 + 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+ga968875-py3-none-any.whl size=210204 sha256=62999f742beb49f53927b1d097cffcd80953f48d7b8f3b1222aadb8191cc35bf Stored in directory: /builddir/build/BUILD/pyrtl/.pyproject-builddir/pip-ephem-wheel-cache-33i5buo0/wheels/01/79/a0/2ccfc8786038f5feb00217f0dae0e258e92db79b5264c8aa03 Successfully built pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.CDuqxY + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.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+ga968875-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ xargs basename --multiple + specifier=pyrtl==0.1.dev1+ga968875 + '[' -z pyrtl==0.1.dev1+ga968875 ']' + TMPDIR=/builddir/build/BUILD/pyrtl/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.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+ga968875 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+ga968875-py3-none-any.whl Installing collected packages: pyrtl Successfully installed pyrtl-0.1.dev1+ga968875 + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64$site_dir/*.dist-info + echo '%ghost %dir /usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 --record /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/RECORD --output /builddir/build/BUILD/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/RECORD removed '/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages/pyrtl-0.1.dev1+ga968875.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64//usr/lib/python3.12/site-packages/tests + /usr/bin/find-debuginfo -j2 --strict-build-id -m -i --build-id-seed 0.12-20260501.0.gita9688753.el10 --unique-debug-suffix -0.12-20260501.0.gita9688753.el10.x86_64 --unique-debug-src-base pyrtl-0.12-20260501.0.gita9688753.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-0.12-20260501.0.gita9688753.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.XrwZnZ + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd pyrtl + export PYTHONPATH=/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.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 1270 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 [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_basic_nested_non_exclusive_condition PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_one_deep_nested_non_exclusive_condition PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_other_overlaping_assignments_in_non_exclusive_assignments PASSED [ 4%] tests/test_conditional.py::TestNonExclusiveBlocks::test_overlaping_assignments_in_non_exclusive_assignments PASSED [ 4%] tests/test_conditional.py::TestSuperWireConditionalBlock::test_super_stress_test PASSED [ 4%] tests/test_core.py::TestDocTests::test_doctests PASSED [ 4%] tests/test_core.py::TestBlock::test_add_wire PASSED [ 4%] tests/test_core.py::TestBlock::test_add_wirevector_simple PASSED [ 4%] tests/test_core.py::TestBlock::test_bad_memblock_name_none PASSED [ 4%] tests/test_core.py::TestBlock::test_bad_memblock_name_strict PASSED [ 4%] tests/test_core.py::TestBlock::test_block_iterators PASSED [ 4%] tests/test_core.py::TestBlock::test_logicsubset_no_op PASSED [ 4%] tests/test_core.py::TestBlock::test_no_logic_net_comparisons PASSED [ 5%] tests/test_core.py::TestBlock::test_no_memblocks PASSED [ 5%] tests/test_core.py::TestBlock::test_same_memblock_referenced_across_multiple_operators PASSED [ 5%] tests/test_core.py::TestBlock::test_sanity_check PASSED [ 5%] tests/test_core.py::TestBlock::test_undriven_net PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_dest_wrong_arity_or_type PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_dest_wrong_bitwidth PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_make_with_not_net PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_no_tuples PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_odd_wires PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_bitwidth PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_num_args PASSED [ 5%] tests/test_core.py::TestSanityCheckNet::test_net_wrong_num_op_params PASSED [ 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 [ 7%] tests/test_core.py::TestSanityCheck::test_duplicate_names PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_extra_wire_in_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_inconsistent_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_missing_bitwidth PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_missing_wire_in_wirevector_by_name PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_not_connected PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_not_driven PASSED [ 7%] tests/test_core.py::TestSanityCheck::test_unknown_wires PASSED [ 7%] tests/test_core.py::TestLogicNets::test_comparison PASSED [ 7%] tests/test_core.py::TestLogicNets::test_equivelence_of_different_nets PASSED [ 7%] tests/test_core.py::TestLogicNets::test_equivelence_of_same_nets PASSED [ 7%] tests/test_core.py::TestLogicNets::test_memory_read_print PASSED [ 7%] tests/test_core.py::TestLogicNets::test_memory_write_print PASSED [ 8%] tests/test_core.py::TestLogicNets::test_net_with_wirevectors PASSED [ 8%] tests/test_core.py::TestLogicNets::test_self_equals PASSED [ 8%] tests/test_core.py::TestLogicNets::test_string_format PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_notpass_with_add PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass_with_cat PASSED [ 8%] tests/test_core.py::TestMemAsyncCheck::test_async_check_should_pass_with_select PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_normal PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_should_be_empty_at_start PASSED [ 8%] tests/test_core.py::TestNetConnections::test_net_connections_with_memblock PASSED [ 8%] tests/test_core.py::TestNetConnections::test_wire_not_in_net_connections PASSED [ 8%] tests/test_core.py::TestNameSanitizer::test_name_collision PASSED [ 8%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] FAILED [ 9%] tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] FAILED [ 10%] tests/test_gate_graph.py::TestDocTests::test_doctests PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_alias_errors PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_attrs PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_retrieval PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_gate_sets PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_get_gate PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_memblock PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_gate_backward PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_gate_forward PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_register_self_loop PASSED [ 10%] tests/test_gate_graph.py::TestGateGraph::test_select_gate PASSED [ 10%] tests/test_helperfuncs.py::TestDocTests::test_corecircuits_doctests PASSED [ 10%] tests/test_helperfuncs.py::TestDocTests::test_helperfuncs_doctests PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_input_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_output_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_register_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_bitwidth PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_per_wire_width PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_raise_errors PASSED [ 11%] tests/test_helperfuncs.py::TestWireVectorList::test_wirevector_list_type PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_infer_val_and_bitwidth PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_log2 PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_truncate_function PASSED [ 11%] tests/test_helperfuncs.py::TestNonCoreHelpers::test_val_to_signed_integer PASSED [ 11%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_does_simulation_correct PASSED [ 11%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_no_ones_in_pattern PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_no_zeroes_in_pattern PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_simulates_only_wildcards PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_all_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_consecutive_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_non_consecutive_field PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_by_name PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_with_bad_field_map PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_pattern_matched_fields_with_field_map PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_match_bitwidth_with_several_non_consecutive_fields PASSED [ 12%] tests/test_helperfuncs.py::TestMatchBitpattern::test_pattern_type_or_length_mismatch PASSED [ 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 [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_empty_bitpattern PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_invalid_num_unique_patterns PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_unnamed_fields_in_bitpattern PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_error_value_doesnt_fit_in_field PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_fields_all_different PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_named_fields PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_named_fields_with_field_map PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_no_fields PASSED [ 13%] tests/test_helperfuncs.py::TestBitpatternToVal::test_ordered_fields PASSED [ 13%] tests/test_helperfuncs.py::TestChop::test_chop_does_simulation_correct PASSED [ 13%] tests/test_helperfuncs.py::TestChop::test_fields_mismatch PASSED [ 13%] tests/test_helperfuncs.py::TestChop::test_wrong_input_types_fail PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_all_but_lsb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_all_but_msb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_lsb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_bitfield_msb PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_field_too_big PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_field_too_big_truncate PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update::test_no_bits_to_update PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_bitfield PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_field_too_big PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_field_too_big_truncate PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_no_bits_to_update PASSED [ 14%] tests/test_helperfuncs.py::TestBitField_Update_Set::test_overlapping_ranges PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_does_simulation_correct PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_only_on_1_bit_vectors PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_all_works_with_consts PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_does_simulation_correct PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_only_on_1_bit_vectors PASSED [ 15%] tests/test_helperfuncs.py::TestAnyAll::test_any_works_with_consts PASSED [ 15%] tests/test_helperfuncs.py::TestTreeReduce::test_empty PASSED [ 15%] tests/test_helperfuncs.py::TestTreeReduce::test_xor PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_list_of_long_wires PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_list_of_one_bit_wires PASSED [ 15%] tests/test_helperfuncs.py::TestXorAllBits::test_one_wirevector PASSED [ 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 [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_not_enough_inputs_but_default PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_too_many_inputs PASSED [ 16%] tests/test_helperfuncs.py::TestMux::test_mux_too_many_inputs_with_default PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_mux_with_default PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_select PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_select_no_pred PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_simple_mux_1 PASSED [ 16%] tests/test_helperfuncs.py::TestMuxSimulation::test_simple_mux_2 PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_bad_probe_wire PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_probe_wire PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_simple_probe PASSED [ 16%] tests/test_helperfuncs.py::TestRtlProbe::test_simple_probe_debug PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_big_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sla_over PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_big_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_integer_shift_amount PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sll_over PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big PASSED [ 17%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_big_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_sra_over PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_big PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_big_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_integer_shift_amount PASSED [ 18%] tests/test_helperfuncs.py::TestShiftSimulation::test_srl_over PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_1 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_1_1 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_2 PASSED [ 18%] tests/test_helperfuncs.py::TestBasicMult::test_mult_3 PASSED [ 18%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_fastsimulation PASSED [ 18%] tests/test_helperfuncs.py::TestRtlAssert::test_assert_simulation PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_bad_type PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_create_assert PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_duplicate_assert PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_invalid_exception_type PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wire_from_another_block PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wire_outside_block PASSED [ 19%] tests/test_helperfuncs.py::TestRtlAssert::test_wrong_len PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_edge_case_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_loop_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_loop_2 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_1 PASSED [ 19%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_reg_1 PASSED [ 20%] tests/test_helperfuncs.py::TestLoopDetection::test_no_loop_special_ops PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_pixel_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_pixel_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_anonymous_slice PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_concatenate PASSED [ 20%] tests/test_helperfuncs.py::TestWireStruct::test_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 [ 21%] tests/test_helperfuncs.py::TestWireStruct::test_output_concatenate PASSED [ 21%] 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 [ 22%] tests/test_helperfuncs.py::TestWireMatrix::test_delayed_conditional_concatenate PASSED [ 22%] 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 [ 23%] tests/test_helperfuncs.py::TestOneHotToBinary::test_no_ones PASSED [ 23%] 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::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 [ 24%] 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 [ 25%] 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 [ 26%] 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 [ 27%] tests/test_importexport.py::TestOutputTestbench::test_verilog_testbench_no_reset_consistency PASSED [ 27%] 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 [ 28%] tests/test_memblock.py::RTLMemBlockDesignBase::test_memblock_direct_assignment_error PASSED [ 28%] 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 [ 29%] 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 [ 30%] tests/test_memblock.py::RTLRomBlockWiring::test_rom_to_rom_direct_operation PASSED [ 30%] 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 [ 31%] tests/test_passes.py::TestSynthesis::test_const_nobitwidth_simulation PASSED [ 31%] 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 [ 32%] tests/test_passes.py::TestIOInterfaceSynthesis::test_synthesize_unmerged_io_mapped_correctly PASSED [ 32%] 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 [ 33%] tests/test_passes.py::TestOptimization::test_remove_double_inverts_3_inverts PASSED [ 33%] 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 [ 34%] tests/test_passes.py::TestConstFolding::test_basic_one_var_op_1 PASSED [ 34%] 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 [ 35%] tests/test_passes.py::TestSubexpElimination::test_different_arg_order PASSED [ 35%] 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 [ 36%] tests/test_passes.py::TestSynthOptTiming::test_adder PASSED [ 36%] 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 [ 37%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_single_output PASSED [ 37%] tests/test_passes.py::TestDirectlyConnectedOutputs::test_single_output_simulates_correctly PASSED [ 37%] 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 [ 38%] tests/test_signed.py::TestComparisonBasicOperationsMSB1::test_basic_unsigned_lte PASSED [ 38%] tests/test_signed.py::TestComparisonBasicOperations_MSB0::test_basic_signed_gt PASSED [ 38%] 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 [ 39%] tests/test_signed.py::TestSignedArithBasicOperations::test_basic_signed_mult_commutative PASSED [ 39%] 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 [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_associativity_string_simulation PASSED [ 40%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_const_nobitwidth_simulation PASSED [ 40%] 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 [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_or_simulation PASSED [ 41%] tests/test_simulation.py::TestTraceWithBasicOpsSimulation::test_plus_simulation PASSED [ 41%] 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 [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_veriloghuge_simulation PASSED [ 42%] tests/test_simulation.py::TestTraceWithBasicOpsFastSimulation::test_const_verilogsmall_simulation PASSED [ 42%] 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 [ 43%] tests/test_simulation.py::TestRenderTraceSimulation::test_decimal_trace PASSED [ 43%] 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_val_to_signed_integer PASSED [ 44%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_custom_repr_per_wire PASSED [ 44%] tests/test_simulation.py::TestRenderTraceCustomFastSimulation::test_enum_name 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 [ 45%] 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 [ 46%] 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 [ 47%] tests/test_simulation.py::TestSimStepMultipleSimulation::test_step_multiple_many_errors_report_all PASSED [ 47%] 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 [ 48%] 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 [ 49%] 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 [ 50%] tests/test_simulation.py::TestMemBlockFastSimulation::test_synth_simple_memblock PASSED [ 50%] 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 [ 51%] tests/test_simulation.py::TestRomBlockSimSimulation::test_rom_out_of_range_error PASSED [ 51%] 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 [ 52%] tests/test_simulation.py::TestInspectSimulation::test_inspect_mem PASSED [ 52%] 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 [ 53%] 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 [ 54%] tests/test_transform.py::TestCloning::test_clone_wire_no_or_same_name_different_block PASSED [ 54%] 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::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 [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_func PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_per_name PASSED [ 55%] tests/test_visualization.py::TestOutputIPynb::test_trace_to_html_repr_per_name_enum_is_bool PASSED [ 55%] tests/test_wire.py::TestDocTests::test_doctests PASSED [ 55%] tests/test_wire.py::TestWireVector::test_assign_to_value PASSED [ 55%] tests/test_wire.py::TestWireVector::test_basic_assignment PASSED [ 55%] tests/test_wire.py::TestWireVector::test_rename PASSED [ 55%] tests/test_wire.py::TestWireVector::test_sign_extend PASSED [ 55%] tests/test_wire.py::TestWireVector::test_truncating PASSED [ 55%] tests/test_wire.py::TestWireVector::test_unset_bitwidth PASSED [ 55%] tests/test_wire.py::TestWireVector::test_wirevector_length PASSED [ 55%] tests/test_wire.py::TestWireVector::test_zero_extend PASSED [ 56%] 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 [ 57%] tests/test_wire.py::TestWireVectorSlicing::test_valid_indicies PASSED [ 57%] 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 [ 58%] 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::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 [ 60%] 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 [ 61%] 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_libutils.py::TestPartitionWire::test_failing_partition PASSED [ 62%] tests/rtllib/test_libutils.py::TestPartitionWire::test_partition_sim PASSED [ 62%] tests/rtllib/test_libutils.py::TestPartitionWire::test_successful_partition PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_binary_conversion PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_empty PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_bin_str PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_invalid_str PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_multiline PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_no_override PASSED [ 62%] tests/rtllib/test_libutils.py::TestStringConversion::test_simple_conversion PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_inverse_functionality PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_low_bw_error PASSED [ 62%] tests/rtllib/test_libutils.py::TestTwosComp::test_twos_comp_sim PASSED [ 62%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_basic_wirevector PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_columns PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_bad_number_of_rows PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_int_instead_of_matrix PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_bits PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_column PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_negative_row PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_bit PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_column PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_string_row PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits PASSED [ 63%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_bits_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_column_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_fail_zero_row_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_one_by_four_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_random_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_three_by_three_wirevector PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixInit::test_init_wirevector_mismatch PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits PASSED [ 64%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_basic_change_bits_trunicate PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_negative PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_string PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_fail_change_bits_zero PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixBits::test_bits_no_change PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_3_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_2_by_2_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_2_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_3_by_3_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_basic_case PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_negative PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_columns_slice PASSED [ 65%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_row_negative PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_negative PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_out_of_bounds_rows_slice PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_column_only PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_columns PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_fail_string_rows PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_row PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_back PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_full_rows_with_slice_front PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_returns_single PASSED [ 66%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_1 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_column_3 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_1 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_in_tuple_with_slice_returns_row_3 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v1 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_row_v2 PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_rows PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_negative_returns_single PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_raw PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_slice_indices_shorthand PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixGetItem::test_getitem_with_tuple_indices PASSED [ 67%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_2 PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_2_by_3 PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_2 PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_3_by_3 PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_basic_case PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_negative PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_columns_slice PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_negative PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_out_of_bounds_rows_slice PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_column PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_row PASSED [ 68%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_string_rows_only PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_columns PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_value_matrix_incorrect_rows PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_fail_wire_for_matrix PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_row_item PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_back PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_full_rows_with_slice_front PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_negative PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_raw_int PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v1 PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_row_with_negative_index_v2 PASSED [ 69%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_rows_with_negative_index_slice PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_raw PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_slice_indices_shorthand PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixSetItem::test_setitem_with_tuple_indices PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_basic PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_one_by_four PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixCopy::test_copy_three_by_three PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_1_by_4 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_3_by_3 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_4_by_1 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixTranspose::test_transpose_basic PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_1_by_4 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_3_by_3 PASSED [ 70%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_4_by_1 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixReverse::test_reverse_basic PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_2_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_2 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_different PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_3_by_3_same PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_basic_case PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_2_by_2_add_3_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_2_by_3 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_3_by_3_add_3_by_2 PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixAdd::test_add_fail_add_one PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_different PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_3_by_3_same PASSED [ 71%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_basic PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceAdd::test_iadd_fail_3_by_3_add_3_by_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_different PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_3_by_3_same PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_basic PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_3_by_3_sub_3_by_2 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixSub::test_sub_fail_int PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_different_positive_result PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_3_by_3_same PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_basic PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_2_by_3 PASSED [ 72%] tests/rtllib/test_matrix.py::TestMatrixInplaceSub::test_isub_fail_3_by_3_sub_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_2_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_different PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_3_by_3_same PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_basic PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_2_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_element_wise_multiply_fail_3_by_3_multiply_3_by_2 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_fail_int PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_1_by_4 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_3_by_3 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_4_by_1 PASSED [ 73%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_one PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMultiply::test_multiply_scalar_basic_zero PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_different PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_3_by_3_same PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_basic PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_2_by_3 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixInplaceMultiply::test_element_wise_imultiply_fail_3_by_3_multiply_3_by_2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_1_by_2_multiply_2_by_1 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_different PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_3_by_3_multiply_3_by_3_same PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_basic PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_2_multiply_3_by_2 PASSED [ 74%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_2 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixMultiply::test_mat_mul_fail_int PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_1_by_2_multiply_2_by_1 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_different PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_3_by_3_multiply_3_by_3_same PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_basic PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_2_by_3 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixMultiply::test_imat_mul_fail_3_by_3_multiply_3_by_2 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_0 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_1 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_3_by_3_power_2 PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_negative_power PASSED [ 75%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_nonsquare PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixMatrixPower::test_matrix_power_fail_string PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_0 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_1 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMatrixInplaceMatrixPower::test_imatrix_power_3_by_3_power_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_fail_string PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_matrix PASSED [ 76%] tests/rtllib/test_matrix.py::TestMultiply::test_multiply_scalar PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_1 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_2 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_3 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_4 PASSED [ 76%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_5 PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_count PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_bad_tuple_shape_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_incomplete_tuple_with_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_int_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_negative_one_shape_column_order PASSED [ 77%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_4 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_5 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_3 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_4 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_shape_column_order_5 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_1_column_order PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2 PASSED [ 78%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_nonsquare_tuple_with_negative_one_shape_2_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_normal_tuple_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_single_int_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_tuple_with_negative_one_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape PASSED [ 79%] tests/rtllib/test_matrix.py::TestReshape::test_reshape_varargs_shape_column_order PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_1 PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_2 PASSED [ 79%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_column_wise_nonsquare_3 PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_invalid_order PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestFlatten::test_flatten_row_wise_nonsquare_3 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_empty PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_clip_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_repeat_v_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_1 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_list_values_2 PASSED [ 80%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_negative PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_raise_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_tuple_values PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_1 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_indices_wrap_2 PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_matrix PASSED [ 81%] tests/rtllib/test_matrix.py::TestPut::test_put_tuple_indices PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4 PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_column PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_1_by_4_row PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3 PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_column PASSED [ 81%] tests/rtllib/test_matrix.py::TestSum::test_sum_3_by_3_row PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1 PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_column PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_4_by_1_row PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_column PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_basic_row PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_axis_out_of_bounds PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_axis PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_negative_bits PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_axis PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_string_bits PASSED [ 82%] tests/rtllib/test_matrix.py::TestSum::test_sum_fail_zero_bits PASSED [ 83%] tests/rtllib/test_matrix.py::TestSum::test_sum_wire PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_1_by_4_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_3_by_3_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1 PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_column PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_4_by_1_row PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_basic PASSED [ 83%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_column PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_basic_row PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_negative PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_out_of_bounds PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_axis_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_negative PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_bits_zero PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_fail_string PASSED [ 84%] tests/rtllib/test_matrix.py::TestMin::test_min_wire PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4 PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_columns PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_1_by_4_rows PASSED [ 84%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3 PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_3_by_3_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1 PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_4_by_1_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_columns PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_basic_rows PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_negative PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_out_of_bounds PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_axis_string PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_negative PASSED [ 85%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_string PASSED [ 86%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_bits_zero PASSED [ 86%] tests/rtllib/test_matrix.py::TestMax::test_max_fail_string PASSED [ 86%] tests/rtllib/test_matrix.py::TestMax::test_max_wire PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_1_by_4_rows PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_3_by_3_rows PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1 PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_columns PASSED [ 86%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_4_by_1_rows PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_negative PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_out_of_bounds PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_axis_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_columns PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_basic_rows PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_negative PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_bits_zero PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_string PASSED [ 87%] tests/rtllib/test_matrix.py::TestArgMax::test_argument_max_wire PASSED [ 87%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_1_by_2 PASSED [ 87%] tests/rtllib/test_matrix.py::TestDot::test_dot_1_by_2_multiply_2_by_1 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_1_by_2 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_2_by_1_multiply_2_by_1 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_different PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_3_by_3_multiply_3_by_3_same PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_basic PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_both_wires PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_1_by_2_multiply_1_by_3 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_3_by_3_multiply_2_by_2 PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_first PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_fail_int_second PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_first_wire PASSED [ 88%] tests/rtllib/test_matrix.py::TestDot::test_dot_second_wire PASSED [ 88%] tests/rtllib/test_matrix.py::TestHStack::test_concatenate PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_empty_args_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_fail_on_inconsistent_rows PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_on_non_matrices_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_one_row_vector PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_several_matrices PASSED [ 89%] tests/rtllib/test_matrix.py::TestHStack::test_hstack_two_row_vectors PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_concatenate PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_empty_args_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_fail_on_inconsistent_cols PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_on_non_matrices_fails PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_one_column_vector PASSED [ 89%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_several_matrix PASSED [ 90%] tests/rtllib/test_matrix.py::TestVStack::test_vstack_two_column_vectors PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_negative_truncates PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_non_positive_n_bits PASSED [ 90%] tests/rtllib/test_matrix.py::TestHelpers::test_list_to_int_truncates PASSED [ 90%] tests/rtllib/test_multipliers.py::TestDocTests::test_doctests PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_1 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_simple_mult_2 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_2 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestSimpleMult::test_trivial_case_3 PASSED [ 90%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_complex_mult_4 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestComplexMult::test_trivial_case_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_dada_tree PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_fma_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_gen_fma_1 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_2 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_trivial_case_3 PASSED [ 91%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_1 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestWallace::test_wallace_tree_2 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_dada_tree PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_small_bitwidth_error PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_2 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_trivial_case_3 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_1 PASSED [ 92%] tests/rtllib/test_multipliers.py::TestSignedTreeMult::test_wallace_tree_2 PASSED [ 92%] tests/rtllib/test_muxes.py::TestDocTests::test_doctests PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_different_sel_and_val_lengths PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_empty PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_invalid_select_width PASSED [ 92%] tests/rtllib/test_muxes.py::TestPrioritizedMuxTrivial::test_one_wire PASSED [ 93%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_2_wires PASSED [ 93%] tests/rtllib/test_muxes.py::TestPrioritizedMuxSim::test_select_with_5_wires PASSED [ 93%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent PASSED [ 93%] tests/rtllib/test_muxes.py::TestIsEquivalent::test_equivalent_const PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts1 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_consts2 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_dup_value PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_no_dup_2 PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMuxTrivial::test_one_value PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMux::test_multiple_bitwidths PASSED [ 93%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_big_close PASSED [ 94%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals PASSED [ 94%] tests/rtllib/test_muxes.py::TestSmartMux::test_two_vals_big PASSED [ 94%] tests/rtllib/test_muxes.py::TestSmartMuxDefault::test_default PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_incorrect_number_of_wires_2 PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelector::test_value_already_set PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_really_simple PASSED [ 94%] tests/rtllib/test_muxes.py::TestMultiSelectorSim::test_simple PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_demux_2 PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_large_demux PASSED [ 94%] tests/rtllib/test_muxes.py::TestDemux::test_simple_demux PASSED [ 94%] tests/rtllib/test_prngs.py::TestPrngs::test_csprng_trivium PASSED [ 94%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_lfsr PASSED [ 95%] tests/rtllib/test_prngs.py::TestPrngs::test_prng_xoroshiro128 PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_denormalized_flushed_to_zero PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_half_plus_half PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_infinity_minus_infinity_is_nan PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_infinity_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_nan_propagates PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_negative_infinity_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_negative_zero_to_number PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_half PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_quarter PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_one_plus_two PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_opposite_signs_equal_magnitude PASSED [ 95%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_with_carry PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_add_zero_to_number PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_carry_g1_r0_s0_lsb0_tie_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_carry_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_overflow_rne_produces_infinity PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_overflow_rtz_produces_largest_finite PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g0_r1_s1_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s0_lsb0_tie_truncates PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s0_lsb1_tie_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r0_s1_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestAddition::test_rounding_g1_r1_s0_rounds_up PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_overflow_by_subtracting_negative PASSED [ 96%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_denormalized_flushed_to_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_double_negative PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_equal_numbers PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_exact_no_rounding PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_from_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_infinity_from_infinity_is_nan PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_infinity_from_number PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_nan_propagates PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_neg_infinity_from_pos_infinity PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_neg_zero_minus_neg_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_one_point_five_minus_half PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_pos_zero_minus_pos_zero PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_rne_rounds_up PASSED [ 97%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_three_minus_one PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_two_minus_half PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestSubtraction::test_sub_zero_from_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_both_negative PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_by_negative_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_by_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_denormalized_flushed_to_zero PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_half_times_two PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_infinity PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_infinity_by_zero_is_nan PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_nan_propagates PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_neg_infinity_by_number PASSED [ 98%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_one_point_five_times_one_point_five PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_one_point_five_times_two PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_opposite_signs PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_mul_pos_infinity_by_neg_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_negative_overflow_rne_produces_neg_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_negative_overflow_rtz_produces_neg_largest_finite PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_overflow_rne_produces_infinity PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_overflow_rtz_produces_largest_finite PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g0_s0_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g0_s1_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l0_s0_tie_truncates PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l0_s1_rounds_up PASSED [ 99%] tests/rtllib/test_pyrtlfloat.py::TestMultiplication::test_rounding_g1_l1_s0_tie_rounds_up PASSED [100%] =================================== FAILURES =================================== _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError _ test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] _ file = '/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py' @pytest.mark.parametrize( "file", glob.iglob(os.path.dirname(__file__) + "/../examples/*.py") ) def test_all_examples(file): pyrtl.reset_working_block() try: > subprocess.check_output(["python", file]) tests/test_examples.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib64/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True, /usr/lib64/python3.12/subprocess.py:548: in run with Popen(*popenargs, **kwargs) as process: /usr/lib64/python3.12/subprocess.py:1026: in __init__ self._execute_child(args, executable, preexec_fn, close_fds, _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = args = ['python', '/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py'] executable = b'python', preexec_fn = None, close_fds = True, pass_fds = () cwd = None, env = None, startupinfo = None, creationflags = 0, shell = False p2cread = -1, p2cwrite = -1, c2pread = 11, c2pwrite = 12, errread = -1 errwrite = -1, restore_signals = True, gid = None, gids = None, uid = None umask = -1, start_new_session = False, process_group = -1 def _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session, process_group): """Execute program (POSIX version)""" if isinstance(args, (str, bytes)): args = [args] elif isinstance(args, os.PathLike): if shell: raise TypeError('path-like args is not allowed when ' 'shell is true') args = [args] else: args = list(args) if shell: # On Android the default shell is at '/system/bin/sh'. unix_shell = ('/system/bin/sh' if hasattr(sys, 'getandroidapilevel') else '/bin/sh') args = [unix_shell, "-c"] + args if executable: args[0] = executable if executable is None: executable = args[0] sys.audit("subprocess.Popen", executable, args, cwd, env) if (_USE_POSIX_SPAWN and os.path.dirname(executable) and preexec_fn is None and not close_fds and not pass_fds and cwd is None and (p2cread == -1 or p2cread > 2) and (c2pwrite == -1 or c2pwrite > 2) and (errwrite == -1 or errwrite > 2) and not start_new_session and process_group == -1 and gid is None and gids is None and uid is None and umask < 0): self._posix_spawn(args, executable, env, restore_signals, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) return orig_executable = executable # For transferring possible exec failure from child to parent. # Data format: "exception name:hex errno:description" # Pickle is not used; it is complex and involves memory allocation. errpipe_read, errpipe_write = os.pipe() # errpipe_write must not be in the standard io 0, 1, or 2 fd range. low_fds_to_close = [] while errpipe_write < 3: low_fds_to_close.append(errpipe_write) errpipe_write = os.dup(errpipe_write) for low_fd in low_fds_to_close: os.close(low_fd) try: try: # We must avoid complex work that could involve # malloc or free in the child process to avoid # potential deadlocks, thus we do all this here. # and pass it to fork_exec() if env is not None: env_list = [] for k, v in env.items(): k = os.fsencode(k) if b'=' in k: raise ValueError("illegal environment variable name") env_list.append(k + b'=' + os.fsencode(v)) else: env_list = None # Use execv instead of execve. executable = os.fsencode(executable) if os.path.dirname(executable): executable_list = (executable,) else: # This matches the behavior of os._execvpe(). executable_list = tuple( os.path.join(os.fsencode(dir), executable) for dir in os.get_exec_path(env)) fds_to_keep = set(pass_fds) fds_to_keep.add(errpipe_write) self.pid = _fork_exec( args, executable_list, close_fds, tuple(sorted(map(int, fds_to_keep))), cwd, env_list, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, errpipe_read, errpipe_write, restore_signals, start_new_session, process_group, gid, gids, uid, umask, preexec_fn, _USE_VFORK) self._child_created = True finally: # be sure the FD is closed no matter what os.close(errpipe_write) self._close_pipe_fds(p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite) # Wait for exec to fail or succeed; possibly raising an # exception (limited in size) errpipe_data = bytearray() while True: part = os.read(errpipe_read, 50000) errpipe_data += part if not part or len(errpipe_data) > 50000: break finally: # be sure the FD is closed no matter what os.close(errpipe_read) if errpipe_data: try: pid, sts = os.waitpid(self.pid, 0) if pid == self.pid: self._handle_exitstatus(sts) else: self.returncode = sys.maxsize except ChildProcessError: pass try: exception_name, hex_errno, err_msg = ( errpipe_data.split(b':', 2)) # The encoding here should match the encoding # written in by the subprocess implementations # like _posixsubprocess err_msg = err_msg.decode() except ValueError: exception_name = b'SubprocessError' hex_errno = b'0' err_msg = 'Bad exception data from child: {!r}'.format( bytes(errpipe_data)) child_exception_type = getattr( builtins, exception_name.decode('ascii'), SubprocessError) if issubclass(child_exception_type, OSError) and hex_errno: errno_num = int(hex_errno, 16) if err_msg == "noexec:chdir": err_msg = "" # The error must be from chdir(cwd). err_filename = cwd elif err_msg == "noexec": err_msg = "" err_filename = None else: err_filename = orig_executable if errno_num != 0: err_msg = os.strerror(errno_num) if err_filename is not None: > raise child_exception_type(errno_num, err_msg, err_filename) E FileNotFoundError: [Errno 2] No such file or directory: 'python' /usr/lib64/python3.12/subprocess.py:1955: FileNotFoundError =========================== short test summary info ============================ FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/renderer-demo.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/introduction-to-hardware.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example8-verilog.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example7-synth-timing.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example6-memory.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example5-introspection.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example4-debuggingtools.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example3-statemachine.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example2-counter.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.2-wire-struct.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1.1-signed-numbers.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example1-combologic.py] FAILED tests/test_examples.py::test_all_examples[/builddir/build/BUILD/pyrtl/tests/../examples/example0-minimum-viable-hardware.py] ================= 13 failed, 1251 passed, 7 skipped in 17.50s ================== + true Processing files: pyrtl-0.12-20260501.0.gita9688753.el10.noarch + RPM_EC=0 ++ jobs -p + exit 0 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.fhhAUr + umask 022 + cd /builddir/build/BUILD + cd pyrtl + DOCDIR=/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/doc/pyrtl + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/doc/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/README.md /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/doc/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ogb9BW + umask 022 + cd /builddir/build/BUILD + cd pyrtl + LICENSEDIR=/builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/licenses/pyrtl + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/licenses/pyrtl + cp -pr /builddir/build/BUILD/pyrtl/LICENSE.md /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64/usr/share/licenses/pyrtl + RPM_EC=0 ++ jobs -p + exit 0 Provides: pyrtl = 0.12-20260501.0.gita9688753.el10 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 Wrote: /builddir/build/SRPMS/pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm Wrote: /builddir/build/RPMS/pyrtl-0.12-20260501.0.gita9688753.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.83dXp4 + umask 022 + cd /builddir/build/BUILD + cd pyrtl + /usr/bin/rm -rf /builddir/build/BUILDROOT/pyrtl-0.12-20260501.0.gita9688753.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.P7PlDk + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/pyrtl-SPECPARTS + rm -rf pyrtl pyrtl.gemspec + RPM_EC=0 ++ jobs -p + exit 0 Finish: rpmbuild pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm Finish: build phase for pyrtl-0.12-20260501.0.gita9688753.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-1778568247.281058/root/var/log/dnf.rpm.log /var/lib/mock/centos-stream+epel-10-x86_64-1778568247.281058/root/var/log/dnf.librepo.log /var/lib/mock/centos-stream+epel-10-x86_64-1778568247.281058/root/var/log/dnf.log INFO: chroot_scan: creating tarball /var/lib/copr-rpmbuild/results/chroot_scan.tar.gz /bin/tar: Removing leading `/' from member names INFO: Done(/var/lib/copr-rpmbuild/results/pyrtl-0.12-20260501.0.gita9688753.el10.src.rpm) Config(child) 0 minutes 45 seconds INFO: Results and/or logs in: /var/lib/copr-rpmbuild/results INFO: Cleaning up build root ('cleanup_on_success=True') Start: clean chroot INFO: unmounting tmpfs. Finish: clean chroot Finish: run Running RPMResults tool Package info: { "packages": [ { "name": "pyrtl", "epoch": null, "version": "0.12", "release": "20260501.0.gita9688753.el10", "arch": "src" }, { "name": "pyrtl", "epoch": null, "version": "0.12", "release": "20260501.0.gita9688753.el10", "arch": "noarch" } ] } RPMResults finished