Diff of the two buildlogs: -- --- b1/build.log 2020-07-20 07:32:38.952602435 +0000 +++ b2/build.log 2020-07-20 07:36:09.932502251 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Jul 19 19:30:59 -12 2020 -I: pbuilder-time-stamp: 1595230259 +I: Current time: Mon Jul 20 21:32:51 +14 2020 +I: pbuilder-time-stamp: 1595230371 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 Fri Dec 7 08:29:39 2018 -12 +gpgv: Signature made Sat Dec 8 10:29:39 2018 +14 gpgv: using RSA key 9B917007AE030E36E4FC248B695B7AE4BF066240 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./emacs-buttercup_1.16-1.dsc @@ -28,136 +28,170 @@ dpkg-source: info: applying debian-changes I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/19804/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/17621/tmp/hooks/D01_modify_environment starting +debug: Running on opi2a. +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/17621/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/17621/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='armhf' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=5' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='armhf' + 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]="arm-unknown-linux-gnueabihf") + 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=armhf + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=arm + HOST_ARCH=armhf IFS=' ' - INVOCATION_ID='8c8ddd7f7f5a4ddbaa4c8c1226e32ab0' - 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='19804' - PS1='# ' - PS2='> ' + INVOCATION_ID=e5c00ba26e9442f8a6cf0639420fd559 + LANG=C + LANGUAGE=it_CH:it + LC_ALL=C + MACHTYPE=arm-unknown-linux-gnueabihf + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnueabihf + 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=17621 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.VTtZ2ltD27/pbuilderrc_gRpy --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.VTtZ2ltD27/b1 --logfile b1/build.log emacs-buttercup_1.16-1.dsc' - SUDO_GID='114' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://10.0.0.15:8000/' + 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.VTtZ2ltD27/pbuilderrc_WDqi --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.VTtZ2ltD27/b2 --logfile b2/build.log emacs-buttercup_1.16-1.dsc' + SUDO_GID=114 + SUDO_UID=109 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://10.0.0.15:8000/ I: uname -a - Linux odxu4a 5.6.0-0.bpo.2-armmp-lpae #1 SMP Debian 5.6.14-2~bpo10+1 (2020-06-09) armv7l GNU/Linux + Linux i-capture-the-hostname 4.19.0-9-armmp-lpae #1 SMP Debian 4.19.118-2+deb10u1 (2020-06-07) armv7l GNU/Linux I: ls -l /bin total 3328 - -rwxr-xr-x 1 root root 767656 Apr 17 2019 bash - -rwxr-xr-x 3 root root 26052 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 26052 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 26052 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 9636 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 22432 Feb 28 2019 cat - -rwxr-xr-x 1 root root 38868 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 38836 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 42972 Feb 28 2019 chown - -rwxr-xr-x 1 root root 88376 Feb 28 2019 cp - -rwxr-xr-x 1 root root 75516 Jan 17 2019 dash - -rwxr-xr-x 1 root root 71648 Feb 28 2019 date - -rwxr-xr-x 1 root root 51212 Feb 28 2019 dd - -rwxr-xr-x 1 root root 55672 Feb 28 2019 df - -rwxr-xr-x 1 root root 88444 Feb 28 2019 dir - -rwxr-xr-x 1 root root 54872 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 22364 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 18260 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 47356 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 21980 Apr 22 07:38 fusermount - -rwxr-xr-x 1 root root 124508 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 64232 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 13784 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 43044 Feb 28 2019 ln - -rwxr-xr-x 1 root root 34932 Jul 26 2018 login - -rwxr-xr-x 1 root root 88444 Feb 28 2019 ls - -rwxr-xr-x 1 root root 67036 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 47168 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 43040 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 26552 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 26024 Jan 9 2019 more - -rwsr-xr-x 1 root root 34268 Jan 9 2019 mount - -rwxr-xr-x 1 root root 9688 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 84284 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 22416 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 26504 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 42968 Feb 28 2019 rm - -rwxr-xr-x 1 root root 26496 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 14136 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 76012 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 17 20:27 sh -> dash - -rwxr-xr-x 1 root root 22384 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 51124 Feb 28 2019 stty - -rwsr-xr-x 1 root root 42472 Jan 9 2019 su - -rwxr-xr-x 1 root root 22392 Feb 28 2019 sync - -rwxr-xr-x 1 root root 283324 Apr 23 2019 tar - -rwxr-xr-x 1 root root 9808 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 63464 Feb 28 2019 touch - -rwxr-xr-x 1 root root 18260 Feb 28 2019 true - -rwxr-xr-x 1 root root 9636 Apr 22 07:38 ulockmgr_server - -rwsr-xr-x 1 root root 21976 Jan 9 2019 umount - -rwxr-xr-x 1 root root 22380 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 88444 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 21980 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/19804/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 767656 Apr 18 2019 bash + -rwxr-xr-x 3 root root 26052 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 26052 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 26052 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 9636 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 22432 Mar 1 2019 cat + -rwxr-xr-x 1 root root 38868 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 38836 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 42972 Mar 1 2019 chown + -rwxr-xr-x 1 root root 88376 Mar 1 2019 cp + -rwxr-xr-x 1 root root 75516 Jan 18 2019 dash + -rwxr-xr-x 1 root root 71648 Mar 1 2019 date + -rwxr-xr-x 1 root root 51212 Mar 1 2019 dd + -rwxr-xr-x 1 root root 55672 Mar 1 2019 df + -rwxr-xr-x 1 root root 88444 Mar 1 2019 dir + -rwxr-xr-x 1 root root 54872 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 22364 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 18260 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 47356 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 21980 Apr 23 09:38 fusermount + -rwxr-xr-x 1 root root 124508 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 64232 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 13784 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 43044 Mar 1 2019 ln + -rwxr-xr-x 1 root root 34932 Jul 27 2018 login + -rwxr-xr-x 1 root root 88444 Mar 1 2019 ls + -rwxr-xr-x 1 root root 67036 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 47168 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 43040 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 26552 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 26024 Jan 10 2019 more + -rwsr-xr-x 1 root root 34268 Jan 10 2019 mount + -rwxr-xr-x 1 root root 9688 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 84284 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 22416 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 26504 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 42968 Mar 1 2019 rm + -rwxr-xr-x 1 root root 26496 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 14136 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 76012 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Jul 20 21:33 sh -> bash + lrwxrwxrwx 1 root root 4 Jul 18 22:26 sh.distrib -> dash + -rwxr-xr-x 1 root root 22384 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 51124 Mar 1 2019 stty + -rwsr-xr-x 1 root root 42472 Jan 10 2019 su + -rwxr-xr-x 1 root root 22392 Mar 1 2019 sync + -rwxr-xr-x 1 root root 283324 Apr 24 2019 tar + -rwxr-xr-x 1 root root 9808 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 63464 Mar 1 2019 touch + -rwxr-xr-x 1 root root 18260 Mar 1 2019 true + -rwxr-xr-x 1 root root 9636 Apr 23 09:38 ulockmgr_server + -rwsr-xr-x 1 root root 21976 Jan 10 2019 umount + -rwxr-xr-x 1 root root 22380 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 88444 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 21980 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/17621/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -288,7 +322,7 @@ Get: 91 http://deb.debian.org/debian buster/main armhf libtext-glob-perl all 0.10-1 [8362 B] Get: 92 http://deb.debian.org/debian buster/main armhf libfile-find-rule-perl all 0.34-1 [30.6 kB] Get: 93 http://deb.debian.org/debian buster/main armhf dh-elpa all 1.16 [32.8 kB] -Fetched 40.4 MB in 7s (6148 kB/s) +Fetched 40.4 MB in 8s (5253 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package install-info. (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 ... 18932 files and directories currently installed.) @@ -700,7 +734,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/emacs-buttercup-1.16/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/emacs-buttercup-1.16/ && 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 emacs-buttercup dpkg-buildpackage: info: source version 1.16-1 dpkg-buildpackage: info: source distribution unstable @@ -711,7 +745,7 @@ fakeroot debian/rules clean dh clean --with elpa dh_auto_clean - make -j5 clean + make -j4 clean make[1]: Entering directory '/build/emacs-buttercup-1.16' rm -f *.elc make[1]: Leaving directory '/build/emacs-buttercup-1.16' @@ -722,7 +756,7 @@ dh_autoreconf dh_auto_configure dh_auto_build - make -j5 + make -j4 make[1]: Entering directory '/build/emacs-buttercup-1.16' emacs -batch -L . -f batch-byte-compile buttercup-compat.el emacs -batch -L . -f batch-byte-compile buttercup.el @@ -736,318 +770,318 @@ Running 110 specs. The buttercup-failed signal - can be raised can be raised (10.15ms) + can be raised can be raised (24.14ms) The buttercup-pending signal - can be raised can be raised (0.37ms) + can be raised can be raised (1.15ms) The `expect' form - with a matcher should translate to the function call with closures with a matcher should translate to the function call with closures (0.77ms) - with no matcher should use `:to-be-truthy' as the matcher with no matcher should use `:to-be-truthy' as the matcher (0.64ms) + with a matcher should translate to the function call with closures with a matcher should translate to the function call with closures (2.23ms) + with no matcher should use `:to-be-truthy' as the matcher with no matcher should use `:to-be-truthy' as the matcher (1.75ms) The `buttercup-expect' function with a function as a matcher argument - should not raise an error if the function returns true should not raise an error if the function returns true (0.36ms) - should raise an error if the function returns false should raise an error if the function returns false (0.72ms) + should not raise an error if the function returns true should not raise an error if the function returns true (1.00ms) + should raise an error if the function returns false should raise an error if the function returns false (1.17ms) with a matcher argument - should not raise an error if the matcher returns true should not raise an error if the matcher returns true (0.38ms) - should raise an error if the matcher returns false should raise an error if the matcher returns false (0.36ms) + should not raise an error if the matcher returns true should not raise an error if the matcher returns true (0.96ms) + should raise an error if the matcher returns false should raise an error if the matcher returns false (1.06ms) The `buttercup-fail' function - should raise a signal with its arguments should raise a signal with its arguments (0.35ms) + should raise a signal with its arguments should raise a signal with its arguments (1.32ms) The `assume' form - should raise a signal if the condition is nil should raise a signal if the condition is nil (0.36ms) - should show the format if no message is given should show the format if no message is given (0.36ms) - should not raise a signal if the condition is non-nil should not raise a signal if the condition is non-nil (0.35ms) + should raise a signal if the condition is nil should raise a signal if the condition is nil (1.04ms) + should show the format if no message is given should show the format if no message is given (1.01ms) + should not raise a signal if the condition is non-nil should not raise a signal if the condition is non-nil (49.35ms) The `buttercup-skip' function - should raise a signal with its arguments should raise a signal with its arguments (0.38ms) + should raise a signal with its arguments should raise a signal with its arguments (1.08ms) The `buttercup-define-matcher' macro - should create a matcher usable by apply-matcher should create a matcher usable by apply-matcher (0.28ms) + should create a matcher usable by apply-matcher should create a matcher usable by apply-matcher (0.67ms) The `buttercup--apply-matcher' function - should work with functions should work with functions (0.23ms) - should work with matchers should work with matchers (0.31ms) - should fail if the matcher is not defined should fail if the matcher is not defined (0.36ms) + should work with functions should work with functions (0.65ms) + should work with matchers should work with matchers (0.70ms) + should fail if the matcher is not defined should fail if the matcher is not defined (0.97ms) The :buttercup-define-matcher-for-unary-function helper - should not modify match data should not modify match data (0.35ms) + should not modify match data should not modify match data (0.97ms) The :buttercup-define-matcher-for-binary-function helper - should not modify match data should not modify match data (0.37ms) + should not modify match data should not modify match data (1.03ms) The `buttercup-suite-add-child' function - should add an element at the end of the list should add an element at the end of the list (0.28ms) - should add an element even if the list is empty should add an element even if the list is empty (0.24ms) - should add the parent to the child should add the parent to the child (0.24ms) + should add an element at the end of the list should add an element at the end of the list (0.84ms) + should add an element even if the list is empty should add an element even if the list is empty (0.69ms) + should add the parent to the child should add the parent to the child (0.70ms) The `buttercup-suite-parents' function - should return the list of parents for a suite should return the list of parents for a suite (0.28ms) + should return the list of parents for a suite should return the list of parents for a suite (0.85ms) The `buttercup-spec-parents' function - should return the list of parents for a spec should return the list of parents for a spec (0.50ms) + should return the list of parents for a spec should return the list of parents for a spec (0.88ms) The `buttercup-suites-total-specs-defined' function - should return the number of specs in a list of suites should return the number of specs in a list of suites (0.24ms) + should return the number of specs in a list of suites should return the number of specs in a list of suites (0.66ms) The `buttercup-suites-total-specs-failed' function - should return the number of failed specs in a list of suites should return the number of failed specs in a list of suites (0.24ms) + should return the number of failed specs in a list of suites should return the number of failed specs in a list of suites (0.67ms) The `buttercup-suite-full-name' function - should return the full name of a suite without parents should return the full name of a suite without parents (0.23ms) - should return the full name of a suite with parents should return the full name of a suite with parents (0.23ms) + should return the full name of a suite without parents should return the full name of a suite without parents (0.63ms) + should return the full name of a suite with parents should return the full name of a suite with parents (0.64ms) The `buttercup-spec-full-name' function - should return the full name of a spec without parents should return the full name of a spec without parents (0.23ms) - should return the full name of a spec with parents should return the full name of a spec with parents (0.23ms) + should return the full name of a spec without parents should return the full name of a spec without parents (0.65ms) + should return the full name of a spec with parents should return the full name of a spec with parents (0.66ms) The `buttercup-elapsed-time' function - should report elapsed time for suites should report elapsed time for suites (0.38ms) - should report elapsed time for specs should report elapsed time for specs (0.32ms) + should report elapsed time for suites should report elapsed time for suites (0.96ms) + should report elapsed time for specs should report elapsed time for specs (0.85ms) The `buttercup--run-suite' function - should set start and end time of the suite should set start and end time of the suite (0.50ms) + should set start and end time of the suite should set start and end time of the suite (1.46ms) The `buttercup--run-spec' function - should set start and end time of the spec should set start and end time of the spec (0.80ms) + should set start and end time of the spec should set start and end time of the spec (1.59ms) The `describe' macro - should expand to a simple call to the buttercup-describe function should expand to a simple call to the buttercup-describe function (0.24ms) - should support the :var argument should support the :var argument (0.24ms) + should expand to a simple call to the buttercup-describe function should expand to a simple call to the buttercup-describe function (0.75ms) + should support the :var argument should support the :var argument (0.69ms) The `buttercup-describe' function - should run the enclosing body should run the enclosing body (0.17ms) - should set the `buttercup-suites' variable should set the `buttercup-suites' variable (0.23ms) - should add child suites when called nested should add child suites when called nested (0.39ms) + should run the enclosing body should run the enclosing body (0.50ms) + should set the `buttercup-suites' variable should set the `buttercup-suites' variable (0.63ms) + should add child suites when called nested should add child suites when called nested (1.07ms) The `it' macro - should expand to a call to the `buttercup-it' function should expand to a call to the `buttercup-it' function (0.23ms) - without argument should expand to xit. without argument should expand to xit. (0.22ms) + should expand to a call to the `buttercup-it' function should expand to a call to the `buttercup-it' function (0.73ms) + without argument should expand to xit. without argument should expand to xit. (0.64ms) The `buttercup-it' function - should fail if not called from within a describe form should fail if not called from within a describe form (0.33ms) - should add a spec to the current suite should add a spec to the current suite (0.38ms) + should fail if not called from within a describe form should fail if not called from within a describe form (0.92ms) + should add a spec to the current suite should add a spec to the current suite (1.04ms) The `before-each' macro - expands to a function call expands to a function call (0.22ms) + expands to a function call expands to a function call (0.70ms) The `buttercup-before-each' function - adds its argument to the before-each list of the current suite adds its argument to the before-each list of the current suite (0.22ms) + adds its argument to the before-each list of the current suite adds its argument to the before-each list of the current suite (0.62ms) The `after-each' macro - expands to a function call expands to a function call (0.37ms) + expands to a function call expands to a function call (0.63ms) The `buttercup-after-each' function - adds its argument to the after-each list of the current suite adds its argument to the after-each list of the current suite (0.22ms) + adds its argument to the after-each list of the current suite adds its argument to the after-each list of the current suite (0.61ms) The `before-all' macro - expands to a function call expands to a function call (0.22ms) + expands to a function call expands to a function call (0.63ms) The `buttercup-before-all' function - adds its argument to the before-all list of the current suite adds its argument to the before-all list of the current suite (0.22ms) + adds its argument to the before-all list of the current suite adds its argument to the before-all list of the current suite (0.66ms) The `after-all' macro - expands to a function call expands to a function call (0.22ms) + expands to a function call expands to a function call (0.64ms) The `buttercup-after-all' function - adds its argument to the after-all list of the current suite adds its argument to the after-all list of the current suite (0.22ms) + adds its argument to the after-all list of the current suite adds its argument to the after-all list of the current suite (0.61ms) The `xdescribe' macro - expands directly to a function call expands directly to a function call (0.24ms) - changes contained it-specs to pending specs changes contained it-specs to pending specs (0.42ms) - should add a pending suite should add a pending suite (0.22ms) + expands directly to a function call expands directly to a function call (0.71ms) + changes contained it-specs to pending specs changes contained it-specs to pending specs (1.25ms) + should add a pending suite should add a pending suite (0.63ms) The `xit' macro - expands directly to a function call expands directly to a function call (0.22ms) + expands directly to a function call expands directly to a function call (0.63ms) The `buttercup-xit' function - should be a no-op should be a no-op (0.18ms) - should add a function that raises a pending signal should add a function that raises a pending signal (0.34ms) - should mark the suite as pending should mark the suite as pending (0.22ms) - should set the failure description to PENDING should set the failure description to PENDING (0.31ms) + should be a no-op should be a no-op (0.52ms) + should add a function that raises a pending signal should add a function that raises a pending signal (0.95ms) + should mark the suite as pending should mark the suite as pending (0.68ms) + should set the failure description to PENDING should set the failure description to PENDING (0.77ms) The Spy `spy-on' function - replaces a symbol's function slot replaces a symbol's function slot (0.23ms) - restores the old value after a spec run restores the old value after a spec run (0.21ms) - allows a spied-on command to be executed as a command allows a spied-on command to be executed as a command (0.47ms) - can spy on autoloaded functions can spy on autoloaded functions (4.33ms) - only accepts ARG for keywords that use it only accepts ARG for keywords that use it (1.21ms) + replaces a symbol's function slot replaces a symbol's function slot (0.63ms) + restores the old value after a spec run restores the old value after a spec run (0.59ms) + allows a spied-on command to be executed as a command allows a spied-on command to be executed as a command (1.30ms) + can spy on autoloaded functions can spy on autoloaded functions (9.74ms) + only accepts ARG for keywords that use it only accepts ARG for keywords that use it (3.41ms) :to-have-been-called matcher - returns false if the spy was not called returns false if the spy was not called (0.24ms) - returns true if the spy was called at all returns true if the spy was called at all (0.25ms) + returns false if the spy was not called returns false if the spy was not called (0.72ms) + returns true if the spy was called at all returns true if the spy was called at all (0.68ms) :to-have-been-called-with matcher - returns false if the spy was not called at all returns false if the spy was not called at all (0.65ms) - returns false if the spy was called with different arguments returns false if the spy was called with different arguments (0.35ms) - returns true if the spy was called with those arguments returns true if the spy was called with those arguments (0.26ms) + returns false if the spy was not called at all returns false if the spy was not called at all (0.90ms) + returns false if the spy was called with different arguments returns false if the spy was called with different arguments (0.90ms) + returns true if the spy was called with those arguments returns true if the spy was called with those arguments (0.74ms) :to-have-been-called-times matcher - returns error if the spy was called less than expected returns error if the spy was called less than expected (0.30ms) - returns error if the spy was called more than expected returns error if the spy was called more than expected (0.30ms) - returns true if the spy was called the expected number of times returns true if the spy was called the expected number of times (0.25ms) - use plural words in error message use plural words in error message (0.30ms) - use singular expected word in error message use singular expected word in error message (0.28ms) - use singular actual word in error message use singular actual word in error message (0.31ms) + returns error if the spy was called less than expected returns error if the spy was called less than expected (0.86ms) + returns error if the spy was called more than expected returns error if the spy was called more than expected (0.89ms) + returns true if the spy was called the expected number of times returns true if the spy was called the expected number of times (0.75ms) + use plural words in error message use plural words in error message (0.85ms) + use singular expected word in error message use singular expected word in error message (0.82ms) + use singular actual word in error message use singular actual word in error message (0.82ms) :and-call-through keyword functionality - tracks calls to the function tracks calls to the function (0.09ms) - passes the arguments to the original function passes the arguments to the original function (0.23ms) + tracks calls to the function tracks calls to the function (0.27ms) + passes the arguments to the original function passes the arguments to the original function (0.66ms) :and-return-value keyword functionality - tracks calls to the function tracks calls to the function (0.08ms) - returns the specified value returns the specified value (0.33ms) - works with strings works with strings (0.31ms) - works with vectors works with vectors (0.27ms) - works with symbols works with symbols (0.24ms) - works with conses works with conses (0.24ms) - works with lists works with lists (0.26ms) - works with alists works with alists (0.25ms) + tracks calls to the function tracks calls to the function (0.25ms) + returns the specified value returns the specified value (0.72ms) + works with strings works with strings (0.70ms) + works with vectors works with vectors (0.68ms) + works with symbols works with symbols (0.77ms) + works with conses works with conses (0.70ms) + works with lists works with lists (0.69ms) + works with alists works with alists (0.75ms) :and-call-fake keyword functionality - tracks calls to the function tracks calls to the function (0.09ms) - returns the specified value returns the specified value (0.24ms) + tracks calls to the function tracks calls to the function (0.28ms) + returns the specified value returns the specified value (0.69ms) :and-throw-error keyword functionality - throws an error when called throws an error when called (0.43ms) + throws an error when called throws an error when called (1.02ms) The batch reporter on the buttercup-started event - should emit the number of specs should emit the number of specs (0.14ms) + should emit the number of specs should emit the number of specs (0.40ms) on the suite-started event - should emit an indented suite description should emit an indented suite description (0.12ms) + should emit an indented suite description should emit an indented suite description (0.36ms) on the spec-started event - should emit an indented spec description should emit an indented spec description (0.13ms) + should emit an indented spec description should emit an indented spec description (0.34ms) on the spec-done event - should print no status tag for a passed spec should print no status tag for a passed spec (0.39ms) - should say FAILED for a failed spec should say FAILED for a failed spec (0.49ms) - should output the failure-description for a pending spec should output the failure-description for a pending spec (0.37ms) - should throw an error for an unknown spec status should throw an error for an unknown spec status (0.37ms) - should print the elapsed time for all specs should print the elapsed time for all specs (0.90ms) + should print no status tag for a passed spec should print no status tag for a passed spec (1.14ms) + should say FAILED for a failed spec should say FAILED for a failed spec (1.06ms) + should output the failure-description for a pending spec should output the failure-description for a pending spec (1.02ms) + should throw an error for an unknown spec status should throw an error for an unknown spec status (1.22ms) + should print the elapsed time for all specs should print the elapsed time for all specs (2.61ms) on the suite-done event - should emit a newline at the end of the top-level suite should emit a newline at the end of the top-level suite (0.12ms) - should not emit anything at the end of other suites should not emit anything at the end of other suites (0.12ms) + should emit a newline at the end of the top-level suite should emit a newline at the end of the top-level suite (0.33ms) + should not emit anything at the end of other suites should not emit anything at the end of other suites (0.33ms) on the buttercup-done event - should handle the end event should handle the end event (0.11ms) - should not raise any error even if a spec failed should not raise any error even if a spec failed (0.39ms) + should handle the end event should handle the end event (0.29ms) + should not raise any error even if a spec failed should not raise any error even if a spec failed (1.11ms) on an unknown event - should raise an error should raise an error (0.36ms) + should raise an error should raise an error (1.00ms) The `buttercup-run' function - should raise an error if at least one spec failed should raise an error if at least one spec failed (0.45ms) - should call the reporter twice with events buttercup-started and -done should call the reporter twice with events buttercup-started and -done (0.48ms) - should call `buttercup--run-suite once per suite should call `buttercup--run-suite once per suite (0.46ms) + should raise an error if at least one spec failed should raise an error if at least one spec failed (1.08ms) + should call the reporter twice with events buttercup-started and -done should call the reporter twice with events buttercup-started and -done (1.22ms) + should call `buttercup--run-suite once per suite should call `buttercup--run-suite once per suite (1.28ms) The `buttercup--print' function - should send a formatted string to the terminal should send a formatted string to the terminal (0.17ms) + should send a formatted string to the terminal should send a formatted string to the terminal (0.41ms) Buttercup's ERT compatibility wrapper - should convert `ert-test-failed' into `buttercup-failed should convert `ert-test-failed' into `buttercup-failed (0.41ms) - should convert `ert-test-skipped' into `buttercup-pending should convert `ert-test-skipped' into `buttercup-pending (0.37ms) + should convert `ert-test-failed' into `buttercup-failed should convert `ert-test-failed' into `buttercup-failed (1.25ms) + should convert `ert-test-skipped' into `buttercup-pending should convert `ert-test-skipped' into `buttercup-pending (1.03ms) butter-minor-mode - should fontify `describe' special form should fontify `describe' special form (1.02ms) - should fontify `it' special form should fontify `it' special form (0.91ms) - should add special forms to `imenu' should add special forms to `imenu' (5.45ms) + should fontify `describe' special form should fontify `describe' special form (2.81ms) + should fontify `it' special form should fontify `it' special form (2.35ms) + should add special forms to `imenu' should add special forms to `imenu' (14.23ms) -Ran 1 specs, 0 failed, in 0.1 seconds. +Ran 1 specs, 0 failed, in 0.2 seconds. emacs -batch -L . -l buttercup.el -f buttercup-run-markdown docs/writing-tests.md Loading /etc/emacs/site-start.d/00debian.el (source)... Loading /etc/emacs/site-start.d/50autoconf.el (source)... Running 50 out of 53 specs. A suite - contains a spec with an expectation contains a spec with an expectation (12.36ms) + contains a spec with an expectation contains a spec with an expectation (31.35ms) A suite is just a function - and so is a spec and so is a spec (0.42ms) + and so is a spec and so is a spec (1.17ms) The :to-be matcher compares with `eq' - and has a positive case and has a positive case (0.39ms) - and can have a negative case and can have a negative case (0.74ms) + and has a positive case and has a positive case (1.17ms) + and can have a negative case and can have a negative case (1.30ms) Included matchers: - The :to-be matcher compares with `eq' The :to-be matcher compares with `eq' (0.81ms) + The :to-be matcher compares with `eq' The :to-be matcher compares with `eq' (2.21ms) The :to-equal matcher - works for simple literals and variables works for simple literals and variables (0.41ms) - should work for compound objects should work for compound objects (0.39ms) - The :to-have-same-items-as matcher compares two lists as sets The :to-have-same-items-as matcher compares two lists as sets (29.21ms) - The :to-match matcher is for regular expressions The :to-match matcher is for regular expressions (1.36ms) - The :to-be-truthy matcher is for boolean casting testing The :to-be-truthy matcher is for boolean casting testing (0.50ms) - The :to-contain matcher is for finding an item in a list The :to-contain matcher is for finding an item in a list (0.71ms) - The :to-be-less-than matcher is for mathematical comparisons The :to-be-less-than matcher is for mathematical comparisons (0.76ms) - The :to-be-greater-than matcher is for mathematical comparisons The :to-be-greater-than matcher is for mathematical comparisons (1.02ms) - The :to-be-close-to matcher is for precision math comparison The :to-be-close-to matcher is for precision math comparison (2.77ms) + works for simple literals and variables works for simple literals and variables (1.08ms) + should work for compound objects should work for compound objects (1.06ms) + The :to-have-same-items-as matcher compares two lists as sets The :to-have-same-items-as matcher compares two lists as sets (57.18ms) + The :to-match matcher is for regular expressions The :to-match matcher is for regular expressions (3.29ms) + The :to-be-truthy matcher is for boolean casting testing The :to-be-truthy matcher is for boolean casting testing (1.57ms) + The :to-contain matcher is for finding an item in a list The :to-contain matcher is for finding an item in a list (1.96ms) + The :to-be-less-than matcher is for mathematical comparisons The :to-be-less-than matcher is for mathematical comparisons (2.13ms) + The :to-be-greater-than matcher is for mathematical comparisons The :to-be-greater-than matcher is for mathematical comparisons (2.30ms) + The :to-be-close-to matcher is for precision math comparison The :to-be-close-to matcher is for precision math comparison (5.08ms) The :to-throw matcher - is for testing if an expression throws an exception is for testing if an expression throws an exception (1.05ms) - accepts a symbol to check for the signal thrown accepts a symbol to check for the signal thrown (1.14ms) - optionally matches arguments to signals optionally matches arguments to signals (1.07ms) + is for testing if an expression throws an exception is for testing if an expression throws an exception (2.61ms) + accepts a symbol to check for the signal thrown accepts a symbol to check for the signal thrown (2.52ms) + optionally matches arguments to signals optionally matches arguments to signals (3.08ms) ERT support - allows you to use ERT macros in tests allows you to use ERT macros in tests (0.34ms) + allows you to use ERT macros in tests allows you to use ERT macros in tests (0.81ms) A spec - is just a function, so it can contain any code is just a function, so it can contain any code (0.47ms) - can have more than one expectation can have more than one expectation (0.63ms) + is just a function, so it can contain any code is just a function, so it can contain any code (1.13ms) + can have more than one expectation can have more than one expectation (1.78ms) A spec using `before-each' and `after-each' - is just a function, so it can contain any code is just a function, so it can contain any code (0.42ms) - can have more than one expectation can have more than one expectation (0.64ms) + is just a function, so it can contain any code is just a function, so it can contain any code (1.23ms) + can have more than one expectation can have more than one expectation (1.79ms) A spec using `before-all' and `after-all' - sets the initial value of foo before specs run sets the initial value of foo before specs run (0.38ms) - does not reset foo between specs does not reset foo between specs (0.36ms) + sets the initial value of foo before specs run sets the initial value of foo before specs run (1.09ms) + does not reset foo between specs does not reset foo between specs (1.01ms) A spec - is just a function, so it can contain any code is just a function, so it can contain any code (0.40ms) - can have more than one expectation can have more than one expectation (1.01ms) + is just a function, so it can contain any code is just a function, so it can contain any code (1.09ms) + can have more than one expectation can have more than one expectation (2.01ms) nested inside a second describe - can reference both scopes as needed can reference both scopes as needed (0.43ms) + can reference both scopes as needed can reference both scopes as needed (1.19ms) A spec - is just a function, so it can contain any code is just a function, so it can contain any code PENDING (0.27ms) + is just a function, so it can contain any code is just a function, so it can contain any code PENDING (0.78ms) Pending specs - can be declared using `xit' can be declared using `xit' PENDING (0.25ms) - can be declared with `it' but without a body can be declared with `it' but without a body PENDING (0.25ms) + can be declared using `xit' can be declared using `xit' PENDING (0.82ms) + can be declared with `it' but without a body can be declared with `it' but without a body PENDING (0.76ms) A spy - tracks that the spy was called tracks that the spy was called (0.24ms) - tracks all arguments of its calls tracks all arguments of its calls (0.35ms) - stops all execution on a function stops all execution on a function (0.45ms) + tracks that the spy was called tracks that the spy was called (0.64ms) + tracks all arguments of its calls tracks all arguments of its calls (1.21ms) + stops all execution on a function stops all execution on a function (1.25ms) A spy - tracks that the spy was called twice tracks that the spy was called twice (0.25ms) + tracks that the spy was called twice tracks that the spy was called twice (0.71ms) A spy, when configured to call through - tracks that the spy was called tracks that the spy was called (0.40ms) - should not affect other functions should not affect other functions (0.43ms) - when called returns the requested value when called returns the requested value (0.42ms) + tracks that the spy was called tracks that the spy was called (0.56ms) + should not affect other functions should not affect other functions (1.28ms) + when called returns the requested value when called returns the requested value (1.17ms) A spy, when configured to fake a return value - tracks that the spy was called tracks that the spy was called (0.20ms) - should not affect other functions should not affect other functions (0.41ms) - when called returns the requested value when called returns the requested value (0.41ms) + tracks that the spy was called tracks that the spy was called (0.57ms) + should not affect other functions should not affect other functions (1.61ms) + when called returns the requested value when called returns the requested value (1.21ms) A spy, when configured with an alternate implementation - tracks that the spy was called tracks that the spy was called (0.24ms) - should not affect other functions should not affect other functions (0.51ms) - when called returns the requested value when called returns the requested value (0.51ms) + tracks that the spy was called tracks that the spy was called (0.59ms) + should not affect other functions should not affect other functions (1.39ms) + when called returns the requested value when called returns the requested value (1.19ms) A spy, when configured to throw an error - throws the error throws the error (0.62ms) + throws the error throws the error (1.49ms) A spy - tracks if it was called at all tracks if it was called at all (0.68ms) - tracks the number of times it was called tracks the number of times it was called (0.71ms) - tracks the arguments of each call tracks the arguments of each call (0.74ms) - tracks the arguments of all calls tracks the arguments of all calls (0.43ms) - can provide the context and arguments to all calls can provide the context and arguments to all calls (0.50ms) - has a shortcut to the most recent call has a shortcut to the most recent call (0.49ms) - has a shortcut to the first call has a shortcut to the first call (0.45ms) - can be reset can be reset (0.65ms) + tracks if it was called at all tracks if it was called at all (2.05ms) + tracks the number of times it was called tracks the number of times it was called (2.23ms) + tracks the arguments of each call tracks the arguments of each call (2.09ms) + tracks the arguments of all calls tracks the arguments of all calls (1.33ms) + can provide the context and arguments to all calls can provide the context and arguments to all calls (1.34ms) + has a shortcut to the most recent call has a shortcut to the most recent call (1.43ms) + has a shortcut to the first call has a shortcut to the first call (1.55ms) + can be reset can be reset (1.90ms) A test - can issue warnings while running can issue warnings while running (0.92ms) + can issue warnings while running can issue warnings while running (2.49ms) Warning (buttercup): This warning should be visible after the test report.  -Ran 50 out of 53 specs, 0 failed, in 0.1 seconds. +Ran 50 out of 53 specs, 0 failed, in 0.2 seconds. make[1]: Leaving directory '/build/emacs-buttercup-1.16' dh_elpa_test create-stamp debian/debhelper-build-stamp @@ -1068,7 +1102,7 @@ debian/rules override_dh_compress make[1]: Entering directory '/build/emacs-buttercup-1.16' # add files that dh_compress somehow misses -dh_compress usr/share/doc/elpa-buttercup/writing-tests.md usr/share/doc/elpa-buttercup/running-tests.md usr/share/doc/elpa-buttercup/README.md +dh_compress usr/share/doc/elpa-buttercup/writing-tests.md usr/share/doc/elpa-buttercup/README.md usr/share/doc/elpa-buttercup/running-tests.md make[1]: Leaving directory '/build/emacs-buttercup-1.16' dh_fixperms dh_missing @@ -1085,12 +1119,14 @@ dpkg-source: info: using options from emacs-buttercup-1.16/debian/source/options: --single-debian-patch --auto-commit dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/17621/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/17621/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/19804 and its subdirectories -I: Current time: Sun Jul 19 19:32:35 -12 2020 -I: pbuilder-time-stamp: 1595230355 +I: removing directory /srv/workspace/pbuilder/17621 and its subdirectories +I: Current time: Mon Jul 20 21:36:01 +14 2020 +I: pbuilder-time-stamp: 1595230561