Diff of the two buildlogs: -- --- b1/build.log 2023-04-16 20:51:50.251768142 +0000 +++ b2/build.log 2023-04-16 20:53:17.863882224 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Sun Apr 16 08:50:26 -12 2023 -I: pbuilder-time-stamp: 1681678226 +I: Current time: Sun May 19 17:14:53 +14 2024 +I: pbuilder-time-stamp: 1716088493 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -16,7 +16,7 @@ I: copying [./ruby-dry-container_0.7.2.orig.tar.gz] I: copying [./ruby-dry-container_0.7.2-2.debian.tar.xz] I: Extracting source -gpgv: Signature made Tue Mar 24 01:23:38 2020 -12 +gpgv: Signature made Wed Mar 25 03:23:38 2020 +14 gpgv: using RSA key 6C9D10484A9AE4CC385F7C71823E967606C34B96 gpgv: issuer "utkarsh@debian.org" gpgv: Can't check signature: No public key @@ -28,52 +28,84 @@ dpkg-source: info: applying require-pathname.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/10033/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/8517/tmp/hooks/D01_modify_environment starting +debug: Running on codethink11-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 19 17:15 /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/8517/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/8517/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='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]="15" [3]="1" [4]="release" [5]="aarch64-unknown-linux-gnu") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + 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=8' - DISTRIBUTION='bookworm' - HOME='/var/lib/jenkins' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/var/lib/jenkins + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - 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='10033' - PS1='# ' - PS2='> ' + 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=8517 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.iJHH2Cet/pbuilderrc_kvI6 --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.iJHH2Cet/b1 --logfile b1/build.log ruby-dry-container_0.7.2-2.dsc' - SUDO_GID='117' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - USERNAME='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.16: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.iJHH2Cet/pbuilderrc_WpPa --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.iJHH2Cet/b2 --logfile b2/build.log --extrapackages usrmerge ruby-dry-container_0.7.2-2.dsc' + SUDO_GID=117 + SUDO_UID=110 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + USERNAME=root + _='I: set' + http_proxy=http://192.168.101.16:3128 I: uname -a - Linux codethink10-arm64 4.15.0-208-generic #220-Ubuntu SMP Mon Mar 20 14:28:12 UTC 2023 aarch64 GNU/Linux + Linux i-capture-the-hostname 4.15.0-208-generic #220-Ubuntu SMP Mon Mar 20 14:28:12 UTC 2023 aarch64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Apr 14 00:48 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/10033/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 19 06:48 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/8517/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -253,7 +285,7 @@ Get: 132 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec-expectations all 3.12.0c0e1m1s0-1 [89.5 kB] Get: 133 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec-mocks all 3.12.0c0e1m1s0-1 [79.5 kB] Get: 134 http://deb.debian.org/debian bookworm/main arm64 ruby-rspec all 3.12.0c0e1m1s0-1 [5084 B] -Fetched 45.8 MB in 4s (11.4 MB/s) +Fetched 45.8 MB in 1s (35.9 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-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 ... 19616 files and directories currently installed.) @@ -812,8 +844,17 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ruby-dry-container-0.7.2/ && 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-dry-container_0.7.2-2_source.changes +I: user script /srv/workspace/pbuilder/8517/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +I: user script /srv/workspace/pbuilder/8517/tmp/hooks/A99_set_merged_usr finished +hostname: Temporary failure in name resolution +I: Running cd /build/ruby-dry-container-0.7.2/ && 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-dry-container_0.7.2-2_source.changes dpkg-buildpackage: info: source package ruby-dry-container dpkg-buildpackage: info: source version 0.7.2-2 dpkg-buildpackage: info: source distribution unstable @@ -842,7 +883,7 @@ dh_prep -O--buildsystem=ruby dh_auto_install --destdir=debian/ruby-dry-container/ -O--buildsystem=ruby dh_ruby --install /build/ruby-dry-container-0.7.2/debian/ruby-dry-container -/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20230416-16097-4fal91/gemspec +/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20240519-14400-s1fp69/gemspec Failed to load /dev/null because it doesn't contain valid YAML hash WARNING: open-ended dependency on bundler (>= 0, development) is not recommended use a bounded requirement, such as '~> x.y' @@ -855,7 +896,7 @@ Name: dry-container Version: 0.7.2 File: dry-container-0.7.2.gem -/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-dry-container/usr/share/rubygems-integration/all /tmp/d20230416-16097-4fal91/dry-container-0.7.2.gem +/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-dry-container/usr/share/rubygems-integration/all /tmp/d20240519-14400-s1fp69/dry-container-0.7.2.gem Failed to load /dev/null because it doesn't contain valid YAML hash /build/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all/gems/dry-container-0.7.2/lib/dry-container.rb /build/ruby-dry-container-0.7.2/debian/ruby-dry-container/usr/share/rubygems-integration/all/gems/dry-container-0.7.2/lib/dry/container.rb @@ -903,73 +944,191 @@ RUBYLIB=. GEM_PATH=/build/ruby-dry-container-0.7.2/debian/ruby-dry-container/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 -f debian/ruby-tests.rake /usr/bin/ruby3.1 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.12.0/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.12.0/exe/rspec --pattern ./spec/\*\*/\*_spec.rb --format documentation -Randomized with seed 53006 +Randomized with seed 20446 + +Dry::Container + behaves like a container + configuration + namespace_separator + custom + is expected to eq "item" + default + is expected to eq "." + registry + default + is expected to be a kind of Dry::Container::Registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + resolver + custom + is expected to have received call({}, :key) 1 time + is expected to eq # + default + is expected to be a kind of Dry::Container::Resolver + stubbing + raises an error when key is missing + keys can be stubbed + only other keys remain accesible + keys can be reverted back to their original value + with block argument + keys are stubbed only while inside the block + executes the block with the given stubs + mixing Strings and Symbols + is expected to eql "stub" + .freeze + returns self back + allows to freeze a container so that nothing can be registered later + with default configuration + namespace + with nesting + registers items under the given namespaces + when block takes arguments + registers items under the given namespace + with nesting and when block takes arguments + resolves items relative to the namespace + when block does not take arguments + registers items under the given namespace + registering with the same key multiple times + is expected to raise Dry::Container::Error + #each + returns the container + yields stringified versions of all registered keys to the block + #keys + returns stringified versions of all registered keys + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + import + allows importing of nested namespaces + allows importing of namespaces + #each_key + returns the container + yields stringified versions of all registered keys to the block + #key? + when key exists in container + is expected to equal true + when key does not exist in container + is expected to equal false + registering a proc + without options + with arguments + registers and resolves a proc + without arguments + registers and resolves an object + with option memoize: true + registers and resolves a proc + only resolves the proc once + when receiving something other than a proc + is expected to raise Dry::Container::Error + with option call: false + registers and resolves a proc + registering an object + without options + registers and resolves the object + with option call: false + registers and resolves an object + #decorate + with an instance as a decorator + expected to pass original value to decorator#call method + for not callable item + wrapping + expected to be an instance of SimpleDelegator + memoization + decorates static value only once + for callable item + memoize true + is expected to equal #:0x0000ffffa7cab708>)> + memoize false + does not call the block until the key is resolved + is expected not to equal #<#:0x0000ffffa7aa3618> + #merge + with namespace argument + when namespace is not nil + is expected to equal :item + is expected to equal :item + when namespace is nil + is expected to equal :item + is expected to equal :item + without namespace argument + is expected to equal :item + is expected to equal :item + mixing Strings and Symbols + is expected to eql "item" + registering a block + without options + with arguments + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + registers and resolves a proc + without arguments + registers and resolves an object + with option call: false + registers and resolves a proc + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent + .dup + returns a copy that doesn't share registered keys with the parent + .resolve + accepts a fallback block + inheritance + sets up a container for a child class Dry::Container::Mixin included behaves like a container - .resolve - accepts a fallback block - stubbing - keys can be stubbed - raises an error when key is missing - only other keys remain accesible - keys can be reverted back to their original value - mixing Strings and Symbols - is expected to eql "stub" - with block argument - keys are stubbed only while inside the block - executes the block with the given stubs - .dup - returns a copy that doesn't share registered keys with the parent - .freeze - returns self back - allows to freeze a container so that nothing can be registered later - .clone - returns a copy that doesn't share registered keys with the parent - re-uses frozen container configuration + resolver + custom + is expected to eq # + is expected to have received call({}, :key) 1 time + default + is expected to be a kind of Dry::Container::Resolver namespace_separator default is expected to eq "." custom is expected to eq "item" - resolver - default - is expected to be a kind of Dry::Container::Resolver - custom - is expected to eq # - is expected to have received call({}, :key) 1 time registry - custom - is expected to have received call({}, :key, :item, {}) 1 time default is expected to be a kind of Dry::Container::Registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + .freeze + allows to freeze a container so that nothing can be registered later + returns self back + stubbing + raises an error when key is missing + only other keys remain accesible + keys can be reverted back to their original value + keys can be stubbed + with block argument + keys are stubbed only while inside the block + executes the block with the given stubs + mixing Strings and Symbols + is expected to eql "stub" + .resolve + accepts a fallback block with default configuration - #keys - returns stringified versions of all registered keys - namespace - with nesting and when block takes arguments - resolves items relative to the namespace - when block takes arguments - registers items under the given namespace - when block does not take arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - registering a block - with option call: false - registers and resolves a proc - without options - without arguments - registers and resolves an object - with arguments - registers and resolves a proc - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + #decorate + for not callable item + memoization + decorates static value only once + wrapping + expected to be an instance of SimpleDelegator + with an instance as a decorator + expected to pass original value to decorator#call method + for callable item + memoize true + is expected to equal #:0x0000ffffa797ce10>)> + memoize false + does not call the block until the key is resolved + is expected not to equal #<#:0x0000ffffa7958718> #each_key - yields stringified versions of all registered keys to the block returns the container + yields stringified versions of all registered keys to the block #merge + without namespace argument + is expected to equal :item + is expected to equal :item with namespace argument when namespace is not nil is expected to equal :item @@ -977,58 +1136,66 @@ when namespace is nil is expected to equal :item is expected to equal :item - without namespace argument - is expected to equal :item - is expected to equal :item - registering an object - without options - registers and resolves the object - with option call: false - registers and resolves an object #each - yields stringified versions of all registered keys to the block returns the container - #decorate - for not callable item - memoization - decorates static value only once - wrapping - expected to be an instance of SimpleDelegator - for callable item - memoize true - is expected to equal #:0x0000ffffa855ceb0>)> - memoize false - does not call the block until the key is resolved - is expected not to equal #<#:0x0000ffffa853f158> - with an instance as a decorator - expected to pass original value to decorator#call method + yields stringified versions of all registered keys to the block + registering a block + with option call: false + registers and resolves a proc + without options + with arguments + registers and resolves a proc + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments + without arguments + registers and resolves an object + mixing Strings and Symbols + is expected to eql "item" + #keys + returns stringified versions of all registered keys + import + allows importing of namespaces + allows importing of nested namespaces registering with the same key multiple times is expected to raise Dry::Container::Error + namespace + with nesting and when block takes arguments + resolves items relative to the namespace + when block does not take arguments + registers items under the given namespace + with nesting + registers items under the given namespaces + when block takes arguments + registers items under the given namespace registering a proc - with option memoize: true - registers and resolves a proc - only resolves the proc once - when receiving something other than a proc - is expected to raise Dry::Container::Error without options without arguments registers and resolves an object with arguments registers and resolves a proc + with option memoize: true + registers and resolves a proc + only resolves the proc once + when receiving something other than a proc + is expected to raise Dry::Container::Error with option call: false registers and resolves a proc - resolving with a key that has not been registered - is expected to raise Dry::Container::Error + registering an object + without options + registers and resolves the object + with option call: false + registers and resolves an object #key? - when key exists in container - is expected to equal true when key does not exist in container is expected to equal false - mixing Strings and Symbols - is expected to eql "item" - import - allows importing of nested namespaces - allows importing of namespaces + when key exists in container + is expected to equal true + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + .dup + returns a copy that doesn't share registered keys with the parent + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent into a class with a custom .initialize method does not fail on missing member variable extended @@ -1036,269 +1203,143 @@ .freeze allows to freeze a container so that nothing can be registered later returns self back + stubbing + keys can be stubbed + only other keys remain accesible + raises an error when key is missing + keys can be reverted back to their original value + with block argument + keys are stubbed only while inside the block + executes the block with the given stubs + mixing Strings and Symbols + is expected to eql "stub" .dup returns a copy that doesn't share registered keys with the parent - .clone - re-uses frozen container - returns a copy that doesn't share registered keys with the parent - configuration - resolver - custom - is expected to have received call({}, :key) 1 time - is expected to eq # - default - is expected to be a kind of Dry::Container::Resolver - registry - default - is expected to be a kind of Dry::Container::Registry - custom - is expected to have received call({}, :key, :item, {}) 1 time - namespace_separator - default - is expected to eq "." - custom - is expected to eq "item" - .resolve - accepts a fallback block with default configuration - registering a block + resolving with a key that has not been registered + is expected to raise Dry::Container::Error + #each_key + yields stringified versions of all registered keys to the block + returns the container + registering a proc without options - without arguments - registers and resolves an object with arguments - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments registers and resolves a proc + without arguments + registers and resolves an object with option call: false registers and resolves a proc + with option memoize: true + registers and resolves a proc + only resolves the proc once + when receiving something other than a proc + is expected to raise Dry::Container::Error + #keys + returns stringified versions of all registered keys + mixing Strings and Symbols + is expected to eql "item" + import + allows importing of nested namespaces + allows importing of namespaces registering an object without options registers and resolves the object with option call: false registers and resolves an object - registering with the same key multiple times - is expected to raise Dry::Container::Error + #merge + without namespace argument + is expected to equal :item + is expected to equal :item + with namespace argument + when namespace is not nil + is expected to equal :item + is expected to equal :item + when namespace is nil + is expected to equal :item + is expected to equal :item namespace + when block takes arguments + registers items under the given namespace when block does not take arguments registers items under the given namespace with nesting and when block takes arguments resolves items relative to the namespace - when block takes arguments - registers items under the given namespace with nesting registers items under the given namespaces #decorate - for not callable item - memoization - decorates static value only once - wrapping - expected to be an instance of SimpleDelegator with an instance as a decorator expected to pass original value to decorator#call method for callable item + memoize true + is expected to equal #:0x0000ffffa79c1470>)> memoize false - is expected not to equal #<#:0x0000ffffa85c7e40> + is expected not to equal #<#:0x0000ffffa7976808> does not call the block until the key is resolved - memoize true - is expected to equal #:0x0000ffffa860b690>)> - registering a proc + for not callable item + memoization + decorates static value only once + wrapping + expected to be an instance of SimpleDelegator + registering with the same key multiple times + is expected to raise Dry::Container::Error + #key? + when key exists in container + is expected to equal true + when key does not exist in container + is expected to equal false + registering a block + with option call: false + registers and resolves a proc without options without arguments registers and resolves an object with arguments registers and resolves a proc - with option memoize: true - registers and resolves a proc - only resolves the proc once - when receiving something other than a proc - is expected to raise Dry::Container::Error - with option call: false - registers and resolves a proc - import - allows importing of namespaces - allows importing of nested namespaces - #keys - returns stringified versions of all registered keys - #key? - when key does not exist in container - is expected to equal false - when key exists in container - is expected to equal true + does not call a proc on resolving if one accepts an arbitrary number of keyword arguments #each - yields stringified versions of all registered keys to the block - returns the container - #each_key returns the container yields stringified versions of all registered keys to the block - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - #merge - without namespace argument - is expected to equal :item - is expected to equal :item - with namespace argument - when namespace is not nil - is expected to equal :item - is expected to equal :item - when namespace is nil - is expected to equal :item - is expected to equal :item - mixing Strings and Symbols - is expected to eql "item" - stubbing - only other keys remain accesible - keys can be reverted back to their original value - keys can be stubbed - raises an error when key is missing - mixing Strings and Symbols - is expected to eql "stub" - with block argument - executes the block with the given stubs - keys are stubbed only while inside the block - -Dry::Container - inheritance - sets up a container for a child class - behaves like a container - with default configuration - resolving with a key that has not been registered - is expected to raise Dry::Container::Error - namespace - with nesting and when block takes arguments - resolves items relative to the namespace - when block takes arguments - registers items under the given namespace - with nesting - registers items under the given namespaces - when block does not take arguments - registers items under the given namespace - import - allows importing of namespaces - allows importing of nested namespaces - mixing Strings and Symbols - is expected to eql "item" - #each - returns the container - yields stringified versions of all registered keys to the block - #each_key - yields stringified versions of all registered keys to the block - returns the container - #key? - when key exists in container - is expected to equal true - when key does not exist in container - is expected to equal false - registering an object - with option call: false - registers and resolves an object - without options - registers and resolves the object - registering a proc - with option call: false - registers and resolves a proc - without options - without arguments - registers and resolves an object - with arguments - registers and resolves a proc - with option memoize: true - registers and resolves a proc - only resolves the proc once - when receiving something other than a proc - is expected to raise Dry::Container::Error - #decorate - for not callable item - memoization - decorates static value only once - wrapping - expected to be an instance of SimpleDelegator - for callable item - memoize true - is expected to equal #:0x0000ffffa8463a18>)> - memoize false - is expected not to equal #<#:0x0000ffffa845ce98> - does not call the block until the key is resolved - with an instance as a decorator - expected to pass original value to decorator#call method - registering with the same key multiple times - is expected to raise Dry::Container::Error - registering a block - with option call: false - registers and resolves a proc - without options - with arguments - does not call a proc on resolving if one accepts an arbitrary number of keyword arguments - registers and resolves a proc - without arguments - registers and resolves an object - #merge - without namespace argument - is expected to equal :item - is expected to equal :item - with namespace argument - when namespace is nil - is expected to equal :item - is expected to equal :item - when namespace is not nil - is expected to equal :item - is expected to equal :item - #keys - returns stringified versions of all registered keys - stubbing - raises an error when key is missing - keys can be reverted back to their original value - keys can be stubbed - only other keys remain accesible - with block argument - keys are stubbed only while inside the block - executes the block with the given stubs - mixing Strings and Symbols - is expected to eql "stub" - configuration - registry - custom - is expected to have received call({}, :key, :item, {}) 1 time - default - is expected to be a kind of Dry::Container::Registry - resolver - custom - is expected to eq # - is expected to have received call({}, :key) 1 time - default - is expected to be a kind of Dry::Container::Resolver - namespace_separator - custom - is expected to eq "item" - default - is expected to eq "." - .clone - returns a copy that doesn't share registered keys with the parent - re-uses frozen container - .dup - returns a copy that doesn't share registered keys with the parent - .resolve - accepts a fallback block - .freeze - allows to freeze a container so that nothing can be registered later - returns self back + configuration + registry + default + is expected to be a kind of Dry::Container::Registry + custom + is expected to have received call({}, :key, :item, {}) 1 time + namespace_separator + default + is expected to eq "." + custom + is expected to eq "item" + resolver + custom + is expected to eq # + is expected to have received call({}, :key) 1 time + default + is expected to be a kind of Dry::Container::Resolver + .resolve + accepts a fallback block + .clone + re-uses frozen container + returns a copy that doesn't share registered keys with the parent -Top 3 slowest examples (0.06331 seconds, 11.0% of total time): - Dry::Container::Mixin included behaves like a container with default configuration #keys returns stringified versions of all registered keys - 0.02215 seconds ./spec/support/shared_examples/container.rb:333 - Dry::Container::Mixin included behaves like a container configuration resolver custom is expected to eq # - 0.02194 seconds ./spec/support/shared_examples/container.rb:72 - Dry::Container::Mixin extended behaves like a container with default configuration namespace with nesting registers items under the given namespaces - 0.01923 seconds ./spec/support/shared_examples/container.rb:518 +Top 3 slowest examples (0.06386 seconds, 11.7% of total time): + Dry::Container::Mixin extended behaves like a container with default configuration import allows importing of namespaces + 0.02615 seconds ./spec/support/shared_examples/container.rb:540 + Dry::Container behaves like a container configuration registry custom is expected to have received call({}, :key, :item, {}) 1 time + 0.02297 seconds ./spec/support/shared_examples/container.rb:32 + Dry::Container behaves like a container with default configuration registering an object without options registers and resolves the object + 0.01474 seconds ./spec/support/shared_examples/container.rb:219 Top 2 slowest example groups: Dry::Container::Mixin - 0.00382 seconds average (0.46238 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 + 0.00306 seconds average (0.36967 seconds / 121 examples) ./spec/integration/mixin_spec.rb:1 Dry::Container - 0.00168 seconds average (0.1026 seconds / 61 examples) ./spec/integration/container_spec.rb:1 + 0.00274 seconds average (0.16686 seconds / 61 examples) ./spec/integration/container_spec.rb:1 -Finished in 0.57317 seconds (files took 0.76343 seconds to load) +Finished in 0.54383 seconds (files took 0.68405 seconds to load) 182 examples, 0 failures -Randomized with seed 53006 +Randomized with seed 20446 ┌──────────────────────────────────────────────────────────────────────────────┐ @@ -1330,12 +1371,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/8517/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/8517/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/10033 and its subdirectories -I: Current time: Sun Apr 16 08:51:48 -12 2023 -I: pbuilder-time-stamp: 1681678308 +I: removing directory /srv/workspace/pbuilder/8517 and its subdirectories +I: Current time: Sun May 19 17:16:15 +14 2024 +I: pbuilder-time-stamp: 1716088575