Diff of the two buildlogs: -- --- b1/build.log 2025-02-20 11:09:31.743313494 +0000 +++ b2/build.log 2025-02-20 11:10:09.613611064 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Feb 19 23:08:46 -12 2025 -I: pbuilder-time-stamp: 1740049726 +I: Current time: Thu Mar 26 07:32:32 +14 2026 +I: pbuilder-time-stamp: 1774459952 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -23,54 +23,86 @@ dpkg-source: info: unpacking emacs-buttercup_1.37-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/49512/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/68700/tmp/hooks/D01_modify_environment starting +debug: Running on ionos6-i386. +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 Mar 25 17:32 /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/68700/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/68700/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='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=11 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='i386' + 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]="37" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.37(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='4c41ac09035b433e962c1094f2e7f123' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='49512' - PS1='# ' - PS2='> ' + INVOCATION_ID=fc460036e51c47d7b2fd721178147dc4 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=68700 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.dDAlbpdz/pbuilderrc_4G4H --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.dDAlbpdz/b1 --logfile b1/build.log emacs-buttercup_1.37-1.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.dDAlbpdz/pbuilderrc_tSeS --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.dDAlbpdz/b2 --logfile b2/build.log emacs-buttercup_1.37-1.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos2-i386 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/49512/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/68700/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -207,7 +239,7 @@ Get: 95 http://deb.debian.org/debian trixie/main i386 libtext-glob-perl all 0.11-3 [7676 B] Get: 96 http://deb.debian.org/debian trixie/main i386 libfile-find-rule-perl all 0.34-3 [26.6 kB] Get: 97 http://deb.debian.org/debian trixie/main i386 dh-elpa all 2.1.5 [29.7 kB] -Fetched 80.2 MB in 1s (77.6 MB/s) +Fetched 80.2 MB in 1s (69.0 MB/s) Preconfiguring packages ... Selecting previously unselected package netbase. (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 ... 19795 files and directories currently installed.) @@ -625,7 +657,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/emacs-buttercup-1.37/ && 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.37-1_source.changes +I: user script /srv/workspace/pbuilder/68700/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/68700/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/emacs-buttercup-1.37/ && 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.37-1_source.changes dpkg-buildpackage: info: source package emacs-buttercup dpkg-buildpackage: info: source version 1.37-1 dpkg-buildpackage: info: source distribution unstable @@ -636,7 +672,7 @@ debian/rules clean dh clean --with elpa dh_auto_clean - make -j11 clean + make -j21 clean make[1]: Entering directory '/build/reproducible-path/emacs-buttercup-1.37' rm -f *.elc tests/*.elc make[1]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.37' @@ -669,10 +705,10 @@ Package autoload is deprecated Loading /etc/emacs/site-start.d/00debian.el (source)... Loading /etc/emacs/site-start.d/50autoconf.el (source)... -dh_auto_build just runs make[2]: Entering directory '/build/reproducible-path/emacs-buttercup-1.37' emacs -batch -L . -f batch-byte-compile buttercup-compat.el emacs -batch -L . -f batch-byte-compile buttercup.el ./bin/buttercup -L . tests Running 291 specs. The buttercup--enclosed-expr function should handle expressions wrapped by buttercup--wrap-expr [32m expressions wrapped by buttercup--wrap-expr[0m (5.20ms) a closure with expression copy? [32m a closure with expression copy?[0m (0.22ms) a lambda with expression copy? [32m a lambda with expression copy?[0m (0.12ms) byte compiled lambda objects [32m lambda objects[0m (0.21ms) wrapped expression [33m wrapped expression[0m[33m !! CANCELLED !! Not with Oclosures[0m (0.07ms) should error on a simple closure [32m on a simple closure[0m (0.19ms) on a closure with stackframe marker but no quoted expression [32m on a closure with stackframe marker but no quoted expression[0m (0.17ms) for multi-statement closures [32m for multi-statement closures[0m (0.17ms) for closures with non-empty argument lists [32m for closures with non-empty argument lists[0m (0.17ms) on simple lambda objects [32m on simple lambda objects[0m (0.13ms) on a lambda with stackframe marker but no quoted expression [32m on a lambda with stackframe marker but no quoted expression[0m (0.15ms) for multi-statement lambdas [32m for multi-statement lambdas[0m (0.19ms) for lambdas with non-empty argument lists [32m for lambdas with non-empty argument lists[0m (0.16ms) on byte-compiled functions with arguments [32m on byte-compiled functions with arguments[0m (0.25ms) The buttercup-failed signal can be raised [32m can be raised[0m (0.14ms) The buttercup-pending signal can be raised [32m can be raised[0m (0.13ms) The `expect' form with a matcher should translate to the function call with closures [32m with a matcher should translate to the function call with closures[0m (0.75ms) with no matcher should use `:to-be-truthy' as the matcher [32m with no matcher should use `:to-be-truthy' as the matcher[0m (0.47ms) The `buttercup-expect' function with a function as a matcher argument should not raise an error if the function returns true [32m should not raise an error if the function returns true[0m (0.22ms) should raise an error if the function returns false [32m should raise an error if the function returns false[0m (0.23ms) with a matcher argument should not raise an error if the matcher returns true [32m should not raise an error if the matcher returns true[0m (0.21ms) should raise an error if the matcher returns false [32m should raise an error if the matcher returns false[0m (0.19ms) The `buttercup-fail' function should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.16ms) The `assume' form should raise a signal if the condition is nil [32m should raise a signal if the condition is nil[0m (0.18ms) should show the format if no message is given [32m should show the format if no message is given[0m (0.18ms) should not raise a signal if the condition is non-nil [32m should not raise a signal if the condition is non-nil[0m (0.14ms) The `buttercup-skip' function should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.18ms) The `buttercup-define-matcher' macro should create a matcher usable by apply-matcher [32m should create a matcher usable by apply-matcher[0m (0.20ms) The `buttercup--apply-matcher' function should work with functions [32m should work with functions[0m (0.20ms) should work with matchers [32m should work with matchers[0m (0.20ms) should fail if the matcher is not defined [32m should fail if the matcher is not defined[0m (0.19ms) The :buttercup-define-matcher-for-unary-function helper should not modify match data [32m should not modify match data[0m (0.23ms) The :buttercup-define-matcher-for-binary-function helper should not modify match data [32m should not modify match data[0m (0.27ms) The included matcher :to-be-truthy should match for a truthy expression [32m should match for a truthy expression[0m (0.24ms) should not match for an untruthy expression [32m should not match for an untruthy expression[0m (0.36ms) :to-be should match if the args are `eq' [32m should match if the args are `eq'[0m (0.39ms) should not match if the args are not `eq' [32m should not match if the args are not `eq'[0m (0.41ms) :to-equal should match if the args are `equal' [32m should match if the args are `equal'[0m (0.36ms) should not match if the args are not `equal' [32m should not match if the args are not `equal'[0m (0.37ms) :not should invert the car of the nested matcher's return value [32m should invert the car of the nested matcher's return value[0m (0.51ms) :to-have-same-items-as should match equal sets [32m should match equal sets[0m (0.41ms) should notice missing elements in the second argument [32m should notice missing elements in the second argument[0m (0.44ms) should notice extra items in the second argument [32m should notice extra items in the second argument[0m (0.44ms) should notice extra items in both arguments [32m should notice extra items in both arguments[0m (0.48ms) :to-match should match the first argument against a regex [32m should match the first argument against a regex[0m (0.30ms) should show regex mismatches [32m should show regex mismatches[0m (0.28ms) :to-be-in should match when the first argument is a member of the second argument [32m should match when the first argument is a member of the second argument[0m (0.41ms) should not match when the first argument is not a member of the second argument [32m should not match when the first argument is not a member of the second argument[0m (0.41ms) :to-contain should match when the second argument is a member of the first argument [32m should match when the second argument is a member of the first argument[0m (0.38ms) should not match when the second argument is not a member of the first argument [32m should not match when the second argument is not a member of the first argument[0m (0.40ms) :to-be-less-than should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.28ms) should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.31ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.30ms) :to-be-greater-than should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.36ms) should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.28ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.30ms) :to-be-weakly-less-than should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.28ms) should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.29ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.30ms) :to-be-weakly-greater-than should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.28ms) should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.29ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.28ms) :to-be-close-to should match when value difference is less than precision [32m should match when value difference is less than precision[0m (0.42ms) should not match when value difference is larger than precision [32m should not match when value difference is larger than precision[0m (0.42ms) :to-throw should match when signal symbol and argument match exactly [32m should match when signal symbol and argument match exactly[0m (0.27ms) should match the error symbol without args [32m should match the error symbol without args[0m (0.24ms) should match the with no error signal specified [32m should match the with no error signal specified[0m (0.22ms) should match a child signal [32m should match a child signal[0m (0.25ms) should match child signals and equal arguments [32m should match child signals and equal arguments[0m (0.26ms) should not match with different arguments [32m should not match with different arguments[0m (0.27ms) should not match an unrelated symbol [32m should not match an unrelated symbol[0m (0.27ms) should not match a parent signal [32m should not match a parent signal[0m (0.23ms) should not match when no signal is raised and not mention unspecified signal [32m and not mention unspecified signal[0m (0.25ms) and mention any specified signal [32m and mention any specified signal[0m (0.29ms) :to-have-been-called should not match if the spy has not been called [32m should not match if the spy has not been called[0m (0.16ms) should match if the spy has been called once [32m should match if the spy has been called once[0m (0.17ms) should match if the spy has been called multiple times [32m should match if the spy has been called multiple times[0m (33.64ms) :to-have-been-called-with should not match if the spy has not been called at all [32m should not match if the spy has not been called at all[0m (0.23ms) should not match if the spy has not been called with the specified arguments [32m should not match if the spy has not been called with the specified arguments[0m (0.29ms) should match if the spy has been called once with the specified arguments [32m should match if the spy has been called once with the specified arguments[0m (0.25ms) should match if the spy has been called multiple times with the specified arguments [32m should match if the spy has been called multiple times with the specified arguments[0m (0.22ms) :to-have-been-called-times should not match if the spy has been called less times [32m should not match if the spy has been called less times[0m (0.23ms) should not match if the spy has been called more times [32m should not match if the spy has been called more times[0m (0.25ms) should match if the spy has been called the correct number of times [32m should match if the spy has been called the correct number of times[0m (0.24ms) should match if the spy has been called 0 times [32m should match if the spy has been called 0 times[0m (0.22ms) The `buttercup-suite-add-child' function should add an element at the end of the list and return it [32m should add an element at the end of the list and return it[0m (0.32ms) should add an element even if the list is empty and return it [32m should add an element even if the list is empty and return it[0m (0.29ms) should add the parent to the child [32m should add the parent to the child[0m (0.17ms) The `buttercup-suite-parents' function should return the list of parents for a suite [32m should return the list of parents for a suite[0m (0.19ms) The `buttercup-spec-parents' function should return the list of parents for a spec [32m should return the list of parents for a spec[0m (0.19ms) The `buttercup-suites-total-specs-defined' function should return the number of specs in a list of suites [32m should return the number of specs in a list of suites[0m (0.16ms) The `buttercup-suites-total-specs-pending' function should return the number of pending specs in a list of suites [32m should return the number of pending specs in a list of suites[0m (0.37ms) should also count skipped specs [32m should also count skipped specs[0m (0.37ms) The `buttercup-suites-total-specs-failed' function should return the number of failed specs in a list of suites [32m should return the number of failed specs in a list of suites[0m (0.16ms) The `buttercup-suite-full-name' function should return the full name of a suite without parents [32m should return the full name of a suite without parents[0m (0.15ms) should return the full name of a suite with parents [32m should return the full name of a suite with parents[0m (0.15ms) The `buttercup-spec-full-name' function should return the full name of a spec without parents [32m should return the full name of a spec without parents[0m (0.16ms) should return the full name of a spec with parents [32m should return the full name of a spec with parents[0m (0.16ms) The `buttercup-elapsed-time' function should report elapsed time for suites [32m should report elapsed time for suites[0m (0.21ms) should report elapsed time for specs [32m should report elapsed time for specs[0m (0.19ms) The `buttercup--run-suite' function should set start and end time of the suite [32m should set start and end time of the suite[0m (0.45ms) The `buttercup--run-spec' function should set start and end time of the spec [32m should set start and end time of the spec[0m (0.56ms) should not overwrite pending status with `after-each' results [32m should not overwrite pending status with `after-each' results[0m (0.26ms) should set status to pending for assume in `before-each' [32m for assume in `before-each'[0m (0.41ms) for assume in spec [32m for assume in spec[0m (0.28ms) for assume in `after-each' [32m for assume in `after-each'[0m (0.40ms) The `describe' macro should expand to a simple call to the buttercup-describe function [32m should expand to a simple call to the buttercup-describe function[0m (0.15ms) should support the :var argument [32m should support the :var argument[0m (0.16ms) should support the :var* argument [32m should support the :var* argument[0m (0.16ms) should error when :var is not first [32m :var is not first[0m (0.16ms) :var* is not first [32m :var* is not first[0m (0.16ms) is expanded with `lexical-binding' nil [32m is expanded with `lexical-binding' nil[0m (0.15ms) The `buttercup-describe' function should run the enclosing body [32m should run the enclosing body[0m (0.12ms) should set the `buttercup-suites' variable [32m should set the `buttercup-suites' variable[0m (0.17ms) should add child suites when called nested [32m should add child suites when called nested[0m (0.31ms) The `it' macro should expand to a call to the `buttercup-it' function [32m should expand to a call to the `buttercup-it' function[0m (0.15ms) without argument should expand to xit. [32m without argument should expand to xit.[0m (0.15ms) The `buttercup-it' function should fail if not called from within a describe form [32m should fail if not called from within a describe form[0m (0.13ms) should add a spec to the current suite and return the spec [32m should add a spec to the current suite and return the spec[0m (0.39ms) The `before-each' macro expands to a function call [32m expands to a function call[0m (0.16ms) The `buttercup-before-each' function adds its argument to the before-each list of the current suite [32m adds its argument to the before-each list of the current suite[0m (0.16ms) The `after-each' macro expands to a function call [32m expands to a function call[0m (0.15ms) The `buttercup-after-each' function adds its argument to the after-each list of the current suite [32m adds its argument to the after-each list of the current suite[0m (0.16ms) The `before-all' macro expands to a function call [32m expands to a function call[0m (0.15ms) The `buttercup-before-all' function adds its argument to the before-all list of the current suite [32m adds its argument to the before-all list of the current suite[0m (0.16ms) The `after-all' macro expands to a function call [32m expands to a function call[0m (0.15ms) The `buttercup-after-all' function adds its argument to the after-all list of the current suite [32m adds its argument to the after-all list of the current suite[0m (0.17ms) The `xdescribe' macro expands directly to a function call [32m expands directly to a function call[0m (0.16ms) changes contained it-specs to pending specs [32m changes contained it-specs to pending specs[0m (0.21ms) should add a pending suite [32m should add a pending suite[0m (0.17ms) The `xit' macro expands directly to a function call [32m expands directly to a function call[0m (0.15ms) The `buttercup-xit' function should be a no-op [32m should be a no-op[0m (0.15ms) should add a function that raises a pending signal [32m should add a function that raises a pending signal[0m (0.21ms) should mark the suite as pending [32m should mark the suite as pending[0m (0.24ms) should set the failure description to PENDING [32m should set the failure description to PENDING[0m (0.29ms) The Spy `spy-on' function replaces a symbol's function slot [32m replaces a symbol's function slot[0m (0.15ms) restores the old value after a spec run [32m restores the old value after a spec run[0m (0.15ms) allows a spied-on command to be executed as a command [32m allows a spied-on command to be executed as a command[0m (0.23ms) can spy on autoloaded functions [32m can spy on autoloaded functions[0m (1.70ms) can spy on non-existing functions [32m can spy on non-existing functions[0m (0.08ms) only accepts ARG for keywords that use it [32m only accepts ARG for keywords that use it[0m (0.39ms) works on native-compilation primitives [32m works on native-compilation primitives[0m (0.32ms) will signal en error if used in before-all [32m used in before-all[0m (0.17ms) used directly in describe [32m used directly in describe[0m (0.17ms) :to-have-been-called matcher returns false if the spy was not called [32m returns false if the spy was not called[0m (0.18ms) returns true if the spy was called at all [32m returns true if the spy was called at all[0m (0.19ms) :to-have-been-called-with matcher returns false if the spy was not called at all [32m returns false if the spy was not called at all[0m (0.27ms) returns false if the spy was called with different arguments [32m returns false if the spy was called with different arguments[0m (0.28ms) returns true if the spy was called with those arguments [32m returns true if the spy was called with those arguments[0m (0.25ms) :to-have-been-called-times matcher returns error if the spy was called less than expected [32m returns error if the spy was called less than expected[0m (0.24ms) returns error if the spy was called more than expected [32m returns error if the spy was called more than expected[0m (0.24ms) returns true if the spy was called the expected number of times [32m returns true if the spy was called the expected number of times[0m (0.23ms) use plural words in error message [32m use plural words in error message[0m (0.23ms) use singular expected word in error message [32m use singular expected word in error message[0m (0.23ms) use singular actual word in error message [32m use singular actual word in error message[0m (0.24ms) :and-call-through keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.07ms) passes the arguments to the original function [32m passes the arguments to the original function[0m (0.17ms) :and-return-value keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.07ms) returns the specified value [32m returns the specified value[0m (0.15ms) works with strings [32m works with strings[0m (0.17ms) works with vectors [32m works with vectors[0m (0.16ms) works with symbols [32m works with symbols[0m (0.16ms) works with conses [32m works with conses[0m (0.17ms) works with lists [32m works with lists[0m (0.16ms) works with alists [32m works with alists[0m (0.17ms) :and-call-fake keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.08ms) returns the specified value [32m returns the specified value[0m (0.17ms) :and-throw-error keyword functionality throws an error when called [32m throws an error when called[0m (0.20ms) error-recording functionality records the function as called even if it throws an error [32m records the function as called even if it throws an error[0m (0.27ms) counts both successful calls and calls that threw errors [32m counts both successful calls and calls that threw errors[0m (0.35ms) records args to the function whether it throw an error or not [32m records args to the function whether it throw an error or not[0m (0.45ms) records the signal thrown by a call to the function [32m records the signal thrown by a call to the function[0m (0.36ms) The batch reporters on the buttercup-started event should print the number of specs [32m should print the number of specs[0m (0.42ms) should color-print the number of specs with the default color [32m should color-print the number of specs with the default color[0m (0.34ms) should print the number of skipped specs [32m should print the number of skipped specs[0m (0.34ms) should color-print the number of skipped specs with the default color [32m should color-print the number of skipped specs with the default color[0m (0.35ms) on the suite-started event should emit an indented suite description [32m should emit an indented suite description[0m (0.32ms) should color-print an indented suite description with the default color [32m should color-print an indented suite description with the default color[0m (0.31ms) on the spec-started event should emit an indented spec description [32m should emit an indented spec description[0m (0.31ms) should color-print an indented spec description with the default color [32m should color-print an indented spec description with the default color[0m (0.30ms) on the spec-done event for a passed spec should print no status tag [32m should print no status tag[0m (0.39ms) should color-print the description in green and no status tag [32m should color-print the description in green and no status tag[0m (0.61ms) should print multiline specs cleanly [32m should print multiline specs cleanly[0m (0.43ms) should color-print multiline specs cleanly [32m should color-print multiline specs cleanly[0m (0.52ms) for a failed spec should say FAILED [32m should say FAILED[0m (0.46ms) should color-print the description in red and say FAILED [32m should color-print the description in red and say FAILED[0m (0.67ms) for a pending spec should output the failure-description [32m should output the failure-description[0m (0.48ms) should color-print the description and failure-description in yellow [32m should color-print the description and failure-description in yellow[0m (0.69ms) should throw an error for an unknown spec status for plain output [32m for plain output[0m (0.22ms) for colored output [32m for colored output[0m (0.20ms) on the suite-done event should emit a newline at the end of a top-level suite [32m should emit a newline at the end of a top-level suite[0m (0.31ms) should color-print a newline at the end of a top-level suite [32m should color-print a newline at the end of a top-level suite[0m (0.32ms) should not emit anything at the end of other suites [32m should not emit anything at the end of other suites[0m (0.24ms) should not color-print anything at the end of other suites [32m should not color-print anything at the end of other suites[0m (0.28ms) on the buttercup-done event should print a summary of run and failing specs [32m should print a summary of run and failing specs[0m (0.43ms) should color-print `0 failed' specs in green [32m should color-print `0 failed' specs in green[0m (0.64ms) should color-print `X failed' specs in red [32m should color-print `X failed' specs in red[0m (0.62ms) should print a summary separating run and pending specs [32m should print a summary separating run and pending specs[0m (0.42ms) should color-print pending spec count in default color [32m should color-print pending spec count in default color[0m (0.58ms) should not raise any error even if a spec failed [32m should not raise any error even if a spec failed[0m (0.37ms) on an unknown event should raise an error [32m should raise an error[0m (0.17ms) Backtraces should not be collected or printed for failed specs [32m failed specs[0m (1.43ms) passed specs [32m passed specs[0m (0.79ms) skipped specs [32m skipped specs[0m (0.61ms) should be collected for errors in matchers [32m matchers[0m (0.99ms) with style `crop' should print truncated lines [32m `crop' should print truncated lines[0m (5.39ms) `full' should print full lines [32m `full' should print full lines[0m (1.68ms) `pretty' should pretty-print frames [32m `pretty' should pretty-print frames[0m (2.40ms) `omit' should print nothing [32m `omit' should print nothing[0m (0.52ms) should signal an error for unknown styles [32m should signal an error for unknown styles[0m (0.24ms) should generate correct backtrace for no matcher [32m no matcher[0m (1.05ms) :to-be-truthy [32m :to-be-truthy[0m (1.06ms) :not :to-be-truthy [32m :not :to-be-truthy[0m (1.14ms) :to-be [32m :to-be[0m (1.10ms) :not :to-be [32m :not :to-be[0m (1.11ms) :to-equal [32m :to-equal[0m (1.10ms) :not :to-equal [32m :not :to-equal[0m (1.16ms) :to-have-same-items-as [32m :to-have-same-items-as[0m (1.09ms) :not :to-have-same-items-as [32m :not :to-have-same-items-as[0m (1.13ms) :to-match [32m :to-match[0m (1.12ms) :not :to-match [32m :not :to-match[0m (1.16ms) :to-be-in [32m :to-be-in[0m (1.09ms) :not :to-be-in [32m :not :to-be-in[0m (1.12ms) :to-contain [32m :to-contain[0m (1.11ms) :not :to-contain [32m :not :to-contain[0m (1.15ms) :to-be-less-than [32m :to-be-less-than[0m (1.09ms) :not :to-be-less-than [32m :not :to-be-less-than[0m (1.17ms) :to-be-greater-than [32m :to-be-greater-than[0m (1.11ms) :not :to-be-greater-than [32m :not :to-be-greater-than[0m (1.12ms) :to-be-weakly-less-than [32m :to-be-weakly-less-than[0m (1.11ms) :not :to-be-weakly-less-than [32m :not :to-be-weakly-less-than[0m (1.13ms) :to-be-weakly-greater-than [32m :to-be-weakly-greater-than[0m (1.13ms) :not :to-be-weakly-greater-than [32m :not :to-be-weakly-greater-than[0m (1.12ms) :to-be-close-to [32m :to-be-close-to[0m (1.15ms) :not :to-be-close-to [32m :not :to-be-close-to[0m (1.15ms) :to-have-been-called [32m :to-have-been-called[0m (1.06ms) :not :to-have-been-called [32m :not :to-have-been-called[0m (1.10ms) :to-have-been-called-with [32m :to-have-been-called-with[0m (26.48ms) :not :to-have-been-called-with [32m :not :to-have-been-called-with[0m (1.05ms) :to-have-been-called-times [32m :to-have-been-called-times[0m (1.02ms) :not :to-have-been-called-times [32m :not :to-have-been-called-times[0m (1.03ms) function matcher [32m function matcher[0m (0.98ms) :not function matcher [32m :not function matcher[0m (1.06ms) When using quiet specs in the batch reporter it should print nothing if all specs are quiet and color is disabled [32m and color is disabled[0m (0.74ms) and color is enabled [32m and color is enabled[0m (0.71ms) should print the containing suites for non-quiet specs and color is disabled [32m and color is disabled[0m (1.16ms) and color is enabled [32m and color is enabled[0m (1.59ms) should quiet all of the given spec statuses and color is disabled [32m and color is disabled[0m (0.71ms) and color is enabled [32m and color is enabled[0m (0.72ms) should handle `skipped' virtual status in quiet list [32m should handle `skipped' virtual status in quiet list[0m (1.57ms) should handle `disabled' virtual status in quiet list [32m should handle `disabled' virtual status in quiet list[0m (1.60ms) The `buttercup-run' function should signal an error if no suites are defined [32m should signal an error if no suites are defined[0m (0.24ms) should return :no-suites for no suites and noerror [32m should return :no-suites for no suites and noerror[0m (0.20ms) should raise an error if at least one spec failed [32m should raise an error if at least one spec failed[0m (0.22ms) should return nil for failing specs and noerror [32m should return nil for failing specs and noerror[0m (0.18ms) should return t for passing specs [32m should return t for passing specs[0m (0.24ms) should call the reporter twice with events buttercup-started and -done [32m should call the reporter twice with events buttercup-started and -done[0m (0.31ms) should call `buttercup--run-suite' once per suite [32m should call `buttercup--run-suite' once per suite[0m (0.24ms) The `buttercup--print' function should send a formatted string to the terminal [32m should send a formatted string to the terminal[0m (0.09ms) The `buttercup-mark-skipped' function should do nothing with a reversed match-all pattern [32m should do nothing with a reversed match-all pattern[0m (1.17ms) should mark all specs as pending with a reversed match none pattern [32m should mark all specs as pending with a reversed match none pattern[0m (0.53ms) should handle multiple patterns [32m should handle multiple patterns[0m (0.52ms) should support predicates [32m should support predicates[0m (0.57ms) should support reversed predicates [32m should support reversed predicates[0m (0.56ms) should signal an error for invalid matchers [32m should signal an error for invalid matchers[0m (0.46ms) Buttercup's ERT compatibility wrapper should convert `ert-test-failed' into `buttercup-failed' [32m should convert `ert-test-failed' into `buttercup-failed'[0m (0.25ms) should convert `ert-test-skipped' into `buttercup-pending' [32m should convert `ert-test-skipped' into `buttercup-pending'[0m (0.17ms) `buttercup-run-discover' should parse command line arguments ignoring `--' [32m ignoring `--'[0m (0.16ms) requiring an extra argument for `--traceback' [32m requiring an extra argument for `--traceback'[0m (0.19ms) checking `--traceback' argument for validity [32m checking `--traceback' argument for validity[0m (0.23ms) setting `buttercup-stack-frame-style' from `--traceback' arg [32m setting `buttercup-stack-frame-style' from `--traceback' arg[0m (0.31ms) requiring an extra argument for `--pattern' or `-p' [32m requiring an extra argument for `--pattern' or `-p'[0m (0.32ms) collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' [32m collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'[0m (0.33ms) clearing `buttercup-color' if `--no-color' is given [32m clearing `buttercup-color' if `--no-color' is given[0m (0.47ms) adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given [32m adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given[0m (0.40ms) adding `pending' and `passed' to quiet statuses if `--only-error' is given [32m adding `pending' and `passed' to quiet statuses if `--only-error' is given[0m (0.40ms) calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given [32m calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given[0m (0.26ms) search any unknown args for test files [32m search any unknown args for test files[0m (0.46ms) find and load files named test-*.el and *-tests?.el but no other files [32m named test-*.el and *-tests?.el but no other files[0m (4.12ms) only in given directories [32m only in given directories[0m (2.99ms) butter-minor-mode should fontify `describe' special form [32m should fontify `describe' special form[0m (0.56ms) should fontify `it' special form [32m should fontify `it' special form[0m (0.45ms) should add special forms to `imenu' [32m should add special forms to `imenu'[0m (0.90ms) should define `buttercup-minor-mode-map' [32m should define `buttercup-minor-mode-map'[0m (0.12ms) For stale `elc' file checks `buttercup-check-for-stale-elc' should do nothing for `el' files [32m should do nothing for `el' files[0m (0.21ms) should signal error when `elc' is older than `el' [32m should signal error when `elc' is older than `el'[0m (0.28ms) should not signal error when `elc' is newer than `el' [32m should not signal error when `elc' is newer than `el'[0m (0.25ms) should do nothing if the `el' file does not exist [32m should do nothing if the `el' file does not exist[0m (0.19ms) `buttercup-error-on-stale-elc' should activate with no argument [32m should activate with no argument[0m (0.15ms) should deactivate with almost any argument [32m should deactivate with almost any argument[0m (0.17ms) should toggle when given `toggle' as argument [32m should toggle when given `toggle' as argument[0m (0.27ms) Ran 290 out of 291 specs, [32m0 failed[0m, in -976.45ms. emacs -batch -L . -l buttercup.el -f buttercup-run-markdown docs/writing-tests.md Running 60 out of 63 specs. A suite contains a spec with an expectation [32m contains a spec with an expectation[0m (11.52ms) A suite is just a function and so is a spec [32m and so is a spec[0m (0.21ms) The :to-be matcher compares with `eq' and has a positive case [32m and has a positive case[0m (0.22ms) and can have a negative case [32m and can have a negative case[0m (0.23ms) Included matchers: The :to-be matcher compares with `eq' [32m The :to-be matcher compares with `eq'[0m (0.35ms) The :to-equal matcher works for simple literals and variables [32m works for simple literals and variables[0m (0.22ms) should work for compound objects [32m should work for compound objects[0m (0.21ms) The :to-have-same-items-as matcher compares two lists as sets [32m The :to-have-same-items-as matcher compares two lists as sets[0m (22.63ms) The :to-match matcher is for regular expressions [32m The :to-match matcher is for regular expressions[0m (0.51ms) The :to-be-truthy matcher is for boolean casting testing [32m The :to-be-truthy matcher is for boolean casting testing[0m (0.24ms) The :to-contain matcher is for finding an item in a list [32m The :to-contain matcher is for finding an item in a list[0m (0.35ms) The :to-be-less-than matcher is for mathematical comparisons [32m The :to-be-less-than matcher is for mathematical comparisons[0m (0.35ms) The :to-be-greater-than matcher is for mathematical comparisons [32m The :to-be-greater-than matcher is for mathematical comparisons[0m (0.34ms) The :to-be-close-to matcher is for precision math comparison [32m The :to-be-close-to matcher is for precision math comparison[0m (0.31ms) The :to-throw matcher is for testing if an expression throws an exception [32m is for testing if an expression throws an exception[0m (0.42ms) accepts a symbol to check for the signal thrown [32m accepts a symbol to check for the signal thrown[0m (0.45ms) optionally matches arguments to signals [32m optionally matches arguments to signals[0m (0.51ms) matches inherited signals [32m matches inherited signals[0m (1.11ms) ERT support allows you to use ERT macros in tests [32m allows you to use ERT macros in tests[0m (0.12ms) A spec is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.19ms) can have more than one expectation [32m can have more than one expectation[0m (0.30ms) A spec using :VAR has access to the variables bound in :VAR [32m has access to the variables bound in :VAR[0m (0.19ms) A spec using :VAR* has access to the variables bound in :VAR* which can refer to symbols already bound [32m has access to the variables bound in :VAR* which can refer to symbols already bound[0m (0.20ms) A spec using `before-each' and `after-each' is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.22ms) can have more than one expectation [32m can have more than one expectation[0m (0.32ms) A spec using `before-all' and `after-all' sets the initial value of foo before specs run [32m sets the initial value of foo before specs run[0m (0.19ms) does not reset foo between specs [32m does not reset foo between specs[0m (0.19ms) A spec is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.21ms) can have more than one expectation [32m can have more than one expectation[0m (0.31ms) nested inside a second describe can reference both scopes as needed [32m can reference both scopes as needed[0m (0.22ms) A spec is just a function, so it can contain any code [33m is just a function, so it can contain any code[0m[33m PENDING[0m (0.10ms) Pending specs can be declared using `xit' [33m can be declared using `xit'[0m[33m PENDING[0m (0.11ms) can be declared with `it' but without a body [33m can be declared with `it' but without a body[0m[33m PENDING[0m (0.10ms) Conditionally skip specs with the `assume' macro [33m with the `assume' macro[0m[33m !! CANCELLED !! `new-function' not availeble[0m (0.10ms) A spy tracks that the spy was called [32m tracks that the spy was called[0m (0.23ms) resets tracking after each spec [32m resets tracking after each spec[0m (0.27ms) that is defined in a nested `describe' will override any outer spy [32m will override any outer spy[0m (0.45ms) will not be active outside it's scope [32m will not be active outside it's scope[0m (0.31ms) tracks all arguments of its calls [32m tracks all arguments of its calls[0m (0.27ms) stops all execution on a function [32m stops all execution on a function[0m (0.31ms) A spy tracks that the spy was called twice [32m tracks that the spy was called twice[0m (0.22ms) A spy, when configured to call through tracks that the spy was called [32m tracks that the spy was called[0m (0.20ms) should not affect other functions [32m should not affect other functions[0m (0.28ms) when called returns the requested value [32m when called returns the requested value[0m (0.28ms) A spy, when configured to fake a return value tracks that the spy was called [32m tracks that the spy was called[0m (0.20ms) should not affect other functions [32m should not affect other functions[0m (0.28ms) when called returns the requested value [32m when called returns the requested value[0m (0.29ms) A spy, when configured with an alternate implementation tracks that the spy was called [32m tracks that the spy was called[0m (0.21ms) should not affect other functions [32m should not affect other functions[0m (0.29ms) when called returns the requested value [32m when called returns the requested value[0m (0.29ms) A spy, when configured to throw an error throws the error [32m throws the error[0m (0.36ms) A spy tracks if it was called at all [32m tracks if it was called at all[0m (0.39ms) tracks the number of times it was called [32m tracks the number of times it was called[0m (0.40ms) tracks the arguments of each call [32m tracks the arguments of each call[0m (0.40ms) tracks the arguments of all calls [32m tracks the arguments of all calls[0m (0.30ms) can provide the context and arguments to all calls [32m can provide the context and arguments to all calls[0m (0.30ms) has a shortcut to the most recent call [32m has a shortcut to the most recent call[0m (0.31ms) has a shortcut to the first call [32m has a shortcut to the first call[0m (0.31ms) tracks the return values and error signals of each call [32m tracks the return values and error signals of each call[0m (1.39ms) counts the number of successful and failed calls [32m counts the number of successful and failed calls[0m (1.63ms) can be reset [32m can be reset[0m (0.41ms) A test can issue warnings while running [32m can issue warnings while running[0m (0.27ms) [33mWarning (buttercup): This warning should be visible after the test report.[0m can capture its own warnings as part of the test [32m can capture its own warnings as part of the test[0m (0.34ms) Ran 59 out of 63 specs, [32m0 failed[0m, in 58.61ms. make[2]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.37', so suppress it. +dh_auto_build just runs make[2]: Entering directory '/build/reproducible-path/emacs-buttercup-1.37' emacs -batch -L . -f batch-byte-compile buttercup-compat.el emacs -batch -L . -f batch-byte-compile buttercup.el ./bin/buttercup -L . tests Running 291 specs. The buttercup--enclosed-expr function should handle expressions wrapped by buttercup--wrap-expr [32m expressions wrapped by buttercup--wrap-expr[0m (3.50ms) a closure with expression copy? [32m a closure with expression copy?[0m (0.14ms) a lambda with expression copy? [32m a lambda with expression copy?[0m (0.09ms) byte compiled lambda objects [32m lambda objects[0m (0.16ms) wrapped expression [33m wrapped expression[0m[33m !! CANCELLED !! Not with Oclosures[0m (0.04ms) should error on a simple closure [32m on a simple closure[0m (0.14ms) on a closure with stackframe marker but no quoted expression [32m on a closure with stackframe marker but no quoted expression[0m (0.12ms) for multi-statement closures [32m for multi-statement closures[0m (0.11ms) for closures with non-empty argument lists [32m for closures with non-empty argument lists[0m (0.12ms) on simple lambda objects [32m on simple lambda objects[0m (0.09ms) on a lambda with stackframe marker but no quoted expression [32m on a lambda with stackframe marker but no quoted expression[0m (0.10ms) for multi-statement lambdas [32m for multi-statement lambdas[0m (0.13ms) for lambdas with non-empty argument lists [32m for lambdas with non-empty argument lists[0m (0.11ms) on byte-compiled functions with arguments [32m on byte-compiled functions with arguments[0m (0.20ms) The buttercup-failed signal can be raised [32m can be raised[0m (0.10ms) The buttercup-pending signal can be raised [32m can be raised[0m (0.09ms) The `expect' form with a matcher should translate to the function call with closures [32m with a matcher should translate to the function call with closures[0m (0.47ms) with no matcher should use `:to-be-truthy' as the matcher [32m with no matcher should use `:to-be-truthy' as the matcher[0m (0.29ms) The `buttercup-expect' function with a function as a matcher argument should not raise an error if the function returns true [32m should not raise an error if the function returns true[0m (0.14ms) should raise an error if the function returns false [32m should raise an error if the function returns false[0m (0.16ms) with a matcher argument should not raise an error if the matcher returns true [32m should not raise an error if the matcher returns true[0m (0.14ms) should raise an error if the matcher returns false [32m should raise an error if the matcher returns false[0m (0.12ms) The `buttercup-fail' function should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.11ms) The `assume' form should raise a signal if the condition is nil [32m should raise a signal if the condition is nil[0m (0.11ms) should show the format if no message is given [32m should show the format if no message is given[0m (0.11ms) should not raise a signal if the condition is non-nil [32m should not raise a signal if the condition is non-nil[0m (0.09ms) The `buttercup-skip' function should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.13ms) The `buttercup-define-matcher' macro should create a matcher usable by apply-matcher [32m should create a matcher usable by apply-matcher[0m (0.13ms) The `buttercup--apply-matcher' function should work with functions [32m should work with functions[0m (0.13ms) should work with matchers [32m should work with matchers[0m (0.13ms) should fail if the matcher is not defined [32m should fail if the matcher is not defined[0m (0.14ms) The :buttercup-define-matcher-for-unary-function helper should not modify match data [32m should not modify match data[0m (0.15ms) The :buttercup-define-matcher-for-binary-function helper should not modify match data [32m should not modify match data[0m (0.16ms) The included matcher :to-be-truthy should match for a truthy expression [32m should match for a truthy expression[0m (0.15ms) should not match for an untruthy expression [32m should not match for an untruthy expression[0m (0.16ms) :to-be should match if the args are `eq' [32m should match if the args are `eq'[0m (0.26ms) should not match if the args are not `eq' [32m should not match if the args are not `eq'[0m (0.25ms) :to-equal should match if the args are `equal' [32m should match if the args are `equal'[0m (0.24ms) should not match if the args are not `equal' [32m should not match if the args are not `equal'[0m (0.24ms) :not should invert the car of the nested matcher's return value [32m should invert the car of the nested matcher's return value[0m (0.33ms) :to-have-same-items-as should match equal sets [32m should match equal sets[0m (0.41ms) should notice missing elements in the second argument [32m should notice missing elements in the second argument[0m (0.32ms) should notice extra items in the second argument [32m should notice extra items in the second argument[0m (0.28ms) should notice extra items in both arguments [32m should notice extra items in both arguments[0m (0.30ms) :to-match should match the first argument against a regex [32m should match the first argument against a regex[0m (0.19ms) should show regex mismatches [32m should show regex mismatches[0m (0.17ms) :to-be-in should match when the first argument is a member of the second argument [32m should match when the first argument is a member of the second argument[0m (0.26ms) should not match when the first argument is not a member of the second argument [32m should not match when the first argument is not a member of the second argument[0m (0.26ms) :to-contain should match when the second argument is a member of the first argument [32m should match when the second argument is a member of the first argument[0m (0.24ms) should not match when the second argument is not a member of the first argument [32m should not match when the second argument is not a member of the first argument[0m (0.26ms) :to-be-less-than should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.17ms) should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.17ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.19ms) :to-be-greater-than should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.17ms) should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.17ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.18ms) :to-be-weakly-less-than should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.18ms) should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.17ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.19ms) :to-be-weakly-greater-than should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.17ms) should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.17ms) should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.18ms) :to-be-close-to should match when value difference is less than precision [32m should match when value difference is less than precision[0m (0.29ms) should not match when value difference is larger than precision [32m should not match when value difference is larger than precision[0m (0.26ms) :to-throw should match when signal symbol and argument match exactly [32m should match when signal symbol and argument match exactly[0m (0.18ms) should match the error symbol without args [32m should match the error symbol without args[0m (0.14ms) should match the with no error signal specified [32m should match the with no error signal specified[0m (0.14ms) should match a child signal [32m should match a child signal[0m (0.15ms) should match child signals and equal arguments [32m should match child signals and equal arguments[0m (0.16ms) should not match with different arguments [32m should not match with different arguments[0m (0.18ms) should not match an unrelated symbol [32m should not match an unrelated symbol[0m (0.17ms) should not match a parent signal [32m should not match a parent signal[0m (0.15ms) should not match when no signal is raised and not mention unspecified signal [32m and not mention unspecified signal[0m (0.17ms) and mention any specified signal [32m and mention any specified signal[0m (0.18ms) :to-have-been-called should not match if the spy has not been called [32m should not match if the spy has not been called[0m (0.11ms) should match if the spy has been called once [32m should match if the spy has been called once[0m (0.13ms) should match if the spy has been called multiple times [32m should match if the spy has been called multiple times[0m (24.30ms) :to-have-been-called-with should not match if the spy has not been called at all [32m should not match if the spy has not been called at all[0m (0.16ms) should not match if the spy has not been called with the specified arguments [32m should not match if the spy has not been called with the specified arguments[0m (0.19ms) should match if the spy has been called once with the specified arguments [32m should match if the spy has been called once with the specified arguments[0m (0.16ms) should match if the spy has been called multiple times with the specified arguments [32m should match if the spy has been called multiple times with the specified arguments[0m (0.15ms) :to-have-been-called-times should not match if the spy has been called less times [32m should not match if the spy has been called less times[0m (0.15ms) should not match if the spy has been called more times [32m should not match if the spy has been called more times[0m (0.16ms) should match if the spy has been called the correct number of times [32m should match if the spy has been called the correct number of times[0m (0.16ms) should match if the spy has been called 0 times [32m should match if the spy has been called 0 times[0m (0.14ms) The `buttercup-suite-add-child' function should add an element at the end of the list and return it [32m should add an element at the end of the list and return it[0m (0.20ms) should add an element even if the list is empty and return it [32m should add an element even if the list is empty and return it[0m (0.18ms) should add the parent to the child [32m should add the parent to the child[0m (0.11ms) The `buttercup-suite-parents' function should return the list of parents for a suite [32m should return the list of parents for a suite[0m (0.12ms) The `buttercup-spec-parents' function should return the list of parents for a spec [32m should return the list of parents for a spec[0m (0.12ms) The `buttercup-suites-total-specs-defined' function should return the number of specs in a list of suites [32m should return the number of specs in a list of suites[0m (0.11ms) The `buttercup-suites-total-specs-pending' function should return the number of pending specs in a list of suites [32m should return the number of pending specs in a list of suites[0m (0.25ms) should also count skipped specs [32m should also count skipped specs[0m (0.25ms) The `buttercup-suites-total-specs-failed' function should return the number of failed specs in a list of suites [32m should return the number of failed specs in a list of suites[0m (0.11ms) The `buttercup-suite-full-name' function should return the full name of a suite without parents [32m should return the full name of a suite without parents[0m (0.10ms) should return the full name of a suite with parents [32m should return the full name of a suite with parents[0m (0.10ms) The `buttercup-spec-full-name' function should return the full name of a spec without parents [32m should return the full name of a spec without parents[0m (0.10ms) should return the full name of a spec with parents [32m should return the full name of a spec with parents[0m (0.10ms) The `buttercup-elapsed-time' function should report elapsed time for suites [32m should report elapsed time for suites[0m (0.14ms) should report elapsed time for specs [32m should report elapsed time for specs[0m (0.14ms) The `buttercup--run-suite' function should set start and end time of the suite [32m should set start and end time of the suite[0m (0.28ms) The `buttercup--run-spec' function should set start and end time of the spec [32m should set start and end time of the spec[0m (0.34ms) should not overwrite pending status with `after-each' results [32m should not overwrite pending status with `after-each' results[0m (0.17ms) should set status to pending for assume in `before-each' [32m for assume in `before-each'[0m (0.27ms) for assume in spec [32m for assume in spec[0m (0.19ms) for assume in `after-each' [32m for assume in `after-each'[0m (0.26ms) The `describe' macro should expand to a simple call to the buttercup-describe function [32m should expand to a simple call to the buttercup-describe function[0m (0.11ms) should support the :var argument [32m should support the :var argument[0m (0.10ms) should support the :var* argument [32m should support the :var* argument[0m (0.10ms) should error when :var is not first [32m :var is not first[0m (0.11ms) :var* is not first [32m :var* is not first[0m (0.10ms) is expanded with `lexical-binding' nil [32m is expanded with `lexical-binding' nil[0m (0.10ms) The `buttercup-describe' function should run the enclosing body [32m should run the enclosing body[0m (0.10ms) should set the `buttercup-suites' variable [32m should set the `buttercup-suites' variable[0m (0.12ms) should add child suites when called nested [32m should add child suites when called nested[0m (0.20ms) The `it' macro should expand to a call to the `buttercup-it' function [32m should expand to a call to the `buttercup-it' function[0m (0.10ms) without argument should expand to xit. [32m without argument should expand to xit.[0m (0.10ms) The `buttercup-it' function should fail if not called from within a describe form [32m should fail if not called from within a describe form[0m (0.10ms) should add a spec to the current suite and return the spec [32m should add a spec to the current suite and return the spec[0m (0.25ms) The `before-each' macro expands to a function call [32m expands to a function call[0m (0.10ms) The `buttercup-before-each' function adds its argument to the before-each list of the current suite [32m adds its argument to the before-each list of the current suite[0m (0.11ms) The `after-each' macro expands to a function call [32m expands to a function call[0m (0.12ms) The `buttercup-after-each' function adds its argument to the after-each list of the current suite [32m adds its argument to the after-each list of the current suite[0m (0.11ms) The `before-all' macro expands to a function call [32m expands to a function call[0m (0.10ms) The `buttercup-before-all' function adds its argument to the before-all list of the current suite [32m adds its argument to the before-all list of the current suite[0m (0.11ms) The `after-all' macro expands to a function call [32m expands to a function call[0m (0.10ms) The `buttercup-after-all' function adds its argument to the after-all list of the current suite [32m adds its argument to the after-all list of the current suite[0m (0.11ms) The `xdescribe' macro expands directly to a function call [32m expands directly to a function call[0m (0.11ms) changes contained it-specs to pending specs [32m changes contained it-specs to pending specs[0m (0.14ms) should add a pending suite [32m should add a pending suite[0m (0.12ms) The `xit' macro expands directly to a function call [32m expands directly to a function call[0m (0.10ms) The `buttercup-xit' function should be a no-op [32m should be a no-op[0m (0.11ms) should add a function that raises a pending signal [32m should add a function that raises a pending signal[0m (0.14ms) should mark the suite as pending [32m should mark the suite as pending[0m (0.14ms) should set the failure description to PENDING [32m should set the failure description to PENDING[0m (0.18ms) The Spy `spy-on' function replaces a symbol's function slot [32m replaces a symbol's function slot[0m (0.11ms) restores the old value after a spec run [32m restores the old value after a spec run[0m (0.10ms) allows a spied-on command to be executed as a command [32m allows a spied-on command to be executed as a command[0m (0.17ms) can spy on autoloaded functions [32m can spy on autoloaded functions[0m (1.14ms) can spy on non-existing functions [32m can spy on non-existing functions[0m (0.06ms) only accepts ARG for keywords that use it [32m only accepts ARG for keywords that use it[0m (0.25ms) works on native-compilation primitives [32m works on native-compilation primitives[0m (0.23ms) will signal en error if used in before-all [32m used in before-all[0m (0.13ms) used directly in describe [32m used directly in describe[0m (0.12ms) :to-have-been-called matcher returns false if the spy was not called [32m returns false if the spy was not called[0m (0.13ms) returns true if the spy was called at all [32m returns true if the spy was called at all[0m (0.13ms) :to-have-been-called-with matcher returns false if the spy was not called at all [32m returns false if the spy was not called at all[0m (0.17ms) returns false if the spy was called with different arguments [32m returns false if the spy was called with different arguments[0m (0.19ms) returns true if the spy was called with those arguments [32m returns true if the spy was called with those arguments[0m (0.16ms) :to-have-been-called-times matcher returns error if the spy was called less than expected [32m returns error if the spy was called less than expected[0m (0.15ms) returns error if the spy was called more than expected [32m returns error if the spy was called more than expected[0m (0.15ms) returns true if the spy was called the expected number of times [32m returns true if the spy was called the expected number of times[0m (0.15ms) use plural words in error message [32m use plural words in error message[0m (0.15ms) use singular expected word in error message [32m use singular expected word in error message[0m (0.15ms) use singular actual word in error message [32m use singular actual word in error message[0m (0.16ms) :and-call-through keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.05ms) passes the arguments to the original function [32m passes the arguments to the original function[0m (0.11ms) :and-return-value keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.05ms) returns the specified value [32m returns the specified value[0m (0.10ms) works with strings [32m works with strings[0m (0.12ms) works with vectors [32m works with vectors[0m (0.11ms) works with symbols [32m works with symbols[0m (0.11ms) works with conses [32m works with conses[0m (0.11ms) works with lists [32m works with lists[0m (0.11ms) works with alists [32m works with alists[0m (0.11ms) :and-call-fake keyword functionality tracks calls to the function [32m tracks calls to the function[0m (0.05ms) returns the specified value [32m returns the specified value[0m (0.11ms) :and-throw-error keyword functionality throws an error when called [32m throws an error when called[0m (0.13ms) error-recording functionality records the function as called even if it throws an error [32m records the function as called even if it throws an error[0m (0.20ms) counts both successful calls and calls that threw errors [32m counts both successful calls and calls that threw errors[0m (0.21ms) records args to the function whether it throw an error or not [32m records args to the function whether it throw an error or not[0m (0.31ms) records the signal thrown by a call to the function [32m records the signal thrown by a call to the function[0m (0.23ms) The batch reporters on the buttercup-started event should print the number of specs [32m should print the number of specs[0m (0.30ms) should color-print the number of specs with the default color [32m should color-print the number of specs with the default color[0m (0.23ms) should print the number of skipped specs [32m should print the number of skipped specs[0m (0.23ms) should color-print the number of skipped specs with the default color [32m should color-print the number of skipped specs with the default color[0m (0.23ms) on the suite-started event should emit an indented suite description [32m should emit an indented suite description[0m (0.21ms) should color-print an indented suite description with the default color [32m should color-print an indented suite description with the default color[0m (0.21ms) on the spec-started event should emit an indented spec description [32m should emit an indented spec description[0m (0.21ms) should color-print an indented spec description with the default color [32m should color-print an indented spec description with the default color[0m (0.20ms) on the spec-done event for a passed spec should print no status tag [32m should print no status tag[0m (0.27ms) should color-print the description in green and no status tag [32m should color-print the description in green and no status tag[0m (0.42ms) should print multiline specs cleanly [32m should print multiline specs cleanly[0m (0.32ms) should color-print multiline specs cleanly [32m should color-print multiline specs cleanly[0m (0.36ms) for a failed spec should say FAILED [32m should say FAILED[0m (0.31ms) should color-print the description in red and say FAILED [32m should color-print the description in red and say FAILED[0m (0.45ms) for a pending spec should output the failure-description [32m should output the failure-description[0m (0.32ms) should color-print the description and failure-description in yellow [32m should color-print the description and failure-description in yellow[0m (0.46ms) should throw an error for an unknown spec status for plain output [32m for plain output[0m (0.15ms) for colored output [32m for colored output[0m (0.14ms) on the suite-done event should emit a newline at the end of a top-level suite [32m should emit a newline at the end of a top-level suite[0m (0.21ms) should color-print a newline at the end of a top-level suite [32m should color-print a newline at the end of a top-level suite[0m (0.21ms) should not emit anything at the end of other suites [32m should not emit anything at the end of other suites[0m (0.16ms) should not color-print anything at the end of other suites [32m should not color-print anything at the end of other suites[0m (0.16ms) on the buttercup-done event should print a summary of run and failing specs [32m should print a summary of run and failing specs[0m (0.29ms) should color-print `0 failed' specs in green [32m should color-print `0 failed' specs in green[0m (0.43ms) should color-print `X failed' specs in red [32m should color-print `X failed' specs in red[0m (0.41ms) should print a summary separating run and pending specs [32m should print a summary separating run and pending specs[0m (0.29ms) should color-print pending spec count in default color [32m should color-print pending spec count in default color[0m (0.38ms) should not raise any error even if a spec failed [32m should not raise any error even if a spec failed[0m (0.25ms) on an unknown event should raise an error [32m should raise an error[0m (0.12ms) Backtraces should not be collected or printed for failed specs [32m failed specs[0m (0.95ms) passed specs [32m passed specs[0m (0.52ms) skipped specs [32m skipped specs[0m (0.40ms) should be collected for errors in matchers [32m matchers[0m (0.66ms) with style `crop' should print truncated lines [32m `crop' should print truncated lines[0m (3.40ms) `full' should print full lines [32m `full' should print full lines[0m (1.06ms) `pretty' should pretty-print frames [32m `pretty' should pretty-print frames[0m (1.67ms) `omit' should print nothing [32m `omit' should print nothing[0m (0.36ms) should signal an error for unknown styles [32m should signal an error for unknown styles[0m (0.16ms) should generate correct backtrace for no matcher [32m no matcher[0m (0.66ms) :to-be-truthy [32m :to-be-truthy[0m (0.68ms) :not :to-be-truthy [32m :not :to-be-truthy[0m (0.70ms) :to-be [32m :to-be[0m (0.72ms) :not :to-be [32m :not :to-be[0m (0.73ms) :to-equal [32m :to-equal[0m (0.72ms) :not :to-equal [32m :not :to-equal[0m (0.75ms) :to-have-same-items-as [32m :to-have-same-items-as[0m (0.68ms) :not :to-have-same-items-as [32m :not :to-have-same-items-as[0m (0.73ms) :to-match [32m :to-match[0m (0.70ms) :not :to-match [32m :not :to-match[0m (0.74ms) :to-be-in [32m :to-be-in[0m (0.70ms) :not :to-be-in [32m :not :to-be-in[0m (0.77ms) :to-contain [32m :to-contain[0m (0.70ms) :not :to-contain [32m :not :to-contain[0m (0.73ms) :to-be-less-than [32m :to-be-less-than[0m (0.72ms) :not :to-be-less-than [32m :not :to-be-less-than[0m (0.70ms) :to-be-greater-than [32m :to-be-greater-than[0m (0.75ms) :not :to-be-greater-than [32m :not :to-be-greater-than[0m (0.70ms) :to-be-weakly-less-than [32m :to-be-weakly-less-than[0m (0.69ms) :not :to-be-weakly-less-than [32m :not :to-be-weakly-less-than[0m (0.70ms) :to-be-weakly-greater-than [32m :to-be-weakly-greater-than[0m (0.69ms) :not :to-be-weakly-greater-than [32m :not :to-be-weakly-greater-than[0m (0.70ms) :to-be-close-to [32m :to-be-close-to[0m (0.72ms) :not :to-be-close-to [32m :not :to-be-close-to[0m (0.71ms) :to-have-been-called [32m :to-have-been-called[0m (0.67ms) :not :to-have-been-called [32m :not :to-have-been-called[0m (0.68ms) :to-have-been-called-with [32m :to-have-been-called-with[0m (19.63ms) :not :to-have-been-called-with [32m :not :to-have-been-called-with[0m (0.65ms) :to-have-been-called-times [32m :to-have-been-called-times[0m (0.62ms) :not :to-have-been-called-times [32m :not :to-have-been-called-times[0m (0.64ms) function matcher [32m function matcher[0m (0.61ms) :not function matcher [32m :not function matcher[0m (0.62ms) When using quiet specs in the batch reporter it should print nothing if all specs are quiet and color is disabled [32m and color is disabled[0m (0.43ms) and color is enabled [32m and color is enabled[0m (0.46ms) should print the containing suites for non-quiet specs and color is disabled [32m and color is disabled[0m (0.74ms) and color is enabled [32m and color is enabled[0m (0.98ms) should quiet all of the given spec statuses and color is disabled [32m and color is disabled[0m (0.45ms) and color is enabled [32m and color is enabled[0m (0.48ms) should handle `skipped' virtual status in quiet list [32m should handle `skipped' virtual status in quiet list[0m (0.99ms) should handle `disabled' virtual status in quiet list [32m should handle `disabled' virtual status in quiet list[0m (0.98ms) The `buttercup-run' function should signal an error if no suites are defined [32m should signal an error if no suites are defined[0m (0.15ms) should return :no-suites for no suites and noerror [32m should return :no-suites for no suites and noerror[0m (0.13ms) should raise an error if at least one spec failed [32m should raise an error if at least one spec failed[0m (0.15ms) should return nil for failing specs and noerror [32m should return nil for failing specs and noerror[0m (0.14ms) should return t for passing specs [32m should return t for passing specs[0m (0.16ms) should call the reporter twice with events buttercup-started and -done [32m should call the reporter twice with events buttercup-started and -done[0m (0.19ms) should call `buttercup--run-suite' once per suite [32m should call `buttercup--run-suite' once per suite[0m (0.15ms) The `buttercup--print' function should send a formatted string to the terminal [32m should send a formatted string to the terminal[0m (0.06ms) The `buttercup-mark-skipped' function should do nothing with a reversed match-all pattern [32m should do nothing with a reversed match-all pattern[0m (0.69ms) should mark all specs as pending with a reversed match none pattern [32m should mark all specs as pending with a reversed match none pattern[0m (0.32ms) should handle multiple patterns [32m should handle multiple patterns[0m (0.33ms) should support predicates [32m should support predicates[0m (0.35ms) should support reversed predicates [32m should support reversed predicates[0m (0.36ms) should signal an error for invalid matchers [32m should signal an error for invalid matchers[0m (0.30ms) Buttercup's ERT compatibility wrapper should convert `ert-test-failed' into `buttercup-failed' [32m should convert `ert-test-failed' into `buttercup-failed'[0m (0.17ms) should convert `ert-test-skipped' into `buttercup-pending' [32m should convert `ert-test-skipped' into `buttercup-pending'[0m (0.11ms) `buttercup-run-discover' should parse command line arguments ignoring `--' [32m ignoring `--'[0m (0.12ms) requiring an extra argument for `--traceback' [32m requiring an extra argument for `--traceback'[0m (0.12ms) checking `--traceback' argument for validity [32m checking `--traceback' argument for validity[0m (0.14ms) setting `buttercup-stack-frame-style' from `--traceback' arg [32m setting `buttercup-stack-frame-style' from `--traceback' arg[0m (0.21ms) requiring an extra argument for `--pattern' or `-p' [32m requiring an extra argument for `--pattern' or `-p'[0m (0.19ms) collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' [32m collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'[0m (0.20ms) clearing `buttercup-color' if `--no-color' is given [32m clearing `buttercup-color' if `--no-color' is given[0m (0.28ms) adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given [32m adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given[0m (0.24ms) adding `pending' and `passed' to quiet statuses if `--only-error' is given [32m adding `pending' and `passed' to quiet statuses if `--only-error' is given[0m (0.24ms) calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given [32m calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given[0m (0.15ms) search any unknown args for test files [32m search any unknown args for test files[0m (0.25ms) find and load files named test-*.el and *-tests?.el but no other files [32m named test-*.el and *-tests?.el but no other files[0m (2.75ms) only in given directories [32m only in given directories[0m (2.06ms) butter-minor-mode should fontify `describe' special form [32m should fontify `describe' special form[0m (0.41ms) should fontify `it' special form [32m should fontify `it' special form[0m (0.33ms) should add special forms to `imenu' [32m should add special forms to `imenu'[0m (0.59ms) should define `buttercup-minor-mode-map' [32m should define `buttercup-minor-mode-map'[0m (0.12ms) For stale `elc' file checks `buttercup-check-for-stale-elc' should do nothing for `el' files [32m should do nothing for `el' files[0m (0.19ms) should signal error when `elc' is older than `el' [32m should signal error when `elc' is older than `el'[0m (0.22ms) should not signal error when `elc' is newer than `el' [32m should not signal error when `elc' is newer than `el'[0m (0.22ms) should do nothing if the `el' file does not exist [32m should do nothing if the `el' file does not exist[0m (0.20ms) `buttercup-error-on-stale-elc' should activate with no argument [32m should activate with no argument[0m (0.16ms) should deactivate with almost any argument [32m should deactivate with almost any argument[0m (0.17ms) should toggle when given `toggle' as argument [32m should toggle when given `toggle' as argument[0m (0.25ms) Ran 290 out of 291 specs, [32m0 failed[0m, in -984.01ms. emacs -batch -L . -l buttercup.el -f buttercup-run-markdown docs/writing-tests.md Running 60 out of 63 specs. A suite contains a spec with an expectation [32m contains a spec with an expectation[0m (7.34ms) A suite is just a function and so is a spec [32m and so is a spec[0m (0.21ms) The :to-be matcher compares with `eq' and has a positive case [32m and has a positive case[0m (0.21ms) and can have a negative case [32m and can have a negative case[0m (0.22ms) Included matchers: The :to-be matcher compares with `eq' [32m The :to-be matcher compares with `eq'[0m (0.32ms) The :to-equal matcher works for simple literals and variables [32m works for simple literals and variables[0m (0.20ms) should work for compound objects [32m should work for compound objects[0m (0.19ms) The :to-have-same-items-as matcher compares two lists as sets [32m The :to-have-same-items-as matcher compares two lists as sets[0m (15.48ms) The :to-match matcher is for regular expressions [32m The :to-match matcher is for regular expressions[0m (0.36ms) The :to-be-truthy matcher is for boolean casting testing [32m The :to-be-truthy matcher is for boolean casting testing[0m (0.21ms) The :to-contain matcher is for finding an item in a list [32m The :to-contain matcher is for finding an item in a list[0m (0.26ms) The :to-be-less-than matcher is for mathematical comparisons [32m The :to-be-less-than matcher is for mathematical comparisons[0m (0.28ms) The :to-be-greater-than matcher is for mathematical comparisons [32m The :to-be-greater-than matcher is for mathematical comparisons[0m (0.26ms) The :to-be-close-to matcher is for precision math comparison [32m The :to-be-close-to matcher is for precision math comparison[0m (0.24ms) The :to-throw matcher is for testing if an expression throws an exception [32m is for testing if an expression throws an exception[0m (0.33ms) accepts a symbol to check for the signal thrown [32m accepts a symbol to check for the signal thrown[0m (0.32ms) optionally matches arguments to signals [32m optionally matches arguments to signals[0m (0.35ms) matches inherited signals [32m matches inherited signals[0m (0.71ms) ERT support allows you to use ERT macros in tests [32m allows you to use ERT macros in tests[0m (0.12ms) A spec is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.18ms) can have more than one expectation [32m can have more than one expectation[0m (0.25ms) A spec using :VAR has access to the variables bound in :VAR [32m has access to the variables bound in :VAR[0m (0.20ms) A spec using :VAR* has access to the variables bound in :VAR* which can refer to symbols already bound [32m has access to the variables bound in :VAR* which can refer to symbols already bound[0m (0.20ms) A spec using `before-each' and `after-each' is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.22ms) can have more than one expectation [32m can have more than one expectation[0m (0.29ms) A spec using `before-all' and `after-all' sets the initial value of foo before specs run [32m sets the initial value of foo before specs run[0m (0.17ms) does not reset foo between specs [32m does not reset foo between specs[0m (0.17ms) A spec is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.20ms) can have more than one expectation [32m can have more than one expectation[0m (0.29ms) nested inside a second describe can reference both scopes as needed [32m can reference both scopes as needed[0m (0.18ms) A spec is just a function, so it can contain any code [33m is just a function, so it can contain any code[0m[33m PENDING[0m (0.12ms) Pending specs can be declared using `xit' [33m can be declared using `xit'[0m[33m PENDING[0m (0.10ms) can be declared with `it' but without a body [33m can be declared with `it' but without a body[0m[33m PENDING[0m (0.10ms) Conditionally skip specs with the `assume' macro [33m with the `assume' macro[0m[33m !! CANCELLED !! `new-function' not availeble[0m (0.11ms) A spy tracks that the spy was called [32m tracks that the spy was called[0m (0.20ms) resets tracking after each spec [32m resets tracking after each spec[0m (0.25ms) that is defined in a nested `describe' will override any outer spy [32m will override any outer spy[0m (0.40ms) will not be active outside it's scope [32m will not be active outside it's scope[0m (0.24ms) tracks all arguments of its calls [32m tracks all arguments of its calls[0m (0.22ms) stops all execution on a function [32m stops all execution on a function[0m (0.27ms) A spy tracks that the spy was called twice [32m tracks that the spy was called twice[0m (0.25ms) A spy, when configured to call through tracks that the spy was called [32m tracks that the spy was called[0m (0.22ms) should not affect other functions [32m should not affect other functions[0m (0.30ms) when called returns the requested value [32m when called returns the requested value[0m (0.24ms) A spy, when configured to fake a return value tracks that the spy was called [32m tracks that the spy was called[0m (0.18ms) should not affect other functions [32m should not affect other functions[0m (0.27ms) when called returns the requested value [32m when called returns the requested value[0m (0.23ms) A spy, when configured with an alternate implementation tracks that the spy was called [32m tracks that the spy was called[0m (0.18ms) should not affect other functions [32m should not affect other functions[0m (0.26ms) when called returns the requested value [32m when called returns the requested value[0m (0.29ms) A spy, when configured to throw an error throws the error [32m throws the error[0m (0.27ms) A spy tracks if it was called at all [32m tracks if it was called at all[0m (0.30ms) tracks the number of times it was called [32m tracks the number of times it was called[0m (0.30ms) tracks the arguments of each call [32m tracks the arguments of each call[0m (0.31ms) tracks the arguments of all calls [32m tracks the arguments of all calls[0m (0.24ms) can provide the context and arguments to all calls [32m can provide the context and arguments to all calls[0m (0.25ms) has a shortcut to the most recent call [32m has a shortcut to the most recent call[0m (0.27ms) has a shortcut to the first call [32m has a shortcut to the first call[0m (0.25ms) tracks the return values and error signals of each call [32m tracks the return values and error signals of each call[0m (1.08ms) counts the number of successful and failed calls [32m counts the number of successful and failed calls[0m (1.03ms) can be reset [32m can be reset[0m (0.30ms) A test can issue warnings while running [32m can issue warnings while running[0m (0.21ms) [33mWarning (buttercup): This warning should be visible after the test report.[0m can capture its own warnings as part of the test [32m can capture its own warnings as part of the test[0m (0.28ms) Ran 59 out of 63 specs, [32m0 failed[0m, in 43.71ms. make[2]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.37', so suppress it. make[1]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.37' dh_auto_test - make -j11 test + make -j21 test make[1]: Entering directory '/build/reproducible-path/emacs-buttercup-1.37' ./bin/buttercup -L . tests emacs -batch -L . -l buttercup.el -f buttercup-run-markdown docs/writing-tests.md @@ -680,575 +716,575 @@ Loading /etc/emacs/site-start.d/00debian.el (source)... Loading /etc/emacs/site-start.d/50autoconf.el (source)... Loading /etc/emacs/site-start.d/50autoconf.el (source)... -Package autoload is deprecated Running 60 out of 63 specs. A suite - contains a spec with an expectation [32m contains a spec with an expectation[0m (11.77ms) + contains a spec with an expectation [32m contains a spec with an expectation[0m (7.43ms) A suite is just a function - and so is a spec [32m and so is a spec[0m (0.29ms) + and so is a spec [32m and so is a spec[0m (0.22ms) The :to-be matcher compares with `eq' - and has a positive case [32m and has a positive case[0m (0.29ms) - and can have a negative case [32m and can have a negative case[0m (0.30ms) + and has a positive case [32m and has a positive case[0m (0.36ms) + and can have a negative case [32m and can have a negative case[0m (0.25ms) Included matchers: - The :to-be matcher compares with `eq' [32m The :to-be matcher compares with `eq'[0m (0.44ms) + The :to-be matcher compares with `eq' [32m The :to-be matcher compares with `eq'[0m (0.32ms) The :to-equal matcher - works for simple literals and variables [32m works for simple literals and variables[0m (0.32ms) - should work for compound objects [32m should work for compound objects[0m (22.02ms) - The :to-have-same-items-as matcher compares two lists as sets [32m The :to-have-same-items-as matcher compares two lists as sets[0m (1.00ms) - The :to-match matcher is for regular expressions [32m The :to-match matcher is for regular expressions[0m (0.60ms) - The :to-be-truthy matcher is for boolean casting testing [32m The :to-be-truthy matcher is for boolean casting testing[0m (0.33ms) - The :to-contain matcher is for finding an item in a list [32m The :to-contain matcher is for finding an item in a list[0m (0.40ms) - The :to-be-less-than matcher is for mathematical comparisons [32m The :to-be-less-than matcher is for mathematical comparisons[0m (0.43ms) - The :to-be-greater-than matcher is for mathematical comparisons [32m The :to-be-greater-than matcher is for mathematical comparisons[0m (0.42ms) - The :to-be-close-to matcher is for precision math comparison [32m The :to-be-close-to matcher is for precision math comparison[0m (0.39ms) + works for simple literals and variables [32m works for simple literals and variables[0m (0.25ms) + should work for compound objects [32m should work for compound objects[0m (15.06ms) + The :to-have-same-items-as matcher compares two lists as sets [32m The :to-have-same-items-as matcher compares two lists as sets[0m (0.66ms) + The :to-match matcher is for regular expressions [32m The :to-match matcher is for regular expressions[0m (0.39ms) + The :to-be-truthy matcher is for boolean casting testing [32m The :to-be-truthy matcher is for boolean casting testing[0m (0.23ms) + The :to-contain matcher is for finding an item in a list [32m The :to-contain matcher is for finding an item in a list[0m (0.27ms) + The :to-be-less-than matcher is for mathematical comparisons [32m The :to-be-less-than matcher is for mathematical comparisons[0m (0.32ms) + The :to-be-greater-than matcher is for mathematical comparisons [32m The :to-be-greater-than matcher is for mathematical comparisons[0m (0.30ms) + The :to-be-close-to matcher is for precision math comparison [32m The :to-be-close-to matcher is for precision math comparison[0m (0.29ms) The :to-throw matcher - is for testing if an expression throws an exception [32m is for testing if an expression throws an exception[0m (0.48ms) - accepts a symbol to check for the signal thrown [32m accepts a symbol to check for the signal thrown[0m (0.58ms) - optionally matches arguments to signals [32m optionally matches arguments to signals[0m (0.60ms) - matches inherited signals [32m matches inherited signals[0m (1.19ms) + is for testing if an expression throws an exception [32m is for testing if an expression throws an exception[0m (0.40ms) + accepts a symbol to check for the signal thrown [32m accepts a symbol to check for the signal thrown[0m (0.38ms) + optionally matches arguments to signals [32m optionally matches arguments to signals[0m (0.41ms) + matches inherited signals [32m matches inherited signals[0m (0.73ms) ERT support - allows you to use ERT macros in tests [32m allows you to use ERT macros in tests[0m (0.18ms) + allows you to use ERT macros in tests [32m allows you to use ERT macros in tests[0m (0.14ms) A spec - is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.30ms) - can have more than one expectation [32m can have more than one expectation[0m (0.38ms) + is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.21ms) + can have more than one expectation [32m can have more than one expectation[0m (0.29ms) A spec using :VAR - has access to the variables bound in :VAR [32m has access to the variables bound in :VAR[0m (0.26ms) + has access to the variables bound in :VAR [32m has access to the variables bound in :VAR[0m (0.21ms) A spec using :VAR* - has access to the variables bound in :VAR* which can refer to symbols already bound [32m has access to the variables bound in :VAR* which can refer to symbols already bound[0m (0.29ms) + has access to the variables bound in :VAR* which can refer to symbols already bound [32m has access to the variables bound in :VAR* which can refer to symbols already bound[0m (0.21ms) A spec using `before-each' and `after-each' - is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.28ms) - can have more than one expectation [32m can have more than one expectation[0m (0.39ms) + is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.23ms) + can have more than one expectation [32m can have more than one expectation[0m (0.32ms) A spec using `before-all' and `after-all' - sets the initial value of foo before specs run [32m sets the initial value of foo before specs run[0m (0.28ms) - does not reset foo between specs [32m does not reset foo between specs[0m (0.26ms) + sets the initial value of foo before specs run [32m sets the initial value of foo before specs run[0m (0.20ms) + does not reset foo between specs [32m does not reset foo between specs[0m (0.19ms) A spec - is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.28ms) - can have more than one expectation [32m can have more than one expectation[0m (0.40ms) + is just a function, so it can contain any code [32m is just a function, so it can contain any code[0m (0.24ms) + can have more than one expectation [32m can have more than one expectation[0m (0.29ms) nested inside a second describe - can reference both scopes as needed [32m can reference both scopes as needed[0m (0.30ms) + can reference both scopes as needed [32m can reference both scopes as needed[0m (0.24ms) A spec - is just a function, so it can contain any code [33m is just a function, so it can contain any code[0m[33m PENDING[0m (0.19ms) + is just a function, so it can contain any code [33m is just a function, so it can contain any code[0m[33m PENDING[0m (0.10ms) Pending specs - can be declared using `xit' [33m can be declared using `xit'[0m[33m PENDING[0m (0.18ms) - can be declared with `it' but without a body [33m can be declared with `it' but without a body[0m[33m PENDING[0m (0.22ms) + can be declared using `xit' [33m can be declared using `xit'[0m[33m PENDING[0m (0.10ms) + can be declared with `it' but without a body [33m can be declared with `it' but without a body[0m[33m PENDING[0m (0.10ms) Conditionally skip specs - with the `assume' macro [33m with the `assume' macro[0m[33m !! CANCELLED !! `new-function' not availeble[0m (0.21ms) + with the `assume' macro [33m with the `assume' macro[0m[33m !! CANCELLED !! `new-function' not availeble[0m (0.10ms) A spy - tracks that the spy was called [32m tracks that the spy was called[0m (0.29ms) - resets tracking after each spec [32m resets tracking after each spec[0m (0.34ms) + tracks that the spy was called [32m tracks that the spy was called[0m (0.25ms) + resets tracking after each spec [32m resets tracking after each spec[0m (0.30ms) that is defined in a nested `describe' - will override any outer spy [32m will override any outer spy[0m (0.52ms) - will not be active outside it's scope [32m will not be active outside it's scope[0m (0.37ms) - tracks all arguments of its calls [32m tracks all arguments of its calls[0m (0.34ms) - stops all execution on a function [32m stops all execution on a function[0m (0.36ms) + will override any outer spy [32m will override any outer spy[0m (0.45ms) + will not be active outside it's scope [32m will not be active outside it's scope[0m (0.29ms) + tracks all arguments of its calls [32m tracks all arguments of its calls[0m (0.24ms) + stops all execution on a function [32m stops all execution on a function[0m (0.27ms) A spy - tracks that the spy was called twice [32m tracks that the spy was called twice[0m (0.29ms) + tracks that the spy was called twice [32m tracks that the spy was called twice[0m (0.24ms) A spy, when configured to call through - tracks that the spy was called [32m tracks that the spy was called[0m (0.26ms) - should not affect other functions [32m should not affect other functions[0m (0.38ms) - when called returns the requested value [32m when called returns the requested value[0m (0.36ms) + tracks that the spy was called [32m tracks that the spy was called[0m (0.24ms) + should not affect other functions [32m should not affect other functions[0m (0.30ms) + when called returns the requested value [32m when called returns the requested value[0m (0.32ms) A spy, when configured to fake a return value - tracks that the spy was called [32m tracks that the spy was called[0m (0.28ms) - should not affect other functions [32m should not affect other functions[0m (0.36ms) - when called returns the requested value [32m when called returns the requested value[0m (0.36ms) + tracks that the spy was called [32m tracks that the spy was called[0m (0.23ms) + should not affect other functions [32m should not affect other functions[0m (0.32ms) + when called returns the requested value [32m when called returns the requested value[0m (0.32ms) A spy, when configured with an alternate implementation - tracks that the spy was called [32m tracks that the spy was called[0m (0.27ms) - should not affect other functions [32m should not affect other functions[0m (0.36ms) - when called returns the requested value [32m when called returns the requested value[0m (0.37ms) + tracks that the spy was called [32m tracks that the spy was called[0m (0.23ms) + should not affect other functions [32m should not affect other functions[0m (0.33ms) + when called returns the requested value [32m when called returns the requested value[0m (0.33ms) A spy, when configured to throw an error - throws the error [32m throws the error[0m (0.42ms) + throws the error [32m throws the error[0m (0.38ms) A spy - tracks if it was called at all [32m tracks if it was called at all[0m (0.49ms) - tracks the number of times it was called [32m tracks the number of times it was called[0m (0.47ms) - tracks the arguments of each call [32m tracks the arguments of each call[0m (0.49ms) - tracks the arguments of all calls [32m tracks the arguments of all calls[0m (0.37ms) - can provide the context and arguments to all calls [32m can provide the context and arguments to all calls[0m (0.38ms) - has a shortcut to the most recent call [32m has a shortcut to the most recent call[0m (0.38ms) - has a shortcut to the first call [32m has a shortcut to the first call[0m (0.38ms) - tracks the return values and error signals of each call [32m tracks the return values and error signals of each call[0m (1.49ms) - counts the number of successful and failed calls [32m counts the number of successful and failed calls[0m (1.72ms) - can be reset [32m can be reset[0m (0.50ms) + tracks if it was called at all [32m tracks if it was called at all[0m (0.34ms) + tracks the number of times it was called [32m tracks the number of times it was called[0m (0.38ms) + tracks the arguments of each call [32m tracks the arguments of each call[0m (0.35ms) + tracks the arguments of all calls [32m tracks the arguments of all calls[0m (0.27ms) + can provide the context and arguments to all calls [32m can provide the context and arguments to all calls[0m (0.28ms) + has a shortcut to the most recent call [32m has a shortcut to the most recent call[0m (0.29ms) + has a shortcut to the first call [32m has a shortcut to the first call[0m (0.29ms) + tracks the return values and error signals of each call [32m tracks the return values and error signals of each call[0m (0.95ms) + counts the number of successful and failed calls [32m counts the number of successful and failed calls[0m (1.04ms) + can be reset [32m can be reset[0m (0.34ms) A test - can issue warnings while running [32m can issue warnings while running[0m (0.32ms) + can issue warnings while running [32m can issue warnings while running[0m (0.25ms) [33mWarning (buttercup): This warning should be visible after the test report.[0m - can capture its own warnings as part of the test [32m can capture its own warnings as part of the test[0m (0.44ms) + can capture its own warnings as part of the test [32m can capture its own warnings as part of the test[0m (0.31ms) -Ran 59 out of 63 specs, [32m0 failed[0m, in 66.23ms. +Ran 59 out of 63 specs, [32m0 failed[0m, in 45.66ms. +Package autoload is deprecated Running 291 specs. The buttercup--enclosed-expr function should handle - expressions wrapped by buttercup--wrap-expr [32m expressions wrapped by buttercup--wrap-expr[0m (4.60ms) - a closure with expression copy? [32m a closure with expression copy?[0m (0.25ms) - a lambda with expression copy? [32m a lambda with expression copy?[0m (0.25ms) + expressions wrapped by buttercup--wrap-expr [32m expressions wrapped by buttercup--wrap-expr[0m (3.52ms) + a closure with expression copy? [32m a closure with expression copy?[0m (0.26ms) + a lambda with expression copy? [32m a lambda with expression copy?[0m (0.14ms) byte compiled - lambda objects [32m lambda objects[0m (0.29ms) - wrapped expression [33m wrapped expression[0m[33m !! CANCELLED !! Not with Oclosures[0m (0.16ms) + lambda objects [32m lambda objects[0m (0.35ms) + wrapped expression [33m wrapped expression[0m[33m !! CANCELLED !! Not with Oclosures[0m (0.06ms) should error - on a simple closure [32m on a simple closure[0m (0.25ms) - on a closure with stackframe marker but no quoted expression [32m on a closure with stackframe marker but no quoted expression[0m (0.25ms) - for multi-statement closures [32m for multi-statement closures[0m (0.25ms) - for closures with non-empty argument lists [32m for closures with non-empty argument lists[0m (0.24ms) - on simple lambda objects [32m on simple lambda objects[0m (0.20ms) - on a lambda with stackframe marker but no quoted expression [32m on a lambda with stackframe marker but no quoted expression[0m (0.27ms) - for multi-statement lambdas [32m for multi-statement lambdas[0m (0.22ms) - for lambdas with non-empty argument lists [32m for lambdas with non-empty argument lists[0m (0.22ms) - on byte-compiled functions with arguments [32m on byte-compiled functions with arguments[0m (0.32ms) + on a simple closure [32m on a simple closure[0m (0.30ms) + on a closure with stackframe marker but no quoted expression [32m on a closure with stackframe marker but no quoted expression[0m (0.32ms) + for multi-statement closures [32m for multi-statement closures[0m (0.20ms) + for closures with non-empty argument lists [32m for closures with non-empty argument lists[0m (0.25ms) + on simple lambda objects [32m on simple lambda objects[0m (0.15ms) + on a lambda with stackframe marker but no quoted expression [32m on a lambda with stackframe marker but no quoted expression[0m (0.33ms) + for multi-statement lambdas [32m for multi-statement lambdas[0m (0.27ms) + for lambdas with non-empty argument lists [32m for lambdas with non-empty argument lists[0m (0.23ms) + on byte-compiled functions with arguments [32m on byte-compiled functions with arguments[0m (0.36ms) The buttercup-failed signal - can be raised [32m can be raised[0m (0.21ms) + can be raised [32m can be raised[0m (0.35ms) The buttercup-pending signal - can be raised [32m can be raised[0m (0.24ms) + can be raised [32m can be raised[0m (0.37ms) The `expect' form - with a matcher should translate to the function call with closures [32m with a matcher should translate to the function call with closures[0m (0.85ms) - with no matcher should use `:to-be-truthy' as the matcher [32m with no matcher should use `:to-be-truthy' as the matcher[0m (0.53ms) + with a matcher should translate to the function call with closures [32m with a matcher should translate to the function call with closures[0m (0.87ms) + with no matcher should use `:to-be-truthy' as the matcher [32m with no matcher should use `:to-be-truthy' as the matcher[0m (0.48ms) The `buttercup-expect' function with a function as a matcher argument - should not raise an error if the function returns true [32m should not raise an error if the function returns true[0m (0.29ms) - should raise an error if the function returns false [32m should raise an error if the function returns false[0m (0.30ms) + should not raise an error if the function returns true [32m should not raise an error if the function returns true[0m (0.25ms) + should raise an error if the function returns false [32m should raise an error if the function returns false[0m (0.39ms) with a matcher argument - should not raise an error if the matcher returns true [32m should not raise an error if the matcher returns true[0m (0.30ms) - should raise an error if the matcher returns false [32m should raise an error if the matcher returns false[0m (0.26ms) + should not raise an error if the matcher returns true [32m should not raise an error if the matcher returns true[0m (0.26ms) + should raise an error if the matcher returns false [32m should raise an error if the matcher returns false[0m (0.32ms) The `buttercup-fail' function - should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.25ms) + should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.18ms) The `assume' form - should raise a signal if the condition is nil [32m should raise a signal if the condition is nil[0m (0.25ms) - should show the format if no message is given [32m should show the format if no message is given[0m (0.27ms) - should not raise a signal if the condition is non-nil [32m should not raise a signal if the condition is non-nil[0m (0.20ms) + should raise a signal if the condition is nil [32m should raise a signal if the condition is nil[0m (0.36ms) + should show the format if no message is given [32m should show the format if no message is given[0m (0.38ms) + should not raise a signal if the condition is non-nil [32m should not raise a signal if the condition is non-nil[0m (0.27ms) The `buttercup-skip' function - should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.25ms) + should raise a signal with its arguments [32m should raise a signal with its arguments[0m (0.24ms) The `buttercup-define-matcher' macro - should create a matcher usable by apply-matcher [32m should create a matcher usable by apply-matcher[0m (0.27ms) + should create a matcher usable by apply-matcher [32m should create a matcher usable by apply-matcher[0m (0.28ms) The `buttercup--apply-matcher' function - should work with functions [32m should work with functions[0m (0.28ms) - should work with matchers [32m should work with matchers[0m (0.27ms) - should fail if the matcher is not defined [32m should fail if the matcher is not defined[0m (0.27ms) + should work with functions [32m should work with functions[0m (0.64ms) + should work with matchers [32m should work with matchers[0m (0.37ms) + should fail if the matcher is not defined [32m should fail if the matcher is not defined[0m (0.37ms) The :buttercup-define-matcher-for-unary-function helper - should not modify match data [32m should not modify match data[0m (0.29ms) + should not modify match data [32m should not modify match data[0m (0.33ms) The :buttercup-define-matcher-for-binary-function helper - should not modify match data [32m should not modify match data[0m (0.32ms) + should not modify match data [32m should not modify match data[0m (0.37ms) The included matcher :to-be-truthy - should match for a truthy expression [32m should match for a truthy expression[0m (0.31ms) - should not match for an untruthy expression [32m should not match for an untruthy expression[0m (0.31ms) + should match for a truthy expression [32m should match for a truthy expression[0m (0.41ms) + should not match for an untruthy expression [32m should not match for an untruthy expression[0m (0.29ms) :to-be - should match if the args are `eq' [32m should match if the args are `eq'[0m (0.63ms) - should not match if the args are not `eq' [32m should not match if the args are not `eq'[0m (0.48ms) + should match if the args are `eq' [32m should match if the args are `eq'[0m (0.45ms) + should not match if the args are not `eq' [32m should not match if the args are not `eq'[0m (0.52ms) :to-equal - should match if the args are `equal' [32m should match if the args are `equal'[0m (0.44ms) - should not match if the args are not `equal' [32m should not match if the args are not `equal'[0m (0.44ms) + should match if the args are `equal' [32m should match if the args are `equal'[0m (0.43ms) + should not match if the args are not `equal' [32m should not match if the args are not `equal'[0m (0.39ms) :not - should invert the car of the nested matcher's return value [32m should invert the car of the nested matcher's return value[0m (0.59ms) + should invert the car of the nested matcher's return value [32m should invert the car of the nested matcher's return value[0m (0.55ms) :to-have-same-items-as - should match equal sets [32m should match equal sets[0m (0.52ms) - should notice missing elements in the second argument [32m should notice missing elements in the second argument[0m (0.54ms) - should notice extra items in the second argument [32m should notice extra items in the second argument[0m (0.54ms) - should notice extra items in both arguments [32m should notice extra items in both arguments[0m (0.55ms) + should match equal sets [32m should match equal sets[0m (0.48ms) + should notice missing elements in the second argument [32m should notice missing elements in the second argument[0m (0.79ms) + should notice extra items in the second argument [32m should notice extra items in the second argument[0m (0.60ms) + should notice extra items in both arguments [32m should notice extra items in both arguments[0m (0.67ms) :to-match - should match the first argument against a regex [32m should match the first argument against a regex[0m (0.37ms) - should show regex mismatches [32m should show regex mismatches[0m (0.35ms) + should match the first argument against a regex [32m should match the first argument against a regex[0m (0.32ms) + should show regex mismatches [32m should show regex mismatches[0m (0.31ms) :to-be-in - should match when the first argument is a member of the second argument [32m should match when the first argument is a member of the second argument[0m (0.50ms) - should not match when the first argument is not a member of the second argument [32m should not match when the first argument is not a member of the second argument[0m (0.50ms) + should match when the first argument is a member of the second argument [32m should match when the first argument is a member of the second argument[0m (0.43ms) + should not match when the first argument is not a member of the second argument [32m should not match when the first argument is not a member of the second argument[0m (0.39ms) :to-contain - should match when the second argument is a member of the first argument [32m should match when the second argument is a member of the first argument[0m (0.47ms) - should not match when the second argument is not a member of the first argument [32m should not match when the second argument is not a member of the first argument[0m (0.58ms) + should match when the second argument is a member of the first argument [32m should match when the second argument is a member of the first argument[0m (0.40ms) + should not match when the second argument is not a member of the first argument [32m should not match when the second argument is not a member of the first argument[0m (0.36ms) :to-be-less-than - should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.36ms) - should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.38ms) - should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.36ms) + should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.33ms) + should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.41ms) + should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.35ms) :to-be-greater-than - should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.35ms) - should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.37ms) - should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.37ms) + should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.36ms) + should not match when the first argument is equal to the second argument [32m should not match when the first argument is equal to the second argument[0m (0.33ms) + should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.32ms) :to-be-weakly-less-than - should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.35ms) - should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.36ms) - should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.37ms) + should match when the first argument is less than the second argument [32m should match when the first argument is less than the second argument[0m (0.31ms) + should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.26ms) + should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.28ms) :to-be-weakly-greater-than - should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.37ms) - should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.37ms) - should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.36ms) + should match when the first argument is greater than the second argument [32m should match when the first argument is greater than the second argument[0m (0.29ms) + should match when the first argument is equal to the second argument [32m should match when the first argument is equal to the second argument[0m (0.49ms) + should not match when the first argument is greater than the second argument [32m should not match when the first argument is greater than the second argument[0m (0.25ms) :to-be-close-to - should match when value difference is less than precision [32m should match when value difference is less than precision[0m (0.51ms) - should not match when value difference is larger than precision [32m should not match when value difference is larger than precision[0m (0.47ms) + should match when value difference is less than precision [32m should match when value difference is less than precision[0m (0.48ms) + should not match when value difference is larger than precision [32m should not match when value difference is larger than precision[0m (0.45ms) :to-throw - should match when signal symbol and argument match exactly [32m should match when signal symbol and argument match exactly[0m (0.36ms) - should match the error symbol without args [32m should match the error symbol without args[0m (0.32ms) - should match the with no error signal specified [32m should match the with no error signal specified[0m (0.29ms) - should match a child signal [32m should match a child signal[0m (0.30ms) - should match child signals and equal arguments [32m should match child signals and equal arguments[0m (0.34ms) - should not match with different arguments [32m should not match with different arguments[0m (0.34ms) - should not match an unrelated symbol [32m should not match an unrelated symbol[0m (0.34ms) - should not match a parent signal [32m should not match a parent signal[0m (0.29ms) + should match when signal symbol and argument match exactly [32m should match when signal symbol and argument match exactly[0m (0.27ms) + should match the error symbol without args [32m should match the error symbol without args[0m (0.27ms) + should match the with no error signal specified [32m should match the with no error signal specified[0m (0.32ms) + should match a child signal [32m should match a child signal[0m (0.28ms) + should match child signals and equal arguments [32m should match child signals and equal arguments[0m (0.35ms) + should not match with different arguments [32m should not match with different arguments[0m (0.33ms) + should not match an unrelated symbol [32m should not match an unrelated symbol[0m (0.29ms) + should not match a parent signal [32m should not match a parent signal[0m (0.34ms) should not match when no signal is raised - and not mention unspecified signal [32m and not mention unspecified signal[0m (0.32ms) - and mention any specified signal [32m and mention any specified signal[0m (0.36ms) + and not mention unspecified signal [32m and not mention unspecified signal[0m (0.34ms) + and mention any specified signal [32m and mention any specified signal[0m (0.48ms) :to-have-been-called should not match if the spy has not been called [32m should not match if the spy has not been called[0m (0.24ms) - should match if the spy has been called once [32m should match if the spy has been called once[0m (0.25ms) - should match if the spy has been called multiple times [32m should match if the spy has been called multiple times[0m (33.99ms) + should match if the spy has been called once [32m should match if the spy has been called once[0m (0.43ms) + should match if the spy has been called multiple times [32m should match if the spy has been called multiple times[0m (33.12ms) :to-have-been-called-with - should not match if the spy has not been called at all [32m should not match if the spy has not been called at all[0m (0.32ms) - should not match if the spy has not been called with the specified arguments [32m should not match if the spy has not been called with the specified arguments[0m (0.36ms) - should match if the spy has been called once with the specified arguments [32m should match if the spy has been called once with the specified arguments[0m (0.32ms) - should match if the spy has been called multiple times with the specified arguments [32m should match if the spy has been called multiple times with the specified arguments[0m (0.30ms) + should not match if the spy has not been called at all [32m should not match if the spy has not been called at all[0m (0.30ms) + should not match if the spy has not been called with the specified arguments [32m should not match if the spy has not been called with the specified arguments[0m (0.68ms) + should match if the spy has been called once with the specified arguments [32m should match if the spy has been called once with the specified arguments[0m (0.63ms) + should match if the spy has been called multiple times with the specified arguments [32m should match if the spy has been called multiple times with the specified arguments[0m (0.63ms) :to-have-been-called-times - should not match if the spy has been called less times [32m should not match if the spy has been called less times[0m (0.31ms) - should not match if the spy has been called more times [32m should not match if the spy has been called more times[0m (0.32ms) - should match if the spy has been called the correct number of times [32m should match if the spy has been called the correct number of times[0m (0.32ms) - should match if the spy has been called 0 times [32m should match if the spy has been called 0 times[0m (0.30ms) + should not match if the spy has been called less times [32m should not match if the spy has been called less times[0m (0.47ms) + should not match if the spy has been called more times [32m should not match if the spy has been called more times[0m (0.65ms) + should match if the spy has been called the correct number of times [32m should match if the spy has been called the correct number of times[0m (0.41ms) + should match if the spy has been called 0 times [32m should match if the spy has been called 0 times[0m (0.35ms) The `buttercup-suite-add-child' function - should add an element at the end of the list and return it [32m should add an element at the end of the list and return it[0m (0.41ms) - should add an element even if the list is empty and return it [32m should add an element even if the list is empty and return it[0m (0.35ms) - should add the parent to the child [32m should add the parent to the child[0m (0.24ms) + should add an element at the end of the list and return it [32m should add an element at the end of the list and return it[0m (0.49ms) + should add an element even if the list is empty and return it [32m should add an element even if the list is empty and return it[0m (0.32ms) + should add the parent to the child [32m should add the parent to the child[0m (0.23ms) The `buttercup-suite-parents' function - should return the list of parents for a suite [32m should return the list of parents for a suite[0m (0.25ms) + should return the list of parents for a suite [32m should return the list of parents for a suite[0m (0.57ms) The `buttercup-spec-parents' function - should return the list of parents for a spec [32m should return the list of parents for a spec[0m (0.25ms) + should return the list of parents for a spec [32m should return the list of parents for a spec[0m (0.21ms) The `buttercup-suites-total-specs-defined' function - should return the number of specs in a list of suites [32m should return the number of specs in a list of suites[0m (0.23ms) + should return the number of specs in a list of suites [32m should return the number of specs in a list of suites[0m (0.69ms) The `buttercup-suites-total-specs-pending' function - should return the number of pending specs in a list of suites [32m should return the number of pending specs in a list of suites[0m (0.44ms) + should return the number of pending specs in a list of suites [32m should return the number of pending specs in a list of suites[0m (0.43ms) should also count skipped specs [32m should also count skipped specs[0m (0.43ms) The `buttercup-suites-total-specs-failed' function - should return the number of failed specs in a list of suites [32m should return the number of failed specs in a list of suites[0m (0.24ms) + should return the number of failed specs in a list of suites [32m should return the number of failed specs in a list of suites[0m (0.29ms) The `buttercup-suite-full-name' function - should return the full name of a suite without parents [32m should return the full name of a suite without parents[0m (0.26ms) - should return the full name of a suite with parents [32m should return the full name of a suite with parents[0m (0.26ms) + should return the full name of a suite without parents [32m should return the full name of a suite without parents[0m (0.85ms) + should return the full name of a suite with parents [32m should return the full name of a suite with parents[0m (0.30ms) The `buttercup-spec-full-name' function - should return the full name of a spec without parents [32m should return the full name of a spec without parents[0m (0.23ms) - should return the full name of a spec with parents [32m should return the full name of a spec with parents[0m (0.23ms) + should return the full name of a spec without parents [32m should return the full name of a spec without parents[0m (0.25ms) + should return the full name of a spec with parents [32m should return the full name of a spec with parents[0m (0.50ms) The `buttercup-elapsed-time' function - should report elapsed time for suites [32m should report elapsed time for suites[0m (0.29ms) - should report elapsed time for specs [32m should report elapsed time for specs[0m (0.26ms) + should report elapsed time for suites [32m should report elapsed time for suites[0m (0.87ms) + should report elapsed time for specs [32m should report elapsed time for specs[0m (0.23ms) The `buttercup--run-suite' function - should set start and end time of the suite [32m should set start and end time of the suite[0m (0.54ms) + should set start and end time of the suite [32m should set start and end time of the suite[0m (0.52ms) The `buttercup--run-spec' function - should set start and end time of the spec [32m should set start and end time of the spec[0m (0.65ms) - should not overwrite pending status with `after-each' results [32m should not overwrite pending status with `after-each' results[0m (0.33ms) + should set start and end time of the spec [32m should set start and end time of the spec[0m (0.84ms) + should not overwrite pending status with `after-each' results [32m should not overwrite pending status with `after-each' results[0m (0.32ms) should set status to pending - for assume in `before-each' [32m for assume in `before-each'[0m (0.47ms) - for assume in spec [32m for assume in spec[0m (0.37ms) - for assume in `after-each' [32m for assume in `after-each'[0m (0.47ms) + for assume in `before-each' [32m for assume in `before-each'[0m (1.56ms) + for assume in spec [32m for assume in spec[0m (0.54ms) + for assume in `after-each' [32m for assume in `after-each'[0m (0.85ms) The `describe' macro - should expand to a simple call to the buttercup-describe function [32m should expand to a simple call to the buttercup-describe function[0m (0.23ms) - should support the :var argument [32m should support the :var argument[0m (0.23ms) - should support the :var* argument [32m should support the :var* argument[0m (0.23ms) + should expand to a simple call to the buttercup-describe function [32m should expand to a simple call to the buttercup-describe function[0m (0.36ms) + should support the :var argument [32m should support the :var argument[0m (0.36ms) + should support the :var* argument [32m should support the :var* argument[0m (0.19ms) should error when - :var is not first [32m :var is not first[0m (0.23ms) - :var* is not first [32m :var* is not first[0m (0.23ms) - is expanded with `lexical-binding' nil [32m is expanded with `lexical-binding' nil[0m (0.22ms) + :var is not first [32m :var is not first[0m (0.42ms) + :var* is not first [32m :var* is not first[0m (0.29ms) + is expanded with `lexical-binding' nil [32m is expanded with `lexical-binding' nil[0m (0.30ms) The `buttercup-describe' function - should run the enclosing body [32m should run the enclosing body[0m (0.19ms) - should set the `buttercup-suites' variable [32m should set the `buttercup-suites' variable[0m (0.25ms) - should add child suites when called nested [32m should add child suites when called nested[0m (0.37ms) + should run the enclosing body [32m should run the enclosing body[0m (0.61ms) + should set the `buttercup-suites' variable [32m should set the `buttercup-suites' variable[0m (0.54ms) + should add child suites when called nested [32m should add child suites when called nested[0m (0.36ms) The `it' macro - should expand to a call to the `buttercup-it' function [32m should expand to a call to the `buttercup-it' function[0m (0.23ms) - without argument should expand to xit. [32m without argument should expand to xit.[0m (0.24ms) + should expand to a call to the `buttercup-it' function [32m should expand to a call to the `buttercup-it' function[0m (0.20ms) + without argument should expand to xit. [32m without argument should expand to xit.[0m (0.30ms) The `buttercup-it' function - should fail if not called from within a describe form [32m should fail if not called from within a describe form[0m (0.21ms) - should add a spec to the current suite and return the spec [32m should add a spec to the current suite and return the spec[0m (0.47ms) + should fail if not called from within a describe form [32m should fail if not called from within a describe form[0m (0.26ms) + should add a spec to the current suite and return the spec [32m should add a spec to the current suite and return the spec[0m (0.63ms) The `before-each' macro - expands to a function call [32m expands to a function call[0m (0.23ms) + expands to a function call [32m expands to a function call[0m (0.25ms) The `buttercup-before-each' function - adds its argument to the before-each list of the current suite [32m adds its argument to the before-each list of the current suite[0m (0.24ms) + adds its argument to the before-each list of the current suite [32m adds its argument to the before-each list of the current suite[0m (0.47ms) The `after-each' macro expands to a function call [32m expands to a function call[0m (0.22ms) The `buttercup-after-each' function - adds its argument to the after-each list of the current suite [32m adds its argument to the after-each list of the current suite[0m (0.23ms) + adds its argument to the after-each list of the current suite [32m adds its argument to the after-each list of the current suite[0m (0.84ms) The `before-all' macro - expands to a function call [32m expands to a function call[0m (0.22ms) + expands to a function call [32m expands to a function call[0m (0.39ms) The `buttercup-before-all' function - adds its argument to the before-all list of the current suite [32m adds its argument to the before-all list of the current suite[0m (0.25ms) + adds its argument to the before-all list of the current suite [32m adds its argument to the before-all list of the current suite[0m (0.26ms) The `after-all' macro - expands to a function call [32m expands to a function call[0m (0.22ms) + expands to a function call [32m expands to a function call[0m (0.23ms) The `buttercup-after-all' function - adds its argument to the after-all list of the current suite [32m adds its argument to the after-all list of the current suite[0m (0.23ms) + adds its argument to the after-all list of the current suite [32m adds its argument to the after-all list of the current suite[0m (0.45ms) The `xdescribe' macro - expands directly to a function call [32m expands directly to a function call[0m (0.24ms) - changes contained it-specs to pending specs [32m changes contained it-specs to pending specs[0m (0.31ms) - should add a pending suite [32m should add a pending suite[0m (0.24ms) + expands directly to a function call [32m expands directly to a function call[0m (0.31ms) + changes contained it-specs to pending specs [32m changes contained it-specs to pending specs[0m (0.51ms) + should add a pending suite [32m should add a pending suite[0m (0.64ms) The `xit' macro - expands directly to a function call [32m expands directly to a function call[0m (0.25ms) + expands directly to a function call [32m expands directly to a function call[0m (0.50ms) The `buttercup-xit' function - should be a no-op [32m should be a no-op[0m (0.22ms) - should add a function that raises a pending signal [32m should add a function that raises a pending signal[0m (0.28ms) - should mark the suite as pending [32m should mark the suite as pending[0m (0.28ms) - should set the failure description to PENDING [32m should set the failure description to PENDING[0m (0.36ms) + should be a no-op [32m should be a no-op[0m (0.98ms) + should add a function that raises a pending signal [32m should add a function that raises a pending signal[0m (0.27ms) + should mark the suite as pending [32m should mark the suite as pending[0m (0.37ms) + should set the failure description to PENDING [32m should set the failure description to PENDING[0m (0.45ms) The Spy `spy-on' function - replaces a symbol's function slot [32m replaces a symbol's function slot[0m (0.22ms) - restores the old value after a spec run [32m restores the old value after a spec run[0m (0.22ms) - allows a spied-on command to be executed as a command [32m allows a spied-on command to be executed as a command[0m (0.30ms) - can spy on autoloaded functions [32m can spy on autoloaded functions[0m (1.79ms) - can spy on non-existing functions [32m can spy on non-existing functions[0m (0.15ms) - only accepts ARG for keywords that use it [32m only accepts ARG for keywords that use it[0m (0.46ms) - works on native-compilation primitives [32m works on native-compilation primitives[0m (0.38ms) + replaces a symbol's function slot [32m replaces a symbol's function slot[0m (0.38ms) + restores the old value after a spec run [32m restores the old value after a spec run[0m (0.28ms) + allows a spied-on command to be executed as a command [32m allows a spied-on command to be executed as a command[0m (0.35ms) + can spy on autoloaded functions [32m can spy on autoloaded functions[0m (1.71ms) + can spy on non-existing functions [32m can spy on non-existing functions[0m (0.16ms) + only accepts ARG for keywords that use it [32m only accepts ARG for keywords that use it[0m (0.35ms) + works on native-compilation primitives [32m works on native-compilation primitives[0m (0.35ms) will signal en error if used in before-all [32m used in before-all[0m (0.25ms) - used directly in describe [32m used directly in describe[0m (0.24ms) + used directly in describe [32m used directly in describe[0m (0.20ms) :to-have-been-called matcher returns false if the spy was not called [32m returns false if the spy was not called[0m (0.27ms) - returns true if the spy was called at all [32m returns true if the spy was called at all[0m (0.26ms) + returns true if the spy was called at all [32m returns true if the spy was called at all[0m (0.29ms) :to-have-been-called-with matcher - returns false if the spy was not called at all [32m returns false if the spy was not called at all[0m (0.35ms) - returns false if the spy was called with different arguments [32m returns false if the spy was called with different arguments[0m (0.37ms) - returns true if the spy was called with those arguments [32m returns true if the spy was called with those arguments[0m (0.32ms) + returns false if the spy was not called at all [32m returns false if the spy was not called at all[0m (0.41ms) + returns false if the spy was called with different arguments [32m returns false if the spy was called with different arguments[0m (0.38ms) + returns true if the spy was called with those arguments [32m returns true if the spy was called with those arguments[0m (0.48ms) :to-have-been-called-times matcher - returns error if the spy was called less than expected [32m returns error if the spy was called less than expected[0m (0.30ms) - returns error if the spy was called more than expected [32m returns error if the spy was called more than expected[0m (0.32ms) - returns true if the spy was called the expected number of times [32m returns true if the spy was called the expected number of times[0m (0.32ms) - use plural words in error message [32m use plural words in error message[0m (0.31ms) - use singular expected word in error message [32m use singular expected word in error message[0m (0.30ms) - use singular actual word in error message [32m use singular actual word in error message[0m (0.34ms) + returns error if the spy was called less than expected [32m returns error if the spy was called less than expected[0m (0.24ms) + returns error if the spy was called more than expected [32m returns error if the spy was called more than expected[0m (0.25ms) + returns true if the spy was called the expected number of times [32m returns true if the spy was called the expected number of times[0m (0.24ms) + use plural words in error message [32m use plural words in error message[0m (0.26ms) + use singular expected word in error message [32m use singular expected word in error message[0m (0.26ms) + use singular actual word in error message [32m use singular actual word in error message[0m (0.26ms) :and-call-through keyword functionality - tracks calls to the function [32m tracks calls to the function[0m (0.14ms) - passes the arguments to the original function [32m passes the arguments to the original function[0m (0.23ms) + tracks calls to the function [32m tracks calls to the function[0m (0.08ms) + passes the arguments to the original function [32m passes the arguments to the original function[0m (0.18ms) :and-return-value keyword functionality - tracks calls to the function [32m tracks calls to the function[0m (0.15ms) - returns the specified value [32m returns the specified value[0m (0.23ms) - works with strings [32m works with strings[0m (0.27ms) - works with vectors [32m works with vectors[0m (0.24ms) - works with symbols [32m works with symbols[0m (0.23ms) - works with conses [32m works with conses[0m (0.23ms) - works with lists [32m works with lists[0m (0.22ms) - works with alists [32m works with alists[0m (0.25ms) + tracks calls to the function [32m tracks calls to the function[0m (0.08ms) + returns the specified value [32m returns the specified value[0m (0.17ms) + works with strings [32m works with strings[0m (0.18ms) + works with vectors [32m works with vectors[0m (0.18ms) + works with symbols [32m works with symbols[0m (0.18ms) + works with conses [32m works with conses[0m (0.18ms) + works with lists [32m works with lists[0m (0.18ms) + works with alists [32m works with alists[0m (0.20ms) :and-call-fake keyword functionality - tracks calls to the function [32m tracks calls to the function[0m (0.15ms) - returns the specified value [32m returns the specified value[0m (0.24ms) + tracks calls to the function [32m tracks calls to the function[0m (0.08ms) + returns the specified value [32m returns the specified value[0m (0.18ms) :and-throw-error keyword functionality - throws an error when called [32m throws an error when called[0m (0.26ms) + throws an error when called [32m throws an error when called[0m (0.20ms) error-recording functionality - records the function as called even if it throws an error [32m records the function as called even if it throws an error[0m (0.36ms) - counts both successful calls and calls that threw errors [32m counts both successful calls and calls that threw errors[0m (0.39ms) - records args to the function whether it throw an error or not [32m records args to the function whether it throw an error or not[0m (0.53ms) - records the signal thrown by a call to the function [32m records the signal thrown by a call to the function[0m (0.46ms) + records the function as called even if it throws an error [32m records the function as called even if it throws an error[0m (0.32ms) + counts both successful calls and calls that threw errors [32m counts both successful calls and calls that threw errors[0m (0.29ms) + records args to the function whether it throw an error or not [32m records args to the function whether it throw an error or not[0m (0.37ms) + records the signal thrown by a call to the function [32m records the signal thrown by a call to the function[0m (0.29ms) The batch reporters on the buttercup-started event - should print the number of specs [32m should print the number of specs[0m (0.49ms) - should color-print the number of specs with the default color [32m should color-print the number of specs with the default color[0m (0.43ms) - should print the number of skipped specs [32m should print the number of skipped specs[0m (0.41ms) - should color-print the number of skipped specs with the default color [32m should color-print the number of skipped specs with the default color[0m (0.42ms) + should print the number of specs [32m should print the number of specs[0m (0.37ms) + should color-print the number of specs with the default color [32m should color-print the number of specs with the default color[0m (0.33ms) + should print the number of skipped specs [32m should print the number of skipped specs[0m (0.32ms) + should color-print the number of skipped specs with the default color [32m should color-print the number of skipped specs with the default color[0m (0.32ms) on the suite-started event - should emit an indented suite description [32m should emit an indented suite description[0m (0.40ms) - should color-print an indented suite description with the default color [32m should color-print an indented suite description with the default color[0m (0.38ms) + should emit an indented suite description [32m should emit an indented suite description[0m (0.30ms) + should color-print an indented suite description with the default color [32m should color-print an indented suite description with the default color[0m (0.33ms) on the spec-started event - should emit an indented spec description [32m should emit an indented spec description[0m (0.39ms) - should color-print an indented spec description with the default color [32m should color-print an indented spec description with the default color[0m (0.41ms) + should emit an indented spec description [32m should emit an indented spec description[0m (0.34ms) + should color-print an indented spec description with the default color [32m should color-print an indented spec description with the default color[0m (0.29ms) on the spec-done event for a passed spec - should print no status tag [32m should print no status tag[0m (0.51ms) - should color-print the description in green and no status tag [32m should color-print the description in green and no status tag[0m (0.70ms) - should print multiline specs cleanly [32m should print multiline specs cleanly[0m (0.54ms) - should color-print multiline specs cleanly [32m should color-print multiline specs cleanly[0m (0.59ms) + should print no status tag [32m should print no status tag[0m (0.35ms) + should color-print the description in green and no status tag [32m should color-print the description in green and no status tag[0m (0.50ms) + should print multiline specs cleanly [32m should print multiline specs cleanly[0m (0.39ms) + should color-print multiline specs cleanly [32m should color-print multiline specs cleanly[0m (0.45ms) for a failed spec - should say FAILED [32m should say FAILED[0m (0.53ms) - should color-print the description in red and say FAILED [32m should color-print the description in red and say FAILED[0m (0.79ms) + should say FAILED [32m should say FAILED[0m (0.39ms) + should color-print the description in red and say FAILED [32m should color-print the description in red and say FAILED[0m (0.54ms) for a pending spec - should output the failure-description [32m should output the failure-description[0m (0.55ms) - should color-print the description and failure-description in yellow [32m should color-print the description and failure-description in yellow[0m (0.77ms) + should output the failure-description [32m should output the failure-description[0m (0.41ms) + should color-print the description and failure-description in yellow [32m should color-print the description and failure-description in yellow[0m (0.55ms) should throw an error for an unknown spec status - for plain output [32m for plain output[0m (0.30ms) - for colored output [32m for colored output[0m (0.29ms) + for plain output [32m for plain output[0m (0.22ms) + for colored output [32m for colored output[0m (0.23ms) on the suite-done event - should emit a newline at the end of a top-level suite [32m should emit a newline at the end of a top-level suite[0m (0.39ms) - should color-print a newline at the end of a top-level suite [32m should color-print a newline at the end of a top-level suite[0m (0.38ms) - should not emit anything at the end of other suites [32m should not emit anything at the end of other suites[0m (0.31ms) - should not color-print anything at the end of other suites [32m should not color-print anything at the end of other suites[0m (0.35ms) + should emit a newline at the end of a top-level suite [32m should emit a newline at the end of a top-level suite[0m (0.31ms) + should color-print a newline at the end of a top-level suite [32m should color-print a newline at the end of a top-level suite[0m (0.31ms) + should not emit anything at the end of other suites [32m should not emit anything at the end of other suites[0m (0.26ms) + should not color-print anything at the end of other suites [32m should not color-print anything at the end of other suites[0m (0.28ms) on the buttercup-done event - should print a summary of run and failing specs [32m should print a summary of run and failing specs[0m (0.53ms) - should color-print `0 failed' specs in green [32m should color-print `0 failed' specs in green[0m (0.71ms) - should color-print `X failed' specs in red [32m should color-print `X failed' specs in red[0m (0.71ms) - should print a summary separating run and pending specs [32m should print a summary separating run and pending specs[0m (0.54ms) - should color-print pending spec count in default color [32m should color-print pending spec count in default color[0m (0.67ms) - should not raise any error even if a spec failed [32m should not raise any error even if a spec failed[0m (0.48ms) + should print a summary of run and failing specs [32m should print a summary of run and failing specs[0m (0.41ms) + should color-print `0 failed' specs in green [32m should color-print `0 failed' specs in green[0m (0.51ms) + should color-print `X failed' specs in red [32m should color-print `X failed' specs in red[0m (0.52ms) + should print a summary separating run and pending specs [32m should print a summary separating run and pending specs[0m (0.37ms) + should color-print pending spec count in default color [32m should color-print pending spec count in default color[0m (0.49ms) + should not raise any error even if a spec failed [32m should not raise any error even if a spec failed[0m (0.33ms) on an unknown event - should raise an error [32m should raise an error[0m (0.24ms) + should raise an error [32m should raise an error[0m (0.18ms) Backtraces should not be collected or printed for - failed specs [32m failed specs[0m (1.54ms) - passed specs [32m passed specs[0m (0.84ms) - skipped specs [32m skipped specs[0m (0.69ms) + failed specs [32m failed specs[0m (0.99ms) + passed specs [32m passed specs[0m (0.60ms) + skipped specs [32m skipped specs[0m (0.49ms) should be collected for errors in - matchers [32m matchers[0m (1.13ms) + matchers [32m matchers[0m (0.72ms) with style - `crop' should print truncated lines [32m `crop' should print truncated lines[0m (4.98ms) - `full' should print full lines [32m `full' should print full lines[0m (1.70ms) - `pretty' should pretty-print frames [32m `pretty' should pretty-print frames[0m (2.54ms) - `omit' should print nothing [32m `omit' should print nothing[0m (0.59ms) - should signal an error for unknown styles [32m should signal an error for unknown styles[0m (0.33ms) + `crop' should print truncated lines [32m `crop' should print truncated lines[0m (3.11ms) + `full' should print full lines [32m `full' should print full lines[0m (1.12ms) + `pretty' should pretty-print frames [32m `pretty' should pretty-print frames[0m (1.75ms) + `omit' should print nothing [32m `omit' should print nothing[0m (0.45ms) + should signal an error for unknown styles [32m should signal an error for unknown styles[0m (0.23ms) should generate correct backtrace for - no matcher [32m no matcher[0m (1.13ms) - :to-be-truthy [32m :to-be-truthy[0m (1.12ms) - :not :to-be-truthy [32m :not :to-be-truthy[0m (1.19ms) - :to-be [32m :to-be[0m (1.19ms) - :not :to-be [32m :not :to-be[0m (1.23ms) - :to-equal [32m :to-equal[0m (1.21ms) - :not :to-equal [32m :not :to-equal[0m (1.25ms) - :to-have-same-items-as [32m :to-have-same-items-as[0m (1.19ms) - :not :to-have-same-items-as [32m :not :to-have-same-items-as[0m (1.21ms) - :to-match [32m :to-match[0m (1.21ms) - :not :to-match [32m :not :to-match[0m (1.27ms) - :to-be-in [32m :to-be-in[0m (1.19ms) - :not :to-be-in [32m :not :to-be-in[0m (1.21ms) - :to-contain [32m :to-contain[0m (1.24ms) - :not :to-contain [32m :not :to-contain[0m (1.21ms) - :to-be-less-than [32m :to-be-less-than[0m (1.18ms) - :not :to-be-less-than [32m :not :to-be-less-than[0m (1.23ms) - :to-be-greater-than [32m :to-be-greater-than[0m (1.18ms) - :not :to-be-greater-than [32m :not :to-be-greater-than[0m (1.25ms) - :to-be-weakly-less-than [32m :to-be-weakly-less-than[0m (1.19ms) - :not :to-be-weakly-less-than [32m :not :to-be-weakly-less-than[0m (1.21ms) - :to-be-weakly-greater-than [32m :to-be-weakly-greater-than[0m (1.18ms) - :not :to-be-weakly-greater-than [32m :not :to-be-weakly-greater-than[0m (1.25ms) - :to-be-close-to [32m :to-be-close-to[0m (1.21ms) - :not :to-be-close-to [32m :not :to-be-close-to[0m (1.28ms) - :to-have-been-called [32m :to-have-been-called[0m (1.17ms) - :not :to-have-been-called [32m :not :to-have-been-called[0m (1.23ms) - :to-have-been-called-with [32m :to-have-been-called-with[0m (1.19ms) - :not :to-have-been-called-with [32m :not :to-have-been-called-with[0m (26.98ms) - :to-have-been-called-times [32m :to-have-been-called-times[0m (1.17ms) - :not :to-have-been-called-times [32m :not :to-have-been-called-times[0m (1.13ms) - function matcher [32m function matcher[0m (1.07ms) - :not function matcher [32m :not function matcher[0m (1.09ms) + no matcher [32m no matcher[0m (0.76ms) + :to-be-truthy [32m :to-be-truthy[0m (0.74ms) + :not :to-be-truthy [32m :not :to-be-truthy[0m (0.75ms) + :to-be [32m :to-be[0m (0.78ms) + :not :to-be [32m :not :to-be[0m (0.80ms) + :to-equal [32m :to-equal[0m (0.79ms) + :not :to-equal [32m :not :to-equal[0m (0.81ms) + :to-have-same-items-as [32m :to-have-same-items-as[0m (0.77ms) + :not :to-have-same-items-as [32m :not :to-have-same-items-as[0m (0.80ms) + :to-match [32m :to-match[0m (0.78ms) + :not :to-match [32m :not :to-match[0m (0.80ms) + :to-be-in [32m :to-be-in[0m (0.80ms) + :not :to-be-in [32m :not :to-be-in[0m (0.79ms) + :to-contain [32m :to-contain[0m (0.78ms) + :not :to-contain [32m :not :to-contain[0m (0.80ms) + :to-be-less-than [32m :to-be-less-than[0m (0.79ms) + :not :to-be-less-than [32m :not :to-be-less-than[0m (0.78ms) + :to-be-greater-than [32m :to-be-greater-than[0m (0.78ms) + :not :to-be-greater-than [32m :not :to-be-greater-than[0m (0.79ms) + :to-be-weakly-less-than [32m :to-be-weakly-less-than[0m (0.76ms) + :not :to-be-weakly-less-than [32m :not :to-be-weakly-less-than[0m (0.85ms) + :to-be-weakly-greater-than [32m :to-be-weakly-greater-than[0m (0.77ms) + :not :to-be-weakly-greater-than [32m :not :to-be-weakly-greater-than[0m (0.80ms) + :to-be-close-to [32m :to-be-close-to[0m (0.80ms) + :not :to-be-close-to [32m :not :to-be-close-to[0m (0.84ms) + :to-have-been-called [32m :to-have-been-called[0m (0.75ms) + :not :to-have-been-called [32m :not :to-have-been-called[0m (0.78ms) + :to-have-been-called-with [32m :to-have-been-called-with[0m (0.77ms) + :not :to-have-been-called-with [32m :not :to-have-been-called-with[0m (20.03ms) + :to-have-been-called-times [32m :to-have-been-called-times[0m (0.73ms) + :not :to-have-been-called-times [32m :not :to-have-been-called-times[0m (0.73ms) + function matcher [32m function matcher[0m (0.71ms) + :not function matcher [32m :not function matcher[0m (0.71ms) When using quiet specs in the batch reporter it should print nothing if all specs are quiet - and color is disabled [32m and color is disabled[0m (0.74ms) - and color is enabled [32m and color is enabled[0m (0.81ms) + and color is disabled [32m and color is disabled[0m (0.51ms) + and color is enabled [32m and color is enabled[0m (0.55ms) should print the containing suites for non-quiet specs - and color is disabled [32m and color is disabled[0m (1.25ms) - and color is enabled [32m and color is enabled[0m (1.58ms) + and color is disabled [32m and color is disabled[0m (0.83ms) + and color is enabled [32m and color is enabled[0m (1.08ms) should quiet all of the given spec statuses - and color is disabled [32m and color is disabled[0m (0.79ms) - and color is enabled [32m and color is enabled[0m (0.87ms) - should handle `skipped' virtual status in quiet list [32m should handle `skipped' virtual status in quiet list[0m (1.67ms) - should handle `disabled' virtual status in quiet list [32m should handle `disabled' virtual status in quiet list[0m (1.68ms) + and color is disabled [32m and color is disabled[0m (0.55ms) + and color is enabled [32m and color is enabled[0m (0.57ms) + should handle `skipped' virtual status in quiet list [32m should handle `skipped' virtual status in quiet list[0m (1.07ms) + should handle `disabled' virtual status in quiet list [32m should handle `disabled' virtual status in quiet list[0m (1.06ms) The `buttercup-run' function - should signal an error if no suites are defined [32m should signal an error if no suites are defined[0m (0.29ms) - should return :no-suites for no suites and noerror [32m should return :no-suites for no suites and noerror[0m (0.26ms) - should raise an error if at least one spec failed [32m should raise an error if at least one spec failed[0m (0.30ms) - should return nil for failing specs and noerror [32m should return nil for failing specs and noerror[0m (0.25ms) - should return t for passing specs [32m should return t for passing specs[0m (0.31ms) - should call the reporter twice with events buttercup-started and -done [32m should call the reporter twice with events buttercup-started and -done[0m (0.38ms) - should call `buttercup--run-suite' once per suite [32m should call `buttercup--run-suite' once per suite[0m (0.31ms) + should signal an error if no suites are defined [32m should signal an error if no suites are defined[0m (0.23ms) + should return :no-suites for no suites and noerror [32m should return :no-suites for no suites and noerror[0m (0.21ms) + should raise an error if at least one spec failed [32m should raise an error if at least one spec failed[0m (0.23ms) + should return nil for failing specs and noerror [32m should return nil for failing specs and noerror[0m (0.20ms) + should return t for passing specs [32m should return t for passing specs[0m (0.25ms) + should call the reporter twice with events buttercup-started and -done [32m should call the reporter twice with events buttercup-started and -done[0m (0.32ms) + should call `buttercup--run-suite' once per suite [32m should call `buttercup--run-suite' once per suite[0m (0.26ms) The `buttercup--print' function - should send a formatted string to the terminal [32m should send a formatted string to the terminal[0m (0.15ms) + should send a formatted string to the terminal [32m should send a formatted string to the terminal[0m (0.09ms) The `buttercup-mark-skipped' function - should do nothing with a reversed match-all pattern [32m should do nothing with a reversed match-all pattern[0m (1.27ms) - should mark all specs as pending with a reversed match none pattern [32m should mark all specs as pending with a reversed match none pattern[0m (0.58ms) - should handle multiple patterns [32m should handle multiple patterns[0m (0.59ms) - should support predicates [32m should support predicates[0m (0.64ms) - should support reversed predicates [32m should support reversed predicates[0m (0.65ms) - should signal an error for invalid matchers [32m should signal an error for invalid matchers[0m (0.53ms) + should do nothing with a reversed match-all pattern [32m should do nothing with a reversed match-all pattern[0m (0.84ms) + should mark all specs as pending with a reversed match none pattern [32m should mark all specs as pending with a reversed match none pattern[0m (0.40ms) + should handle multiple patterns [32m should handle multiple patterns[0m (0.41ms) + should support predicates [32m should support predicates[0m (0.46ms) + should support reversed predicates [32m should support reversed predicates[0m (0.44ms) + should signal an error for invalid matchers [32m should signal an error for invalid matchers[0m (0.38ms) Buttercup's ERT compatibility wrapper - should convert `ert-test-failed' into `buttercup-failed' [32m should convert `ert-test-failed' into `buttercup-failed'[0m (0.34ms) - should convert `ert-test-skipped' into `buttercup-pending' [32m should convert `ert-test-skipped' into `buttercup-pending'[0m (0.24ms) + should convert `ert-test-failed' into `buttercup-failed' [32m should convert `ert-test-failed' into `buttercup-failed'[0m (0.24ms) + should convert `ert-test-skipped' into `buttercup-pending' [32m should convert `ert-test-skipped' into `buttercup-pending'[0m (0.18ms) `buttercup-run-discover' should parse command line arguments - ignoring `--' [32m ignoring `--'[0m (0.23ms) - requiring an extra argument for `--traceback' [32m requiring an extra argument for `--traceback'[0m (0.25ms) - checking `--traceback' argument for validity [32m checking `--traceback' argument for validity[0m (0.29ms) - setting `buttercup-stack-frame-style' from `--traceback' arg [32m setting `buttercup-stack-frame-style' from `--traceback' arg[0m (0.38ms) - requiring an extra argument for `--pattern' or `-p' [32m requiring an extra argument for `--pattern' or `-p'[0m (0.38ms) - collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' [32m collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'[0m (0.40ms) - clearing `buttercup-color' if `--no-color' is given [32m clearing `buttercup-color' if `--no-color' is given[0m (0.53ms) - adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given [32m adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given[0m (0.47ms) - adding `pending' and `passed' to quiet statuses if `--only-error' is given [32m adding `pending' and `passed' to quiet statuses if `--only-error' is given[0m (0.48ms) - calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given [32m calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given[0m (0.31ms) - search any unknown args for test files [32m search any unknown args for test files[0m (0.50ms) + ignoring `--' [32m ignoring `--'[0m (0.18ms) + requiring an extra argument for `--traceback' [32m requiring an extra argument for `--traceback'[0m (0.20ms) + checking `--traceback' argument for validity [32m checking `--traceback' argument for validity[0m (0.24ms) + setting `buttercup-stack-frame-style' from `--traceback' arg [32m setting `buttercup-stack-frame-style' from `--traceback' arg[0m (0.34ms) + requiring an extra argument for `--pattern' or `-p' [32m requiring an extra argument for `--pattern' or `-p'[0m (0.26ms) + collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped' [32m collecting `--pattern' and `-p' args and send to `buttercup-mark-skipped'[0m (0.28ms) + clearing `buttercup-color' if `--no-color' is given [32m clearing `buttercup-color' if `--no-color' is given[0m (0.35ms) + adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given [32m adding `skipped' and `disabled' to quiet statuses if `--no-skip' is given[0m (0.31ms) + adding `pending' and `passed' to quiet statuses if `--only-error' is given [32m adding `pending' and `passed' to quiet statuses if `--only-error' is given[0m (0.33ms) + calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given [32m calling `buttercup-error-on-stale-elc' if `--stale-file-error' is given[0m (0.23ms) + search any unknown args for test files [32m search any unknown args for test files[0m (0.34ms) find and load files - named test-*.el and *-tests?.el but no other files [32m named test-*.el and *-tests?.el but no other files[0m (4.21ms) - only in given directories [32m only in given directories[0m (3.13ms) + named test-*.el and *-tests?.el but no other files [32m named test-*.el and *-tests?.el but no other files[0m (19.76ms) + only in given directories [32m only in given directories[0m (2.15ms) butter-minor-mode - should fontify `describe' special form [32m should fontify `describe' special form[0m (0.64ms) - should fontify `it' special form [32m should fontify `it' special form[0m (0.59ms) - should add special forms to `imenu' [32m should add special forms to `imenu'[0m (0.94ms) - should define `buttercup-minor-mode-map' [32m should define `buttercup-minor-mode-map'[0m (0.20ms) + should fontify `describe' special form [32m should fontify `describe' special form[0m (0.46ms) + should fontify `it' special form [32m should fontify `it' special form[0m (0.40ms) + should add special forms to `imenu' [32m should add special forms to `imenu'[0m (0.66ms) + should define `buttercup-minor-mode-map' [32m should define `buttercup-minor-mode-map'[0m (0.15ms) For stale `elc' file checks `buttercup-check-for-stale-elc' - should do nothing for `el' files [32m should do nothing for `el' files[0m (0.31ms) - should signal error when `elc' is older than `el' [32m should signal error when `elc' is older than `el'[0m (0.33ms) - should not signal error when `elc' is newer than `el' [32m should not signal error when `elc' is newer than `el'[0m (0.32ms) - should do nothing if the `el' file does not exist [32m should do nothing if the `el' file does not exist[0m (0.27ms) + should do nothing for `el' files [32m should do nothing for `el' files[0m (0.23ms) + should signal error when `elc' is older than `el' [32m should signal error when `elc' is older than `el'[0m (0.26ms) + should not signal error when `elc' is newer than `el' [32m should not signal error when `elc' is newer than `el'[0m (0.27ms) + should do nothing if the `el' file does not exist [32m should do nothing if the `el' file does not exist[0m (0.22ms) `buttercup-error-on-stale-elc' - should activate with no argument [32m should activate with no argument[0m (0.23ms) - should deactivate with almost any argument [32m should deactivate with almost any argument[0m (0.24ms) - should toggle when given `toggle' as argument [32m should toggle when given `toggle' as argument[0m (0.35ms) + should activate with no argument [32m should activate with no argument[0m (0.17ms) + should deactivate with almost any argument [32m should deactivate with almost any argument[0m (0.19ms) + should toggle when given `toggle' as argument [32m should toggle when given `toggle' as argument[0m (0.26ms) -Ran 290 out of 291 specs, [32m0 failed[0m, in -972.05ms. +Ran 290 out of 291 specs, [32m0 failed[0m, in -963.62ms. make[1]: Leaving directory '/build/reproducible-path/emacs-buttercup-1.37' - rm -fr -- /tmp/dh-xdg-rundir-0Dg_Nu2e + rm -fr -- /tmp/dh-xdg-rundir-UJPyk8i9 create-stamp debian/debhelper-build-stamp dh_prep rm -f -- debian/elpa-buttercup.substvars @@ -1339,12 +1375,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/68700/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/68700/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/49512 and its subdirectories -I: Current time: Wed Feb 19 23:09:30 -12 2025 -I: pbuilder-time-stamp: 1740049770 +I: removing directory /srv/workspace/pbuilder/68700 and its subdirectories +I: Current time: Thu Mar 26 07:33:08 +14 2026 +I: pbuilder-time-stamp: 1774459988