0s autopkgtest [02:03:17]: starting date and time: 2026-02-07 02:03:17+0000 0s autopkgtest [02:03:17]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [02:03:17]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.m0ulyctv/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --apt-pocket=proposed=src:ruby3.3 --apt-upgrade ruby-recursive-open-struct --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=ruby3.3/3.3.8-2ubuntu3 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-arm64 --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-arm64-26.secgroup --name adt-resolute-arm64-ruby-recursive-open-struct-20260207-020317-juju-7f2275-prod-proposed-migration-environment-2-40a20d41-7b3c-46f0-afa8-5a101d6f73dd --image adt/ubuntu-resolute-arm64-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-arm64 -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 4s Creating nova instance adt-resolute-arm64-ruby-recursive-open-struct-20260207-020317-juju-7f2275-prod-proposed-migration-environment-2-40a20d41-7b3c-46f0-afa8-5a101d6f73dd from image adt/ubuntu-resolute-arm64-server-20260206.img (UUID 52d915c1-d61a-4ba6-a174-862572dd1054)... 55s autopkgtest [02:04:12]: testbed dpkg architecture: arm64 55s autopkgtest [02:04:12]: testbed apt version: 3.1.15 55s autopkgtest [02:04:12]: @@@@@@@@@@@@@@@@@@@@ test bed setup 55s autopkgtest [02:04:12]: testbed release detected to be: None 56s autopkgtest [02:04:13]: updating testbed package index (apt update) 56s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 56s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 56s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 57s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 57s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [206 kB] 57s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [10.7 kB] 57s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [36.7 kB] 57s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1707 kB] 57s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 Packages [270 kB] 57s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 c-n-f Metadata [6636 B] 57s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 Packages [136 kB] 57s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/restricted arm64 c-n-f Metadata [328 B] 57s Get:13 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 Packages [1424 kB] 57s Get:14 http://ftpmaster.internal/ubuntu resolute-proposed/universe arm64 c-n-f Metadata [35.7 kB] 57s Get:15 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 Packages [24.5 kB] 57s Get:16 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse arm64 c-n-f Metadata [788 B] 59s Fetched 3982 kB in 1s (4343 kB/s) 60s Reading package lists... 60s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 60s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 60s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 60s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 61s Reading package lists... 61s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Calculating upgrade... 63s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 63s autopkgtest [02:04:20]: upgrading testbed (apt dist-upgrade and autopurge) 63s Reading package lists... 63s Building dependency tree... 63s Reading state information... 63s Calculating upgrade... 64s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 64s Reading package lists... 64s Building dependency tree... 64s Reading state information... 64s Solving dependencies... 65s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 67s autopkgtest [02:04:24]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:41:39 UTC 2026 68s autopkgtest [02:04:25]: @@@@@@@@@@@@@@@@@@@@ apt-source ruby-recursive-open-struct 69s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ruby-recursive-open-struct 2.0.0-1 (dsc) [2189 B] 69s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ruby-recursive-open-struct 2.0.0-1 (tar) [18.9 kB] 69s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ruby-recursive-open-struct 2.0.0-1 (diff) [2884 B] 69s gpgv: Signature made Sat Oct 25 15:52:38 2025 UTC 69s gpgv: using RSA key 5C7ABEA20F8630459CC8C8B5E27F2CF8458C2FA4 69s gpgv: Can't check signature: No public key 69s dpkg-source: warning: cannot verify inline signature for ./ruby-recursive-open-struct_2.0.0-1.dsc: no acceptable signature found 69s autopkgtest [02:04:26]: testing package ruby-recursive-open-struct version 2.0.0-1 70s autopkgtest [02:04:27]: build not needed 70s autopkgtest [02:04:27]: test gem2deb-test-runner: preparing testbed 70s Reading package lists... 71s Building dependency tree... 71s Reading state information... 71s Solving dependencies... 71s The following NEW packages will be installed: 71s gem2deb-test-runner libruby libruby3.3 pry rake ruby ruby-coderay ruby-csv 71s ruby-did-you-mean ruby-diff-lcs ruby-method-source ruby-minitest 71s ruby-net-telnet ruby-power-assert ruby-recursive-open-struct ruby-rspec 71s ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support 71s ruby-ruby2-keywords ruby-rubygems ruby-test-unit ruby-webrick ruby-xmlrpc 71s ruby3.3 rubygems-integration 71s 0 upgraded, 27 newly installed, 0 to remove and 0 not upgraded. 71s Need to get 7185 kB of archives. 71s After this operation, 40.8 MB of additional disk space will be used. 71s Get:1 http://ftpmaster.internal/ubuntu resolute/main arm64 rubygems-integration all 1.19build1 [5666 B] 71s Get:2 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-csv all 3.3.4-1 [43.0 kB] 71s Get:3 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 71s Get:4 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 71s Get:5 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 71s Get:6 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-webrick all 1.9.1-1build1 [60.9 kB] 71s Get:7 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 71s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 libruby3.3 arm64 3.3.8-2ubuntu3 [5827 kB] 71s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main arm64 ruby3.3 arm64 3.3.8-2ubuntu3 [49.1 kB] 71s Get:10 http://ftpmaster.internal/ubuntu resolute/main arm64 libruby arm64 1:3.3 [5164 B] 71s Get:11 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby-rubygems all 3.6.7-2ubuntu2 [332 kB] 71s Get:12 http://ftpmaster.internal/ubuntu resolute/main arm64 ruby arm64 1:3.3 [3668 B] 71s Get:13 http://ftpmaster.internal/ubuntu resolute/main arm64 rake all 13.2.1-1build1 [45.9 kB] 71s Get:14 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-minitest all 5.26.1-1 [49.3 kB] 71s Get:15 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-power-assert all 2.0.5-1 [12.0 kB] 71s Get:16 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-test-unit all 3.6.2-1 [67.0 kB] 71s Get:17 http://ftpmaster.internal/ubuntu resolute/universe arm64 gem2deb-test-runner arm64 2.2.5 [18.3 kB] 71s Get:18 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-coderay all 1.1.3-8build1 [78.4 kB] 71s Get:19 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-method-source all 1.1.0-1 [8502 B] 71s Get:20 http://ftpmaster.internal/ubuntu resolute/universe arm64 pry all 0.15.2-1 [122 kB] 71s Get:21 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-diff-lcs all 1.5.1-1 [22.8 kB] 71s Get:22 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-recursive-open-struct all 2.0.0-1 [8386 B] 71s Get:23 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 71s Get:24 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 71s Get:25 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 71s Get:26 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 71s Get:27 http://ftpmaster.internal/ubuntu resolute/universe arm64 ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 72s Fetched 7185 kB in 0s (30.8 MB/s) 72s Selecting previously unselected package rubygems-integration. 72s (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 ... 89360 files and directories currently installed.) 72s Preparing to unpack .../00-rubygems-integration_1.19build1_all.deb ... 72s Unpacking rubygems-integration (1.19build1) ... 72s Selecting previously unselected package ruby-csv. 72s Preparing to unpack .../01-ruby-csv_3.3.4-1_all.deb ... 72s Unpacking ruby-csv (3.3.4-1) ... 72s Selecting previously unselected package ruby-did-you-mean. 72s Preparing to unpack .../02-ruby-did-you-mean_1.6.3-2build1_all.deb ... 72s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 72s Selecting previously unselected package ruby-net-telnet. 72s Preparing to unpack .../03-ruby-net-telnet_0.2.0-1build1_all.deb ... 72s Unpacking ruby-net-telnet (0.2.0-1build1) ... 72s Selecting previously unselected package ruby-ruby2-keywords. 72s Preparing to unpack .../04-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 72s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 72s Selecting previously unselected package ruby-webrick. 72s Preparing to unpack .../05-ruby-webrick_1.9.1-1build1_all.deb ... 72s Unpacking ruby-webrick (1.9.1-1build1) ... 72s Selecting previously unselected package ruby-xmlrpc. 72s Preparing to unpack .../06-ruby-xmlrpc_0.3.3-2build1_all.deb ... 72s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 72s Selecting previously unselected package libruby3.3:arm64. 72s Preparing to unpack .../07-libruby3.3_3.3.8-2ubuntu3_arm64.deb ... 72s Unpacking libruby3.3:arm64 (3.3.8-2ubuntu3) ... 73s Selecting previously unselected package ruby3.3. 73s Preparing to unpack .../08-ruby3.3_3.3.8-2ubuntu3_arm64.deb ... 73s Unpacking ruby3.3 (3.3.8-2ubuntu3) ... 73s Selecting previously unselected package libruby:arm64. 73s Preparing to unpack .../09-libruby_1%3a3.3_arm64.deb ... 73s Unpacking libruby:arm64 (1:3.3) ... 73s Selecting previously unselected package ruby-rubygems. 73s Preparing to unpack .../10-ruby-rubygems_3.6.7-2ubuntu2_all.deb ... 73s Unpacking ruby-rubygems (3.6.7-2ubuntu2) ... 73s Selecting previously unselected package ruby. 73s Preparing to unpack .../11-ruby_1%3a3.3_arm64.deb ... 73s Unpacking ruby (1:3.3) ... 73s Selecting previously unselected package rake. 73s Preparing to unpack .../12-rake_13.2.1-1build1_all.deb ... 73s Unpacking rake (13.2.1-1build1) ... 73s Selecting previously unselected package ruby-minitest. 73s Preparing to unpack .../13-ruby-minitest_5.26.1-1_all.deb ... 73s Unpacking ruby-minitest (5.26.1-1) ... 73s Selecting previously unselected package ruby-power-assert. 73s Preparing to unpack .../14-ruby-power-assert_2.0.5-1_all.deb ... 73s Unpacking ruby-power-assert (2.0.5-1) ... 73s Selecting previously unselected package ruby-test-unit. 73s Preparing to unpack .../15-ruby-test-unit_3.6.2-1_all.deb ... 73s Unpacking ruby-test-unit (3.6.2-1) ... 73s Selecting previously unselected package gem2deb-test-runner. 73s Preparing to unpack .../16-gem2deb-test-runner_2.2.5_arm64.deb ... 73s Unpacking gem2deb-test-runner (2.2.5) ... 73s Selecting previously unselected package ruby-coderay. 73s Preparing to unpack .../17-ruby-coderay_1.1.3-8build1_all.deb ... 73s Unpacking ruby-coderay (1.1.3-8build1) ... 73s Selecting previously unselected package ruby-method-source. 73s Preparing to unpack .../18-ruby-method-source_1.1.0-1_all.deb ... 73s Unpacking ruby-method-source (1.1.0-1) ... 73s Selecting previously unselected package pry. 73s Preparing to unpack .../19-pry_0.15.2-1_all.deb ... 73s Unpacking pry (0.15.2-1) ... 73s Selecting previously unselected package ruby-diff-lcs. 73s Preparing to unpack .../20-ruby-diff-lcs_1.5.1-1_all.deb ... 73s Unpacking ruby-diff-lcs (1.5.1-1) ... 73s Selecting previously unselected package ruby-recursive-open-struct. 73s Preparing to unpack .../21-ruby-recursive-open-struct_2.0.0-1_all.deb ... 73s Unpacking ruby-recursive-open-struct (2.0.0-1) ... 73s Selecting previously unselected package ruby-rspec-support. 73s Preparing to unpack .../22-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 73s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 73s Selecting previously unselected package ruby-rspec-core. 73s Preparing to unpack .../23-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 73s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 73s Selecting previously unselected package ruby-rspec-expectations. 73s Preparing to unpack .../24-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 73s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 73s Selecting previously unselected package ruby-rspec-mocks. 73s Preparing to unpack .../25-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 73s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 73s Selecting previously unselected package ruby-rspec. 73s Preparing to unpack .../26-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 73s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 73s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 73s Setting up ruby-power-assert (2.0.5-1) ... 73s Setting up rubygems-integration (1.19build1) ... 73s Setting up ruby-minitest (5.26.1-1) ... 73s Setting up ruby-method-source (1.1.0-1) ... 73s Setting up ruby-test-unit (3.6.2-1) ... 73s Setting up ruby-net-telnet (0.2.0-1build1) ... 73s Setting up ruby-csv (3.3.4-1) ... 73s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 73s Setting up ruby-webrick (1.9.1-1build1) ... 73s Setting up ruby-did-you-mean (1.6.3-2build1) ... 73s Setting up ruby-xmlrpc (0.3.3-2build1) ... 73s Setting up rake (13.2.1-1build1) ... 73s Setting up libruby3.3:arm64 (3.3.8-2ubuntu3) ... 73s Setting up ruby-recursive-open-struct (2.0.0-1) ... 73s Setting up ruby3.3 (3.3.8-2ubuntu3) ... 73s Setting up libruby:arm64 (1:3.3) ... 73s Setting up ruby (1:3.3) ... 73s Setting up ruby-coderay (1.1.3-8build1) ... 73s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 73s Setting up pry (0.15.2-1) ... 73s Setting up ruby-diff-lcs (1.5.1-1) ... 73s Setting up ruby-rubygems (3.6.7-2ubuntu2) ... 73s Setting up gem2deb-test-runner (2.2.5) ... 73s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 73s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 73s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 73s Processing triggers for libc-bin (2.42-2ubuntu4) ... 73s Processing triggers for man-db (2.13.1-1) ... 75s autopkgtest [02:04:32]: test gem2deb-test-runner: gem2deb-test-runner --autopkgtest --check-dependencies 2>&1 75s autopkgtest [02:04:32]: test gem2deb-test-runner: [----------------------- 75s 75s ┌──────────────────────────────────────────────────────────────────────────────┐ 75s │ Checking Rubygems dependency resolution on ruby3.3 │ 75s └──────────────────────────────────────────────────────────────────────────────┘ 75s 75s RUBYLIB=. GEM_PATH= ruby3.3 -e gem\ \"recursive-open-struct\" 75s mv lib ./.gem2deb.lib 75s mv ./.gem2deb.lib lib 75s 75s ┌──────────────────────────────────────────────────────────────────────────────┐ 75s │ Run tests for ruby3.3 from debian/ruby-tests.rake │ 75s └──────────────────────────────────────────────────────────────────────────────┘ 75s 75s RUBYLIB=. GEM_PATH= ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake 75s mv lib ./.gem2deb.lib 76s /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 76s Run options: include {:focus=>true} 76s 76s All examples were filtered out; ignoring {:focus=>true} 76s 76s RecursiveOpenStruct 76s #debug_inspect 76s should have a simple way of display 76s 76s RecursiveOpenStruct 76s indifferent access 76s setting value with method 76s allows getting with method 76s allows getting with symbol 76s allows getting with string 76s setting value with symbol 76s allows getting with method 76s allows getting with symbol 76s allows getting with string 76s setting value with string 76s allows getting with method 76s allows getting with symbol 76s allows getting with string 76s overwriting values 76s set with method 76s overrides with symbol 76s overrides with string 76s set with symbol 76s overrides with method 76s overrides with string 76s set with string 76s overrides with method 76s overrides with symbol 76s set with hash 76s overrides with method 76s overrides with symbol 76s overrides with string 76s when preserve_original_keys is not enabled 76s transforms original keys to symbols 76s after initialization 76s in recursive hashes 76s after resetting value 76s when preserve_original_keys is enabled 76s preserves the original keys 76s after initialization 76s in recursive hashes 76s after resetting value 76s when undefined method 76s when raise_on_missing is enabled 76s raises NoMethodError 76s when raise_on_missing is disabled 76s preserves the original keys 76s returns nil 76s 76s RecursiveOpenStruct 76s behavior it inherits from OpenStruct 76s when not initialized from anything 76s can represent arbitrary data objects 76s returns nil for missing attributes 76s when initialized with nil 76s returns nil for missing attributes 76s when initialized with an empty hash 76s returns nil for missing attributes 76s when initialized from a hash 76s can modify an existing key 76s that contains symbol keys 76s turns those symbol keys into method names 76s that contains string keys 76s turns those string keys into method names 76s that contains keys that mirror existing private methods 76s handles subscript notation without calling the method name first (#42) 76s that contains keys that mirror existing public methods inherited from Object 76s handles subscript notation without calling the existing methods 76s handling of arbitrary attributes 76s #respond? 76s is expected to respond to #blah 76s is expected to respond to #blah= 76s is expected not to respond to #asdf 76s is expected not to respond to #asdf= 76s #methods 76s is expected to include :blah 76s is expected to include :blah= 76s is expected not to include :asdf 76s is expected not to include :asdf= 76s handling of freezing 76s can read existing keys 76s cannot write new keys 76s cannot write existing keys 76s with recursive structure 76s can read existing sub-elements 76s can write new sub-elements 76s can write existing sub-elements 76s 76s RecursiveOpenStruct 76s OpenStruct 2.0+ methods 76s Hash style setter 76s method exists 76s changes the value 76s delete_field 76s removes the value 76s removes the getter method 76s removes the setter method 76s works with indifferent access 76s eql? 76s with identical ROS 76s is expected to be eql # 76s with similar ROS 76s is expected to be eql # 76s with same Hash 76s is expected to be eql # 76s with duplicated ROS 76s fails on different value 76s fails on missing field 76s fails on added field 76s hash 76s calculates table hash 76s each_pair 76s iterates over hash keys, with keys as symbol 76s 76s RecursiveOpenStruct 76s OpenStruct 2.3.0+ methods 76s #dig 76s recurse_over_arrays: false 76s OpenStruct-like behavior 76s is expected to eq 2 76s is expected to eq "doo" 76s is expected to eq "one" 76s recursive behavior 76s is expected to eq #"one"}]> 76s is expected to eq {:inner=>"one"} 76s recurse_over_arrays: true 76s OpenStruct-like behavior 76s is expected to eq 2 76s is expected to eq "doo" 76s is expected to eq "one" 76s recursive behavior 76s is expected to eq #"one"}]> 76s is expected to eq # 76s 76s RecursiveOpenStruct 76s subclassing RecursiveOpenStruct 76s nested objects use the subclass of the parent 76s 76s RecursiveOpenStruct 76s recursive behavior 76s can convert the entire hash tree back into a hash 76s returns accessed hashes as RecursiveOpenStructs instead of hashes 76s handles subscript notation the same way as dotted notation 76s uses #key_as_a_hash to return key as a Hash 76s handles sub-element replacement with dotted notation before member setup 76s handles being dump then loaded by Marshal 76s can modify a key of a sub-element 76s handling loops in the original Hashes 76s is expected to eq "a" 76s is expected to eq "b" 76s is expected to eq "a" 76s is expected to eq "b" 76s is expected to eq #"b", :h1=>{:a=>"a", :h2=>{...}}}> 76s is expected not to eq #"a", :h2=>{:a=>"b", :h1=>{...}}}> 76s subscript mutation notation 76s handles the basic case 76s recurses properly 76s can replace the entire hash 76s updates sub-element cache 76s after a sub-element has been modified 76s does not mutate the original hash tree passed to the constructor 76s limits the deep-copy to the initial hash tree 76s .to_h 76s returns a hash tree that contains those modifications 76s modifying the returned hash tree does not modify the ROS 76s #dup 76s preserves sub-element modifications 76s allows the copy's sub-elements to be modified independently from the original's 76s when memoizing and then modifying entire recursive structures 76s when modifying an entire Hash 76s returns the modified value instead of the memoized one 76s the old value no longer exists 76s when modifying an entire Array 76s returns the modified value instead of the memoized one 76s recursing over arrays 76s when dump and loaded by Marshal 76s is expected to eq 3 76s is expected to eq "1" 76s is expected to eq "2" 76s is expected to eq [{:foo=>"1"}, {:foo=>"2"}, "baz"] 76s is expected to eq "baz" 76s when recursing over arrays is enabled 76s is expected to eq 3 76s is expected to eq "1" 76s is expected to eq "2" 76s is expected to eq [{:foo=>"1"}, {:foo=>"2"}, "baz"] 76s is expected to eq "baz" 76s when an inner value changes 76s Retains changes across Array lookups 76s propagates the changes through to .to_h across Array lookups 76s deep-copies hashes within Arrays 76s does not mutate the input hash passed to the constructor 76s the deep copy recurses over Arrays as well 76s #dup 76s preserves sub-element modifications 76s allows the copy's sub-elements to be modified independently from the original's 76s when array is nested deeper 76s is expected to eq 3 76s Retains changes across Array lookups 76s when array is in an array 76s is expected to eq 1 76s is expected to eq 3 76s Retains changes across Array lookups 76s when recursing over arrays is disabled 76s is expected to eq 3 76s is expected to eq {:foo=>"1"} 76s is expected to eq "1" 76s modifying an array and recursing over it 76s when adding an array with hashes into the tree 76s ROS's it 76s when appending a hash to an array 76s ROS's it 76s the changes show up in .to_h 76s after appending a hash to an array 76s can have new values be set 76s nested nil values 76s returns nil 76s returns a hash with the key and a nil value 76s 76s Finished in 0.06326 seconds (files took 0.30412 seconds to load) 76s 132 examples, 0 failures 76s 76s mv ./.gem2deb.lib lib 76s autopkgtest [02:04:33]: test gem2deb-test-runner: -----------------------] 77s gem2deb-test-runner PASS 77s autopkgtest [02:04:34]: test gem2deb-test-runner: - - - - - - - - - - results - - - - - - - - - - 77s autopkgtest [02:04:34]: @@@@@@@@@@@@@@@@@@@@ summary 77s gem2deb-test-runner PASS