Diff of the two buildlogs: -- --- b1/build.log 2024-05-01 18:07:48.490719755 +0000 +++ b2/build.log 2024-05-01 18:10:01.185080033 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed May 1 06:05:54 -12 2024 -I: pbuilder-time-stamp: 1714586754 +I: Current time: Wed Jun 4 14:30:51 +14 2025 +I: pbuilder-time-stamp: 1748997051 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -29,51 +29,83 @@ dpkg-source: info: applying rspec3.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2255630/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/D01_modify_environment starting +debug: Running on infom02-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Jun 4 00:31 /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/576660/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='amd64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='dfc60fb080454c159539b819a53aa9f8' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='2255630' - PS1='# ' - PS2='> ' + INVOCATION_ID=b210a9e0b1f74eb4890aa9f7ee031e95 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=576660 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.ohK4D8Xd/pbuilderrc_KrzG --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.ohK4D8Xd/b1 --logfile b1/build.log ruby-coercible_1.0.0-2.1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' + 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.ohK4D8Xd/pbuilderrc_WmML --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.ohK4D8Xd/b2 --logfile b2/build.log ruby-coercible_1.0.0-2.1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' I: uname -a - Linux infom01-amd64 6.1.0-20-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.6.13+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.13-1~bpo12+1 (2024-02-15) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 23 11:24 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/2255630/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 24 13:34 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -368,7 +400,7 @@ Get: 135 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 136 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] Get: 137 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-its all 1.3.0-1 [6864 B] -Fetched 50.1 MB in 1s (86.5 MB/s) +Fetched 50.1 MB in 1s (47.3 MB/s) debconf: delaying package configuration, since apt-utils is not installed dpkg: libdb5.3:amd64: dependency problems, but removing anyway as you requested: libperl5.38:amd64 depends on libdb5.3. @@ -839,8 +871,8 @@ Setting up tzdata (2024a-3) ... Current default time zone: 'Etc/UTC' -Local time is now: Wed May 1 18:07:10 UTC 2024. -Universal Time is now: Wed May 1 18:07:10 UTC 2024. +Local time is now: Wed Jun 4 00:32:34 UTC 2025. +Universal Time is now: Wed Jun 4 00:32:34 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -969,7 +1001,11 @@ fakeroot is already the newest version (1.33-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ruby-coercible-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../ruby-coercible_1.0.0-2.1_source.changes +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-coercible-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ruby-coercible_1.0.0-2.1_source.changes dpkg-buildpackage: info: source package ruby-coercible dpkg-buildpackage: info: source version 1.0.0-2.1 dpkg-buildpackage: info: source distribution unstable @@ -1061,653 +1097,620 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 46349 +Randomized with seed 3963 Coercible::Coercer::Integer.to_boolean + when the fixnum is 0 + is expected to equal false when the fixnum is 1 is expected to equal true when the fixnum is not 1 or 0 is expected to raise Coercible::UnsupportedCoercion - when the fixnum is 0 - is expected to equal false - -Coercible::Coercer::Float.to_integer - is expected to eql 1 - is expected to be a kind of Integer -Coercible::Coercer::Decimal.to_string - is expected to eql "1.0" - is expected to be an instance of String - -Coercible::Coercer::Numeric.to_decimal - with an object responding to #to_d - is expected to eql 0.1e1 - with an object not responding to #to_d - is expected to eql 0.1e1 - -Coercible::Coercer::Integer#coerced? +Coercible::Coercer::Float#coerced? behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false with a primitive value is expected to equal true + with a non-primitive value + is expected to equal false -Coercible::Coercer::Float.to_string - is expected to be an instance of String - is expected to eql "1.0" - -Coercible::Coercer::Decimal.to_decimal - is expected to equal 0.1e1 - -Coercible::Coercer::Integer#to_datetime - is expected to eql "2013-02-16 17:44:32.000" - -Coercible::Coercer::String.config - boolean_map - is expected to equal {"0"=>false, "1"=>true, "f"=>false, "false"=>false, "n"=>false, "no"=>false, "off"=>false, "on"=>true, "t"=>true, "true"=>true, "y"=>true, "yes"=>true} - -Coercible::Coercer::Integer.to_float - is expected to eql 1.0 - is expected to be an instance of Float - -Coercible::Coercer::TimeCoercions.to_time - when the value responds to #to_time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - is expected to be an instance of Time - when the value does not respond to #to_time - is expected to be an instance of Time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - -Coercible::Coercer::Integer - behaves like Configurable - .config_keys - is expected not to be empty - is expected to be an instance of Array - .config_name - is expected to be an instance of Symbol - .config_name - is expected to equal :integer - .config - is expected to be an instance of Coercible::Configuration - responds to configuration keys - -Coercible::Coercer.new - is expected to be an instance of Coercible::Coercer - config - is expected to respond to #string= - config - is expected to respond to #string - config - is expected to be an instance of Coercible::Configuration - -Coercible::Coercer::Time.to_integer - is expected to eql 1714586862 - -Coercible::Coercer::String - behaves like Configurable - .config_keys - is expected to be an instance of Array - is expected not to be empty - .config_name - is expected to equal :string - .config_name - is expected to be an instance of Symbol - .config - is expected to be an instance of Coercible::Configuration - responds to configuration keys - -Coercible::Coercer::Float.to_float - is expected to equal 1.0 - -Coercible::Coercer::FalseClass#coerced? +Coercible::Coercer::Integer#coerced? behaves like Coercible::Coercer#coerced? with a primitive value is expected to equal true with a non-primitive value is expected to equal false -Coercible::Coercer::Object#method_missing - when method matches coercion method regexp - is expected to equal # - when method doesn't match coercion method regexp - is expected to raise NoMethodError +Coercible::Coercer::Array#to_set + is expected to be an instance of Set + is expected to eql "a", 1, "b", and 2 -Coercible::Coercer::Numeric.to_integer - is expected to eql 1 +Coercible::Configuration.build + is expected to respond to #bar + is expected to respond to #bar= + is expected to respond to #foo= + is expected to be an instance of Coercible::Configuration + is expected to respond to #foo -Coercible::Coercer::Integer#datetime_format - with other Ruby VMs - is expected to == "%s" - with Rubinius - is expected to == "%Q" +Coercible::Coercer::Date.to_time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + is expected to be an instance of Time Coercible::Coercer::DateTime.to_datetime is expected to equal # -Coercible::Coercer::Date.to_date - is expected to equal # - -Coercible::Coercer::String.to_constant - with a non-namespaced qualified name - is expected to equal String - when the name is invalid - is expected to raise NameError - with a non-namespaced name - is expected to equal String - with a namespaced qualified name - is expected to equal Coercible::Coercer::String - with a name outside of the namespace - is expected to raise NameError - with a namespaced name - is expected to equal Coercible::Coercer::String - when the name is unknown - is expected to raise NameError - -Coercible::Coercer::DateTime.to_time - when DateTime supports #to_time - is expected to equal 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - when DateTime does not support #to_time - is expected to be an instance of Time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - -Coercible::Coercer::String#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer#[] - with an unknown type - is expected to be an instance of Coercible::Coercer::Object - with a known type - is expected to be an instance of Coercible::Coercer::String - -Coercible::Coercer::Object.to_integer - when the value responds to #to_int - is expected to equal # - when the value does not respond to #to_int - is expected to raise Coercible::UnsupportedCoercion - Coercible::Coercer::String.to_datetime with a valid date string - not including time part + including time part it should behave like a correct datetime object is expected to be an instance of DateTime month is expected to == 7 - year - is expected to == 2011 - sec - is expected to == 0 - min - is expected to == 0 day is expected to == 22 - hour - is expected to == 0 - including time part - it should behave like a correct datetime object - is expected to be an instance of DateTime min is expected to == 44 sec is expected to == 50 - month - is expected to == 7 hour is expected to == 13 year is expected to == 2011 + not including time part + it should behave like a correct datetime object + is expected to be an instance of DateTime + min + is expected to == 0 day is expected to == 22 + hour + is expected to == 0 + month + is expected to == 7 + year + is expected to == 2011 + sec + is expected to == 0 with an invalid date time string is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::Date.to_datetime - when Date does not support #to_datetime +Coercible::Coercer::Decimal#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Coercer::Hash.to_datetime + when time segments are strings + is expected to be an instance of DateTime + is expected to eql # + when time segments are missing + is expected to be an instance of DateTime + uses the Time now to populate the segments + when time segments are integers + is expected to eql # is expected to be an instance of DateTime - is expected to eql # - when Date supports #to_datetime - is expected to equal # -Coercible::Coercer::Date.to_time - is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" - is expected to be an instance of Time +Coercible::Coercer::Date#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false -Coercible::Coercer::Integer#datetime_proc - with Rubinius - is expected to be an instance of Proc - with other Ruby VMs - is expected to be an instance of Proc +Coercible::Coercer::String.to_date + with a valid date string + is expected to be an instance of Date + month + is expected to == 7 + year + is expected to == 2011 + day + is expected to == 22 + with an invalid date string + is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::Configurable.config_name - is expected to equal :test +Coercible::Coercer::TimeCoercions.to_datetime + when the value does not respond to #to_datetime + is expected to eql # + is expected to be an instance of DateTime + when the value responds to #to_datetime + is expected to be an instance of DateTime + is expected to eql # -Coercible::Coercer::Configurable.config - is expected to equal # +Coercible::Coercer::Integer.to_decimal + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal -Coercible::Coercer::Object.to_hash - when the value does not respond to #to_hash - is expected to raise Coercible::UnsupportedCoercion - when the value responds to #to_hash - is expected to equal # +Coercible::Coercer::String.to_symbol + is expected to equal :value -Coercible::Coercer::Decimal.to_integer - is expected to be a kind of Integer +Coercible::Coercer::Hash#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true + +Coercible::Coercer::Numeric.to_integer is expected to eql 1 -Coercible::Coercer::TrueClass.to_string - is expected to be an instance of String - is expected to eql "true" +Coercible::Coercer::Numeric.to_string + is expected to eql "1/1" -Coercible::Coercer::DateTime.to_date - when DateTime does not support #to_date +Coercible::Coercer::Hash.to_date + when time segments are integers is expected to be an instance of Date is expected to eql # - when DateTime supports #to_date - is expected to equal # - -Coercible::Coercer::Integer.to_integer - is expected to equal 1 + when time segments are missing + is expected to be an instance of Date + uses the Time now to populate the segments + when time segments are strings + is expected to eql # + is expected to be an instance of Date -Coercible::Coercer::Float.to_decimal - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal +Coercible::Coercer::Object.to_integer + when the value responds to #to_int + is expected to equal # + when the value does not respond to #to_int + is expected to raise Coercible::UnsupportedCoercion -Coercible::Coercer::String.to_float - with "1E+1" - is expected to eql 10.0 - is expected to be an instance of Float - with "-1.0E-1" - is expected to eql -0.1 - is expected to be an instance of Float - with "-1.0e+1" - is expected to be an instance of Float - is expected to eql -10.0 +Coercible::Coercer::String.to_decimal + with "1.0e-1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with "+1.0E+1" + is expected to eql 0.1e2 + is expected to be an instance of BigDecimal + with ".1E-1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e-1 + with ".1e+1" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with "1" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with "1.0" + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal with "+1.0E-1" - is expected to be an instance of Float - is expected to eql 0.1 - with "1.0E+1" - is expected to be an instance of Float - is expected to eql 10.0 - with "+1" - is expected to be an instance of Float - is expected to eql 1.0 - with "-1" - is expected to be an instance of Float - is expected to eql -1.0 - with "1.0e+1" - is expected to be an instance of Float - is expected to eql 10.0 - with ".1" - is expected to eql 0.1 - is expected to be an instance of Float - with "+1e-1" - is expected to eql 0.1 - is expected to be an instance of Float + is expected to be an instance of BigDecimal + is expected to eql 0.1e0 with ".1e-1" - is expected to be an instance of Float - is expected to eql 0.01 + is expected to be an instance of BigDecimal + is expected to eql 0.1e-1 + with "-1.0E-1" + is expected to eql -0.1e0 + is expected to be an instance of BigDecimal + with "-1.0e+1" + is expected to eql -0.1e2 + is expected to be an instance of BigDecimal with "-1.0E+1" - is expected to eql -10.0 - is expected to be an instance of Float - with "-1.0" - is expected to eql -1.0 - is expected to be an instance of Float - with ".1e+1" - is expected to be an instance of Float - is expected to eql 1.0 + is expected to be an instance of BigDecimal + is expected to eql -0.1e2 with "+1.0" - is expected to eql 1.0 - is expected to be an instance of Float - with "+1.0E+1" - is expected to be an instance of Float - is expected to eql 10.0 - with "-1E1" - is expected to eql -10.0 - is expected to be an instance of Float - string starts with e - is expected to raise Coercible::UnsupportedCoercion - with "1.0E-1" - is expected to eql 0.1 - is expected to be an instance of Float + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal + with "1.0e+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e2 + with "-1" + is expected to be an instance of BigDecimal + is expected to eql -0.1e1 + with "-1.0" + is expected to be an instance of BigDecimal + is expected to eql -0.1e1 with ".1E+1" - is expected to be an instance of Float - is expected to eql 1.0 - with ".1E-1" - is expected to eql 0.01 - is expected to be an instance of Float - with an invalid float string - is expected to raise Coercible::UnsupportedCoercion - with "1" - is expected to eql 1.0 - is expected to be an instance of Float - with "-1.0e-1" - is expected to be an instance of Float - is expected to eql -0.1 - with "-1e-1" - is expected to eql -0.1 - is expected to be an instance of Float - with "1.0" - is expected to eql 1.0 - is expected to be an instance of Float - with "1e1" - is expected to eql 10.0 - is expected to be an instance of Float + is expected to be an instance of BigDecimal + is expected to eql 0.1e1 + with ".1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e0 + with "+1" + is expected to be an instance of BigDecimal + is expected to eql 0.1e1 with "+1.0e+1" - is expected to eql 10.0 - is expected to be an instance of Float + is expected to eql 0.1e2 + is expected to be an instance of BigDecimal + with an invalid decimal string + is expected to raise Coercible::UnsupportedCoercion with "+1.0e-1" - is expected to eql 0.1 - is expected to be an instance of Float - with "1.0e-1" - is expected to be an instance of Float - is expected to eql 0.1 - -Coercible::Configuration.build - is expected to respond to #foo= - is expected to respond to #bar= - is expected to be an instance of Coercible::Configuration - is expected to respond to #bar - is expected to respond to #foo + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with "1.0E+1" + is expected to eql 0.1e2 + is expected to be an instance of BigDecimal + with "1.0E-1" + is expected to eql 0.1e0 + is expected to be an instance of BigDecimal + with "-1.0e-1" + is expected to be an instance of BigDecimal + is expected to eql -0.1e0 -Coercible::Coercer::String.to_symbol - is expected to equal :value +Coercible::Coercer::String#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true -Coercible::Coercer::FalseClass.to_string - is expected to eql "false" - is expected to be an instance of String +Coercible::Coercer::String + behaves like Configurable + .config_keys + is expected to be an instance of Array + is expected not to be empty + .config_name + is expected to equal :string + .config_name + is expected to be an instance of Symbol + .config + responds to configuration keys + is expected to be an instance of Coercible::Configuration Coercible::Coercer::String.to_integer - with "+1.0E-1" - is expected to be a kind of Integer - is expected to eql 0 - with "-1" + with "+1.0e+1" is expected to be a kind of Integer + is expected to eql 10 + with "-1.0" is expected to eql -1 - with "1.0e-1" is expected to be a kind of Integer - is expected to eql 0 with "+1.0E+1" - is expected to be a kind of Integer is expected to eql 10 - with "2.2250738585072014e-308" - is expected to eql 0 is expected to be a kind of Integer - with "+1" + with "+1.0" + is expected to be a kind of Integer is expected to eql 1 + when integer string is big + is expected to == 334490140000101135 + with "1.0" is expected to be a kind of Integer - with "-1.0E+1" + is expected to eql 1 + with ".1E+1" + is expected to eql 1 + is expected to be a kind of Integer + with "1.7976931348623158e+307" + is expected to eql 17976931348623157580412819756850388593900235011794141176754562789180111453639664485361928830517704263...0189893797509826303293149283469713429932049693599732425511693654044437030940398714664210204414967808 + is expected to be a kind of Integer + with "-1.0e+1" is expected to be a kind of Integer is expected to eql -10 with "1.0e+1" - is expected to be a kind of Integer is expected to eql 10 - with ".1" + is expected to be a kind of Integer + with "1.0E-1" is expected to be a kind of Integer is expected to eql 0 with ".1E-1" is expected to be a kind of Integer is expected to eql 0 - with "-1e-1" + with "-1E1" + is expected to eql -10 is expected to be a kind of Integer - is expected to eql 0 - with "1.0" + with "-1" + is expected to eql -1 is expected to be a kind of Integer - is expected to eql 1 - with "-1E1" + with "+1.0e-1" is expected to be a kind of Integer - is expected to eql -10 - with "1.0E+1" - is expected to eql 10 + is expected to eql 0 + with ".1e-1" is expected to be a kind of Integer + is expected to eql 0 with "-1.0e-1" is expected to eql 0 is expected to be a kind of Integer - with ".1E+1" - is expected to be a kind of Integer - is expected to eql 1 - with "1" + with "+1.0E-1" + is expected to eql 0 is expected to be a kind of Integer - is expected to eql 1 - with "1.7976931348623158e+307" + with "+1e-1" is expected to be a kind of Integer - is expected to eql 17976931348623157580412819756850388593900235011794141176754562789180111453639664485361928830517704263...0189893797509826303293149283469713429932049693599732425511693654044437030940398714664210204414967808 - with "+1.0e+1" + is expected to eql 0 + with "1e1" is expected to be a kind of Integer is expected to eql 10 + with "2.2250738585072014e-308" + is expected to eql 0 + is expected to be a kind of Integer + string starts with e + is expected to raise Coercible::UnsupportedCoercion with an invalid integer string is expected to raise Coercible::UnsupportedCoercion - with "-1.0" - is expected to eql -1 + with "-1.0E-1" is expected to be a kind of Integer - with ".1e-1" is expected to eql 0 - is expected to be a kind of Integer - when integer string is big - is expected to == 334490140000101135 with ".1e+1" is expected to eql 1 is expected to be a kind of Integer - with "+1.0e-1" + with "1E+1" + is expected to eql 10 is expected to be a kind of Integer - is expected to eql 0 - string starts with e - is expected to raise Coercible::UnsupportedCoercion - with "-1.0E-1" + with "+1" + is expected to eql 1 + is expected to be a kind of Integer + with "1.0e-1" is expected to be a kind of Integer is expected to eql 0 - with "1E+1" + with ".1" is expected to be a kind of Integer - is expected to eql 10 - with "+1e-1" is expected to eql 0 + with "-1.0E+1" + is expected to eql -10 is expected to be a kind of Integer - with "1.0E-1" + with "-1e-1" is expected to be a kind of Integer is expected to eql 0 - with "1e1" - is expected to eql 10 - is expected to be a kind of Integer - with "+1.0" + with "1.0E+1" is expected to be a kind of Integer + is expected to eql 10 + with "1" is expected to eql 1 - with "-1.0e+1" - is expected to eql -10 is expected to be a kind of Integer -Coercible::Coercer::String.to_boolean - with "t" - is expected to equal true - with "0" - is expected to equal false - with "T" - is expected to equal true - with "on" - is expected to equal true - with "ON" - is expected to equal true - with "OFF" - is expected to equal false - with "NO" - is expected to equal false - with an invalid boolean string -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/string/to_boolean_spec.rb:28:in `block (3 levels) in '. - is expected to raise Exception - with "true" - is expected to equal true - with "n" - is expected to equal false - with "no" - is expected to equal false - with "FALSE" - is expected to equal false - with "F" - is expected to equal false - with "1" - is expected to equal true - with "YES" - is expected to equal true - with "yes" - is expected to equal true - with "f" - is expected to equal false - with "TRUE" - is expected to equal true - with "y" - is expected to equal true - with "off" - is expected to equal false - with "Y" - is expected to equal true - with "false" - is expected to equal false - with "N" - is expected to equal false +Coercible::Coercer::Integer#datetime_format + with other Ruby VMs + is expected to == "%s" + with Rubinius + is expected to == "%Q" -Coercible::Coercer::DateTime.to_string - is expected to be an instance of String - is expected to eql "2011-01-01T00:00:00+00:00" +Coercible::Coercer::Float.to_decimal + is expected to eql 0.1e1 + is expected to be an instance of BigDecimal -Coercible::Coercer::Float#to_float - is expected to eql "2013-02-16 17:44:32.120" +Coercible::Coercer::Configurable.config + is expected to equal # + +Coercible::Coercer::Time#coerced? + behaves like Coercible::Coercer#coerced? + with a primitive value + is expected to equal true + with a non-primitive value + is expected to equal false + +Coercible::Coercer::String.to_constant + with a namespaced qualified name + is expected to equal Coercible::Coercer::String + with a name outside of the namespace + is expected to raise NameError + with a non-namespaced name + is expected to equal String + with a non-namespaced qualified name + is expected to equal String + with a namespaced name + is expected to equal Coercible::Coercer::String + when the name is unknown + is expected to raise NameError + when the name is invalid + is expected to raise NameError + +Coercible::Coercer::Object#coerced? + is expected to equal true Coercible::Coercer::String.to_time + with an invalid date time string + is expected to raise Coercible::UnsupportedCoercion with a valid time string including time part it should behave like a correct time object is expected to be an instance of Time - sec - is expected to == 50 - year - is expected to == 2011 month is expected to == 7 hour is expected to == 13 - day - is expected to == 22 min is expected to == 44 + sec + is expected to == 50 + year + is expected to == 2011 + day + is expected to == 22 not including time part it should behave like a correct time object is expected to be an instance of Time - min - is expected to == 0 - hour + month + is expected to == 7 + sec is expected to == 0 year is expected to == 2011 - sec - is expected to == 0 day is expected to == 22 - month - is expected to == 7 - with an invalid date time string - is expected to raise Coercible::UnsupportedCoercion + hour + is expected to == 0 + min + is expected to == 0 -Coercible::Coercer::Time.to_time - is expected to equal 0, 0, 0, 1, 1, 2012, 0, 1, false, and "UTC" +Coercible::Coercer::Decimal.to_integer + is expected to eql 1 + is expected to be a kind of Integer -Coercible::Coercer::Integer.to_string +Coercible::Coercer::Symbol.to_string is expected to be an instance of String - is expected to eql "1" + is expected to eql "piotr" -Coercible::Coercer::Hash.to_date - when time segments are strings - is expected to be an instance of Date - is expected to eql # - when time segments are missing - is expected to be an instance of Date - uses the Time now to populate the segments - when time segments are integers - is expected to be an instance of Date - is expected to eql # +Coercible::Coercer::Configurable.config_name + is expected to equal :test + +Coercible::Coercer::Date.to_string + is expected to be an instance of String + is expected to eql "2011-01-01" + +Coercible::Coercer#[] + with an unknown type + is expected to be an instance of Coercible::Coercer::Object + with a known type + is expected to be an instance of Coercible::Coercer::String Coercible::Coercer::Decimal.to_float is expected to be an instance of Float is expected to eql 1.0 -Coercible::Coercer::Array#to_set - is expected to eql "a", 1, "b", and 2 - is expected to be an instance of Set +Coercible::Coercer::Integer.to_integer + is expected to equal 1 -Coercible::Coercer::TimeCoercions.to_datetime - when the value does not respond to #to_datetime - is expected to eql # - is expected to be an instance of DateTime - when the value responds to #to_datetime - is expected to eql # - is expected to be an instance of DateTime +Coercible::Coercer::Date.to_date + is expected to equal # -Coercible::Coercer::String.to_date - with a valid date string - is expected to be an instance of Date - day - is expected to == 22 - year - is expected to == 2011 - month - is expected to == 7 - with an invalid date string +Coercible::Coercer::DateTime.to_string + is expected to eql "2011-01-01T00:00:00+00:00" + is expected to be an instance of String + +Coercible::Coercer::Object.to_hash + when the value does not respond to #to_hash is expected to raise Coercible::UnsupportedCoercion + when the value responds to #to_hash + is expected to equal # -Configuring coercers -WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/integration/configuring_coercers_spec.rb:12:in `block (2 levels) in '. - allows to configure coercers +Coercible::Coercer::TimeCoercions.to_time + when the value responds to #to_time + is expected to be an instance of Time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + when the value does not respond to #to_time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + is expected to be an instance of Time -Coercible::Coercer::Hash.to_datetime - when time segments are integers - is expected to be an instance of DateTime - is expected to eql # - when time segments are strings - is expected to be an instance of DateTime - is expected to eql # - when time segments are missing - is expected to be an instance of DateTime - uses the Time now to populate the segments +Coercible::Coercer::FalseClass.to_string + is expected to be an instance of String + is expected to eql "false" -Coercible::Coercer::Date#coerced? +Coercible::Coercer::Integer + behaves like Configurable + .config_keys + is expected not to be empty + is expected to be an instance of Array + .config + is expected to be an instance of Coercible::Configuration + responds to configuration keys + .config_name + is expected to equal :integer + .config_name + is expected to be an instance of Symbol + +Coercible::Coercer::Integer.to_float + is expected to be an instance of Float + is expected to eql 1.0 + +Coercible::Coercer::Float.to_float + is expected to equal 1.0 + +Coercible::Coercer::DateTime.to_date + when DateTime does not support #to_date + is expected to be an instance of Date + is expected to eql # + when DateTime supports #to_date + is expected to equal # + +Coercible::Coercer::Integer#to_datetime + is expected to eql "2013-02-16 17:44:32.000" + +Coercible::Coercer.new + is expected to be an instance of Coercible::Coercer + config + is expected to respond to #string= + config + is expected to be an instance of Coercible::Configuration + config + is expected to respond to #string + +Coercible::Coercer::DateTime#coerced? behaves like Coercible::Coercer#coerced? with a non-primitive value is expected to equal false with a primitive value is expected to equal true -Coercible::Coercer::Symbol#coerced? +Coercible::Coercer::TrueClass.to_string + is expected to be an instance of String + is expected to eql "true" + +Coercible::Coercer::TimeCoercions.to_date + when the value responds to #to_date + is expected to eql # + is expected to be an instance of Date + when the value does not respond to #to_date + is expected to eql # + is expected to be an instance of Date + +Coercible::Coercer::Array#coerced? behaves like Coercible::Coercer#coerced? with a non-primitive value is expected to equal false with a primitive value is expected to equal true -Coercible::Coercer::DateTime#coerced? +Coercible::Coercer::TimeCoercions.to_string + is expected to eql "2011-01-01" + is expected to be an instance of String + +Coercible::Coercer::String.config + boolean_map + is expected to equal {"0"=>false, "1"=>true, "f"=>false, "false"=>false, "n"=>false, "no"=>false, "off"=>false, "on"=>true, "t"=>true, "true"=>true, "y"=>true, "yes"=>true} + +Coercible::Coercer::TrueClass#coerced? behaves like Coercible::Coercer#coerced? with a non-primitive value is expected to equal false with a primitive value is expected to equal true -Coercible::Coercer::Float#coerced? +Coercible::Coercer::Float#to_float + is expected to eql "2013-02-16 17:44:32.120" + +Coercible::Coercer::Object#method_missing + when method matches coercion method regexp + is expected to equal # + when method doesn't match coercion method regexp + is expected to raise NoMethodError + +Coercible::Coercer::Numeric.to_float + is expected to eql 1.0 + +Coercible::Coercer::Symbol#coerced? behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true with a non-primitive value is expected to equal false - -Coercible::Coercer::Time#coerced? - behaves like Coercible::Coercer#coerced? with a primitive value is expected to equal true - with a non-primitive value - is expected to equal false + +Coercible::Coercer::Decimal.to_string + is expected to be an instance of String + is expected to eql "1.0" + +Coercible::Coercer::DateTime.to_time + when DateTime does not support #to_time + is expected to be an instance of Time + is expected to eql 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + when DateTime supports #to_time + is expected to equal 0, 0, 0, 1, 1, 2011, 6, 1, false, and "UTC" + +Coercible::Coercer::Time.to_time + is expected to equal 0, 0, 0, 1, 1, 2012, 0, 1, false, and "UTC" + +Coercible::Coercer::Time.to_integer + is expected to eql 1748997176 + +Coercible::Coercer::Date.to_datetime + when Date does not support #to_datetime + is expected to eql # + is expected to be an instance of DateTime + when Date supports #to_datetime + is expected to equal # + +Coercible::Coercer::Integer#datetime_proc + with Rubinius + is expected to be an instance of Proc + with other Ruby VMs + is expected to be an instance of Proc + +Coercible::Coercer::Float.to_string + is expected to be an instance of String + is expected to eql "1.0" Coercible::Coercer::Hash.to_time when time segments are strings - is expected to eql 1, 1, 1, 1, 1, 2011, 6, 1, false, and "UTC" is expected to be an instance of Time + is expected to eql 1, 1, 1, 1, 1, 2011, 6, 1, false, and "UTC" when time segments are integers is expected to be an instance of Time is expected to eql 1, 1, 1, 1, 1, 2011, 6, 1, false, and "UTC" @@ -1715,158 +1718,191 @@ uses the Time now to populate the segments is expected to be an instance of Time -Coercible::Coercer::Array#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer::Hash#coerced? - behaves like Coercible::Coercer#coerced? - with a primitive value - is expected to equal true - with a non-primitive value - is expected to equal false - -Coercible::Coercer::TimeCoercions.to_string - is expected to be an instance of String - is expected to eql "2011-01-01" - -Coercible::Coercer::TimeCoercions.to_date - when the value does not respond to #to_date - is expected to be an instance of Date - is expected to eql # - when the value responds to #to_date - is expected to eql # - is expected to be an instance of Date - -Coercible::Coercer::Object.to_string - when the value does not respond to #to_str - is expected to raise Coercible::UnsupportedCoercion - when the value responds to #to_str - is expected to equal # - -Coercible::Coercer::TrueClass#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true - -Coercible::Coercer::Date.to_string +Coercible::Coercer::Integer.to_string is expected to be an instance of String - is expected to eql "2011-01-01" + is expected to eql "1" -Coercible::Coercer::Numeric.to_string - is expected to eql "1/1" +Coercible::Coercer::String.to_boolean + with "f" + is expected to equal false + with "off" + is expected to equal false + with "false" + is expected to equal false + with "Y" + is expected to equal true + with "OFF" + is expected to equal false + with an invalid boolean string +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/string/to_boolean_spec.rb:28:in `block (3 levels) in '. + is expected to raise Exception + with "no" + is expected to equal false + with "yes" + is expected to equal true + with "0" + is expected to equal false + with "y" + is expected to equal true + with "n" + is expected to equal false + with "1" + is expected to equal true + with "NO" + is expected to equal false + with "FALSE" + is expected to equal false + with "true" + is expected to equal true + with "F" + is expected to equal false + with "on" + is expected to equal true + with "ON" + is expected to equal true + with "TRUE" + is expected to equal true + with "N" + is expected to equal false + with "t" + is expected to equal true + with "T" + is expected to equal true + with "YES" + is expected to equal true Coercible::Coercer::Object.to_array + when the value responds to #to_ary + is expected to equal # + does not call #to_a if #to_ary is available when the value returns nil from #to_ary - wraps the value in an Array if #to_a is not available calls #to_a as a fallback + wraps the value in an Array if #to_a is not available + when the value responds to #to_a but not #to_ary + is expected to equal # when the value does not respond to #to_ary or #to_a + is expected to == [#] is expected to be an instance of Array - is expected to == [#] - when the value responds to #to_a but not #to_ary - is expected to equal # - when the value responds to #to_ary - is expected to equal # - does not call #to_a if #to_ary is available -Coercible::Coercer::Decimal#coerced? - behaves like Coercible::Coercer#coerced? - with a non-primitive value - is expected to equal false - with a primitive value - is expected to equal true +Coercible::Coercer::Decimal.to_decimal + is expected to equal 0.1e1 -Coercible::Coercer::Integer.to_decimal - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal +Coercible::Coercer::Object.to_string + when the value does not respond to #to_str + is expected to raise Coercible::UnsupportedCoercion + when the value responds to #to_str + is expected to equal # -Coercible::Coercer::String.to_decimal - with ".1e-1" - is expected to eql 0.1e-1 - is expected to be an instance of BigDecimal - with ".1E-1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e-1 - with "+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e1 - with "-1.0E-1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e0 - with "1.0e-1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e0 - with ".1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "-1.0E+1" - is expected to eql -0.1e2 - is expected to be an instance of BigDecimal - with "+1.0E+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 - with ".1e+1" - is expected to be an instance of BigDecimal +Coercible::Coercer::Numeric.to_decimal + with an object not responding to #to_d is expected to eql 0.1e1 - with ".1E+1" + with an object responding to #to_d is expected to eql 0.1e1 - is expected to be an instance of BigDecimal + +Coercible::Coercer::String.to_float + with ".1e+1" + is expected to eql 1.0 + is expected to be an instance of Float + with "+1.0E+1" + is expected to eql 10.0 + is expected to be an instance of Float + with ".1" + is expected to be an instance of Float + is expected to eql 0.1 + with an invalid float string + is expected to raise Coercible::UnsupportedCoercion with "-1.0" - is expected to be an instance of BigDecimal - is expected to eql -0.1e1 + is expected to be an instance of Float + is expected to eql -1.0 + with "-1E1" + is expected to eql -10.0 + is expected to be an instance of Float + with "-1.0E-1" + is expected to be an instance of Float + is expected to eql -0.1 + with "+1e-1" + is expected to eql 0.1 + is expected to be an instance of Float + with "+1.0e-1" + is expected to eql 0.1 + is expected to be an instance of Float with "+1.0E-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal + is expected to eql 0.1 + is expected to be an instance of Float + with ".1E-1" + is expected to eql 0.01 + is expected to be an instance of Float + with "-1e-1" + is expected to be an instance of Float + is expected to eql -0.1 + with ".1E+1" + is expected to eql 1.0 + is expected to be an instance of Float + with "1.0E+1" + is expected to eql 10.0 + is expected to be an instance of Float + with "-1" + is expected to be an instance of Float + is expected to eql -1.0 + with "+1" + is expected to be an instance of Float + is expected to eql 1.0 + with ".1e-1" + is expected to be an instance of Float + is expected to eql 0.01 + with "1.0e-1" + is expected to eql 0.1 + is expected to be an instance of Float with "1.0E-1" - is expected to eql 0.1e0 - is expected to be an instance of BigDecimal - with "1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e1 - with "+1.0e+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 + is expected to eql 0.1 + is expected to be an instance of Float with "+1.0" - is expected to be an instance of BigDecimal - is expected to eql 0.1e1 - with "+1.0e-1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e0 - with "1.0E+1" - is expected to eql 0.1e2 - is expected to be an instance of BigDecimal - with an invalid decimal string + is expected to be an instance of Float + is expected to eql 1.0 + string starts with e is expected to raise Coercible::UnsupportedCoercion - with "-1.0e-1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e0 - with "-1.0e+1" - is expected to eql -0.1e2 - is expected to be an instance of BigDecimal - with "1.0e+1" - is expected to be an instance of BigDecimal - is expected to eql 0.1e2 with "1.0" - is expected to eql 0.1e1 - is expected to be an instance of BigDecimal - with "-1" - is expected to be an instance of BigDecimal - is expected to eql -0.1e1 + is expected to eql 1.0 + is expected to be an instance of Float + with "1.0e+1" + is expected to be an instance of Float + is expected to eql 10.0 + with "-1.0E+1" + is expected to eql -10.0 + is expected to be an instance of Float + with "1" + is expected to be an instance of Float + is expected to eql 1.0 + with "+1.0e+1" + is expected to be an instance of Float + is expected to eql 10.0 + with "-1.0e+1" + is expected to be an instance of Float + is expected to eql -10.0 + with "1E+1" + is expected to be an instance of Float + is expected to eql 10.0 + with "-1.0e-1" + is expected to be an instance of Float + is expected to eql -0.1 + with "1e1" + is expected to be an instance of Float + is expected to eql 10.0 -Coercible::Coercer::Numeric.to_float - is expected to eql 1.0 +Coercible::Coercer::Float.to_integer + is expected to eql 1 + is expected to be a kind of Integer -Coercible::Coercer::Object#coerced? - is expected to equal true +Configuring coercers +WARNING: Using the `raise_error` matcher without providing a specific error or message risks false positives, since `raise_error` will match when Ruby raises a `NoMethodError`, `NameError` or `ArgumentError`, potentially allowing the expectation to pass without even executing the method you are intending to call. Actual error raised was #. Instead consider providing a specific error class or message. This message can be suppressed by setting: `RSpec::Expectations.configuration.on_potential_false_positives = :nothing`. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/integration/configuring_coercers_spec.rb:12:in `block (2 levels) in '. + allows to configure coercers -Coercible::Coercer::Symbol.to_string - is expected to be an instance of String - is expected to eql "piotr" +Coercible::Coercer::FalseClass#coerced? + behaves like Coercible::Coercer#coerced? + with a non-primitive value + is expected to equal false + with a primitive value + is expected to equal true Coercible::Coercer::Object#inspect is expected to == "#" @@ -1875,7 +1911,7 @@ RSpec::Core::Configuration#treat_symbols_as_metadata_keys_with_true_values= is deprecated, it is now set to true as default and setting it to false has no effect. -Using `should_receive` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/time_coercions/to_time_spec.rb:18:in `block (3 levels) in '. +Using `stub` from rspec-mocks' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` instead. Called from /build/reproducible-path/ruby-coercible-1.0.0/spec/unit/coercible/coercer/hash/to_datetime_spec.rb:13:in `block (3 levels) in '. If you need more of the backtrace for any of these deprecations to @@ -1885,54 +1921,54 @@ 2 deprecation warnings total -Top 10 slowest examples (0.23424 seconds, 48.4% of total time): +Top 10 slowest examples (0.0297 seconds, 10.0% of total time): + Coercible::Coercer::Integer.to_boolean when the fixnum is 0 is expected to equal false + 0.00663 seconds ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:17 Coercible::Coercer::Integer.to_boolean when the fixnum is not 1 or 0 is expected to raise Coercible::UnsupportedCoercion - 0.09622 seconds ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:23 - Coercible::Coercer::Decimal.to_string is expected to be an instance of String - 0.08769 seconds ./spec/unit/coercible/coercer/decimal/to_string_spec.rb:9 - Coercible::Coercer::Integer behaves like Configurable .config_keys is expected not to be empty - 0.02407 seconds ./spec/shared/unit/configurable.rb:12 + 0.00565 seconds ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:23 Coercible::Coercer::Integer.to_boolean when the fixnum is 1 is expected to equal true - 0.00882 seconds ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:11 - Coercible::Coercer::DateTime.to_date when DateTime supports #to_date is expected to equal # - 0.00579 seconds ./spec/unit/coercible/coercer/date_time/to_date_spec.rb:28 - Coercible::Coercer::Integer#datetime_format with other Ruby VMs is expected to == "%s" - 0.00287 seconds ./spec/unit/coercible/coercer/integer/datetime_format_spec.rb:25 - Coercible::Coercer::String.to_decimal with ".1E+1" is expected to be an instance of BigDecimal - 0.0025 seconds ./spec/unit/coercible/coercer/string/to_decimal_spec.rb:36 - Coercible::Coercer::String.to_date with a valid date string day is expected to == 22 - 0.00249 seconds ./spec/unit/coercible/coercer/string/to_date_spec.rb:15 + 0.00327 seconds ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:11 + Coercible::Coercer::String.to_time with a valid time string including time part it should behave like a correct time object min is expected to == 44 + 0.00324 seconds ./spec/unit/coercible/coercer/string/to_time_spec.rb:10 + Coercible::Coercer::String.to_float with "1.0E-1" is expected to eql 0.1 + 0.00273 seconds ./spec/unit/coercible/coercer/string/to_float_spec.rb:41 + Coercible::Coercer::String.to_datetime with a valid date string including time part it should behave like a correct datetime object month is expected to == 7 + 0.00268 seconds ./spec/unit/coercible/coercer/string/to_datetime_spec.rb:7 + Coercible::Coercer::String behaves like Configurable .config_keys is expected not to be empty + 0.00204 seconds ./spec/shared/unit/configurable.rb:12 + Coercible::Configuration.build is expected to respond to #bar + 0.00126 seconds ./spec/unit/coercible/configuration/class_methods/build_spec.rb:13 Coercible::Coercer::String.to_integer with "+1.0e+1" is expected to be a kind of Integer - 0.00236 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:44 - Coercible::Coercer::Integer behaves like Configurable .config responds to configuration keys - 0.00142 seconds ./spec/shared/unit/configurable.rb:20 + 0.0012 seconds ./spec/unit/coercible/coercer/string/to_integer_spec.rb:44 + Coercible::Coercer::Object.to_array when the value responds to #to_ary is expected to equal # + 0.00102 seconds ./spec/unit/coercible/coercer/object/to_array_spec.rb:15 Top 10 slowest example groups: - Coercible::Coercer::Decimal.to_string - 0.04426 seconds average (0.08851 seconds / 2 examples) ./spec/unit/coercible/coercer/decimal/to_string_spec.rb:3 Coercible::Coercer::Integer.to_boolean - 0.03553 seconds average (0.1066 seconds / 3 examples) ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:3 - Coercible::Coercer::Integer - 0.00472 seconds average (0.02831 seconds / 6 examples) ./spec/unit/coercible/coercer/integer_spec.rb:3 - Coercible::Coercer::DateTime.to_date - 0.00241 seconds average (0.00723 seconds / 3 examples) ./spec/unit/coercible/coercer/date_time/to_date_spec.rb:3 - Coercible::Coercer::Integer#datetime_format - 0.00213 seconds average (0.00425 seconds / 2 examples) ./spec/unit/coercible/coercer/integer/datetime_format_spec.rb:3 - Coercible::Coercer::Float.to_integer - 0.00117 seconds average (0.00234 seconds / 2 examples) ./spec/unit/coercible/coercer/float/to_integer_spec.rb:3 - Coercible::Coercer::TimeCoercions.to_time - 0.0011 seconds average (0.00439 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_time_spec.rb:3 - Coercible::Coercer::String.to_date - 0.00109 seconds average (0.00543 seconds / 5 examples) ./spec/unit/coercible/coercer/string/to_date_spec.rb:3 + 0.0055 seconds average (0.0165 seconds / 3 examples) ./spec/unit/coercible/coercer/integer/to_boolean_spec.rb:3 + Coercible::Coercer::Hash.to_time + 0.00128 seconds average (0.00768 seconds / 6 examples) ./spec/unit/coercible/coercer/hash/to_time_spec.rb:3 + Coercible::Coercer::Array#to_set + 0.00111 seconds average (0.00221 seconds / 2 examples) ./spec/unit/coercible/coercer/array/to_set_spec.rb:3 + Coercible::Coercer::String.to_datetime + 0.00095 seconds average (0.01429 seconds / 15 examples) ./spec/unit/coercible/coercer/string/to_datetime_spec.rb:14 + Coercible::Coercer::String.to_time + 0.00093 seconds average (0.014 seconds / 15 examples) ./spec/unit/coercible/coercer/string/to_time_spec.rb:14 Coercible::Coercer::Configurable.config - 0.00101 seconds average (0.00101 seconds / 1 example) ./spec/unit/coercible/coercer/configurable/config_spec.rb:3 - Coercible::Coercer::Numeric.to_decimal - 0.00099 seconds average (0.00199 seconds / 2 examples) ./spec/unit/coercible/coercer/numeric/to_decimal_spec.rb:3 + 0.00092 seconds average (0.00092 seconds / 1 example) ./spec/unit/coercible/coercer/configurable/config_spec.rb:3 + Coercible::Coercer::Integer#datetime_format + 0.00092 seconds average (0.00184 seconds / 2 examples) ./spec/unit/coercible/coercer/integer/datetime_format_spec.rb:3 + Coercible::Coercer::String#coerced? + 0.00084 seconds average (0.00169 seconds / 2 examples) ./spec/unit/coercible/coercer/string/coerced_predicate_spec.rb:3 + Coercible::Coercer::TimeCoercions.to_datetime + 0.00084 seconds average (0.00334 seconds / 4 examples) ./spec/unit/coercible/coercer/time_coercions/to_datetime_spec.rb:3 + Coercible::Coercer::FalseClass#coerced? + 0.00083 seconds average (0.00167 seconds / 2 examples) ./spec/unit/coercible/coercer/false_class/coerced_predicate_spec.rb:3 -Finished in 0.48443 seconds (files took 0.54074 seconds to load) +Finished in 0.29685 seconds (files took 0.29985 seconds to load) 396 examples, 0 failures -Randomized with seed 46349 +Randomized with seed 3963 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1973,12 +2009,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/576660/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/576660/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/2255630 and its subdirectories -I: Current time: Wed May 1 06:07:47 -12 2024 -I: pbuilder-time-stamp: 1714586867 +I: removing directory /srv/workspace/pbuilder/576660 and its subdirectories +I: Current time: Wed Jun 4 14:33:00 +14 2025 +I: pbuilder-time-stamp: 1748997180