Diff of the two buildlogs: -- --- b1/build.log 2024-05-12 19:47:57.357916904 +0000 +++ b2/build.log 2024-05-12 19:49:34.861770793 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sat Jun 14 14:10:21 -12 2025 -I: pbuilder-time-stamp: 1749953421 +I: Current time: Mon May 13 09:48:00 +14 2024 +I: pbuilder-time-stamp: 1715543280 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,84 @@ dpkg-source: info: unpacking emacs-buttercup_1.35-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/951941/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 12 19:48 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='7b417f61ee724a80b4569b31bfc382d3' - 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='951941' - PS1='# ' - PS2='> ' + INVOCATION_ID=015dc0a82bac43cea7edb0939047fc3b + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-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=3725198 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.k7cxFJHT/pbuilderrc_Qwil --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.k7cxFJHT/b1 --logfile b1/build.log emacs-buttercup_1.35-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.k7cxFJHT/pbuilderrc_bFjV --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.k7cxFJHT/b2 --logfile b2/build.log emacs-buttercup_1.35-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-cloud-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 12 17:48 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/951941/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 11 11:23 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -228,7 +260,7 @@ Get: 116 http://deb.debian.org/debian trixie/main arm64 libtext-glob-perl all 0.11-3 [7676 B] Get: 117 http://deb.debian.org/debian trixie/main arm64 libfile-find-rule-perl all 0.34-3 [26.6 kB] Get: 118 http://deb.debian.org/debian trixie/main arm64 dh-elpa all 2.0.17 [31.0 kB] -Fetched 87.1 MB in 0s (230 MB/s) +Fetched 87.1 MB in 1s (152 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libapparmor1:arm64. (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 ... 19745 files and directories currently installed.) @@ -743,7 +775,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/emacs-buttercup-1.35/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../emacs-buttercup_1.35-1_source.changes +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/emacs-buttercup-1.35/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../emacs-buttercup_1.35-1_source.changes dpkg-buildpackage: info: source package emacs-buttercup dpkg-buildpackage: info: source version 1.35-1 dpkg-buildpackage: info: source distribution unstable @@ -783,557 +819,557 @@ Running 60 out of 63 specs. A suite - contains a spec with an expectationRunning 284 specs. - -The buttercup--enclosed-expr function - should handle - expressions wrapped by buttercup--wrap-expr  contains a spec with an expectation  expressions wrapped by buttercup--wrap-expr (6.84ms) + contains a spec with an expectation  contains a spec with an expectation (7.94ms) A suite is just a function - and so is a spec (3.10ms) - a closure with expression copy?  and so is a spec (0.30ms) + and so is a spec  and so is a spec (0.29ms) The :to-be matcher compares with `eq' - and has a positive case  a closure with expression copy? (0.22ms) - a lambda with expression copy?  and has a positive case  a lambda with expression copy? (0.19ms) - and can have a negative case (0.13ms) - byte compiled - lambda objects  and can have a negative case (0.19ms) + and has a positive case  and has a positive case (0.26ms) + and can have a negative case  and can have a negative case (0.22ms) Included matchers: - The :to-be matcher compares with `eq'  lambda objects (0.23ms) - wrapped expression  wrapped expression !! CANCELLED !! Not with Oclosures (0.03ms) - should error - on a simple closure  The :to-be matcher compares with `eq' (0.20ms) -  on a simple closure The :to-equal matcher - (0.10ms) - works for simple literals and variables on a closure with stackframe marker but no quoted expression  works for simple literals and variables  on a closure with stackframe marker but no quoted expression (0.11ms) - (0.12ms) - for multi-statement closures should work for compound objects  for multi-statement closures (0.09ms) -  should work for compound objects for closures with non-empty argument lists (0.10ms) - The :to-have-same-items-as matcher compares two lists as sets  for closures with non-empty argument lists (0.09ms) - on simple lambda objects  on simple lambda objects (0.07ms) - on a lambda with stackframe marker but no quoted expression  on a lambda with stackframe marker but no quoted expression (0.07ms) - for multi-statement lambdas  for multi-statement lambdas (0.07ms) - for lambdas with non-empty argument lists  for lambdas with non-empty argument lists (0.07ms) - on byte-compiled functions with arguments  The :to-have-same-items-as matcher compares two lists as sets (0.50ms) - The :to-match matcher is for regular expressions  on byte-compiled functions with arguments (0.21ms) - -The buttercup-failed signal - can be raised  can be raised (0.07ms) - -The buttercup-pending signal - can be raised  The :to-match matcher is for regular expressions (0.27ms) -  can be raised (0.07ms) - - The :to-be-truthy matcher is for boolean casting testingThe `expect' form - with a matcher should translate to the function call with closures  The :to-be-truthy matcher is for boolean casting testing (0.16ms) - 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.18ms) - The :to-be-less-than matcher is for mathematical comparisons  with a matcher should translate to the function call with closures (0.41ms) - with no matcher should use `:to-be-truthy' as the matcher  The :to-be-less-than matcher is for mathematical comparisons (0.20ms) - The :to-be-greater-than matcher is for mathematical comparisons  with no matcher should use `:to-be-truthy' as the matcher (0.24ms) - -The `buttercup-expect' function - with a function as a matcher argument - should not raise an error if the function returns true  The :to-be-greater-than matcher is for mathematical comparisons (0.18ms) - The :to-be-close-to matcher is for precision math comparison  should not raise an error if the function returns true (0.12ms) - should raise an error if the function returns false  should raise an error if the function returns false (0.11ms) - 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.13ms) - should raise an error if the matcher returns false  The :to-be-close-to matcher is for precision math comparison (0.33ms) + The :to-be matcher compares with `eq'  The :to-be matcher compares with `eq' (0.35ms) + The :to-equal matcher + works for simple literals and variables  works for simple literals and variables (0.27ms) + should work for compound objects  should work for compound objects (0.25ms) + The :to-have-same-items-as matcher compares two lists as sets  The :to-have-same-items-as matcher compares two lists as sets (0.71ms) + The :to-match matcher is for regular expressions  The :to-match matcher is for regular expressions (0.49ms) + The :to-be-truthy matcher is for boolean casting testing  The :to-be-truthy matcher is for boolean casting testing (0.29ms) + 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.39ms) + The :to-be-less-than matcher is for mathematical comparisons  The :to-be-less-than matcher is for mathematical comparisons (0.37ms) + The :to-be-greater-than matcher is for mathematical comparisons  The :to-be-greater-than matcher is for mathematical comparisons (0.35ms) + The :to-be-close-to matcher is for precision math comparison  The :to-be-close-to matcher is for precision math comparison (0.44ms) The :to-throw matcher - is for testing if an expression throws an exception  should raise an error if the matcher returns false (0.10ms) - -The `buttercup-fail' function - should raise a signal with its arguments  should raise a signal with its arguments (0.09ms) - -The `assume' form - should raise a signal if the condition is nil  is for testing if an expression throws an exception (0.25ms) - accepts a symbol to check for the signal thrown  should raise a signal if the condition is nil (0.11ms) - should show the format if no message is given  should show the format if no message is given (0.09ms) - should not raise a signal if the condition is non-nil  should not raise a signal if the condition is non-nil (0.06ms) - -The `buttercup-skip' function - should raise a signal with its arguments  accepts a symbol to check for the signal thrown (0.27ms) -  should raise a signal with its arguments (0.09ms) - optionally matches arguments to signals -The `buttercup-define-matcher' macro - should create a matcher usable by apply-matcher  should create a matcher usable by apply-matcher (0.11ms) - -The `buttercup--apply-matcher' function - should work with functions  should work with functions (0.11ms) - should work with matchers  optionally matches arguments to signals (0.33ms) - matches inherited signals  should work with matchers (0.11ms) - should fail if the matcher is not defined  should fail if the matcher is not defined (0.10ms) - -The :buttercup-define-matcher-for-unary-function helper - should not modify match data  should not modify match data (0.21ms) - -The :buttercup-define-matcher-for-binary-function helper - should not modify match data  matches inherited signals (0.72ms) + is for testing if an expression throws an exception  is for testing if an expression throws an exception (0.49ms) + accepts a symbol to check for the signal thrown  accepts a symbol to check for the signal thrown (0.45ms) + optionally matches arguments to signals  optionally matches arguments to signals (0.54ms) + matches inherited signals  matches inherited signals (0.88ms) ERT support - allows you to use ERT macros in tests  should not modify match data  allows you to use ERT macros in tests (0.12ms) + allows you to use ERT macros in tests  allows you to use ERT macros in tests (0.22ms) A spec - is just a function, so it can contain any code (0.56ms) - -  is just a function, so it can contain any code (0.15ms) - can have more than one expectationThe included matcher - :to-be-truthy - should match for a truthy expression  can have more than one expectation (0.15ms) + is just a function, so it can contain any code  is just a function, so it can contain any code (0.30ms) + can have more than one expectation  can have more than one expectation (0.32ms) A spec using :VAR - has access to the variables bound in :VAR  has access to the variables bound in :VAR (0.10ms) + has access to the variables bound in :VAR  has access to the variables bound in :VAR (0.24ms) A spec using :VAR* - has access to the variables bound in :VAR* which can refer to symbols already bound  should match for a truthy expression  has access to the variables bound in :VAR* which can refer to symbols already bound (0.27ms) - (0.10ms) - should not match for an untruthy expression + has access to the variables bound in :VAR* which can refer to symbols already bound  has access to the variables bound in :VAR* which can refer to symbols already bound (0.26ms) + A spec using `before-each' and `after-each' - is just a function, so it can contain any code  should not match for an untruthy expression  is just a function, so it can contain any code (0.11ms) - (0.14ms) - :to-be - can have more than one expectation should match if the args are `eq'  can have more than one expectation (0.17ms) + is just a function, so it can contain any code  is just a function, so it can contain any code (0.26ms) + can have more than one expectation  can have more than one expectation (0.36ms) A spec using `before-all' and `after-all' - sets the initial value of foo before specs run  should match if the args are `eq' (0.23ms) - should not match if the args are not `eq'  sets the initial value of foo before specs run (0.09ms) - does not reset foo between specs  does not reset foo between specs (0.10ms) + sets the initial value of foo before specs run  sets the initial value of foo before specs run (0.24ms) + does not reset foo between specs  does not reset foo between specs (0.23ms) A spec -  should not match if the args are not `eq' is just a function, so it can contain any code (0.21ms) - :to-equal - should match if the args are `equal'  is just a function, so it can contain any code (0.11ms) - can have more than one expectation  should match if the args are `equal' (0.21ms) - should not match if the args are not `equal'  can have more than one expectation (0.17ms) + is just a function, so it can contain any code  is just a function, so it can contain any code (0.25ms) + can have more than one expectation  can have more than one expectation (0.30ms) nested inside a second describe - can reference both scopes as needed  can reference both scopes as needed  should not match if the args are not `equal' (0.12ms) - (0.19ms) - :not + can reference both scopes as needed  can reference both scopes as needed (0.27ms) - should invert the car of the nested matcher's return valueA spec - is just a function, so it can contain any code  is just a function, so it can contain any code PENDING (0.05ms) +A spec + is just a function, so it can contain any code  is just a function, so it can contain any code PENDING (0.19ms) Pending specs - can be declared using `xit'  can be declared using `xit' PENDING (0.04ms) - can be declared with `it' but without a body  can be declared with `it' but without a body PENDING (0.04ms) + can be declared using `xit'  can be declared using `xit' PENDING (0.20ms) + can be declared with `it' but without a body  can be declared with `it' but without a body PENDING (0.17ms) Conditionally skip specs - with the `assume' macro  with the `assume' macro !! CANCELLED !! `new-function' not availeble  should invert the car of the nested matcher's return value (0.04ms) - (0.25ms) + with the `assume' macro  with the `assume' macro !! CANCELLED !! `new-function' not availeble (0.22ms) - :to-have-same-items-as - should match equal setsA spy - tracks that the spy was called  tracks that the spy was called (0.15ms) - resets tracking after each spec  should match equal sets (0.21ms) - should notice missing elements in the second argument  resets tracking after each spec (0.16ms) +A spy + tracks that the spy was called  tracks that the spy was called (0.40ms) + resets tracking after each spec  resets tracking after each spec (0.33ms) that is defined in a nested `describe' - will override any outer spy  should notice missing elements in the second argument (0.23ms) - should notice extra items in the second argument  will override any outer spy (0.26ms) - will not be active outside it's scope  should notice extra items in the second argument (0.23ms) - should notice extra items in both arguments  will not be active outside it's scope (0.16ms) - tracks all arguments of its calls  should notice extra items in both arguments (0.24ms) - :to-match - should match the first argument against a regex  tracks all arguments of its calls (0.15ms) - stops all execution on a function  should match the first argument against a regex (0.18ms) - should show regex mismatches  stops all execution on a function (0.19ms) + will override any outer spy  will override any outer spy (0.51ms) + will not be active outside it's scope  will not be active outside it's scope (0.40ms) + 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.31ms) A spy - tracks that the spy was called twice  should show regex mismatches (0.14ms) - :to-be-in - should match when the first argument is a member of the second argument  tracks that the spy was called twice (0.14ms) + tracks that the spy was called twice  tracks that the spy was called twice (0.29ms) A spy, when configured to call through - tracks that the spy was called  should match when the first argument is a member of the second argument  tracks that the spy was called (0.20ms) - (0.11ms) - should not match when the first argument is not a member of the second argument should not affect other functions  should not affect other functions (0.18ms) - when called returns the requested value  should not match when the first argument is not a member of the second argument (0.23ms) - :to-contain - should match when the second argument is a member of the first argument  when called returns the requested value (0.16ms) + tracks that the spy was called  tracks that the spy was called (0.27ms) + should not affect other functions  should not affect other functions (0.39ms) + when called returns the requested value  when called returns the requested value (0.36ms) A spy, when configured to fake a return value - tracks that the spy was called  should match when the second argument is a member of the first argument (0.19ms) - should not match when the second argument is not a member of the first argument  tracks that the spy was called (0.12ms) - should not affect other functions  should not match when the second argument is not a member of the first argument (0.21ms) - :to-be-less-than - should match when the first argument is less than the second argument  should not affect other functions (0.14ms) - when called returns the requested value  should match when the first argument is less than the second argument (0.14ms) - should not match when the first argument is equal to the second argument  when called returns the requested value (0.14ms) + tracks that the spy was called  tracks that the spy was called (0.28ms) + should not affect other functions  should not affect other functions (0.33ms) + when called returns the requested value  when called returns the requested value (0.31ms) A spy, when configured with an alternate implementation - tracks that the spy was called  should not match when the first argument is equal to the second argument (0.15ms) -  tracks that the spy was called (0.10ms) - should not match when the first argument is greater than the second argument should not affect other functions  should not match when the first argument is greater than the second argument (0.14ms) - :to-be-greater-than - should match when the first argument is greater than the second argument  should not affect other functions (0.16ms) - when called returns the requested value  when called returns the requested value (0.16ms) + tracks that the spy was called  tracks that the spy was called (0.34ms) + 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.40ms) A spy, when configured to throw an error - throws the error  throws the error (0.23ms) + throws the error  throws the error (0.45ms) A spy - tracks if it was called at all  tracks if it was called at all (0.23ms) - tracks the number of times it was called  tracks the number of times it was called (0.22ms) - tracks the arguments of each call  tracks the arguments of each call (0.22ms) - tracks the arguments of all calls  tracks the arguments of all calls (0.18ms) - can provide the context and arguments to all calls  can provide the context and arguments to all calls (0.16ms) - has a shortcut to the most recent call  has a shortcut to the most recent call (0.16ms) - has a shortcut to the first call  has a shortcut to the first call (0.16ms) - tracks the return values and error signals of each call  tracks the return values and error signals of each call (0.85ms) - counts the number of successful and failed calls  counts the number of successful and failed calls (0.96ms) - can be reset  can be reset (0.25ms) + tracks if it was called at all  tracks if it was called at all (0.45ms) + tracks the number of times it was called  tracks the number of times it was called (0.61ms) + tracks the arguments of each call  tracks the arguments of each call (0.41ms) + tracks the arguments of all calls  tracks the arguments of all calls (0.32ms) + can provide the context and arguments to all calls  can provide the context and arguments to all calls (0.30ms) + has a shortcut to the most recent call  has a shortcut to the most recent call (0.31ms) + has a shortcut to the first call  has a shortcut to the first call (0.32ms) + tracks the return values and error signals of each call  tracks the return values and error signals of each call (1.21ms) + counts the number of successful and failed calls  counts the number of successful and failed calls (1.20ms) + can be reset  can be reset (0.40ms) A test - can issue warnings while running  can issue warnings while running (0.16ms) + can issue warnings while running  can issue warnings while running (0.35ms) Warning (buttercup): This warning should be visible after the test report. - can capture its own warnings as part of the test  can capture its own warnings as part of the test (0.22ms) + can capture its own warnings as part of the test  can capture its own warnings as part of the test (0.41ms) + +Ran 59 out of 63 specs, 0 failed, in 40.09ms. +Running 284 specs. -Ran 59 out of 63 specs, 0 failed, in 22.35ms. -  should match when the first argument is greater than the second argument (19.47ms) +The buttercup--enclosed-expr function + should handle + expressions wrapped by buttercup--wrap-expr  expressions wrapped by buttercup--wrap-expr (12.01ms) + a closure with expression copy?  a closure with expression copy? (0.29ms) + a lambda with expression copy?  a lambda with expression copy? (0.14ms) + byte compiled + lambda objects  lambda objects (0.25ms) + wrapped expression  wrapped expression !! CANCELLED !! Not with Oclosures (0.10ms) + should error + on a simple closure  on a simple closure (0.17ms) + on a closure with stackframe marker but no quoted expression  on a closure with stackframe marker but no quoted expression (0.20ms) + for multi-statement closures  for multi-statement closures (0.16ms) + for closures with non-empty argument lists  for closures with non-empty argument lists (0.14ms) + on simple lambda objects  on simple lambda objects (0.13ms) + on a lambda with stackframe marker but no quoted expression  on a lambda with stackframe marker but no quoted expression (3.48ms) + for multi-statement lambdas  for multi-statement lambdas (0.23ms) + for lambdas with non-empty argument lists  for lambdas with non-empty argument lists (0.14ms) + on byte-compiled functions with arguments  on byte-compiled functions with arguments (0.38ms) + +The buttercup-failed signal + can be raised  can be raised (0.15ms) + +The buttercup-pending signal + can be raised  can be raised (0.13ms) + +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.55ms) + with no matcher should use `:to-be-truthy' as the matcher  with no matcher should use `:to-be-truthy' as the matcher (0.33ms) + +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.19ms) + should raise an error if the function returns false  should raise an error if the function returns false (0.22ms) + 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.18ms) + should raise an error if the matcher returns false  should raise an error if the matcher returns false (4.75ms) + +The `buttercup-fail' function + should raise a signal with its arguments  should raise a signal with its arguments (0.24ms) + +The `assume' form + should raise a signal if the condition is nil  should raise a signal if the condition is nil (0.22ms) + should show the format if no message is given  should show the format if no message is given (0.16ms) + should not raise a signal if the condition is non-nil  should not raise a signal if the condition is non-nil (0.13ms) + +The `buttercup-skip' function + should raise a signal with its arguments  should raise a signal with its arguments (0.17ms) + +The `buttercup-define-matcher' macro + should create a matcher usable by apply-matcher  should create a matcher usable by apply-matcher (0.22ms) + +The `buttercup--apply-matcher' function + should work with functions  should work with functions (0.19ms) + should work with matchers  should work with matchers (0.18ms) + should fail if the matcher is not defined  should fail if the matcher is not defined (0.19ms) + +The :buttercup-define-matcher-for-unary-function helper + should not modify match data  should not modify match data (0.17ms) + +The :buttercup-define-matcher-for-binary-function helper + should not modify match data  should not modify match data (0.21ms) + +The included matcher + :to-be-truthy + should match for a truthy expression  should match for a truthy expression (0.20ms) + should not match for an untruthy expression  should not match for an untruthy expression (0.19ms) + :to-be + should match if the args are `eq'  should match if the args are `eq' (0.31ms) + should not match if the args are not `eq'  should not match if the args are not `eq' (0.32ms) + :to-equal + should match if the args are `equal'  should match if the args are `equal' (3.80ms) + should not match if the args are not `equal'  should not match if the args are not `equal' (0.48ms) + :not + should invert the car of the nested matcher's return value  should invert the car of the nested matcher's return value (0.35ms) + :to-have-same-items-as + should match equal sets  should match equal sets (0.26ms) + should notice missing elements in the second argument  should notice missing elements in the second argument (0.26ms) + should notice extra items in the second argument  should notice extra items in the second argument (0.23ms) + should notice extra items in both arguments  should notice extra items in both arguments (0.22ms) + :to-match + should match the first argument against a regex  should match the first argument against a regex (0.16ms) + should show regex mismatches  should show regex mismatches (0.13ms) + :to-be-in + should match when the first argument is a member of the second argument  should match when the first argument is a member of the second argument (0.20ms) + should not match when the first argument is not a member of the second argument  should not match when the first argument is not a member of the second argument (0.23ms) + :to-contain + should match when the second argument is a member of the first argument  should match when the second argument is a member of the first argument (0.19ms) + should not match when the second argument is not a member of the first argument  should not match when the second argument is not a member of the first argument (0.19ms) + :to-be-less-than + should match when the first argument is less than the second argument  should match when the first argument is less than the second argument (0.14ms) + should not match when the first argument is equal to the second argument  should not match when the first argument is equal to the second argument (0.15ms) + should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (0.13ms) + :to-be-greater-than + should match when the first argument is greater than the second argument  should match when the first argument is greater than the second argument (51.38ms) should not match when the first argument is equal to the second argument  should not match when the first argument is equal to the second argument (0.16ms) should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (0.13ms) :to-be-weakly-less-than should match when the first argument is less than the second argument  should match when the first argument is less than the second argument (0.13ms) - should match when the first argument is equal to the second argument  should match when the first argument is equal to the second argument (0.13ms) - should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (0.14ms) + should match when the first argument is equal to the second argument  should match when the first argument is equal to the second argument (0.12ms) + should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (8.39ms) :to-be-weakly-greater-than - should match when the first argument is greater than the second argument  should match when the first argument is greater than the second argument (0.13ms) - should match when the first argument is equal to the second argument  should match when the first argument is equal to the second argument (0.13ms) - should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (0.13ms) + should match when the first argument is greater than the second argument  should match when the first argument is greater than the second argument (0.15ms) + should match when the first argument is equal to the second argument  should match when the first argument is equal to the second argument (0.14ms) + should not match when the first argument is greater than the second argument  should not match when the first argument is greater than the second argument (0.14ms) :to-be-close-to should match when value difference is less than precision  should match when value difference is less than precision (0.23ms) should not match when value difference is larger than precision  should not match when value difference is larger than precision (0.19ms) :to-throw should match when signal symbol and argument match exactly  should match when signal symbol and argument match exactly (0.13ms) - should match the error symbol without args  should match the error symbol without args (0.11ms) + should match the error symbol without args  should match the error symbol without args (0.10ms) should match the with no error signal specified  should match the with no error signal specified (0.10ms) should match a child signal  should match a child signal (0.10ms) - should match child signals and equal arguments  should match child signals and equal arguments (0.12ms) - should not match with different arguments  should not match with different arguments (0.14ms) + should match child signals and equal arguments  should match child signals and equal arguments (0.11ms) + should not match with different arguments  should not match with different arguments (0.15ms) should not match an unrelated symbol  should not match an unrelated symbol (0.12ms) should not match a parent signal  should not match a parent signal (0.10ms) should not match when no signal is raised - and not mention unspecified signal  and not mention unspecified signal (0.12ms) - and mention any specified signal  and mention any specified signal (0.83ms) + and not mention unspecified signal  and not mention unspecified signal (0.13ms) + and mention any specified signal  and mention any specified signal (0.13ms) :to-have-been-called - should not match if the spy has not been called  should not match if the spy has not been called (0.12ms) + should not match if the spy has not been called  should not match if the spy has not been called (0.09ms) should match if the spy has been called once  should match if the spy has been called once (0.08ms) - should match if the spy has been called multiple times  should match if the spy has been called multiple times (25.02ms) + should match if the spy has been called multiple times  should match if the spy has been called multiple times (66.72ms) :to-have-been-called-with - should not match if the spy has not been called at all  should not match if the spy has not been called at all (0.14ms) + should not match if the spy has not been called at all  should not match if the spy has not been called at all (0.15ms) should not match if the spy has not been called with the specified arguments  should not match if the spy has not been called with the specified arguments (0.15ms) should match if the spy has been called once with the specified arguments  should match if the spy has been called once with the specified arguments (0.12ms) - should match if the spy has been called multiple times with the specified arguments  should match if the spy has been called multiple times with the specified arguments (0.10ms) + should match if the spy has been called multiple times with the specified arguments  should match if the spy has been called multiple times with the specified arguments (0.11ms) :to-have-been-called-times should not match if the spy has been called less times  should not match if the spy has been called less times (0.11ms) should not match if the spy has been called more times  should not match if the spy has been called more times (0.12ms) - should match if the spy has been called the correct number of times  should match if the spy has been called the correct number of times (0.11ms) - should match if the spy has been called 0 times  should match if the spy has been called 0 times (0.10ms) + should match if the spy has been called the correct number of times  should match if the spy has been called the correct number of times (0.12ms) + should match if the spy has been called 0 times  should match if the spy has been called 0 times (0.11ms) The `buttercup-suite-add-child' function - should add an element at the end of the list and return it  should add an element at the end of the list and return it (0.22ms) - should add an element even if the list is empty and return it  should add an element even if the list is empty and return it (0.20ms) - should add the parent to the child  should add the parent to the child (0.14ms) + should add an element at the end of the list and return it  should add an element at the end of the list and return it (0.18ms) + should add an element even if the list is empty and return it  should add an element even if the list is empty and return it (0.17ms) + should add the parent to the child  should add the parent to the child (0.10ms) The `buttercup-suite-parents' function - should return the list of parents for a suite  should return the list of parents for a suite (0.14ms) + should return the list of parents for a suite  should return the list of parents for a suite (0.10ms) The `buttercup-spec-parents' function - should return the list of parents for a spec  should return the list of parents for a spec (0.15ms) + should return the list of parents for a spec  should return the list of parents for a spec (0.10ms) 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.14ms) + should return the number of specs in a list of suites  should return the number of specs in a list of suites (0.09ms) The `buttercup-suites-total-specs-pending' function - should return the number of pending specs in a list of suites  should return the number of pending specs in a list of suites (0.30ms) - should also count skipped specs  should also count skipped specs (0.23ms) + should return the number of pending specs in a list of suites  should return the number of pending specs in a list of suites (0.24ms) + should also count skipped specs  should also count skipped specs (0.17ms) 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.14ms) + 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.08ms) 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.13ms) - should return the full name of a suite with parents  should return the full name of a suite with parents (0.13ms) + should return the full name of a suite without parents  should return the full name of a suite without parents (8.29ms) + should return the full name of a suite with parents  should return the full name of a suite with parents (0.15ms) 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.13ms) - should return the full name of a spec with parents  should return the full name of a spec with parents (0.13ms) + should return the full name of a spec without parents  should return the full name of a spec without parents (0.09ms) + should return the full name of a spec with parents  should return the full name of a spec with parents (0.08ms) The `buttercup-elapsed-time' function - should report elapsed time for suites  should report elapsed time for suites (0.17ms) - should report elapsed time for specs  should report elapsed time for specs (0.14ms) + should report elapsed time for suites  should report elapsed time for suites (0.14ms) + should report elapsed time for specs  should report elapsed time for specs (0.09ms) The `buttercup--run-suite' function - should set start and end time of the suite  should set start and end time of the suite (0.30ms) + should set start and end time of the suite  should set start and end time of the suite (0.27ms) The `buttercup--run-spec' function - should set start and end time of the spec  should set start and end time of the spec (0.32ms) - should not overwrite pending status with `after-each' results  should not overwrite pending status with `after-each' results (0.18ms) + should set start and end time of the spec  should set start and end time of the spec (0.28ms) + should not overwrite pending status with `after-each' results  should not overwrite pending status with `after-each' results (0.13ms) should set status to pending - for assume in `before-each'  for assume in `before-each' (0.22ms) - for assume in spec  for assume in spec (0.17ms) - for assume in `after-each'  for assume in `after-each' (0.24ms) + for assume in `before-each'  for assume in `before-each' (0.19ms) + for assume in spec  for assume in spec (0.12ms) + for assume in `after-each'  for assume in `after-each' (0.17ms) 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.14ms) - should support the :var argument  should support the :var argument (0.13ms) - should support the :var* argument  should support the :var* argument (0.13ms) + should expand to a simple call to the buttercup-describe function  should expand to a simple call to the buttercup-describe function (0.09ms) + should support the :var argument  should support the :var argument (0.09ms) + should support the :var* argument  should support the :var* argument (0.08ms) should error when - :var is not first  :var is not first (0.12ms) - :var* is not first  :var* is not first (0.13ms) - is expanded with `lexical-binding' nil  is expanded with `lexical-binding' nil (0.13ms) + :var is not first  :var is not first (0.08ms) + :var* is not first  :var* is not first (0.08ms) + is expanded with `lexical-binding' nil  is expanded with `lexical-binding' nil (0.09ms) The `buttercup-describe' function - should run the enclosing body  should run the enclosing body (0.12ms) - should set the `buttercup-suites' variable  should set the `buttercup-suites' variable (0.14ms) - should add child suites when called nested  should add child suites when called nested (0.21ms) + should run the enclosing body  should run the enclosing body (0.06ms) + should set the `buttercup-suites' variable  should set the `buttercup-suites' variable (0.12ms) + should add child suites when called nested  should add child suites when called nested (0.15ms) The `it' macro - should expand to a call to the `buttercup-it' function  should expand to a call to the `buttercup-it' function (0.14ms) - without argument should expand to xit.  without argument should expand to xit. (0.13ms) + should expand to a call to the `buttercup-it' function  should expand to a call to the `buttercup-it' function (0.07ms) + without argument should expand to xit.  without argument should expand to xit. (0.07ms) 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.13ms) - should add a spec to the current suite and return the spec  should add a spec to the current suite and return the spec (0.27ms) + should fail if not called from within a describe form  should fail if not called from within a describe form (0.07ms) + should add a spec to the current suite and return the spec  should add a spec to the current suite and return the spec (0.20ms) The `before-each' macro - expands to a function call  expands to a function call (0.12ms) + expands to a function call  expands to a function call (0.08ms) 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.14ms) + 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.08ms) The `after-each' macro - expands to a function call  expands to a function call (0.13ms) + expands to a function call  expands to a function call (0.07ms) 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.16ms) + 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.09ms) The `before-all' macro - expands to a function call  expands to a function call (0.13ms) + expands to a function call  expands to a function call (4.25ms) 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.14ms) The `after-all' macro - expands to a function call  expands to a function call (0.13ms) + expands to a function call  expands to a function call (0.08ms) 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.15ms) + 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.08ms) The `xdescribe' macro - expands directly to a function call  expands directly to a function call (0.14ms) - changes contained it-specs to pending specs  changes contained it-specs to pending specs (0.20ms) - should add a pending suite  should add a pending suite (0.15ms) + expands directly to a function call  expands directly to a function call (0.09ms) + changes contained it-specs to pending specs  changes contained it-specs to pending specs (0.14ms) + should add a pending suite  should add a pending suite (0.10ms) The `xit' macro - expands directly to a function call  expands directly to a function call (0.11ms) + expands directly to a function call  expands directly to a function call (0.07ms) The `buttercup-xit' function - should be a no-op  should be a no-op (0.14ms) - should add a function that raises a pending signal  should add a function that raises a pending signal (0.18ms) - should mark the suite as pending  should mark the suite as pending (0.17ms) - should set the failure description to PENDING  should set the failure description to PENDING (0.22ms) + should be a no-op  should be a no-op (0.09ms) + should add a function that raises a pending signal  should add a function that raises a pending signal (0.13ms) + should mark the suite as pending  should mark the suite as pending (0.12ms) + should set the failure description to PENDING  should set the failure description to PENDING (0.16ms) The Spy `spy-on' function - replaces a symbol's function slot  replaces a symbol's function slot (0.13ms) - restores the old value after a spec run  restores the old value after a spec run (0.13ms) - allows a spied-on command to be executed as a command  allows a spied-on command to be executed as a command (0.21ms) - can spy on autoloaded functions  can spy on autoloaded functions (0.98ms) - can spy on non-existing functions  can spy on non-existing functions (0.10ms) - only accepts ARG for keywords that use it  only accepts ARG for keywords that use it (0.27ms) - works on native-compilation primitives  works on native-compilation primitives (0.24ms) + replaces a symbol's function slot  replaces a symbol's function slot (0.08ms) + restores the old value after a spec run  restores the old value after a spec run (0.08ms) + allows a spied-on command to be executed as a command  allows a spied-on command to be executed as a command (0.15ms) + can spy on autoloaded functions  can spy on autoloaded functions (1.18ms) + can spy on non-existing functions  can spy on non-existing functions (0.05ms) + only accepts ARG for keywords that use it  only accepts ARG for keywords that use it (0.23ms) + works on native-compilation primitives  works on native-compilation primitives (0.18ms) will signal en error if - used in before-all  used in before-all (0.15ms) - used directly in describe  used directly in describe (0.16ms) + used in before-all  used in before-all (0.09ms) + used directly in describe  used directly in describe (0.08ms) :to-have-been-called matcher - returns false if the spy was not called  returns false if the spy was not called (0.17ms) - returns true if the spy was called at all  returns true if the spy was called at all (0.15ms) + returns false if the spy was not called  returns false if the spy was not called (8.29ms) + returns true if the spy was called at all  returns true if the spy was called at all (0.23ms) :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.19ms) - returns false if the spy was called with different arguments  returns false if the spy was called with different arguments (0.20ms) - returns true if the spy was called with those arguments  returns true if the spy was called with those arguments (0.19ms) + returns false if the spy was not called at all  returns false if the spy was not called at all (0.17ms) + returns false if the spy was called with different arguments  returns false if the spy was called with different arguments (0.16ms) + returns true if the spy was called with those arguments  returns true if the spy was called with those arguments (0.15ms) :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.18ms) - returns error if the spy was called more than expected  returns error if the spy was called more than expected (0.18ms) - 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.19ms) - use plural words in error message  use plural words in error message (0.19ms) - use singular expected word in error message  use singular expected word in error message (0.19ms) - use singular actual word in error message  use singular actual word in error message (0.18ms) + returns error if the spy was called less than expected  returns error if the spy was called less than expected (0.13ms) + returns error if the spy was called more than expected  returns error if the spy was called more than expected (0.13ms) + 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.13ms) + use plural words in error message  use plural words in error message (0.14ms) + use singular expected word in error message  use singular expected word in error message (0.12ms) + use singular actual word in error message  use singular actual word in error message (0.12ms) :and-call-through keyword functionality - tracks calls to the function  tracks calls to the function (0.08ms) - passes the arguments to the original function  passes the arguments to the original function (0.15ms) + tracks calls to the function  tracks calls to the function (0.04ms) + passes the arguments to the original function  passes the arguments to the original function (0.08ms) :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.13ms) - works with strings  works with strings (0.13ms) - works with vectors  works with vectors (0.16ms) - works with symbols  works with symbols (0.15ms) - works with conses  works with conses (0.13ms) - works with lists  works with lists (0.14ms) - works with alists  works with alists (0.14ms) + tracks calls to the function  tracks calls to the function (0.04ms) + returns the specified value  returns the specified value (0.07ms) + works with strings  works with strings (0.08ms) + works with vectors  works with vectors (0.08ms) + works with symbols  works with symbols (0.09ms) + works with conses  works with conses (0.09ms) + works with lists  works with lists (0.08ms) + works with alists  works with alists (0.08ms) :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.14ms) + tracks calls to the function  tracks calls to the function (0.04ms) + returns the specified value  returns the specified value (0.07ms) :and-throw-error keyword functionality - throws an error when called  throws an error when called (0.17ms) + throws an error when called  throws an error when called (0.11ms) error-recording functionality - records the function as called even if it throws an error  records the function as called even if it throws an error (0.22ms) - counts both successful calls and calls that threw errors  counts both successful calls and calls that threw errors (0.22ms) - records args to the function whether it throw an error or not  records args to the function whether it throw an error or not (0.29ms) - records the signal thrown by a call to the function  records the signal thrown by a call to the function (0.23ms) + records the function as called even if it throws an error  records the function as called even if it throws an error (0.14ms) + counts both successful calls and calls that threw errors  counts both successful calls and calls that threw errors (0.16ms) + records args to the function whether it throw an error or not  records args to the function whether it throw an error or not (0.22ms) + records the signal thrown by a call to the function  records the signal thrown by a call to the function (0.18ms) The batch reporters on the buttercup-started event - should print the number of specs  should print the number of specs (0.34ms) - should color-print the number of specs with the default color  should color-print the number of specs with the default color (0.25ms) - should print the number of skipped specs  should print the number of skipped specs (0.24ms) - should color-print the number of skipped specs with the default color  should color-print the number of skipped specs with the default color (0.23ms) + should print the number of specs  should print the number of specs (4.52ms) + should color-print the number of specs with the default color  should color-print the number of specs with the default color (0.37ms) + should print the number of skipped specs  should print the number of skipped specs (0.21ms) + should color-print the number of skipped specs with the default color  should color-print the number of skipped specs with the default color (0.19ms) on the suite-started event - should emit an indented suite description  should emit an indented suite description (0.24ms) - should color-print an indented suite description with the default color  should color-print an indented suite description with the default color (0.22ms) + should emit an indented suite description  should emit an indented suite description (0.17ms) + should color-print an indented suite description with the default color  should color-print an indented suite description with the default color (0.16ms) on the spec-started event - should emit an indented spec description  should emit an indented spec description (0.22ms) - should color-print an indented spec description with the default color  should color-print an indented spec description with the default color (0.24ms) + should emit an indented spec description  should emit an indented spec description (0.16ms) + should color-print an indented spec description with the default color  should color-print an indented spec description with the default color (0.15ms) on the spec-done event for a passed spec - should print no status tag  should print no status tag (0.28ms) - should color-print the description in green and no status tag  should color-print the description in green and no status tag (0.38ms) - should print multiline specs cleanly  should print multiline specs cleanly (0.29ms) - should color-print multiline specs cleanly  should color-print multiline specs cleanly (0.35ms) + should print no status tag  should print no status tag (0.20ms) + should color-print the description in green and no status tag  should color-print the description in green and no status tag (0.30ms) + should print multiline specs cleanly  should print multiline specs cleanly (0.23ms) + should color-print multiline specs cleanly  should color-print multiline specs cleanly (0.31ms) for a failed spec - should say FAILED  should say FAILED (0.29ms) - should color-print the description in red and say FAILED  should color-print the description in red and say FAILED (0.40ms) + should say FAILED  should say FAILED (0.23ms) + should color-print the description in red and say FAILED  should color-print the description in red and say FAILED (0.33ms) for a pending spec - should output the failure-description  should output the failure-description (0.30ms) - should color-print the description and failure-description in yellow  should color-print the description and failure-description in yellow (0.40ms) + should output the failure-description  should output the failure-description (0.24ms) + should color-print the description and failure-description in yellow  should color-print the description and failure-description in yellow (4.63ms) should throw an error for an unknown spec status - for plain output  for plain output (0.20ms) - for colored output  for colored output (0.14ms) + for plain output  for plain output (0.21ms) + for colored output  for colored output (0.11ms) on the suite-done event should emit a newline at the end of a top-level suite  should emit a newline at the end of a top-level suite (0.20ms) - should color-print a newline at the end of a top-level suite  should color-print a newline at the end of a top-level suite (0.19ms) - should not emit anything at the end of other suites  should not emit anything at the end of other suites (0.13ms) - should not color-print anything at the end of other suites  should not color-print anything at the end of other suites (0.13ms) + should color-print a newline at the end of a top-level suite  should color-print a newline at the end of a top-level suite (0.16ms) + should not emit anything at the end of other suites  should not emit anything at the end of other suites (0.12ms) + should not color-print anything at the end of other suites  should not color-print anything at the end of other suites (0.11ms) on the buttercup-done event should print a summary of run and failing specs  should print a summary of run and failing specs (0.25ms) - should color-print `0 failed' specs in green  should color-print `0 failed' specs in green (0.38ms) - should color-print `X failed' specs in red  should color-print `X failed' specs in red (0.32ms) - should print a summary separating run and pending specs  should print a summary separating run and pending specs (0.25ms) - should color-print pending spec count in default color  should color-print pending spec count in default color (0.35ms) - should not raise any error even if a spec failed  should not raise any error even if a spec failed (0.20ms) + should color-print `0 failed' specs in green  should color-print `0 failed' specs in green (0.35ms) + should color-print `X failed' specs in red  should color-print `X failed' specs in red (0.34ms) + should print a summary separating run and pending specs  should print a summary separating run and pending specs (0.22ms) + should color-print pending spec count in default color  should color-print pending spec count in default color (0.34ms) + should not raise any error even if a spec failed  should not raise any error even if a spec failed (0.19ms) on an unknown event should raise an error  should raise an error (0.09ms) Backtraces - should be printed for each failed spec  should be printed for each failed spec (0.92ms) + should be printed for each failed spec  should be printed for each failed spec (9.33ms) with style - `crop' should print truncated lines  `crop' should print truncated lines (2.85ms) - `full' should print full lines  `full' should print full lines (0.87ms) - `pretty' should pretty-print frames  `pretty' should pretty-print frames (1.38ms) - `omit' should print nothing  `omit' should print nothing (0.28ms) - should signal an error for unknown styles  should signal an error for unknown styles (0.13ms) + `crop' should print truncated lines  `crop' should print truncated lines (3.27ms) + `full' should print full lines  `full' should print full lines (1.02ms) + `pretty' should pretty-print frames  `pretty' should pretty-print frames (1.43ms) + `omit' should print nothing  `omit' should print nothing (0.33ms) + should signal an error for unknown styles  should signal an error for unknown styles (0.15ms) should generate correct backtrace for no matcher  no matcher (0.50ms) - :to-be-truthy  :to-be-truthy (0.48ms) - :not :to-be-truthy  :not :to-be-truthy (0.49ms) - :to-be  :to-be (0.48ms) + :to-be-truthy  :to-be-truthy (8.83ms) + :not :to-be-truthy  :not :to-be-truthy (0.57ms) + :to-be  :to-be (0.51ms) :not :to-be  :not :to-be (0.51ms) - :to-equal  :to-equal (0.49ms) - :not :to-equal  :not :to-equal (0.52ms) - :to-have-same-items-as  :to-have-same-items-as (0.48ms) - :not :to-have-same-items-as  :not :to-have-same-items-as (0.49ms) - :to-match  :to-match (0.46ms) - :not :to-match  :not :to-match (0.48ms) + :to-equal  :to-equal (0.50ms) + :not :to-equal  :not :to-equal (0.51ms) + :to-have-same-items-as  :to-have-same-items-as (0.50ms) + :not :to-have-same-items-as  :not :to-have-same-items-as (4.86ms) + :to-match  :to-match (0.59ms) + :not :to-match  :not :to-match (0.52ms) :to-be-in  :to-be-in (0.47ms) - :not :to-be-in  :not :to-be-in (0.50ms) - :to-contain  :to-contain (0.48ms) + :not :to-be-in  :not :to-be-in (0.51ms) + :to-contain  :to-contain (0.53ms) :not :to-contain  :not :to-contain (0.51ms) - :to-be-less-than  :to-be-less-than (0.56ms) - :not :to-be-less-than  :not :to-be-less-than (0.51ms) - :to-be-greater-than  :to-be-greater-than (0.50ms) - :not :to-be-greater-than  :not :to-be-greater-than (0.56ms) - :to-be-weakly-less-than  :to-be-weakly-less-than (0.50ms) - :not :to-be-weakly-less-than  :not :to-be-weakly-less-than (0.52ms) - :to-be-weakly-greater-than  :to-be-weakly-greater-than (0.52ms) - :not :to-be-weakly-greater-than  :not :to-be-weakly-greater-than (0.48ms) - :to-be-close-to  :to-be-close-to (0.56ms) - :not :to-be-close-to  :not :to-be-close-to (0.51ms) - :to-have-been-called  :to-have-been-called (0.53ms) - :not :to-have-been-called  :not :to-have-been-called (0.49ms) - :to-have-been-called-with  :to-have-been-called-with (0.48ms) - :not :to-have-been-called-with  :not :to-have-been-called-with (0.55ms) - :to-have-been-called-times  :to-have-been-called-times (0.51ms) - :not :to-have-been-called-times  :not :to-have-been-called-times (0.49ms) - should not generate backtraces for skipped specs  should not generate backtraces for skipped specs (0.17ms) + :to-be-less-than  :to-be-less-than (9.06ms) + :not :to-be-less-than  :not :to-be-less-than (0.83ms) + :to-be-greater-than  :to-be-greater-than (0.78ms) + :not :to-be-greater-than  :not :to-be-greater-than (0.80ms) + :to-be-weakly-less-than  :to-be-weakly-less-than (0.79ms) + :not :to-be-weakly-less-than  :not :to-be-weakly-less-than (7.61ms) + :to-be-weakly-greater-than  :to-be-weakly-greater-than (0.93ms) + :not :to-be-weakly-greater-than  :not :to-be-weakly-greater-than (0.79ms) + :to-be-close-to  :to-be-close-to (0.78ms) + :not :to-be-close-to  :not :to-be-close-to (0.74ms) + :to-have-been-called  :to-have-been-called (0.77ms) + :not :to-have-been-called  :not :to-have-been-called (0.71ms) + :to-have-been-called-with  :to-have-been-called-with (0.70ms) + :not :to-have-been-called-with  :not :to-have-been-called-with (5.72ms) + :to-have-been-called-times  :to-have-been-called-times (0.95ms) + :not :to-have-been-called-times  :not :to-have-been-called-times (0.81ms) + should not generate backtraces for skipped specs  should not generate backtraces for skipped specs (0.36ms) When using quiet specs in the batch reporter - should print nothing if all specs are quiet  should print nothing if all specs are quiet (0.27ms) - should print the containing suites for non-quiet specs  should print the containing suites for non-quiet specs (0.51ms) - should quiet all of the given spec statuses  should quiet all of the given spec statuses (0.28ms) - should handle `skipped' virtual status in quiet list  should handle `skipped' virtual status in quiet list (0.72ms) - should handle `disabled' virtual status in quiet list  should handle `disabled' virtual status in quiet list (0.75ms) + should print nothing if all specs are quiet  should print nothing if all specs are quiet (0.59ms) + should print the containing suites for non-quiet specs  should print the containing suites for non-quiet specs (1.00ms) + should quiet all of the given spec statuses  should quiet all of the given spec statuses (7.56ms) + should handle `skipped' virtual status in quiet list  should handle `skipped' virtual status in quiet list (1.22ms) + should handle `disabled' virtual status in quiet list  should handle `disabled' virtual status in quiet list (1.09ms) The `buttercup-run' function - should signal an error if no suites are defined  should signal an error if no suites are defined (0.12ms) - should return :no-suites for no suites and noerror  should return :no-suites for no suites and noerror (0.12ms) - should raise an error if at least one spec failed  should raise an error if at least one spec failed (0.12ms) - should return nil for failing specs and noerror  should return nil for failing specs and noerror (0.18ms) - should return t for passing specs  should return t for passing specs (0.30ms) - should call the reporter twice with events buttercup-started and -done  should call the reporter twice with events buttercup-started and -done (0.21ms) - should call `buttercup--run-suite' once per suite  should call `buttercup--run-suite' once per suite (0.13ms) + should signal an error if no suites are defined  should signal an error if no suites are defined (0.33ms) + should return :no-suites for no suites and noerror  should return :no-suites for no suites and noerror (0.28ms) + should raise an error if at least one spec failed  should raise an error if at least one spec failed (0.32ms) + should return nil for failing specs and noerror  should return nil for failing specs and noerror (0.27ms) + should return t for passing specs  should return t for passing specs (0.27ms) + should call the reporter twice with events buttercup-started and -done  should call the reporter twice with events buttercup-started and -done (0.33ms) + should call `buttercup--run-suite' once per suite  should call `buttercup--run-suite' once per suite (0.27ms) The `buttercup--print' function - should send a formatted string to the terminal  should send a formatted string to the terminal (0.05ms) + should send a formatted string to the terminal  should send a formatted string to the terminal (0.18ms) The `buttercup-mark-skipped' function - should do nothing with a reversed match-all pattern  should do nothing with a reversed match-all pattern (0.65ms) - should mark all specs as pending with a reversed match none pattern  should mark all specs as pending with a reversed match none pattern (0.32ms) - should handle multiple patterns  should handle multiple patterns (0.32ms) - should support predicates  should support predicates (0.34ms) - should support reversed predicates  should support reversed predicates (0.30ms) - should signal an error for invalid matchers  should signal an error for invalid matchers (0.32ms) + should do nothing with a reversed match-all pattern  should do nothing with a reversed match-all pattern (0.86ms) + should mark all specs as pending with a reversed match none pattern  should mark all specs as pending with a reversed match none pattern (0.44ms) + should handle multiple patterns  should handle multiple patterns (0.45ms) + should support predicates  should support predicates (0.48ms) + should support reversed predicates  should support reversed predicates (0.49ms) + should signal an error for invalid matchers  should signal an error for invalid matchers (0.39ms) Buttercup's ERT compatibility wrapper - should convert `ert-test-failed' into `buttercup-failed'  should convert `ert-test-failed' into `buttercup-failed' (0.18ms) - should convert `ert-test-skipped' into `buttercup-pending'  should convert `ert-test-skipped' into `buttercup-pending' (0.08ms) + should convert `ert-test-failed' into `buttercup-failed'  should convert `ert-test-failed' into `buttercup-failed' (0.32ms) + should convert `ert-test-skipped' into `buttercup-pending'  should convert `ert-test-skipped' into `buttercup-pending' (0.23ms) `buttercup-run-discover' should parse command line arguments - ignoring `--'  ignoring `--' (0.12ms) - requiring an extra argument for `--traceback'  requiring an extra argument for `--traceback' (0.11ms) - checking `--traceback' argument for validity  checking `--traceback' argument for validity (0.13ms) - setting `buttercup-stack-frame-style' from `--traceback' arg  setting `buttercup-stack-frame-style' from `--traceback' arg (0.16ms) - requiring an extra argument for `--pattern' or `-p'  requiring an extra argument for `--pattern' or `-p' (0.16ms) - collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'  collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' (0.17ms) - clearing `buttercup-color' if `--no-color' is given  clearing `buttercup-color' if `--no-color' is given (0.23ms) - adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given  adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given (0.20ms) - adding `pending' and `passed' to quiet statuses if `--only-error' is given  adding `pending' and `passed' to quiet statuses if `--only-error' is given (0.19ms) - calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given  calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given (0.12ms) - search any unknown args for test files  search any unknown args for test files (0.23ms) + ignoring `--'  ignoring `--' (0.28ms) + requiring an extra argument for `--traceback'  requiring an extra argument for `--traceback' (0.25ms) + checking `--traceback' argument for validity  checking `--traceback' argument for validity (0.27ms) + setting `buttercup-stack-frame-style' from `--traceback' arg  setting `buttercup-stack-frame-style' from `--traceback' arg (0.34ms) + requiring an extra argument for `--pattern' or `-p'  requiring an extra argument for `--pattern' or `-p' (0.34ms) + collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'  collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' (0.33ms) + clearing `buttercup-color' if `--no-color' is given  clearing `buttercup-color' if `--no-color' is given (0.39ms) + adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given  adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given (0.38ms) + adding `pending' and `passed' to quiet statuses if `--only-error' is given  adding `pending' and `passed' to quiet statuses if `--only-error' is given (0.37ms) + calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given  calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given (0.27ms) + search any unknown args for test files  search any unknown args for test files (0.44ms) find and load files - named test-*.el and *-tests?.el but no other files  named test-*.el and *-tests?.el but no other files (1.95ms) - only in given directories  only in given directories (1.46ms) + named test-*.el and *-tests?.el but no other files  named test-*.el and *-tests?.el but no other files (2.41ms) + only in given directories  only in given directories (1.89ms) butter-minor-mode - should fontify `describe' special form  should fontify `describe' special form (0.39ms) - should fontify `it' special form  should fontify `it' special form (0.27ms) - should add special forms to `imenu'  should add special forms to `imenu' (0.47ms) - should define `buttercup-minor-mode-map'  should define `buttercup-minor-mode-map' (0.06ms) + should fontify `describe' special form  should fontify `describe' special form (0.76ms) + should fontify `it' special form  should fontify `it' special form (0.56ms) + should add special forms to `imenu'  should add special forms to `imenu' (0.68ms) + should define `buttercup-minor-mode-map'  should define `buttercup-minor-mode-map' (0.21ms) For stale `elc' file checks `buttercup-check-for-stale-elc' - should do nothing for `el' files  should do nothing for `el' files (0.14ms) - should signal error when `elc' is older than `el'  should signal error when `elc' is older than `el' (0.14ms) - should not signal error when `elc' is newer than `el'  should not signal error when `elc' is newer than `el' (0.13ms) - should do nothing if the `el' file does not exist  should do nothing if the `el' file does not exist (0.10ms) + should do nothing for `el' files  should do nothing for `el' files (0.34ms) + should signal error when `elc' is older than `el'  should signal error when `elc' is older than `el' (0.30ms) + should not signal error when `elc' is newer than `el'  should not signal error when `elc' is newer than `el' (0.29ms) + should do nothing if the `el' file does not exist  should do nothing if the `el' file does not exist (0.26ms) `buttercup-error-on-stale-elc' - should activate with no argument  should activate with no argument (0.08ms) - should deactivate with almost any argument  should deactivate with almost any argument (0.08ms) - should toggle when given `toggle' as argument  should toggle when given `toggle' as argument (0.16ms) + should activate with no argument  should activate with no argument (0.22ms) + should deactivate with almost any argument  should deactivate with almost any argument (0.22ms) + should toggle when given `toggle' as argument  should toggle when given `toggle' as argument (0.27ms) -Ran 283 out of 284 specs, 0 failed, in 32.49ms. +Ran 283 out of 284 specs, 0 failed, in 45.56ms. make[1]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.35' dh_elpa_test create-stamp debian/debhelper-build-stamp @@ -1368,12 +1404,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/3725198/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/3725198/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/951941 and its subdirectories -I: Current time: Sat Jun 14 14:10:56 -12 2025 -I: pbuilder-time-stamp: 1749953456 +I: removing directory /srv/workspace/pbuilder/3725198 and its subdirectories +I: Current time: Mon May 13 09:49:33 +14 2024 +I: pbuilder-time-stamp: 1715543373