Diff of the two buildlogs: -- --- b1/build.log 2020-12-19 19:28:32.336769089 +0000 +++ b2/build.log 2020-12-19 19:29:16.183410482 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Jan 21 13:50:56 -12 2022 -I: pbuilder-time-stamp: 1642816256 +I: Current time: Sun Dec 20 09:28:33 +14 2020 +I: pbuilder-time-stamp: 1608406113 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -17,7 +17,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Wed Aug 23 04:58:41 2017 -12 +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 @@ -26,136 +26,170 @@ 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/2635/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/6134/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-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 +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by 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/6134/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/6134/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - 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 parallel=16' - DISTRIBUTION='' - 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]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.0.3(1)-release' + BUILDDIR=/build + 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 parallel=15' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='dca80d91f6a84b79b49efb5baaa8517b' - 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='2635' - PS1='# ' - PS2='> ' + INVOCATION_ID=709c13a2c97b46ae8849e2548339646a + 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=6134 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/tmp.lGgsPllEL3/pbuilderrc_0o8N --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.lGgsPllEL3/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://85.184.249.68: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/tmp.lGgsPllEL3/pbuilderrc_9HFm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.lGgsPllEL3/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://78.137.99.97:3128 I: uname -a - Linux ionos15-amd64 5.9.0-0.bpo.2-amd64 #1 SMP Debian 5.9.6-1~bpo10+1 (2020-11-19) x86_64 GNU/Linux + Linux i-capture-the-hostname 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64 GNU/Linux I: ls -l /bin total 5116 - -rwxr-xr-x 1 root root 1168776 Apr 17 2019 bash - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzcat - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 14328 Jul 10 2019 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore - -rwxr-xr-x 1 root root 43744 Feb 28 2019 cat - -rwxr-xr-x 1 root root 64320 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 64288 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 72512 Feb 28 2019 chown - -rwxr-xr-x 1 root root 146880 Feb 28 2019 cp - -rwxr-xr-x 1 root root 121464 Jan 17 2019 dash - -rwxr-xr-x 1 root root 109408 Feb 28 2019 date - -rwxr-xr-x 1 root root 76712 Feb 28 2019 dd - -rwxr-xr-x 1 root root 93744 Feb 28 2019 df - -rwxr-xr-x 1 root root 138856 Feb 28 2019 dir - -rwxr-xr-x 1 root root 84288 Jan 9 2019 dmesg - lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname - -rwxr-xr-x 1 root root 39520 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 35424 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 68880 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 34896 Apr 22 2020 fusermount - -rwxr-xr-x 1 root root 198976 Jan 7 2019 grep - -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip - -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe - -rwxr-xr-x 1 root root 98048 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 26696 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 68552 Feb 28 2019 ln - -rwxr-xr-x 1 root root 56760 Jul 26 2018 login - -rwxr-xr-x 1 root root 138856 Feb 28 2019 ls - -rwxr-xr-x 1 root root 108624 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 89088 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 68544 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 43808 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 43008 Jan 9 2019 more - -rwsr-xr-x 1 root root 51280 Jan 9 2019 mount - -rwxr-xr-x 1 root root 14408 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 138728 Feb 28 2019 mv - lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 39616 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 47776 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 68416 Feb 28 2019 rm - -rwxr-xr-x 1 root root 47776 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 23312 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jan 9 02:47 sh -> dash - -rwxr-xr-x 1 root root 39552 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 80672 Feb 28 2019 stty - -rwsr-xr-x 1 root root 63568 Jan 9 2019 su - -rwxr-xr-x 1 root root 35488 Feb 28 2019 sync - -rwxr-xr-x 1 root root 445560 Apr 23 2019 tar - -rwxr-xr-x 1 root root 14440 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 97152 Feb 28 2019 touch - -rwxr-xr-x 1 root root 35424 Feb 28 2019 true - -rwxr-xr-x 1 root root 14328 Apr 22 2020 ulockmgr_server - -rwsr-xr-x 1 root root 34888 Jan 9 2019 umount - -rwxr-xr-x 1 root root 39584 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 138856 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34896 Jan 9 2019 wdctl - -rwxr-xr-x 1 root root 946 Jan 21 2019 which - lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat - -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp - -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff - -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep - -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep - -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce - -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep - -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless - -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore - -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew -I: user script /srv/workspace/pbuilder/2635/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1168776 Apr 18 2019 bash + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzcat + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 14328 Jul 11 2019 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore + -rwxr-xr-x 1 root root 43744 Mar 1 2019 cat + -rwxr-xr-x 1 root root 64320 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 64288 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 72512 Mar 1 2019 chown + -rwxr-xr-x 1 root root 146880 Mar 1 2019 cp + -rwxr-xr-x 1 root root 121464 Jan 18 2019 dash + -rwxr-xr-x 1 root root 109408 Mar 1 2019 date + -rwxr-xr-x 1 root root 76712 Mar 1 2019 dd + -rwxr-xr-x 1 root root 93744 Mar 1 2019 df + -rwxr-xr-x 1 root root 138856 Mar 1 2019 dir + -rwxr-xr-x 1 root root 84288 Jan 10 2019 dmesg + lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname + -rwxr-xr-x 1 root root 39520 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 35424 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 68880 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 34896 Apr 23 2020 fusermount + -rwxr-xr-x 1 root root 198976 Jan 8 2019 grep + -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip + -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe + -rwxr-xr-x 1 root root 98048 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 26696 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 68552 Mar 1 2019 ln + -rwxr-xr-x 1 root root 56760 Jul 27 2018 login + -rwxr-xr-x 1 root root 138856 Mar 1 2019 ls + -rwxr-xr-x 1 root root 108624 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 89088 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 68544 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 43808 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 43008 Jan 10 2019 more + -rwsr-xr-x 1 root root 51280 Jan 10 2019 mount + -rwxr-xr-x 1 root root 14408 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 138728 Mar 1 2019 mv + lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 39616 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 47776 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 68416 Mar 1 2019 rm + -rwxr-xr-x 1 root root 47776 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 23312 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Dec 20 09:28 sh -> bash + lrwxrwxrwx 1 root root 4 Dec 7 22:24 sh.distrib -> dash + -rwxr-xr-x 1 root root 39552 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 80672 Mar 1 2019 stty + -rwsr-xr-x 1 root root 63568 Jan 10 2019 su + -rwxr-xr-x 1 root root 35488 Mar 1 2019 sync + -rwxr-xr-x 1 root root 445560 Apr 24 2019 tar + -rwxr-xr-x 1 root root 14440 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 97152 Mar 1 2019 touch + -rwxr-xr-x 1 root root 35424 Mar 1 2019 true + -rwxr-xr-x 1 root root 14328 Apr 23 2020 ulockmgr_server + -rwsr-xr-x 1 root root 34888 Jan 10 2019 umount + -rwxr-xr-x 1 root root 39584 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 138856 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34896 Jan 10 2019 wdctl + -rwxr-xr-x 1 root root 946 Jan 22 2019 which + lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat + -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp + -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff + -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep + -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep + -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce + -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep + -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless + -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore + -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew +I: user script /srv/workspace/pbuilder/6134/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -332,7 +366,7 @@ Get: 133 http://deb.debian.org/debian buster/main amd64 ruby-thread-order all 1.1.0-1 [5096 B] Get: 134 http://deb.debian.org/debian buster/main amd64 ruby-rspec-core all 3.8.0c0e1m0s0-1 [190 kB] Get: 135 http://deb.debian.org/debian buster/main amd64 ruby-rspec all 3.8.0c0e1m0s0-1 [7620 B] -Fetched 43.1 MB in 1s (69.5 MB/s) +Fetched 43.1 MB in 1s (39.2 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:amd64. (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 ... 19195 files and directories currently installed.) @@ -904,7 +938,7 @@ fakeroot is already the newest version (1.23-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ruby-contracts-0.16.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/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 dpkg-buildpackage: info: source package ruby-contracts dpkg-buildpackage: info: source version 0.16.0-1 dpkg-buildpackage: info: source distribution unstable @@ -999,275 +1033,263 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 47003 - -Contract validators - Range - fails when value is incorrect - fails when value is not in range - passes when value is in range - Regexp - should pass for a matching string - should fail for a non-matching string - within a hash - should pass for a matching string - within an array - should pass for a matching string - -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/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/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/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/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: >. 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/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/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/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 - -Contracts::Support - eigenclass_of - returns the eigenclass of a given object - eigenclass? - is truthy for singleton classes - is falsey for non-singleton classes - -module methods - should fail for incorrect input - should pass for correct input +Randomized with seed 19971 Contracts: - Num: - should fail for nil and other data types - should pass for Floats - should pass for Fixnums - Or: - should pass for nums - should fail for nil - should pass for strings - Bool: - should fail for nil - should pass for an argument that is a boolean + RangeOf: + should pass for a range of nums + should fail for a badly-defined range + should fail for a non-range + should fail for a range with incorrect data type + should pass for a range of dates Optional: can't be used outside of KeywordArgs + ArrayOf: + should pass for an array of nums + should fail for a non-array + should fail for an array with one non-num + Send: + should pass for an object that returns true for method :good + should fail for an object that returns false for method :good + Not: + should pass for an argument that isn't nil + should fail for nil DescendantOf: should fail for a number class should pass for a hash - should pass for Array should fail for a non-class + should pass for Array + Maybe: + should pass for nils + should pass for nums + should fail for strings + KeywordArgs: + should fail for incorrect input + should pass for exact correct input + should fail if some keys don't have contracts + should pass if a method is overloaded with non-KeywordArgs + should fail if a key with a contract on it isn't provided + Eq: + should pass for other values + should fail when not equal + should pass for a class + should fail when given instance of class + should pass for a module Enum: should pass for an object that is included should fail for an object that is not included - 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 + Pos: + should fail for nil and other data types + should pass for positive numbers + should fail for 0 + should fail for negative numbers + Exactly: + should fail for an object that inherits from Parent + should fail for an object that is not related to Parent at all + should pass for an object that is exactly a Parent + Neg: + should fail for nil and other data types + should fail for positive numbers + should pass for negative numbers + should fail for 0 + Or: + should pass for strings + should pass for nums + should fail for nil + Bool: + should pass for an argument that is a boolean + should fail for nil + Num: + should pass for Fixnums + should fail for nil and other data types + should pass for Floats + Nat: + should fail for nil and other data types + should pass for positive whole numbers + should pass for 0 + should fail for positive non-whole numbers + should fail for negative numbers Any: should pass for strings - should pass for numbers should pass for procs + should pass for numbers should pass for nil - Exactly: - should pass for an object that is exactly a Parent - should fail for an object that is not related to Parent at all - should fail for an object that inherits from Parent + SetOf: + should fail for an array with one non-num + should fail for a non-array + should pass for a set of nums + Xor: + should fail for an object with both methods :good and :bad + should pass for an object with a method :good + should fail for an object with neither method + should pass for an object with a method :bad + 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 + HashOf: + doesn't allow to specify multiple key-value pairs with pretty syntax + given an unfulfilled contract + should raise ContractError + should raise ContractError + should raise ContractError + should raise ContractError + given a fulfilled contract + should eq 2 + should eq 2 + #to_s + given String => Num + should eq "Hash" + given Symbol => String + should eq "Hash" None: should fail for strings + should fail for procs should fail for nil should fail for numbers - should fail for procs - Maybe: - should fail for strings - should pass for nums - should pass for nils StrictHash: when given not a hash raises an error when given an exact correct input does not raise 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 an input with extra keys + when given an input with missing keys raises an error - KeywordArgs: - should fail for incorrect input - should fail if a key with a contract on it isn't provided - should pass for exact correct input - should pass if a method is overloaded with non-KeywordArgs - should fail if some keys don't have contracts - Nat: - should fail for positive non-whole numbers - should pass for 0 - should pass for positive whole numbers - should fail for negative numbers - should fail for nil and other data types - RangeOf: - should pass for a range of dates - should fail for a badly-defined range - should fail for a non-range - should fail for a range with incorrect data type - should pass for a range of nums - 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 fail for an object with both methods :good and :bad - should fail for an object with neither method - should pass for an object with a method :bad - should pass for an object with a method :good - Neg: - should pass for negative numbers - should fail for positive numbers - should fail for nil and other data types - should fail for 0 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 an array with one non-num - should fail for a non-array - should pass for an array of nums - Eq: - should pass for other values - should fail when given instance of class - should pass for a class - should fail when not equal - should pass for a module - SetOf: - should fail for an array with one non-num - should pass for a set of nums - should fail for a non-array - Not: - should pass for an argument that isn't nil - should fail for nil - HashOf: - doesn't allow to specify multiple key-value pairs with pretty syntax - given a fulfilled contract - should eq 2 - should eq 2 - #to_s - given Symbol => String - should eq "Hash" - given String => Num - should eq "Hash" - given an unfulfilled contract - should raise ContractError - should raise ContractError - should raise ContractError - should raise ContractError - Pos: - should fail for 0 - should fail for nil and other data types - should pass for positive numbers - should fail for negative numbers + should pass for an object that responds to :good -Contract - .override_validator - allows to override simple validators - allows to override valid contract - allows to override class validator - allows to override default validator +module methods + should fail for incorrect input + should pass for correct input + +Contract validators + Range + fails when value is not in range + passes when value is in range + fails when value is incorrect + 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 + +Contracts::Support + eigenclass_of + returns the eigenclass of a given object + eigenclass? + is truthy for singleton classes + is falsey for non-singleton classes Contracts::Invariants works when all invariants are holding raises invariant violation error when any of invariants are not 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: /build/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/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/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/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/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/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/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 + setting invalid type + getting invalid type + getting valid type + setting valid type + attr_reader_with_contract + getting valid type + setting + getting invalid type + attr_writer_with_contract + setting invalid type + setting valid type + getting + +Contracts: + varargs + should pass for correct input + should work with arg before splat + should fail for incorrect input classes with extended modules works correctly with methods with passing contracts should not fail with 'undefined method 'Contract'' is possible to define it works correctly with methods with passing contracts + 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/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 + usage in singleton class + should work normally when there is no contract violation + should fail with proper error when there is contract violation + builtin contracts usage + allows to use builtin contracts without namespacing and redundant Contracts inclusion + functype + should correctly print out a instance method's type + should correctly print out a class method's type + 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/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/ruby-contracts-0.16.0/spec/contracts_spec.rb:699:in `block (3 levels) in '. + should apply the contract to an inherited method varargs with block - should fail for incorrect input should pass for correct input + should fail for incorrect input when block has Func contract should fail for incorrect input + classes + should pass for correct input + should fail for incorrect input default args to functions should work for a function call that relies on default args + classes with a valid? class method + should pass for correct input + should fail for incorrect input + singleton methods self in inherited methods + should be a proper self + Contracts to_s formatting in expected + should still show nils, not just blank space + should contain to_s representation within a nested Array contract + should not use custom to_s if empty string + should show empty quotes as "" + should not stringify native types + should contain to_s representation within a Hash contract + should contain to_s representation within an Array contract + should not contain Contracts:: module prefix + should contain to_s representation within a nested Hash contract classes should not fail for an object that is the exact type as the contract should not fail for an object that is a subclass of the type in the contract - pattern matching - should fail when the pattern-matched method's contract fails - should not fall through to next pattern when there is a deep contract violation - if the return contract for a pattern match fails, it should fail instead of trying the next pattern match - 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 - falls through to 2nd pattern when first pattern does not match - if the return contract for a pattern match fails, it should fail instead of trying the next pattern match, even with the failure callback - uses overriden failure_callback when pattern matching fails - calls a method when first pattern matches - anonymous classes - does not fail when contract is satisfied - fails with error when contract is violated - 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 - singleton methods self in inherited methods - should be a proper self no contracts feature - does not disable pattern matching disables normal contract checks disables invariants - contracts on functions - should pass for a function that passes the contract - should pass for a function that passes the contract as in tutorial - 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 fail for a function that doesn't pass the contract - should fail for a returned function that doesn't pass the contract - should not fail for a returned function that passes the contract - should pass for a function that passes the contract with weak other args - 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 - usage in singleton class - should work normally when there is no contract violation - should fail with proper error when there is contract violation - builtin contracts usage - allows to use builtin contracts without namespacing and redundant Contracts inclusion - Procs - should fail for incorrect input - should pass for correct 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/ruby-contracts-0.16.0/spec/contracts_spec.rb:8:in `block (3 levels) in '. - should fail for insufficient arguments - 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/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/ruby-contracts-0.16.0/spec/contracts_spec.rb:699:in `block (3 levels) in '. - should apply the contract to an inherited method - 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 - contracts for functions with no arguments - should still work for old-style contracts for functions with no args - should work 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/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 + does not disable pattern matching module usage with singleton class methods should check contract @@ -1275,131 +1297,143 @@ should check contract with instance methods should check contract - module contracts - passes for instance of class including inherited module - does not pass for instance of class including another module - passes for instance of class including module - does not pass for instance of class not including module - passes for instance of class including both modules + instance methods + should allow two classes to have the same method with different contracts + anonymous modules + does not fail when contract is satisfied + fails with error when contract is violated + when called on module itself + does not fail when contract is satisfied + fails with error when contract is violated blocks - should succeed for maybe proc with proc - should fail for incorrect input - should fail for maybe proc with invalid input should pass for correct input should handle properly lack of block when there are other arguments + should fail for maybe proc with invalid input + should succeed for maybe proc with proc 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 - class methods - should pass for correct input - should fail for incorrect input - classes - should fail for incorrect input - should pass for correct input - classes with a valid? class method - should fail for incorrect input - should pass for correct input - functype - should correctly print out a class method's type - should correctly print out a instance method's type - varargs - should work with arg before splat - should fail for incorrect input - should pass for correct input + 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 + 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/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 + should still work for old-style contracts for functions with no args usage in the singleton class of a subclass should work with a valid contract on a singleton method - instance and class methods - should allow a class to have an instance method and a class method with the same name - 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 - Contracts to_s formatting in expected - should contain to_s representation within a Hash contract - should contain to_s representation within a nested Array contract - should contain to_s representation within a nested Hash contract - should contain to_s representation within an Array contract - should still show nils, not just blank space - should not contain Contracts:: module prefix - should show empty quotes as "" - should not use custom to_s if empty string - should not stringify native types + pattern matching + should work for differing arities + should fail if multiple methods are defined with the same contract (for pattern-matching) + should work as expected when there is no contract violation + if the return contract for a pattern match fails, it should fail instead of trying the next pattern match + should not fall through to next pattern when there is a deep contract violation + should fail when the pattern-matched method's contract fails + when failure_callback was overriden + falls through to 2nd pattern when first pattern does not match + 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 + 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 + module contracts + does not pass for instance of class not including module + passes for instance of class including inherited module + passes for instance of class including module + does not pass for instance of class including another module + passes for instance of class including both modules Hashes - should pass for exact correct input should pass even if some keys don't have contracts should fail for incorrect input + should pass for exact correct input should fail if a key with a contract on it isn't provided Arrays - should fail for insufficient items should fail for some incorrect elements + should fail for insufficient items should pass for correct input - instance methods - should allow two classes to have the same method with different contracts + anonymous classes + does not fail when contract is satisfied + fails with error when contract is violated + 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 + contracts on functions + should pass for a function that passes the contract with weak other args + should pass for a function that passes the contract + should pass for a function that passes the contract as in tutorial + 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 not fail for a returned function that passes the contract + should fail for a returned function that receives the wrong argument type + instance and class methods + should allow a class to have an instance method and a class method with the same name + class methods + should fail for incorrect input + should pass for correct input + Procs + should pass for correct input + should fail for incorrect input -Contracts: - Attrs: - attr_reader_with_contract - getting invalid type - getting valid type - setting - attr_writer_with_contract - getting - setting invalid type - setting valid type - attr_accessor_with_contract - setting invalid type - getting invalid type - setting valid type - getting valid type +Contract + .override_validator + allows to override valid contract + allows to override class validator + allows to override simple validators + allows to override default validator -Top 10 slowest examples (0.12166 seconds, 45.6% of total time): - Contract.override_validator allows to override class validator - 0.03189 seconds ./spec/override_validators_spec.rb:96 - Contract.override_validator allows to override default validator - 0.01915 seconds ./spec/override_validators_spec.rb:127 +Top 10 slowest examples (0.06594 seconds, 34.6% of total time): Contracts: protected methods should raise an error if you try to access a protected method - 0.01202 seconds ./spec/contracts_spec.rb:690 + 0.01115 seconds ./spec/contracts_spec.rb:690 Contracts: private methods should raise an error if you try to access a private method - 0.01183 seconds ./spec/contracts_spec.rb:680 + 0.01007 seconds ./spec/contracts_spec.rb:680 + Contracts: pattern matching should not fall through to next pattern when there is a deep contract violation + 0.00983 seconds ./spec/contracts_spec.rb:55 Contracts: protected methods should raise an error if you try to access a protected method - 0.00936 seconds ./spec/contracts_spec.rb:686 + 0.00962 seconds ./spec/contracts_spec.rb:686 Contracts: private methods should raise an error if you try to access a private method - 0.00885 seconds ./spec/contracts_spec.rb:676 - Contracts: Neg: should fail for positive numbers - 0.00876 seconds ./spec/builtin_contracts_spec.rb:82 - Contracts: KeywordArgs: should fail for incorrect input - 0.00807 seconds ./spec/builtin_contracts_spec.rb:374 + 0.00764 seconds ./spec/contracts_spec.rb:676 Contract.override_validator allows to override valid contract - 0.00649 seconds ./spec/override_validators_spec.rb:45 - Contracts: Nat: should fail for nil and other data types - 0.00523 seconds ./spec/builtin_contracts_spec.rb:113 + 0.00613 seconds ./spec/override_validators_spec.rb:45 + Contracts: Pos: should fail for nil and other data types + 0.00326 seconds ./spec/builtin_contracts_spec.rb:64 + Contract.override_validator allows to override default validator + 0.00291 seconds ./spec/override_validators_spec.rb:127 + Contracts: RangeOf: should pass for a range of nums + 0.00271 seconds ./spec/builtin_contracts_spec.rb:285 + Contract.override_validator allows to override class validator + 0.00263 seconds ./spec/override_validators_spec.rb:96 Top 9 slowest example groups: Contract - 0.01514 seconds average (0.06056 seconds / 4 examples) ./spec/override_validators_spec.rb:1 + 0.00352 seconds average (0.01409 seconds / 4 examples) ./spec/override_validators_spec.rb:1 + Contracts: + 0.00106 seconds average (0.10738 seconds / 101 examples) ./spec/contracts_spec.rb:1 Contracts::Support - 0.00165 seconds average (0.00495 seconds / 3 examples) ./spec/support_spec.rb:2 + 0.00103 seconds average (0.0031 seconds / 3 examples) ./spec/support_spec.rb:2 Contracts: - 0.00105 seconds average (0.10649 seconds / 101 examples) ./spec/contracts_spec.rb:1 + 0.00062 seconds average (0.0553 seconds / 89 examples) ./spec/builtin_contracts_spec.rb:1 Contracts: - 0.0009 seconds average (0.08001 seconds / 89 examples) ./spec/builtin_contracts_spec.rb:1 + 0.00053 seconds average (0.00211 seconds / 4 examples) ./spec/methods_spec.rb:1 Contract validators - 0.00083 seconds average (0.00582 seconds / 7 examples) ./spec/validators_spec.rb:3 - Contracts: - 0.00056 seconds average (0.00225 seconds / 4 examples) ./spec/methods_spec.rb:1 + 0.00038 seconds average (0.00269 seconds / 7 examples) ./spec/validators_spec.rb:3 module methods - 0.00046 seconds average (0.00092 seconds / 2 examples) ./spec/module_spec.rb:10 + 0.00038 seconds average (0.00076 seconds / 2 examples) ./spec/module_spec.rb:10 Contracts::Invariants - 0.00043 seconds average (0.00085 seconds / 2 examples) ./spec/invariants_spec.rb:2 + 0.00038 seconds average (0.00075 seconds / 2 examples) ./spec/invariants_spec.rb:2 Contracts: - 0.00036 seconds average (0.0036 seconds / 10 examples) ./spec/attrs_spec.rb:1 + 0.00032 seconds average (0.00324 seconds / 10 examples) ./spec/attrs_spec.rb:1 -Finished in 0.26691 seconds (files took 0.34889 seconds to load) +Finished in 0.19067 seconds (files took 0.2677 seconds to load) 222 examples, 0 failures -Randomized with seed 47003 +Randomized with seed 19971 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1430,12 +1464,14 @@ dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/6134/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/6134/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/2635 and its subdirectories -I: Current time: Fri Jan 21 13:51:34 -12 2022 -I: pbuilder-time-stamp: 1642816294 +I: removing directory /srv/workspace/pbuilder/6134 and its subdirectories +I: Current time: Sun Dec 20 09:29:15 +14 2020 +I: pbuilder-time-stamp: 1608406155