Diff of the two buildlogs: -- --- b1/build.log 2025-02-05 13:31:59.255612405 +0000 +++ b2/build.log 2025-02-05 13:32:47.933409332 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Tue Mar 10 07:54:19 -12 2026 -I: pbuilder-time-stamp: 1773172459 +I: Current time: Thu Feb 6 03:32:02 +14 2025 +I: pbuilder-time-stamp: 1738762322 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration @@ -22,52 +22,84 @@ dpkg-source: info: unpacking ruby-rspec-its_1.3.0-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/3912798/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1539597/tmp/hooks/D01_modify_environment starting +debug: Running on codethink04-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Feb 5 13: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/1539597/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1539597/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='arm64' - DEBIAN_FRONTEND='noninteractive' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="aarch64-unknown-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=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=12 ' - DISTRIBUTION='trixie' - HOME='/root' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=trixie + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - INVOCATION_ID='f61cc28ad2134442ace5305655f21b6e' - 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='3912798' - PS1='# ' - PS2='> ' + INVOCATION_ID=a192fe3c13d54a1db4d941b402f4e6f7 + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1539597 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.vyRMTKxc/pbuilderrc_Bdcj --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.vyRMTKxc/b1 --logfile b1/build.log ruby-rspec-its_1.3.0-1.dsc' - SUDO_GID='109' - SUDO_UID='104' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.4:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.vyRMTKxc/pbuilderrc_bWzL --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.vyRMTKxc/b2 --logfile b2/build.log ruby-rspec-its_1.3.0-1.dsc' + SUDO_GID=109 + SUDO_UID=104 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://192.168.101.4:3128 I: uname -a - Linux codethink03-arm64 6.1.0-30-cloud-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-30-cloud-arm64 #1 SMP Debian 6.1.124-1 (2025-01-12) aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/3912798/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1539597/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -248,7 +280,7 @@ Get: 137 http://deb.debian.org/debian trixie/main arm64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB] Get: 138 http://deb.debian.org/debian trixie/main arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB] Get: 139 http://deb.debian.org/debian trixie/main arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B] -Fetched 54.2 MB in 0s (196 MB/s) +Fetched 54.2 MB in 0s (192 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19957 files and directories currently installed.) @@ -710,8 +742,8 @@ Setting up tzdata (2024b-6) ... Current default time zone: 'Etc/UTC' -Local time is now: Tue Mar 10 19:54:41 UTC 2026. -Universal Time is now: Tue Mar 10 19:54:41 UTC 2026. +Local time is now: Wed Feb 5 13:32:24 UTC 2025. +Universal Time is now: Wed Feb 5 13:32:24 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... @@ -844,7 +876,11 @@ fakeroot is already the newest version (1.37-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/reproducible-path/ruby-rspec-its-1.3.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-rspec-its_1.3.0-1_source.changes +I: user script /srv/workspace/pbuilder/1539597/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for trixie +I: user script /srv/workspace/pbuilder/1539597/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/ruby-rspec-its-1.3.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-rspec-its_1.3.0-1_source.changes dpkg-buildpackage: info: source package ruby-rspec-its dpkg-buildpackage: info: source version 1.3.0-1 dpkg-buildpackage: info: source distribution unstable @@ -896,175 +932,175 @@ RUBYLIB=/build/reproducible-path/ruby-rspec-its-1.3.0/debian/ruby-rspec-its/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-rspec-its-1.3.0/debian/ruby-rspec-its/usr/share/rubygems-integration/all:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 31484 +Randomized with seed 60836 RSpec::Its #its - with metadata - preserves access to metadata that ends in hash - [] - is expected to equal 17 - preserves access to metadata that doesn't end in hash - [] - is expected to equal true + when expecting throws + bad + is expected to throw :abort + bad + is expected to throw :abort with "message" + bad + is expected to throw a Symbol + good + is expected not to throw a Symbol + #will with non block expectations + terminator + is expected to raise ArgumentError with "`will` only supports block expectations" + terminator + is expected to raise ArgumentError with "`will_not` only supports block expectations" + when expecting errors + bad +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-rspec-its-1.3.0/lib/rspec/its.rb:148:in `will'. + is expected to raise Exception + bad + is expected to raise Exception with "message" + bad + is expected to raise ArgumentError + bad + is expected to raise ArgumentError with "message" + good + is expected not to raise Exception + with change observation + noop + is expected not to change `subject.count` + increment + is expected to change `subject.count` by 1 + increment + is expected to change `subject.count` by at least 1 + noop + is expected not to change `subject.count` from 0 + increment + is expected to change `subject.count` from 0 + increment + is expected to change `subject.count` by at most 1 + increment + is expected to change `subject.count` from 0 to 1 + increment + is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_most()` is not supported" + increment + is expected to raise NotImplementedError with "`expect { }.not_to change { }.by()` is not supported" + increment + is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_least()` is not supported" with output capture - stdout - is expected to output "some output" to stdout noop is expected not to output "some output" to stdout stderr is expected to output "some error" to stderr + stdout + is expected to output "some output" to stdout noop is expected not to output "some error" to stderr + with metadata + preserves access to metadata that ends in hash + [] + is expected to equal 17 + preserves access to metadata that doesn't end in hash + [] + is expected to equal true + with implicit subject + preserves described_class + [] + is expected to equal RSpec::Its + symbol + is expected to equal RSpec::Its with explicit subject - with some metadata - call_count - is expected to eq 2 - with a call counter - call_count - is expected to eq 1 - when it does not respond to #[] - it raises an error - using will - [:a] - is expected to raise NoMethodError - [:a] - is expected to raise NoMethodError + when extending SharedContext + works with an implicit subject with nil subject nil_if_first_time is expected to equal nil - in shared_context - name - is expected to eq "Array" - when extending SharedContext - works with an implicit subject - with false subject - false_if_first_time - is expected to equal false - calling and overriding super - calls to the subject defined in the parent group + with nil value + nil_value + is expected to be nil when it responds to #[] when referring to an attribute that doesn't exist it raises an error - age - is expected to raise NoMethodError using will age is expected to raise NoMethodError - name - is expected to eq "George" - ["a"] - is expected to eq "String: a" + age + is expected to raise NoMethodError [:b, "c", 4] is expected to eq "Symbol: b; String: c; Integer: 4" + name + is expected to eq "George" when it's a hash + [:a] + is expected to eq {:deep=>{:key=>"value"}} + [:a, :deep, :key] + is expected to eq "value" + [:a, :deep] + is expected to eq {:key=>"value"} when referring to a key that doesn't exist + [:a, :ghost] + is expected to be nil [:deep, :ghost] is expected to raise NoMethodError using will [:deep, :ghost] is expected to raise NoMethodError - [:a, :ghost] - is expected to be nil [:not_here] is expected to be nil - [:a, :deep, :key] - is expected to eq "value" - [:a] - is expected to eq {:deep=>{:key=>"value"}} - [:a, :deep] - is expected to eq {:key=>"value"} + ["a"] + is expected to eq "String: a" [:a] is expected to eq "Symbol: a" - accessing `subject` in `before` and `let` - - is expected to eq "my subject" - - is expected to eq "my subject" - - is expected to eq "my subject" - - is expected to eq "my subject" + with false subject + false_if_first_time + is expected to equal false with nested attributes - name.size.class - is expected to eq Integer - name.size - is expected to eq 4 - using will_not - name - is expected not to raise Exception using is_expected name is expected to eq "John" name is expected to eq "John" + name.size + is expected to eq 4 + using should_not + name + is expected not to eq "Paul" + name.size.class + is expected to eq Integer using are_expected name.chars.to_a is expected to eq ["J", "o", "h", "n"] - using should_not + using will_not name - is expected not to eq "Paul" - with nil value - nil_value - is expected to be nil - with implicit subject - preserves described_class - [] - is expected to equal RSpec::Its - symbol - is expected to equal RSpec::Its - when expecting errors - bad - is expected to raise Exception with "message" - bad -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-rspec-its-1.3.0/lib/rspec/its.rb:148:in `will'. - is expected to raise Exception - bad - is expected to raise ArgumentError with "message" - good - is expected not to raise Exception - bad - is expected to raise ArgumentError - with change observation - increment - is expected to change `subject.count` by at least 1 - increment - is expected to change `subject.count` from 0 to 1 - increment - is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_least()` is not supported" - noop - is expected not to change `subject.count` from 0 - increment - is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_most()` is not supported" - noop - is expected not to change `subject.count` - increment - is expected to change `subject.count` from 0 - increment - is expected to change `subject.count` by 1 - increment - is expected to change `subject.count` by at most 1 - increment - is expected to raise NotImplementedError with "`expect { }.not_to change { }.by()` is not supported" - #will with non block expectations - terminator - is expected to raise ArgumentError with "`will` only supports block expectations" - terminator - is expected to raise ArgumentError with "`will_not` only supports block expectations" - when expecting throws - bad - is expected to throw :abort - good - is expected not to throw a Symbol - bad - is expected to throw :abort with "message" - bad - is expected to throw a Symbol + is expected not to raise Exception + in shared_context + name + is expected to eq "Array" + with a call counter + call_count + is expected to eq 1 + accessing `subject` in `before` and `let` + + is expected to eq "my subject" + + is expected to eq "my subject" + + is expected to eq "my subject" + + is expected to eq "my subject" + with some metadata + call_count + is expected to eq 2 + when it does not respond to #[] + it raises an error + [:a] + is expected to raise NoMethodError + using will + [:a] + is expected to raise NoMethodError + calling and overriding super + calls to the subject defined in the parent group -Finished in 0.12314 seconds (files took 0.14597 seconds to load) +Finished in 0.12408 seconds (files took 0.14699 seconds to load) 63 examples, 0 failures -Randomized with seed 31484 +Randomized with seed 60836 /usr/bin/ruby3.3 /usr/bin/gem2deb-test-runner @@ -1075,27 +1111,24 @@ RUBYLIB=/build/reproducible-path/ruby-rspec-its-1.3.0/debian/ruby-rspec-its/usr/lib/ruby/vendor_ruby:. GEM_PATH=/build/reproducible-path/ruby-rspec-its-1.3.0/debian/ruby-rspec-its/usr/share/rubygems-integration/all:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/aarch64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/aarch64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake /usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 39054 +Randomized with seed 48708 RSpec::Its #its #will with non block expectations terminator - is expected to raise ArgumentError with "`will_not` only supports block expectations" - terminator is expected to raise ArgumentError with "`will` only supports block expectations" - when expecting errors + terminator + is expected to raise ArgumentError with "`will_not` only supports block expectations" + when expecting throws good - is expected not to raise Exception - bad - is expected to raise ArgumentError with "message" + is expected not to throw a Symbol bad - is expected to raise ArgumentError + is expected to throw a Symbol bad -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-rspec-its-1.3.0/lib/rspec/its.rb:148:in `will'. - is expected to raise Exception + is expected to throw :abort with "message" bad - is expected to raise Exception with "message" + is expected to throw :abort with explicit subject accessing `subject` in `before` and `let` @@ -1106,72 +1139,58 @@ is expected to eq "my subject" is expected to eq "my subject" - with nil subject - nil_if_first_time - is expected to equal nil - with some metadata - call_count - is expected to eq 2 - calling and overriding super - calls to the subject defined in the parent group - with nil value - nil_value - is expected to be nil - in shared_context - name - is expected to eq "Array" - with nested attributes - using is_expected - name - is expected to eq "John" - name.size.class - is expected to eq Integer - using are_expected - name.chars.to_a - is expected to eq ["J", "o", "h", "n"] - using should_not - name - is expected not to eq "Paul" - name.size - is expected to eq 4 - using will_not - name - is expected not to raise Exception - name - is expected to eq "John" + with false subject + false_if_first_time + is expected to equal false when it responds to #[] - [:b, "c", 4] - is expected to eq "Symbol: b; String: c; Integer: 4" - [:a] - is expected to eq "Symbol: a" + when referring to an attribute that doesn't exist + it raises an error + using will + age + is expected to raise NoMethodError + age + is expected to raise NoMethodError + ["a"] + is expected to eq "String: a" when it's a hash - [:a] - is expected to eq {:deep=>{:key=>"value"}} + [:a, :deep, :key] + is expected to eq "value" when referring to a key that doesn't exist + [:deep, :ghost] + is expected to raise NoMethodError using will [:deep, :ghost] is expected to raise NoMethodError [:not_here] is expected to be nil - [:deep, :ghost] - is expected to raise NoMethodError [:a, :ghost] is expected to be nil + [:a] + is expected to eq {:deep=>{:key=>"value"}} [:a, :deep] is expected to eq {:key=>"value"} - [:a, :deep, :key] - is expected to eq "value" - ["a"] - is expected to eq "String: a" + [:b, "c", 4] + is expected to eq "Symbol: b; String: c; Integer: 4" name is expected to eq "George" - when referring to an attribute that doesn't exist - it raises an error - using will - age - is expected to raise NoMethodError - age - is expected to raise NoMethodError + [:a] + is expected to eq "Symbol: a" + with nil value + nil_value + is expected to be nil + with nil subject + nil_if_first_time + is expected to equal nil + calling and overriding super + calls to the subject defined in the parent group + in shared_context + name + is expected to eq "Array" + with a call counter + call_count + is expected to eq 1 + when extending SharedContext + works with an implicit subject when it does not respond to #[] it raises an error [:a] @@ -1179,71 +1198,88 @@ using will [:a] is expected to raise NoMethodError - with a call counter + with nested attributes + using is_expected + name + is expected to eq "John" + using are_expected + name.chars.to_a + is expected to eq ["J", "o", "h", "n"] + name.size.class + is expected to eq Integer + using will_not + name + is expected not to raise Exception + name.size + is expected to eq 4 + name + is expected to eq "John" + using should_not + name + is expected not to eq "Paul" + with some metadata call_count - is expected to eq 1 - with false subject - false_if_first_time - is expected to equal false - when extending SharedContext - works with an implicit subject + is expected to eq 2 + when expecting errors + bad + is expected to raise ArgumentError + bad + is expected to raise ArgumentError with "message" + bad +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-rspec-its-1.3.0/lib/rspec/its.rb:148:in `will'. + is expected to raise Exception + bad + is expected to raise Exception with "message" + good + is expected not to raise Exception with metadata - preserves access to metadata that doesn't end in hash - [] - is expected to equal true preserves access to metadata that ends in hash [] is expected to equal 17 + preserves access to metadata that doesn't end in hash + [] + is expected to equal true with output capture + stderr + is expected to output "some error" to stderr noop is expected not to output "some error" to stderr noop is expected not to output "some output" to stdout stdout is expected to output "some output" to stdout - stderr - is expected to output "some error" to stderr - with implicit subject - preserves described_class - symbol - is expected to equal RSpec::Its - [] - is expected to equal RSpec::Its - when expecting throws - bad - is expected to throw a Symbol - bad - is expected to throw :abort - bad - is expected to throw :abort with "message" - good - is expected not to throw a Symbol with change observation increment is expected to raise NotImplementedError with "`expect { }.not_to change { }.by()` is not supported" increment - is expected to change `subject.count` from 0 - noop - is expected not to change `subject.count` from 0 + is expected to change `subject.count` from 0 to 1 noop is expected not to change `subject.count` increment - is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_most()` is not supported" - increment is expected to change `subject.count` by at most 1 increment - is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_least()` is not supported" + is expected to change `subject.count` by at least 1 + noop + is expected not to change `subject.count` from 0 + increment + is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_most()` is not supported" increment is expected to change `subject.count` by 1 increment - is expected to change `subject.count` from 0 to 1 + is expected to raise NotImplementedError with "`expect { }.not_to change { }.by_at_least()` is not supported" increment - is expected to change `subject.count` by at least 1 + is expected to change `subject.count` from 0 + with implicit subject + preserves described_class + symbol + is expected to equal RSpec::Its + [] + is expected to equal RSpec::Its -Finished in 0.14079 seconds (files took 0.14302 seconds to load) +Finished in 0.13937 seconds (files took 0.14226 seconds to load) 63 examples, 0 failures -Randomized with seed 39054 +Randomized with seed 48708 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1276,12 +1312,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/1539597/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1539597/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/3912798 and its subdirectories -I: Current time: Tue Mar 10 07:54:58 -12 2026 -I: pbuilder-time-stamp: 1773172498 +I: removing directory /srv/workspace/pbuilder/1539597 and its subdirectories +I: Current time: Thu Feb 6 03:32:46 +14 2025 +I: pbuilder-time-stamp: 1738762366