Diff of the two buildlogs: -- --- b1/build.log 2024-07-09 17:00:05.416708574 +0000 +++ b2/build.log 2024-07-09 17:00:47.298928673 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Jul 9 04:57:43 -12 2024 -I: pbuilder-time-stamp: 1720544263 +I: Current time: Tue Aug 12 13:23:07 +14 2025 +I: pbuilder-time-stamp: 1754954587 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,8 @@ I: copying [./ruby-contracts_0.16.0-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.7b2UuE1i/trustedkeys.kbx': General error -gpgv: Signature made Wed Aug 23 04:58:41 2017 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.cit_fxWw/trustedkeys.kbx': General error +gpgv: Signature made Thu Aug 24 06:58:41 2017 +14 gpgv: using RSA key 7E43E9ACBF727AB3CF0885338716CE4614A452D8 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ruby-contracts_0.16.0-1.dsc @@ -27,135 +27,166 @@ dpkg-source: info: unpacking ruby-contracts_0.16.0-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3693688/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/D01_modify_environment starting +debug: Running on ionos15-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Aug 12 13:23 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=20 ' - DISTRIBUTION='bullseye' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=42 ' + DIRSTACK=() + DISTRIBUTION=bullseye + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='64b4945d428742cab2266686fc92bd61' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='3693688' - PS1='# ' - PS2='> ' + INVOCATION_ID=7e8881f3bb8c4bbdbc24cd5bd42a076b + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1129990 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.68WkED8a/pbuilderrc_76HL --distribution bullseye --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.68WkED8a/b1 --logfile b1/build.log ruby-contracts_0.16.0-1.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.68WkED8a/pbuilderrc_xJrI --distribution bullseye --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.68WkED8a/b2 --logfile b2/build.log ruby-contracts_0.16.0-1.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-22-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1 (2024-06-21) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.7.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.12-1~bpo12+1 (2024-05-06) x86_64 GNU/Linux I: ls -l /bin total 5476 - -rwxr-xr-x 1 root root 1234376 Mar 27 2022 bash - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 18424 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 43936 Sep 23 2020 cat - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chgrp - -rwxr-xr-x 1 root root 64448 Sep 23 2020 chmod - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chown - -rwxr-xr-x 1 root root 151168 Sep 23 2020 cp - -rwxr-xr-x 1 root root 125560 Dec 10 2020 dash - -rwxr-xr-x 1 root root 113664 Sep 23 2020 date - -rwxr-xr-x 1 root root 80968 Sep 23 2020 dd - -rwxr-xr-x 1 root root 93936 Sep 23 2020 df - -rwxr-xr-x 1 root root 147176 Sep 23 2020 dir - -rwxr-xr-x 1 root root 84440 Mar 27 22:09 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 39712 Sep 23 2020 echo - -rwxr-xr-x 1 root root 28 Jan 24 2023 egrep - -rwxr-xr-x 1 root root 39680 Sep 23 2020 false - -rwxr-xr-x 1 root root 28 Jan 24 2023 fgrep - -rwxr-xr-x 1 root root 69032 Mar 27 22:09 findmnt - -rwsr-xr-x 1 root root 34896 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 203072 Jan 24 2023 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 98048 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 22600 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 72840 Sep 23 2020 ln - -rwxr-xr-x 1 root root 56952 Feb 7 2020 login - -rwxr-xr-x 1 root root 147176 Sep 23 2020 ls - -rwxr-xr-x 1 root root 149736 Mar 27 22:09 lsblk - -rwxr-xr-x 1 root root 85184 Sep 23 2020 mkdir - -rwxr-xr-x 1 root root 76896 Sep 23 2020 mknod - -rwxr-xr-x 1 root root 48064 Sep 23 2020 mktemp - -rwxr-xr-x 1 root root 59632 Mar 27 22:09 more - -rwsr-xr-x 1 root root 55528 Mar 27 22:09 mount - -rwxr-xr-x 1 root root 18664 Mar 27 22:09 mountpoint - -rwxr-xr-x 1 root root 147080 Sep 23 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Dec 16 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 43872 Sep 23 2020 pwd - lrwxrwxrwx 1 root root 4 Mar 27 2022 rbash -> bash - -rwxr-xr-x 1 root root 52032 Sep 23 2020 readlink - -rwxr-xr-x 1 root root 72704 Sep 23 2020 rm - -rwxr-xr-x 1 root root 52032 Sep 23 2020 rmdir - -rwxr-xr-x 1 root root 27472 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 6 21:26 sh -> dash - -rwxr-xr-x 1 root root 43808 Sep 23 2020 sleep - -rwxr-xr-x 1 root root 84928 Sep 23 2020 stty - -rwsr-xr-x 1 root root 71912 Mar 27 22:09 su - -rwxr-xr-x 1 root root 39744 Sep 23 2020 sync - -rwxr-xr-x 1 root root 531928 Jan 19 21:59 tar - -rwxr-xr-x 1 root root 14456 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 101408 Sep 23 2020 touch - -rwxr-xr-x 1 root root 39680 Sep 23 2020 true - -rwxr-xr-x 1 root root 14328 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 35040 Mar 27 22:09 umount - -rwxr-xr-x 1 root root 39744 Sep 23 2020 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 147176 Sep 23 2020 vdir - -rwxr-xr-x 1 root root 63744 Mar 27 22:09 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 5898 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8049 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/3693688/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1234376 Mar 28 2022 bash + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 18424 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 43936 Sep 24 2020 cat + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chgrp + -rwxr-xr-x 1 root root 64448 Sep 24 2020 chmod + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chown + -rwxr-xr-x 1 root root 151168 Sep 24 2020 cp + -rwxr-xr-x 1 root root 125560 Dec 11 2020 dash + -rwxr-xr-x 1 root root 113664 Sep 24 2020 date + -rwxr-xr-x 1 root root 80968 Sep 24 2020 dd + -rwxr-xr-x 1 root root 93936 Sep 24 2020 df + -rwxr-xr-x 1 root root 147176 Sep 24 2020 dir + -rwxr-xr-x 1 root root 84440 Mar 29 2024 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 39712 Sep 24 2020 echo + -rwxr-xr-x 1 root root 28 Jan 25 2023 egrep + -rwxr-xr-x 1 root root 39680 Sep 24 2020 false + -rwxr-xr-x 1 root root 28 Jan 25 2023 fgrep + -rwxr-xr-x 1 root root 69032 Mar 29 2024 findmnt + -rwsr-xr-x 1 root root 34896 Feb 27 2021 fusermount + -rwxr-xr-x 1 root root 203072 Jan 25 2023 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 98048 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 22600 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 72840 Sep 24 2020 ln + -rwxr-xr-x 1 root root 56952 Feb 8 2020 login + -rwxr-xr-x 1 root root 147176 Sep 24 2020 ls + -rwxr-xr-x 1 root root 149736 Mar 29 2024 lsblk + -rwxr-xr-x 1 root root 85184 Sep 24 2020 mkdir + -rwxr-xr-x 1 root root 76896 Sep 24 2020 mknod + -rwxr-xr-x 1 root root 48064 Sep 24 2020 mktemp + -rwxr-xr-x 1 root root 59632 Mar 29 2024 more + -rwsr-xr-x 1 root root 55528 Mar 29 2024 mount + -rwxr-xr-x 1 root root 18664 Mar 29 2024 mountpoint + -rwxr-xr-x 1 root root 147080 Sep 24 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Dec 17 2021 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 43872 Sep 24 2020 pwd + lrwxrwxrwx 1 root root 4 Mar 28 2022 rbash -> bash + -rwxr-xr-x 1 root root 52032 Sep 24 2020 readlink + -rwxr-xr-x 1 root root 72704 Sep 24 2020 rm + -rwxr-xr-x 1 root root 52032 Sep 24 2020 rmdir + -rwxr-xr-x 1 root root 27472 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 9 Aug 12 13:23 sh -> /bin/bash + -rwxr-xr-x 1 root root 43808 Sep 24 2020 sleep + -rwxr-xr-x 1 root root 84928 Sep 24 2020 stty + -rwsr-xr-x 1 root root 71912 Mar 29 2024 su + -rwxr-xr-x 1 root root 39744 Sep 24 2020 sync + -rwxr-xr-x 1 root root 531928 Jan 20 2024 tar + -rwxr-xr-x 1 root root 14456 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 101408 Sep 24 2020 touch + -rwxr-xr-x 1 root root 39680 Sep 24 2020 true + -rwxr-xr-x 1 root root 14328 Feb 27 2021 ulockmgr_server + -rwsr-xr-x 1 root root 35040 Mar 29 2024 umount + -rwxr-xr-x 1 root root 39744 Sep 24 2020 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 147176 Sep 24 2020 vdir + -rwxr-xr-x 1 root root 63744 Mar 29 2024 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 5898 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8049 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -328,7 +359,7 @@ Get: 129 http://deb.debian.org/debian bullseye/main amd64 ruby-rspec-expectations all 3.9.0c2e2m1s3-2 [89.9 kB] Get: 130 http://deb.debian.org/debian bullseye/main amd64 ruby-rspec-mocks all 3.9.0c2e2m1s3-2 [81.4 kB] Get: 131 http://deb.debian.org/debian bullseye/main amd64 ruby-rspec all 3.9.0c2e2m1s3-2 [8348 B] -Fetched 44.2 MB in 1s (30.3 MB/s) +Fetched 44.2 MB in 0s (130 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19711 files and directories currently installed.) @@ -882,7 +913,11 @@ fakeroot is already the newest version (1.25.3-1.1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ruby-contracts-0.16.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-contracts_0.16.0-1_source.changes +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bullseye +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-contracts-0.16.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-contracts_0.16.0-1_source.changes dpkg-buildpackage: info: source package ruby-contracts dpkg-buildpackage: info: source version 0.16.0-1 dpkg-buildpackage: info: source distribution unstable @@ -921,24 +956,24 @@ └──────────────────────────────────────────────────────────────────────────────┘ install -d /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/decorators.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/decorators.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/builtin_contracts.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/builtin_contracts.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/method_handler.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/method_handler.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/base.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/base.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/target.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/target.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/eigenclass.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/eigenclass.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/formatters.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/formatters.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/errors.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/errors.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/support.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/support.rb install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/validators.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/validators.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/core.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/core.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/call_with.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/call_with.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine.rb install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/version.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/version.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/eigenclass.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/eigenclass.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/target.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/target.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/engine/base.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/engine/base.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/method_reference.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/method_reference.rb install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/invariants.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/invariants.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/decorators.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/decorators.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/method_handler.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/method_handler.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/builtin_contracts.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/builtin_contracts.rb install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/attrs.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/attrs.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/call_with.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/call_with.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/support.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/support.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/errors.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/errors.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/core.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/core.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/method_reference.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/method_reference.rb -install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts/formatters.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts/formatters.rb +install -D -m644 /build/reproducible-path/ruby-contracts-0.16.0/lib/contracts.rb /build/reproducible-path/ruby-contracts-0.16.0/debian/ruby-contracts/usr/lib/ruby/vendor_ruby/contracts.rb ┌──────────────────────────────────────────────────────────────────────────────┐ │ Install Rubygems integration metadata │ @@ -964,202 +999,162 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 50828 +Randomized with seed 62335 + +Contracts: + method called with blocks +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num + At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:51 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:51:in `block (3 levels) in '. + should enforce return value inside lambda with other parameter +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num + At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:43 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:43:in `block (3 levels) in '. + should enforce return value inside block with other parameter +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num + At: >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:39:in `block (3 levels) in '. + should enforce return value inside block with no other parameter +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num + At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:47 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:47:in `block (3 levels) in '. + should enforce return value inside lambda with no other parameter + +module methods + should pass for correct input + should fail for incorrect input Contracts: - Optional: - can't be used outside of KeywordArgs - And: - should fail for an object that has a method :good but isn't of class A - should pass for an object of class A that has a method :good - Enum: - should pass for an object that is included - should fail for an object that is not included - Send: - should pass for an object that returns true for method :good - should fail for an object that returns false for method :good Any: - should pass for procs should pass for nil + should pass for procs should pass for strings should pass for numbers - Bool: - should fail for nil - should pass for an argument that is a boolean - DescendantOf: - should fail for a non-class - should fail for a number class - should pass for Array - should pass for a hash - Pos: - should fail for negative numbers - should pass for positive numbers - should fail for 0 - should fail for nil and other data types - Not: - should fail for nil - should pass for an argument that isn't nil - KeywordArgs: - should fail for incorrect input - should pass if a method is overloaded with non-KeywordArgs - should fail if some keys don't have contracts - should pass for exact correct input - should fail if a key with a contract on it isn't provided + Eq: + should pass for a module + should pass for a class + should fail when given instance of class + should fail when not equal + should pass for other values + RespondTo: + should pass for an object that responds to :good + should fail for an object that doesn't respond to :good + ArrayOf: + should fail for a non-array + should fail for an array with one non-num + should pass for an array of nums + RangeOf: + should fail for a badly-defined range + should pass for a range of dates + should pass for a range of nums + should fail for a non-range + should fail for a range with incorrect data type HashOf: doesn't allow to specify multiple key-value pairs with pretty syntax - given a fulfilled contract - is expected to eq 2 - is expected to eq 2 #to_s given Symbol => String is expected to eq "Hash" given String => Num is expected to eq "Hash" + given a fulfilled contract + is expected to eq 2 + is expected to eq 2 given an unfulfilled contract is expected to raise ContractError is expected to raise ContractError is expected to raise ContractError is expected to raise ContractError - Xor: - should fail for an object with neither method - should pass for an object with a method :good - should pass for an object with a method :bad - should fail for an object with both methods :good and :bad - Num: - should pass for Floats - should pass for Fixnums + None: + should fail for numbers + should fail for nil + should fail for strings + should fail for procs + Bool: + should fail for nil + should pass for an argument that is a boolean + Pos: + should pass for positive numbers + should fail for 0 should fail for nil and other data types + should fail for negative numbers Exactly: - should fail for an object that is not related to Parent at all should fail for an object that inherits from Parent should pass for an object that is exactly a Parent + should fail for an object that is not related to Parent at all + SetOf: + should fail for a non-array + should pass for a set of nums + should fail for an array with one non-num + Maybe: + should pass for nums + should fail for strings + should pass for nils + Neg: + should fail for 0 + should fail for nil and other data types + should fail for positive numbers + should pass for negative numbers Or: should fail for nil should pass for strings should pass for nums - Maybe: - should pass for nils - should fail for strings - should pass for nums - RangeOf: - should fail for a range with incorrect data type - should fail for a badly-defined range - should pass for a range of dates - should fail for a non-range - should pass for a range of nums StrictHash: - when given an exact correct input - does not raise an error - when given an input with extra keys + when given not a hash raises an error - when given an input with missing keys + when given an input with extra keys raises an error when given an input with correct keys but wrong types raises an error - when given not a hash + when given an input with missing keys raises an error - RespondTo: - should pass for an object that responds to :good - should fail for an object that doesn't respond to :good - Eq: - should pass for other values - should fail when not equal - should pass for a class - should pass for a module - should fail when given instance of class - Neg: - should fail for nil and other data types - should pass for negative numbers - should fail for positive numbers - should fail for 0 - SetOf: - should pass for a set of nums - should fail for an array with one non-num - should fail for a non-array - ArrayOf: - should pass for an array of nums - should fail for a non-array - should fail for an array with one non-num - None: - should fail for numbers - should fail for nil - should fail for procs - should fail for strings + when given an exact correct input + does not raise an error + Optional: + can't be used outside of KeywordArgs + DescendantOf: + should fail for a non-class + should fail for a number class + should pass for a hash + should pass for Array + And: + should pass for an object of class A that has a method :good + should fail for an object that has a method :good but isn't of class A + Enum: + should fail for an object that is not included + should pass for an object that is included + KeywordArgs: + should fail if some keys don't have contracts + should pass for exact correct input + should fail for incorrect input + should pass if a method is overloaded with non-KeywordArgs + should fail if a key with a contract on it isn't provided Nat: - should fail for negative numbers - should fail for nil and other data types should pass for positive whole numbers should pass for 0 + should fail for nil and other data types + should fail for negative numbers should fail for positive non-whole numbers - -Contracts::Invariants - raises invariant violation error when any of invariants are not holding - works when all invariants are holding - -Contracts: - method called with blocks -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num - At: >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:39:in `block (3 levels) in '. - should enforce return value inside block with no other parameter -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num - At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:43 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:43:in `block (3 levels) in '. - should enforce return value inside block with other parameter -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num - At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:47 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:47:in `block (3 levels) in '. - should enforce return value inside lambda with no other parameter -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num - At: /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:51 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/methods_spec.rb:51:in `block (3 levels) in '. - should enforce return value inside lambda with other parameter - -Contracts: - Attrs: - attr_accessor_with_contract - getting valid type - setting valid type - getting invalid type - setting invalid type - attr_writer_with_contract - getting - setting invalid type - setting valid type - attr_reader_with_contract - getting invalid type - setting - getting valid type - -module methods - should pass for correct input - should fail for incorrect input - -Contract - .override_validator - allows to override simple validators - allows to override default validator - allows to override class validator - allows to override valid contract - -Contract validators - Range - fails when value is incorrect - passes when value is in range - fails when value is not in range - Regexp - should pass for a matching string - should fail for a non-matching string - within an array - should pass for a matching string - within a hash - should pass for a matching string + Send: + should fail for an object that returns false for method :good + should pass for an object that returns true for method :good + Xor: + should pass for an object with a method :bad + should fail for an object with neither method + should fail for an object with both methods :good and :bad + should pass for an object with a method :good + Num: + should pass for Floats + should pass for Fixnums + should fail for nil and other data types + Not: + should fail for nil + should pass for an argument that isn't nil Contracts::Support eigenclass? @@ -1169,202 +1164,242 @@ returns the eigenclass of a given object Contracts: - failure callbacks - when failure_callback returns false - does not call a function for which the contract fails - when failure_callback returns true - calls a function for which the contract fails + instance methods + should allow two classes to have the same method with different contracts + blocks + should handle properly lack of block when there are other arguments + should pass for correct input + should succeed for maybe proc with proc + should fail for maybe proc with invalid input + should succeed for maybe proc with no proc + should fail for incorrect input + varargs are given with a maybe block + when a block is NOT passed in, varargs should still be correct + when a block is passed in, varargs should be correct + basic +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:8:in `block (3 levels) in '. + should fail for insufficient arguments + should fail for insufficient contracts + classes with a valid? class method + should pass for correct input + should fail for incorrect input anonymous modules fails with error when contract is violated does not fail when contract is satisfied when called on module itself - fails with error when contract is violated does not fail when contract is satisfied + fails with error when contract is violated + default args to functions + should work for a function call that relies on default args + contracts for functions with no arguments +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:28:in `block (3 levels) in '. + should not work for a function with a bad contract + should still work for old-style contracts for functions with no args + should work for functions with no args + functype + should correctly print out a class method's type + should correctly print out a instance method's type + varargs with block + should fail for incorrect input + should pass for correct input + when block has Func contract + should fail for incorrect input + module contracts + passes for instance of class including inherited module + does not pass for instance of class not including module + passes for instance of class including both modules + passes for instance of class including module + does not pass for instance of class including another module + no contracts feature + disables normal contract checks + does not disable pattern matching + disables invariants + module usage + with singleton methods + should check contract + with instance methods + should check contract + with singleton class methods + should check contract + failure callbacks + when failure_callback returns true + calls a function for which the contract fails + when failure_callback returns false + does not call a function for which the contract fails + usage in singleton class + should fail with proper error when there is contract violation + should work normally when there is no contract violation + builtin contracts usage + allows to use builtin contracts without namespacing and redundant Contracts inclusion + inherited methods +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num + At: /build/reproducible-path/ruby-contracts-0.16.0/spec/fixtures/fixtures.rb:397 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:699:in `block (3 levels) in '. + should apply the contract to an inherited method classes should not fail for an object that is a subclass of the type in the contract should not fail for an object that is the exact type as the contract contracts on functions - should fail for a returned function that doesn't pass the contract - should pass for a function that passes the contract with weak other args - should fail for a function that doesn't pass the contract with weak other args should fail for a returned function that receives the wrong argument type + should pass for a function that passes the contract with weak other args should not fail for a returned function that passes the contract + should fail for a returned function that doesn't pass the contract + should fail for a function that doesn't pass the contract with weak other args should fail for a function that doesn't pass the contract should pass for a function that passes the contract should pass for a function that passes the contract as in tutorial - instance and class methods - should allow a class to have an instance method and a class method with the same name - Hashes - should pass for exact correct input - should fail if a key with a contract on it isn't provided - should pass even if some keys don't have contracts - should fail for incorrect input - basic - should fail for insufficient contracts -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:8:in `block (3 levels) in '. - should fail for insufficient arguments - default args to functions - should work for a function call that relies on default args - instance methods - should allow two classes to have the same method with different contracts - functype - should correctly print out a instance method's type - should correctly print out a class method's type singleton methods self in inherited methods should be a proper self - usage in the singleton class of a subclass - should work with a valid contract on a singleton method - private methods - should raise an error if you try to access a private method - should raise an error if you try to access a private method - protected methods - should raise an error if you try to access a protected method - should raise an error if you try to access a protected method classes with extended modules should not fail with 'undefined method 'Contract'' works correctly with methods with passing contracts works correctly with methods with passing contracts is possible to define it - inherited methods -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was # Num - At: /build/reproducible-path/ruby-contracts-0.16.0/spec/fixtures/fixtures.rb:397 >. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:699:in `block (3 levels) in '. - should apply the contract to an inherited method pattern matching - should fail if multiple methods are defined with the same contract (for pattern-matching) - should work for differing arities - should fail when the pattern-matched method's contract fails if the return contract for a pattern match fails, it should fail instead of trying the next pattern match + should fail when the pattern-matched method's contract fails should not fall through to next pattern when there is a deep contract violation + should fail if multiple methods are defined with the same contract (for pattern-matching) + should work for differing arities should work as expected when there is no contract violation when failure_callback was overriden - calls a method when first pattern matches + uses overriden failure_callback when pattern matching fails if the return contract for a pattern match fails, it should fail instead of trying the next pattern match, even with the failure callback + calls a method when first pattern matches falls through to 2nd pattern when first pattern does not match - uses overriden failure_callback when pattern matching fails - blocks - should succeed for maybe proc with proc - should fail for maybe proc with invalid input - should succeed for maybe proc with no proc + classes should fail for incorrect input - should handle properly lack of block when there are other arguments should pass for correct input - varargs are given with a maybe block - when a block is NOT passed in, varargs should still be correct - when a block is passed in, varargs should be correct - usage in singleton class - should fail with proper error when there is contract violation - should work normally when there is no contract violation - builtin contracts usage - allows to use builtin contracts without namespacing and redundant Contracts inclusion - Arrays - should fail for insufficient items - should pass for correct input - should fail for some incorrect elements - anonymous classes - fails with error when contract is violated - does not fail when contract is satisfied - classes + class methods should fail for incorrect input should pass for correct input - no contracts feature - disables normal contract checks - disables invariants - does not disable pattern matching + private methods + should raise an error if you try to access a private method + should raise an error if you try to access a private method + usage in the singleton class of a subclass + should work with a valid contract on a singleton method varargs - should pass for correct input should fail for incorrect input should work with arg before splat - classes with a valid? class method should pass for correct input + Hashes + should pass for exact correct input + should fail if a key with a contract on it isn't provided should fail for incorrect input - contracts for functions with no arguments - should still work for old-style contracts for functions with no args -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-contracts-0.16.0/spec/contracts_spec.rb:28:in `block (3 levels) in '. - should not work for a function with a bad contract - should work for functions with no args - module contracts - passes for instance of class including module - passes for instance of class including inherited module - does not pass for instance of class including another module - does not pass for instance of class not including module - passes for instance of class including both modules - module usage - with singleton methods - should check contract - with instance methods - should check contract - with singleton class methods - should check contract - varargs with block - should fail for incorrect input - should pass for correct input - when block has Func contract - should fail for incorrect input + should pass even if some keys don't have contracts + instance and class methods + should allow a class to have an instance method and a class method with the same name + protected methods + should raise an error if you try to access a protected method + should raise an error if you try to access a protected method Contracts to_s formatting in expected - should contain to_s representation within a Hash contract - should not stringify native types - should contain to_s representation within a nested Hash contract - should not contain Contracts:: module prefix should contain to_s representation within an Array contract - should contain to_s representation within a nested Array contract should show empty quotes as "" - should not use custom to_s if empty string + should contain to_s representation within a nested Array contract + should contain to_s representation within a nested Hash contract should still show nils, not just blank space + should not contain Contracts:: module prefix + should not stringify native types + should not use custom to_s if empty string + should contain to_s representation within a Hash contract + Arrays + should pass for correct input + should fail for some incorrect elements + should fail for insufficient items Procs - should fail for incorrect input should pass for correct input - class methods should fail for incorrect input - should pass for correct input + anonymous classes + fails with error when contract is violated + does not fail when contract is satisfied -Top 10 slowest examples (0.08006 seconds, 37.3% of total time): - Contract.override_validator allows to override default validator - 0.02927 seconds ./spec/override_validators_spec.rb:127 +Contract + .override_validator + allows to override class validator + allows to override default validator + allows to override valid contract + allows to override simple validators + +Contract validators + Regexp + should pass for a matching string + should fail for a non-matching string + within an array + should pass for a matching string + within a hash + should pass for a matching string + Range + fails when value is not in range + passes when value is in range + fails when value is incorrect + +Contracts::Invariants + works when all invariants are holding + raises invariant violation error when any of invariants are not holding + +Contracts: + Attrs: + attr_accessor_with_contract + getting invalid type + setting invalid type + getting valid type + setting valid type + attr_reader_with_contract + getting invalid type + setting + getting valid type + attr_writer_with_contract + setting invalid type + setting valid type + getting + +Top 10 slowest examples (0.03052 seconds, 26.0% of total time): + Contracts: pattern matching should not fall through to next pattern when there is a deep contract violation + 0.00598 seconds ./spec/contracts_spec.rb:55 Contracts: protected methods should raise an error if you try to access a protected method - 0.01008 seconds ./spec/contracts_spec.rb:690 + 0.00464 seconds ./spec/contracts_spec.rb:690 Contracts: private methods should raise an error if you try to access a private method - 0.00909 seconds ./spec/contracts_spec.rb:680 + 0.00431 seconds ./spec/contracts_spec.rb:680 Contracts: protected methods should raise an error if you try to access a protected method - 0.00826 seconds ./spec/contracts_spec.rb:686 + 0.00371 seconds ./spec/contracts_spec.rb:686 Contracts: private methods should raise an error if you try to access a private method - 0.00778 seconds ./spec/contracts_spec.rb:676 - Contracts: Optional: can't be used outside of KeywordArgs - 0.00492 seconds ./spec/builtin_contracts_spec.rb:386 + 0.00327 seconds ./spec/contracts_spec.rb:676 + Contracts: method called with blocks should enforce return value inside lambda with other parameter + 0.0031 seconds ./spec/methods_spec.rb:50 + Contracts: contracts for functions with no arguments should not work for a function with a bad contract + 0.00161 seconds ./spec/contracts_spec.rb:27 Contracts::Support eigenclass? is truthy for singleton classes - 0.00284 seconds ./spec/support_spec.rb:8 - Contracts: And: should fail for an object that has a method :good but isn't of class A - 0.00279 seconds ./spec/builtin_contracts_spec.rb:188 + 0.00133 seconds ./spec/support_spec.rb:8 Contract.override_validator allows to override class validator - 0.00265 seconds ./spec/override_validators_spec.rb:96 - Contracts: Bool: should pass for an argument that is a boolean - 0.00238 seconds ./spec/builtin_contracts_spec.rb:337 + 0.00131 seconds ./spec/override_validators_spec.rb:96 + Contract.override_validator allows to override default validator + 0.00124 seconds ./spec/override_validators_spec.rb:127 Top 9 slowest example groups: + Contracts: + 0.00158 seconds average (0.00631 seconds / 4 examples) ./spec/methods_spec.rb:1 Contract - 0.00888 seconds average (0.03553 seconds / 4 examples) ./spec/override_validators_spec.rb:1 + 0.00119 seconds average (0.00475 seconds / 4 examples) ./spec/override_validators_spec.rb:1 Contracts::Support - 0.00135 seconds average (0.00406 seconds / 3 examples) ./spec/support_spec.rb:2 - Contracts: - 0.00091 seconds average (0.09197 seconds / 101 examples) ./spec/contracts_spec.rb:1 - Contract validators - 0.00082 seconds average (0.00576 seconds / 7 examples) ./spec/validators_spec.rb:3 + 0.00073 seconds average (0.00219 seconds / 3 examples) ./spec/support_spec.rb:2 Contracts: - 0.00077 seconds average (0.06882 seconds / 89 examples) ./spec/builtin_contracts_spec.rb:1 + 0.0006 seconds average (0.06107 seconds / 101 examples) ./spec/contracts_spec.rb:1 Contracts: - 0.00049 seconds average (0.00197 seconds / 4 examples) ./spec/methods_spec.rb:1 + 0.00038 seconds average (0.03406 seconds / 89 examples) ./spec/builtin_contracts_spec.rb:1 + Contract validators + 0.00036 seconds average (0.00255 seconds / 7 examples) ./spec/validators_spec.rb:3 Contracts::Invariants - 0.00038 seconds average (0.00076 seconds / 2 examples) ./spec/invariants_spec.rb:2 + 0.00035 seconds average (0.00069 seconds / 2 examples) ./spec/invariants_spec.rb:2 module methods - 0.00037 seconds average (0.00074 seconds / 2 examples) ./spec/module_spec.rb:10 + 0.00033 seconds average (0.00067 seconds / 2 examples) ./spec/module_spec.rb:10 Contracts: - 0.0003 seconds average (0.00299 seconds / 10 examples) ./spec/attrs_spec.rb:1 + 0.00031 seconds average (0.00307 seconds / 10 examples) ./spec/attrs_spec.rb:1 -Finished in 0.21449 seconds (files took 0.33726 seconds to load) +Finished in 0.1174 seconds (files took 0.18186 seconds to load) 222 examples, 0 failures -Randomized with seed 50828 +Randomized with seed 62335 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1396,12 +1431,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1129990/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/3693688 and its subdirectories -I: Current time: Tue Jul 9 05:00:04 -12 2024 -I: pbuilder-time-stamp: 1720544404 +I: removing directory /srv/workspace/pbuilder/1129990 and its subdirectories +I: Current time: Tue Aug 12 13:23:46 +14 2025 +I: pbuilder-time-stamp: 1754954626