0s autopkgtest [20:42:00]: starting date and time: 2026-02-03 20:42:00+0000 1s autopkgtest [20:42:01]: git checkout: 508d4a25 a-v-ssh wait_for_ssh: demote "ssh connection failed" to a debug message 1s autopkgtest [20:42:01]: host juju-7f2275-prod-proposed-migration-environment-9; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.7jgjgszr/out --timeout-copy=6000 --setup-commands 'ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,localhost,localdomain,internal,login.ubuntu.com,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,keyserver.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com,radosgw.ps5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:ruby-defaults --apt-upgrade ruby-concurrent --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=ruby-defaults/1:3.3build1 -- lxd -r lxd-armhf-10.145.243.239 lxd-armhf-10.145.243.239:autopkgtest/ubuntu/resolute/armhf 23s autopkgtest [20:42:23]: testbed dpkg architecture: armhf 25s autopkgtest [20:42:25]: testbed apt version: 3.1.14 29s autopkgtest [20:42:29]: @@@@@@@@@@@@@@@@@@@@ test bed setup 31s autopkgtest [20:42:31]: testbed release detected to be: None 39s autopkgtest [20:42:39]: updating testbed package index (apt update) 41s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 41s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 41s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [124 kB] 41s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [124 kB] 41s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1343 kB] 41s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [242 kB] 41s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5260 B] 41s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [27.9 kB] 41s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [283 kB] 41s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1070 kB] 41s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [6336 B] 41s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1400 kB] 41s Get:13 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 42s Get:14 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [310 kB] 42s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1373 kB] 42s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 43s Get:17 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [176 kB] 46s Fetched 43.1 MB in 5s (8549 kB/s) 47s Reading package lists... 53s autopkgtest [20:42:53]: upgrading testbed (apt dist-upgrade and autopurge) 55s Reading package lists... 55s Building dependency tree... 55s Reading state information... 55s Calculating upgrade... 56s The following packages will be upgraded: 56s powermgmt-base systemd-hwe-hwdb 56s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 56s Need to get 11.0 kB of archives. 56s After this operation, 1024 B of additional disk space will be used. 56s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf systemd-hwe-hwdb all 259.0.1 [3152 B] 56s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf powermgmt-base all 1.38ubuntu2 [7878 B] 57s Fetched 11.0 kB in 0s (43.2 kB/s) 57s (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 ... 68394 files and directories currently installed.) 57s Preparing to unpack .../systemd-hwe-hwdb_259.0.1_all.deb ... 57s Unpacking systemd-hwe-hwdb (259.0.1) over (257.7.1) ... 57s Preparing to unpack .../powermgmt-base_1.38ubuntu2_all.deb ... 57s Unpacking powermgmt-base (1.38ubuntu2) over (1.38ubuntu1) ... 57s Setting up powermgmt-base (1.38ubuntu2) ... 57s Setting up systemd-hwe-hwdb (259.0.1) ... 57s Processing triggers for udev (259-1ubuntu3) ... 58s Processing triggers for man-db (2.13.1-1) ... 61s Reading package lists... 61s Building dependency tree... 61s Reading state information... 61s Solving dependencies... 62s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 64s autopkgtest [20:43:04]: rebooting testbed after setup commands that affected boot 106s autopkgtest [20:43:46]: testbed running kernel: Linux 6.8.0-87-generic #88~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Oct 14 14:00:09 UTC 2 133s autopkgtest [20:44:13]: @@@@@@@@@@@@@@@@@@@@ apt-source ruby-concurrent 148s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (dsc) [1707 B] 148s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (tar) [1005 kB] 148s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (diff) [6016 B] 148s gpgv: Signature made Tue Feb 4 18:01:40 2025 UTC 148s gpgv: using EDDSA key 84CFFDC21520F88306EC29D152699AB63F9F2BC3 148s gpgv: Can't check signature: No public key 148s dpkg-source: warning: cannot verify inline signature for ./ruby-concurrent_1.3.4-1.dsc: no acceptable signature found 148s autopkgtest [20:44:28]: testing package ruby-concurrent version 1.3.4-1 150s autopkgtest [20:44:30]: build not needed 153s autopkgtest [20:44:33]: test ruby: preparing testbed 155s Reading package lists... 155s Building dependency tree... 155s Reading state information... 155s Solving dependencies... 156s The following NEW packages will be installed: 156s gem2deb-test-runner libruby libruby3.3 rake ruby ruby-concurrent 156s ruby-concurrent-ext ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-minitest 156s ruby-net-telnet ruby-power-assert ruby-rspec ruby-rspec-core 156s ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support 156s ruby-ruby2-keywords ruby-rubygems ruby-test-unit ruby-timecop ruby-webrick 156s ruby-xmlrpc ruby3.3 rubygems-integration 156s 0 upgraded, 26 newly installed, 0 to remove and 0 not upgraded. 156s Need to get 7049 kB of archives. 156s After this operation, 38.7 MB of additional disk space will be used. 156s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf rubygems-integration all 1.19build1 [5666 B] 156s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-csv all 3.3.4-1 [43.0 kB] 156s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 156s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 156s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 156s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-webrick all 1.9.1-1 [60.8 kB] 156s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 156s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf libruby3.3 armhf 3.3.8-2ubuntu2 [5595 kB] 156s Get:9 http://ftpmaster.internal/ubuntu resolute/main armhf ruby3.3 armhf 3.3.8-2ubuntu2 [59.0 kB] 156s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libruby armhf 1:3.3build1 [5276 B] 156s Get:11 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-rubygems all 3.6.7-2ubuntu1 [332 kB] 156s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf ruby armhf 1:3.3build1 [3676 B] 156s Get:13 http://ftpmaster.internal/ubuntu resolute/main armhf rake all 13.2.1-1build1 [45.9 kB] 156s Get:14 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-minitest all 5.26.1-1 [49.3 kB] 156s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-power-assert all 2.0.5-1 [12.0 kB] 156s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-test-unit all 3.6.2-1 [67.0 kB] 156s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf gem2deb-test-runner armhf 2.2.5 [18.3 kB] 157s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-concurrent all 1.3.4-1 [283 kB] 157s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-concurrent-ext armhf 1.3.4-1 [8586 B] 157s Get:20 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-diff-lcs all 1.5.1-1 [22.8 kB] 157s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 157s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 157s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 157s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 157s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 157s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-timecop all 0.9.10-1.1 [11.5 kB] 157s Fetched 7049 kB in 1s (7153 kB/s) 157s Selecting previously unselected package rubygems-integration. 157s (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 ... 68395 files and directories currently installed.) 157s Preparing to unpack .../00-rubygems-integration_1.19build1_all.deb ... 157s Unpacking rubygems-integration (1.19build1) ... 157s Selecting previously unselected package ruby-csv. 157s Preparing to unpack .../01-ruby-csv_3.3.4-1_all.deb ... 157s Unpacking ruby-csv (3.3.4-1) ... 157s Selecting previously unselected package ruby-did-you-mean. 157s Preparing to unpack .../02-ruby-did-you-mean_1.6.3-2build1_all.deb ... 157s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 157s Selecting previously unselected package ruby-net-telnet. 157s Preparing to unpack .../03-ruby-net-telnet_0.2.0-1build1_all.deb ... 157s Unpacking ruby-net-telnet (0.2.0-1build1) ... 157s Selecting previously unselected package ruby-ruby2-keywords. 157s Preparing to unpack .../04-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 157s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 157s Selecting previously unselected package ruby-webrick. 157s Preparing to unpack .../05-ruby-webrick_1.9.1-1_all.deb ... 157s Unpacking ruby-webrick (1.9.1-1) ... 157s Selecting previously unselected package ruby-xmlrpc. 157s Preparing to unpack .../06-ruby-xmlrpc_0.3.3-2build1_all.deb ... 157s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 157s Selecting previously unselected package libruby3.3:armhf. 157s Preparing to unpack .../07-libruby3.3_3.3.8-2ubuntu2_armhf.deb ... 157s Unpacking libruby3.3:armhf (3.3.8-2ubuntu2) ... 158s Selecting previously unselected package ruby3.3. 158s Preparing to unpack .../08-ruby3.3_3.3.8-2ubuntu2_armhf.deb ... 158s Unpacking ruby3.3 (3.3.8-2ubuntu2) ... 158s Selecting previously unselected package libruby:armhf. 158s Preparing to unpack .../09-libruby_1%3a3.3build1_armhf.deb ... 158s Unpacking libruby:armhf (1:3.3build1) ... 158s Selecting previously unselected package ruby-rubygems. 158s Preparing to unpack .../10-ruby-rubygems_3.6.7-2ubuntu1_all.deb ... 158s Unpacking ruby-rubygems (3.6.7-2ubuntu1) ... 158s Selecting previously unselected package ruby. 158s Preparing to unpack .../11-ruby_1%3a3.3build1_armhf.deb ... 158s Unpacking ruby (1:3.3build1) ... 158s Selecting previously unselected package rake. 158s Preparing to unpack .../12-rake_13.2.1-1build1_all.deb ... 158s Unpacking rake (13.2.1-1build1) ... 158s Selecting previously unselected package ruby-minitest. 158s Preparing to unpack .../13-ruby-minitest_5.26.1-1_all.deb ... 158s Unpacking ruby-minitest (5.26.1-1) ... 158s Selecting previously unselected package ruby-power-assert. 158s Preparing to unpack .../14-ruby-power-assert_2.0.5-1_all.deb ... 158s Unpacking ruby-power-assert (2.0.5-1) ... 158s Selecting previously unselected package ruby-test-unit. 158s Preparing to unpack .../15-ruby-test-unit_3.6.2-1_all.deb ... 158s Unpacking ruby-test-unit (3.6.2-1) ... 158s Selecting previously unselected package gem2deb-test-runner. 158s Preparing to unpack .../16-gem2deb-test-runner_2.2.5_armhf.deb ... 158s Unpacking gem2deb-test-runner (2.2.5) ... 158s Selecting previously unselected package ruby-concurrent. 158s Preparing to unpack .../17-ruby-concurrent_1.3.4-1_all.deb ... 158s Unpacking ruby-concurrent (1.3.4-1) ... 158s Selecting previously unselected package ruby-concurrent-ext. 158s Preparing to unpack .../18-ruby-concurrent-ext_1.3.4-1_armhf.deb ... 158s Unpacking ruby-concurrent-ext (1.3.4-1) ... 158s Selecting previously unselected package ruby-diff-lcs. 158s Preparing to unpack .../19-ruby-diff-lcs_1.5.1-1_all.deb ... 158s Unpacking ruby-diff-lcs (1.5.1-1) ... 158s Selecting previously unselected package ruby-rspec-support. 158s Preparing to unpack .../20-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 158s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 158s Selecting previously unselected package ruby-rspec-core. 158s Preparing to unpack .../21-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 158s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 158s Selecting previously unselected package ruby-rspec-expectations. 158s Preparing to unpack .../22-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 158s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 158s Selecting previously unselected package ruby-rspec-mocks. 158s Preparing to unpack .../23-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 158s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 158s Selecting previously unselected package ruby-rspec. 158s Preparing to unpack .../24-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 158s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 158s Selecting previously unselected package ruby-timecop. 158s Preparing to unpack .../25-ruby-timecop_0.9.10-1.1_all.deb ... 158s Unpacking ruby-timecop (0.9.10-1.1) ... 158s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 158s Setting up ruby-power-assert (2.0.5-1) ... 158s Setting up rubygems-integration (1.19build1) ... 158s Setting up ruby-concurrent (1.3.4-1) ... 158s Setting up ruby-timecop (0.9.10-1.1) ... 158s Setting up ruby-minitest (5.26.1-1) ... 158s Setting up ruby-test-unit (3.6.2-1) ... 158s Setting up ruby-net-telnet (0.2.0-1build1) ... 158s Setting up ruby-csv (3.3.4-1) ... 158s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 158s Setting up ruby-webrick (1.9.1-1) ... 158s Setting up ruby-did-you-mean (1.6.3-2build1) ... 158s Setting up ruby-xmlrpc (0.3.3-2build1) ... 158s Setting up rake (13.2.1-1build1) ... 158s Setting up libruby3.3:armhf (3.3.8-2ubuntu2) ... 158s Setting up ruby3.3 (3.3.8-2ubuntu2) ... 158s Setting up libruby:armhf (1:3.3build1) ... 158s Setting up ruby (1:3.3build1) ... 159s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 159s Setting up ruby-diff-lcs (1.5.1-1) ... 159s Setting up ruby-rubygems (3.6.7-2ubuntu1) ... 159s Setting up gem2deb-test-runner (2.2.5) ... 159s Setting up ruby-concurrent-ext (1.3.4-1) ... 159s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 159s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 159s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 159s Processing triggers for libc-bin (2.42-2ubuntu4) ... 159s Processing triggers for man-db (2.13.1-1) ... 169s autopkgtest [20:44:49]: test ruby: ruby -e "gem 'concurrent-ruby'" \ && ruby -e "gem 'concurrent-ruby-ext'" \ && ruby -e "gem 'concurrent-ruby-edge'" \ && DH_RUBY_GEMSPEC=concurrent-ruby.gemspec gem2deb-test-runner --autopkgtest 2>&1 169s autopkgtest [20:44:49]: test ruby: [----------------------- 172s 172s ┌──────────────────────────────────────────────────────────────────────────────┐ 172s │ Run tests for ruby3.3 from debian/ruby-tests.rake │ 172s └──────────────────────────────────────────────────────────────────────────────┘ 172s 172s RUBYLIB=. GEM_PATH= ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake 172s mv lib ./.gem2deb.lib 172s mv ext ./.gem2deb.ext 172s /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/concurrent/\*_spec.rb --color --backtrace --format documentation --seed 1 172s Run options: exclude {:stress=>true} 172s 172s Randomized with seed 1 172s 172s Concurrent::IVar 172s #initialize 172s can set an initial value 172s does not have to set an initial value 172s can set an initial value with a block 172s does not set an initial value if you pass NULL 172s raises an exception if given both a value and a block 172s observation 172s notifies all observers on #set 172s deadlock avoidance 172s should notify observers outside mutex lock 172s should notify a new observer added after fulfillment outside lock 172s it should behave like ivar 172s initialization 172s sets the state to incomplete 172s it should behave like dereferenceable 172s does not call #freeze when #freeze_on_deref is set and the value is nil 172s defaults :copy_on_deref to nil 172s defaults :dup_on_deref to false 172s supports dereference flags with observers 172s calls #freeze when the :freeze_on_deref option is true 172s defaults :freeze_on_deref to false 172s does not call #dup when #dup_on_deref is set and the value is nil 172s calls #dup when the :dup_on_deref option is true 172s calls the block when the :copy_on_deref option is passed a proc 172s does not call the #copy_on_deref block when the value is nil 172s calls the :copy block first followed by #dup followed by #freeze 172s it should behave like obligation 172s #value 172s returns nil when reaching the optional timeout value 172s is nil when :pending 173s blocks the caller when :pending and timeout is nil 173s returns the value when fulfilled before timeout 173s is set to the return value of the block when :fulfilled 173s is nil when :rejected 173s returns nil when timeout reached 173s returns immediately when timeout is zero 173s #state 173s is :pending when first created 173s is :fulfilled when the handler completes 173s is :rejected when the handler raises an exception 173s #reason 173s is nil when :fulfilled 173s is set to error object of the exception when :rejected 173s is nil when :pending 173s it should behave like observable 173s #delete_observer 173s deletes the given observer if called before first notification 173s returns the given observer even when not found in the observer set 173s returns the removed observer if found in the observer set 173s #add_observer 173s raises an exception if not given an observer or a block 173s adds an observer if called before first notification 173s raises an exception when given both an observer and a block 173s creates an observer from a block if called before first notification 173s adds an observer with :func if called before first notification 173s first notification 174s does not notify any observers after #delete_observers called 174s calls the appropriate function on all observers which specified a :func 175s does not notify any observers removed with #delete_observer 175s calls the proc for all observers added as a block 175s calls the #update method on all observers without a specified :func 175s #count_observers 175s returns zero for a new observable object 175s returns a count of registered observers if called before first notification 175s returns zero after #delete_observers has been called 175s #delete_observers 175s deletes all observers when called before first notification 175s returns self 175s #set 175s raises an exception when given neither a value nor a block 175s raises an exception if set more than once 175s rejects when given a block which raises an exception 175s returns self 175s sets the state to be fulfilled 175s fulfils when given a block which executes successfully 175s raises an exception when given a value and a block 175s sets the value 175s #fail 175s sets the reason to the given exception 175s raises an exception if set more than once 175s sets the value to be nil 175s returns self 175s defaults the reason to a StandardError 175s sets the state to be rejected 175s #try_set 175s when unset 175s assigns the value 175s assigns the block result 175s returns true 175s when rejected 175s does not assign the block result 175s returns false 175s has a nil value 175s does not assign the value 175s when fulfilled 175s does not assign the value 175s returns false 175s does not assign the block result 175s 175s Concurrent::LazyRegister 175s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 175s 175s dataflow 175s #dataflow uses the global fast executor 175s #dataflow_with raises an exception when no executor given 175s raises an exception when no block given 175s accepts completed dependencies 175s doesn't raise exceptions from dependencies, unless called with ! 175s returns a Future 175s accepts zero or more dependencies 175s accepts uncompleted dependencies 175s #dataflow_with uses the given executor 175s raises an exception if any dependencies are not IVars 175s passes the values of dependencies into the block 175s if there is more than one 175s if there is just one 175s does not schedule the Future 175s if no dependencies are completed 175s if one dependency of two is completed 175s module function 175s can be called as Concurrent.dataflow and Concurrent.dataflow_with 175s counts already executed dependencies 175s if there is more than one 175s if there is just one 175s schedules the Future when all dependencies are available 175s if there is more than one 175s if there is just one 175s 175s Concurrent::MutableStruct 175s #[member]= 175s sets the value when given a valid string member 175s sets the value when given a valid symbol member 175s raises an exception when given a non-existent symbol member 175s raises an exception when given a non-existent string member 175s synchronization 175s protects #[member] 175s protects #values 175s protects #to_h 175s protects getter methods 175s protects #each_pair 175s protects getter methods 175s protects #inspect 175s protects #[member]= 175s protects #to_s 175s protects #values_at 175s protects #merge 175s protects #initialize_copy 175s protects #[index]= 175s protects #== 175s protects #each 175s protects #[index] 175s protects #select 175s definition 175s defines a setter for each member 175s copy 175s #clone 175s mutates only the copy 175s #dup 175s mutates only the copy 175s #[index]= 175s sets the value when given a valid index 175s raises an exception when given an out-of-bound index 175s it should behave like struct 175s properties 175s #members 175s returns a different object than the array passed at definition 175s returns the struct members as an array of symbols 175s #size 175s returns the number of struct members 175s #values 175s returns the values of the struct as an array in order 175s #values_at 175s returns values for ranges and offsets 175s returns the values at multiple given offsets 175s returns values at offsets in a given range 175s returns the value at the given offset 175s returns values for multiple ranges 175s #length 175s returns the number of struct members 175s comparison 175s #!= 175s returns false if other has same struct subclass and equal values 175s returns true if other has different values 175s returns true if other has different struct subclass 175s #== 175s returns true if other has same struct subclass and equal values 175s returns false if other has different struct subclass 175s returns false if other has different values 175s definition 175s registers the class when given a class name which is defined in the ancestors 175s raises an exception when given an invalid class name 175s raises an exception when given no members 175s raise an exception when given an invalid member 175s defines a getter for each member 175s registers the class when given a class name 175s evalues a given block against the new class 175s creates an anonymous class when given at least one member 175s conversion 175s #to_a 175s returns the to_a for this struct as an array 175s #to_s 175s returns the same string as #inspect 175s includes the name of the class when registered 175s includes the names of all members 175s includes all values 175s #to_h 175s returns a Hash containing the names and values in order 175s accessors 175s #[index] 175s retrieves the value when given a valid index 175s raises an exception when given an out-of-bound index 175s #[member] 175s retrieves the value when given a valid string member 175s raises an exception when given a non-existent string member 175s raises an exception when given a non-existent symbol member 175s retrieves the value when given a valid symbol member 175s enumeration 175s #select 175s yields each value 175s returns an enumerator when no block is given 175s returns an Array with the values from for which the block returns true 175s #each 175s returns an enumerator when no block is given 175s yields the value of each struct member in order 175s #each_pair 175s returns an enumerator when no block is given 175s yields the name and value of each struct member in order 175s construction 175s raises an exception when extra members are given 175s sets all absent members to nil 175s sets all given members in order 175s copy 175s #dup 175s discards singleton class 175s shallowly duplicates all members along with the struct 175s discards frozen state of the struct 175s retains frozen state of members 175s copies the singleton class of members 175s #clone 175s retains frozen state 175s copies the singleton class 175s copies the singleton class of members 175s shallowly clones all members along with the struct 175s it should behave like mergeable_struct 175s #merge 175s calls the given block for each key in `other` 175s raises an exception when given a hash with members not in the struct 175s returns a new object 175s retains the value for all members not without values in the given hash 175s updates all members with the new values from a given hash 175s 175s Concurrent 175s Cancellation 175s basic 175s is expected to be falsey 175s is expected to be truthy 175s #join 175s is expected to eq 2 175s is expected to be falsey 175s 175s #atomically 175s provides atomicity 175s raises an exception when no block given 175s reflects transactional writes from within the same transaction 175s undoes writes if the transaction is aborted 175s commits writes if the transaction succeeds 175s retries on abort 175s nests 175s raises the same exception that was raised in Concurrent::atomically 175s 175s Concurrent::Set 175s .[] 175s when initializing with arguments 175s creates a set with the given objects 175s when initializing with no arguments 175s is expected to be empty 175s .new 175s when initializing with no arguments 175s is expected to be empty 175s when initializing with an enumerable object 175s creates a set with the contents of the enumerable object 175s when initializing with a block argument 175s creates a set with the contents of the enumerable object 175s concurrency 175s #each 175s force context switch 176s #add and #delete 176s 176s Concurrent::Delay 176s #reconfigure 176s returns value of block used in reconfiguration 176s returns false when process completed? 176s #value 176s can be called twice 176s calls the block when #value is called 176s raises when called recursively 176s does not call the block before #value is called 176s only calls the block once no matter how often #value is called 176s behavior 176s it should behave like dereferenceable 176s calls the block when the :copy_on_deref option is passed a proc 176s defaults :copy_on_deref to nil 176s does not call #freeze when #freeze_on_deref is set and the value is nil 176s calls #dup when the :dup_on_deref option is true 176s does not call #dup when #dup_on_deref is set and the value is nil 176s defaults :dup_on_deref to false 176s supports dereference flags with observers 176s does not call the #copy_on_deref block when the value is nil 176s calls the :copy block first followed by #dup followed by #freeze 176s defaults :freeze_on_deref to false 176s calls #freeze when the :freeze_on_deref option is true 176s it should behave like obligation 176s #reason 176s is nil when :pending 176s is nil when :fulfilled 176s is set to error object of the exception when :rejected 176s #value 176s is nil when :rejected 176s is set to the return value of the block when :fulfilled 176s returns immediately when timeout is zero 176s blocks the caller when :pending and timeout is nil 176s returns nil when reaching the optional timeout value 176s returns nil when timeout reached 176s returns the value when fulfilled before timeout 176s is nil when :pending 176s #state 176s is :pending when first created 176s is :rejected when the handler raises an exception 176s is :fulfilled when the handler completes 176s #initialize 176s raises an exception when no block given 176s sets the state to :pending 176s 176s Concurrent::Promise 176s #rescue 176s returns a new promise 176s it should behave like thread_arguments 176s passes a one-element array when the :args key has a non-array value 176s passes an empty array when opts is not given 176s passes an empty array when the :args key has a nil value 176s passes an empty array when opts is an empty hash 176s allows the given arguments array to be dereferenced 176s passes the given array when the :args key has a complex array value 176s passes an array when when the :args key has an array value 176s passes an empty array when there is no :args key 176s aliases 176s aliases #realized? for #fulfilled? 176s aliases #catch for #rescue 176s aliases #deref for #value 176s aliases #on_error for #rescue 176s fulfillment 176s can manage long chain 176s sets the promise state to :fulfilled if the block completes 176s passes the result of each block to all its children 176s sets the promise value to the result if its block 176s uses result as fulfillment value when a promise has no block 176s passes the last result through when a promise has no block 176s #fail 176s can only be called on the root promise 176s rejects children 176s #set 176s triggers children 176s can be called with a block 176s #can only be called on the root promise 176s rejection 176s sets the promise value to the result if its block 176s passes the reason to all its children 176s rejects on Exception 176s sets the promise state to :rejected if the block completes 176s uses reason as rejection reason when a promise has no rescue callable 176s .zip 176s does not execute the returned Promise when execute is false 177s preserves ordering of the executed promises 177s executes the returned Promise by default 177s allows setting executor for Promise chain 177s fails if one component fails 177s executes the returned Promise when execute is true 177s yields the results as an array 177s aggregators 177s .any? 177s executes the #then condition when any components succeed 177s executes the #rescue handler if all componenst fail 177s does not execute the returned Promise 177s returns a new Promise 177s executes the #then condition when no promises are given 177s .all? 177s executes the #then condition when all components succeed 177s executes the #rescue handler if even one component fails 177s returns a new Promise 177s does not execute the returned Promise 177s executes the #then condition when no promises are given 177s initializers 177s .execute 177s passes the block to the new Promise 177s calls #execute on the new Promise 177s creates a new Promise 177s .fulfill 177s should return a Promise with set value 177s should return a fulfilled Promise 177s should return a Promise 177s .reject 177s should return a Promise with set reason 177s should return a Promise 177s should return a rejected Promise 177s .new 177s should return an unscheduled Promise 177s #then 177s should have block or rescuers 177s returns a new promise when a block and rescuer are passed 177s returns a new promise when a block is passed 177s returns a new promise when a rescuer is passed 177s can be called more than once 177s supports setting the executor using a named parameter 177s returns a new promise when a block, rescuer and executor are passed 177s fulfilled 177s returns a new Promise 177s notifies fulfillment to new child 177s rejected 177s returns a new Promise when :rejected 177s notifies rejection to new child 177s pending 177s returns a new promise 177s returns a pending promise 177s unscheduled 177s returns a new promise 177s returns an unscheduled promise 177s on_success 177s returns a new promise 177s should have a block 177s #execute 177s with children 177s when called on a child 178s should set all promises to :pending 178s when called on child after parent completes 178s sets state to :pending immediately 178s when called on the root 179s should set all promises to :pending 179s pending 179s does not post again 179s sets the promise to :pending 179s unscheduled 179s posts the block given in construction 180s sets the promise to :pending 180s #flat_map 180s returns a promise 180s fails if the left promise fails 180s fails if the right promise fails 180s fails if the generating block fails 180s succeeds if both promises succeed 180s #zip 180s allows setting executor for Promise chain 180s fails if one component fails 180s executes the returned Promise when execute is true 180s does not execute the returned Promise when execute is false 180s executes the returned Promise by default 180s preserves ordering of the executed promises 180s yields the results as an array 180s it should behave like ivar 180s #set 180s raises an exception if set more than once 180s returns self 180s raises an exception when given neither a value nor a block 180s raises an exception when given a value and a block 180s rejects when given a block which raises an exception 180s sets the state to be fulfilled 180s sets the value 180s fulfils when given a block which executes successfully 180s #try_set 180s when fulfilled 180s returns false 180s does not assign the value 180s does not assign the block result 180s when rejected 180s returns false 180s does not assign the block result 180s has a nil value 180s does not assign the value 180s when unset 180s returns true 180s assigns the value 180s assigns the block result 180s it should behave like observable 180s #add_observer 180s adds an observer with :func if called before first notification 180s raises an exception if not given an observer or a block 180s creates an observer from a block if called before first notification 180s adds an observer if called before first notification 180s raises an exception when given both an observer and a block 180s #count_observers 180s returns zero for a new observable object 180s returns a count of registered observers if called before first notification 180s returns zero after #delete_observers has been called 180s first notification 181s does not notify any observers removed with #delete_observer 182s does not notify any observers after #delete_observers called 182s calls the proc for all observers added as a block 182s calls the appropriate function on all observers which specified a :func 182s calls the #update method on all observers without a specified :func 182s #delete_observer 182s returns the given observer even when not found in the observer set 182s returns the removed observer if found in the observer set 182s deletes the given observer if called before first notification 182s #delete_observers 182s returns self 182s deletes all observers when called before first notification 182s initialization 182s sets the state to incomplete 182s #fail 182s sets the state to be rejected 182s sets the value to be nil 182s raises an exception if set more than once 182s defaults the reason to a StandardError 182s sets the reason to the given exception 182s returns self 182s it should behave like dereferenceable 182s calls the block when the :copy_on_deref option is passed a proc 183s defaults :copy_on_deref to nil 183s does not call #freeze when #freeze_on_deref is set and the value is nil 183s calls #dup when the :dup_on_deref option is true 183s supports dereference flags with observers 183s calls #freeze when the :freeze_on_deref option is true 184s calls the :copy block first followed by #dup followed by #freeze 184s defaults :dup_on_deref to false 184s defaults :freeze_on_deref to false 184s does not call #dup when #dup_on_deref is set and the value is nil 184s does not call the #copy_on_deref block when the value is nil 184s it should behave like obligation 184s #value 189s blocks the caller when :pending and timeout is nil 189s returns nil when reaching the optional timeout value 189s is set to the return value of the block when :fulfilled 189s is nil when :pending 189s returns nil when timeout reached 189s returns immediately when timeout is zero 189s is nil when :rejected 194s returns the value when fulfilled before timeout 194s #reason 194s is nil when :fulfilled 194s is nil when :pending 194s is set to error object of the exception when :rejected 194s #state 194s is :pending when first created 194s is :fulfilled when the handler completes 194s is :rejected when the handler raises an exception 194s 194s Concurrent::TVar 194s #value 194s gets the value 194s #initialize 194s accepts an initial value 194s #value= 194s sets the value 194s 194s Concurrent::Async 194s object creation 194s initializes synchronization 194s passes all args to the original constructor 194s delegates to the original constructor 194s passes a given block to the original constructor 194s #await 194s raises an error when calling a method that does not exist 194s raises an error when passing too few arguments 194s sets the reason when giving too many optional arguments 194s supports methods with blocks 194s sets the value on success 194s supports attribute accessors 194s returns a :fulfilled IVar 194s runs the future on the global executor 194s returns the existence of the method 194s raises an error when pasing too many arguments (arity >= 0) 194s sets the reason on failure 194s #validate_argc 194s raises an exception for too many args on a method with positive arity 194s raises an exception for too many args on a zero arity method 194s does not raise an exception for correct negative arity 194s raises an exception for too few args on a method with negative arity 194s raises an exception when the method is not defined 194s raises an exception for too few args on a method with positive arity 194s does not raise an exception for correct positive arity 194s does not raise an exception for correct zero arity 194s fork safety 194s does not hang when forked 194s locking 195s uses the same lock for both #async and #await 195s #async 195s sets the reason on failure 195s raises an error when calling a method that does not exist 195s supports methods with blocks 195s returns the existence of the method 195s raises an error when passing too few arguments 195s raises an error when pasing too many arguments (arity >= 0) 195s supports attribute accessors 195s runs the future on the global executor 195s returns a :pending IVar 195s sets the value on success 195s sets the reason when giving too many optional arguments 195s 195s Concurrent::MVar 195s #take 195s returns TIMEOUT on timeout on an empty MVar 195s waits for another thread to #put 195s returns the value on a full MVar 195s sets the MVar to empty 195s spurious wake ups 195s #put 196s returns TIMEOUT on timeout on a full MVar 196s waits for another thread to #take 196s #modify 197s waits for another thread to #put 197s returns TIMEOUT on timeout on an empty MVar 197s #take 197s waits for another thread to #put 198s returns TIMEOUT on timeout on an empty MVar 198s #empty? 198s returns false on a full MVar 198s returns true on an empty MVar 198s #set! 198s sets a full MVar to be full 198s returns EMPTY on an empty MVar 198s sets an empty MVar to be full 198s returns the original value on a full MVar 198s #modify! 198s raises an exception when no block given 198s modifies an empty MVar 198s returns the unmodified value 198s can be used to set an empty MVar to empty 198s can be used to set a full MVar to empty 198s modifies a full MVar 198s #initialize 198s accepts an initial value 198s accepts a nil initial value 198s accepts no initial value 198s accepts an empty initial value 198s #try_take! 198s returns EMPTY an empty MVar 198s returns the value on a full MVar 198s sets a full MVar to be empty 198s #borrow 198s returns TIMEOUT on timeout on an empty MVar 198s yields current value to the block and puts back value 198s returns the returned value of the block 198s puts back value even if an exception is raised 198s #put 198s returns the value 198s sets a new value on an empty MVar 198s waits for another thread to #take 198s sets the MVar to be empty 198s returns TIMEOUT on timeout on a full MVar 198s #full? 198s returns true on a full MVar 198s returns false on an empty MVar 198s #try_put! 198s returns false on a full MVar 198s returns true an empty MVar 198s sets an empty MVar to be full 198s #modify 198s waits for another thread to #put 198s returns TIMEOUT on timeout on an empty MVar 199s is atomic 199s raises an exception when no block given 199s modifies a full MVar 199s returns the unmodified value 199s behavior 199s it should behave like dereferenceable 199s calls the block when the :copy_on_deref option is passed a proc 199s defaults :copy_on_deref to nil 199s supports dereference flags with observers 199s does not call #freeze when #freeze_on_deref is set and the value is nil 199s defaults :dup_on_deref to false 199s does not call #dup when #dup_on_deref is set and the value is nil 199s calls the :copy block first followed by #dup followed by #freeze 199s defaults :freeze_on_deref to false 199s calls #freeze when the :freeze_on_deref option is true 199s does not call the #copy_on_deref block when the value is nil 199s calls #dup when the :dup_on_deref option is true 199s 199s configuration 199s global executors 199s creates a global fast executor 199s creates a global timer set 199s creates a global io executor 199s 199s Concurrent::TimerTask 199s execution 199s uses a custom executor when given 200s waits for :execution_interval seconds when the :run_now option is not given 200s uses a fixed rate when set 200s uses a fixed delay when set 200s passes a "self" reference to the block as the sole argument 200s uses the global executor by default 201s waits for :execution_interval seconds when the :run_now option is false 201s runs the block immediately when the :run_now option is true 201s arguments 201s TimeTask timeouts are now ignored as these were not able to be implemented correctly 201s #timeout_interval being written produces a warning 201s TimeTask timeouts are now ignored as these were not able to be implemented correctly 201s #execution_interval is writeable 201s raises an exception if no block given 201s raises on invalid interval_type 201s observation 201s notifies all observers on error 201s notifies all observers on success 201s dereferenceable 201s it should behave like dereferenceable 201s defaults :freeze_on_deref to false 201s defaults :copy_on_deref to nil 202s calls #freeze when the :freeze_on_deref option is true 202s does not call the #copy_on_deref block when the value is nil 202s does not call #freeze when #freeze_on_deref is set and the value is nil 202s does not call #dup when #dup_on_deref is set and the value is nil 202s calls the block when the :copy_on_deref option is passed a proc 202s defaults :dup_on_deref to false 202s calls the :copy block first followed by #dup followed by #freeze 203s calls #dup when the :dup_on_deref option is true 203s supports dereference flags with observers 203s created with #new 203s #kill 203s returns true on success 203s #shutdown 203s returns true on success 203s #initialize 203s uses the default execution interval when no interval is given 203s uses the given execution interval 203s raises an exception if :execution_interval is not greater than zero 203s uses the default :interval_type when no type is given 203s raises an exception if :execution_interval is not an integer 203s raises an exception if :interval_type is not a valid value 203s uses the given interval type 203s raises an exception if no block given 203s observable 203s it should behave like observable 203s #delete_observer 203s deletes the given observer if called before first notification 203s returns the given observer even when not found in the observer set 203s returns the removed observer if found in the observer set 203s #count_observers 203s returns zero after #delete_observers has been called 203s returns a count of registered observers if called before first notification 203s returns zero for a new observable object 203s #delete_observers 203s returns self 203s deletes all observers when called before first notification 203s first notification 203s calls the #update method on all observers without a specified :func 203s calls the appropriate function on all observers which specified a :func 204s calls the proc for all observers added as a block 205s does not notify any observers removed with #delete_observer 206s does not notify any observers after #delete_observers called 206s #add_observer 206s creates an observer from a block if called before first notification 206s raises an exception if not given an observer or a block 206s raises an exception when given both an observer and a block 206s adds an observer with :func if called before first notification 206s adds an observer if called before first notification 206s 206s Concurrent::Hash 206s .[] 206s when initializing with another hash as an argument 206s creates a hash with the results of calling #to_hash on the other array 206s creates a new hash 206s creates a hash with the same contents as the other hash 206s when initializing with an array of pairs 206s creates a hash using each pair as a (key, value) pair 206s when initializing with no arguments 206s is expected to be empty 206s when initializing with an even number of arguments 206s creates a hash using the odd position arguments as keys and even position arguments as values 206s .new 206s when initialized with a block 206s calls the block for non-existing keys 206s returns the results of calling the block for non-existing key 206s when initializing with no arguments 206s is expected to be empty 206s when initialized with a default object 206s uses the default object for non-existing keys 206s concurrency 207s is expected to be empty 207s 207s Concurrent::SettableStruct 207s it should behave like mergeable_struct 207s #merge 207s raises an exception when given a hash with members not in the struct 207s calls the given block for each key in `other` 207s retains the value for all members not without values in the given hash 207s updates all members with the new values from a given hash 207s returns a new object 207s definition 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s defines a setter for each member 207s #[index]= 207s raises an exception when given an out-of-bound index 207s raises an exception when given an index that has already been set 207s sets the value when given a valid index 207s it should behave like struct 207s construction 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s sets all absent members to nil 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s raises an exception when extra members are given 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s sets all given members in order 207s accessors 207s #[member] 207s raises an exception when given a non-existent string member 207s retrieves the value when given a valid string member 207s raises an exception when given a non-existent symbol member 207s retrieves the value when given a valid symbol member 207s #[index] 207s retrieves the value when given a valid index 207s raises an exception when given an out-of-bound index 207s definition 207s evalues a given block against the new class 207s raises an exception when given an invalid class name 207s raises an exception when given no members 207s creates an anonymous class when given at least one member 207s raise an exception when given an invalid member 207s registers the class when given a class name 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 207s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 207s defines a getter for each member 207s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 207s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 207s registers the class when given a class name which is defined in the ancestors 207s conversion 207s #to_h 207s returns a Hash containing the names and values in order 207s #to_a 207s returns the to_a for this struct as an array 207s #to_s 207s includes all values 207s returns the same string as #inspect 207s includes the name of the class when registered 207s includes the names of all members 207s copy 207s #clone 207s shallowly clones all members along with the struct 207s copies the singleton class 207s copies the singleton class of members 207s retains frozen state 207s #dup 207s shallowly duplicates all members along with the struct 207s retains frozen state of members 207s discards singleton class 207s discards frozen state of the struct 207s copies the singleton class of members 207s properties 207s #values_at 207s returns values at offsets in a given range 207s returns values for multiple ranges 207s returns the values at multiple given offsets 207s returns the value at the given offset 207s returns values for ranges and offsets 207s #size 207s returns the number of struct members 207s #members 207s returns the struct members as an array of symbols 207s returns a different object than the array passed at definition 207s #values 207s returns the values of the struct as an array in order 207s #length 207s returns the number of struct members 207s enumeration 207s #each_pair 207s returns an enumerator when no block is given 207s yields the name and value of each struct member in order 207s #select 207s yields each value 207s returns an Array with the values from for which the block returns true 207s returns an enumerator when no block is given 207s #each 207s yields the value of each struct member in order 207s returns an enumerator when no block is given 207s comparison 207s #!= 207s returns true if other has different values 207s returns true if other has different struct subclass 207s returns false if other has same struct subclass and equal values 207s #== 207s returns true if other has same struct subclass and equal values 207s returns false if other has different values 207s returns false if other has different struct subclass 207s #[member]= 207s raises an exception when given a string member that has already been set 207s sets the value when given a valid string member 207s raises an exception when given a non-existent string member 207s raises an exception when given a symbol member that has already been set 207s raises an exception when given a non-existent symbol member 207s sets the value when given a valid symbol member 207s synchronization 207s protects getter methods 207s protects #select 207s protects #each_pair 207s protects #inspect 207s protects #[index] 207s protects getter methods 207s protects #to_h 207s protects #initialize_copy 207s protects #[member]= 207s protects #each 207s protects #[index]= 207s protects #values 207s protects #== 207s protects #[member] 207s protects #values_at 207s protects #to_s 207s protects #merge 207s copy 207s #clone 207s retains settability of members 207s #dup 207s retains settability of members 207s 207s Concurrent::ImmutableStruct 207s it should behave like struct 207s accessors 207s #[member] 207s retrieves the value when given a valid string member 207s retrieves the value when given a valid symbol member 207s raises an exception when given a non-existent string member 207s raises an exception when given a non-existent symbol member 207s #[index] 207s retrieves the value when given a valid index 207s raises an exception when given an out-of-bound index 207s definition 207s evalues a given block against the new class 207s raise an exception when given an invalid member 207s defines a getter for each member 207s creates an anonymous class when given at least one member 207s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 207s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 207s registers the class when given a class name which is defined in the ancestors 207s raises an exception when given an invalid class name 207s raises an exception when given no members 207s registers the class when given a class name 207s conversion 207s #to_s 207s returns the same string as #inspect 207s includes the names of all members 207s includes the name of the class when registered 207s includes all values 207s #to_a 207s returns the to_a for this struct as an array 207s #to_h 207s returns a Hash containing the names and values in order 207s properties 207s #values_at 207s returns values for multiple ranges 207s returns the values at multiple given offsets 207s returns values for ranges and offsets 207s returns values at offsets in a given range 207s returns the value at the given offset 207s #members 207s returns the struct members as an array of symbols 207s returns a different object than the array passed at definition 207s #size 207s returns the number of struct members 207s #length 207s returns the number of struct members 207s #values 207s returns the values of the struct as an array in order 207s comparison 207s #!= 207s returns false if other has same struct subclass and equal values 207s returns true if other has different struct subclass 207s returns true if other has different values 207s #== 207s returns true if other has same struct subclass and equal values 207s returns false if other has different struct subclass 207s returns false if other has different values 207s copy 207s #dup 207s shallowly duplicates all members along with the struct 207s discards frozen state of the struct 207s retains frozen state of members 207s discards singleton class 207s copies the singleton class of members 207s #clone 207s copies the singleton class 207s retains frozen state 207s copies the singleton class of members 207s shallowly clones all members along with the struct 207s construction 207s raises an exception when extra members are given 207s sets all given members in order 207s sets all absent members to nil 207s enumeration 207s #each_pair 207s yields the name and value of each struct member in order 207s returns an enumerator when no block is given 207s #each 207s returns an enumerator when no block is given 207s yields the value of each struct member in order 207s #select 207s returns an enumerator when no block is given 207s yields each value 207s returns an Array with the values from for which the block returns true 207s it should behave like mergeable_struct 207s #merge 207s raises an exception when given a hash with members not in the struct 207s returns a new object 207s updates all members with the new values from a given hash 207s retains the value for all members not without values in the given hash 207s calls the given block for each key in `other` 207s 207s Concurrent::Array 207s concurrency 207s is expected to be empty 207s .new 207s when initializing with a size argument 207s creates an array with size elements set to nil 207s when initializing with a block argument 207s creates an array with size elements set to the default value 207s when initializing with a default value argument 207s creates an array with size elements set to the default value 207s when initializing with no arguments 207s is expected to be empty 207s when initializing with another array as an argument 207s creates an array with the results of calling #to_ary on the other array 207s creates an array with the same contents as the other array 207s creates a new array 207s .[] 207s when initializing with no arguments 207s is expected to be empty 207s when initializing with arguments 207s creates an array with the given objects 207s #slice 207s correctly initializes the monitor 207s 207s Concurrent::Channel 207s #next? 207s returns a just Maybe, true when there are multiple items 207s returns a nothing Maybe and false on failure 207s returns a just Maybe and true when there is one item 207s #take! 207s raises an exception on failure 207s takes the next item when not empty 207s #take? 207s returns a nothing Maybe on failure 207s returns a just Maybe on success 207s #next 207s returns , true when closed and last item 207s returns nil, false when closed and no items remain 207s returns , true when there are multiple items 207s returns nil, false when empty and closed 207s returns , true when there is one item 207s #take 207s returns nil on failure 207s takes the next item when not empty 207s #offer 207s returns true on success 207s rejects nil 207s rejects when the validator raises an exception 207s returns false on failure 207s rejects when the validator returns false 207s put? 207s returns a nothing Maybe on failure 207s rejects when the validator raises an exception 207s accepts nil 207s rejects when the validator returns false 207s returns a just Maybe on success 207s #poll? 207s returns a nothing Maybe immediately if no item is available 207s returns a just Maybe immediately if available 207s returns a nothing Maybe on failure 207s offer? 207s returns a just Maybe on success 207s accepts nil 207s rejects when the validator raises an exception 207s rejects when the validator returns false 207s returns a nothing Maybe on failure 207s offer! 207s returns true on success 207s rejects when the validator raises an exception 207s raises an exception on failure 207s rejects nil 207s rejects when the validator returns false 207s #poll! 207s raises an exception on failure 207s returns the next item immediately if available 207s raises an exception immediately if no item is available 207s #poll 207s returns nil on failure 207s returns nil immediately if no item is available 207s returns the next item immediately if available 207s .each 207s iterates until the channel is closed 207s raises and exception when no block is given 207s put! 207s raises an exception on failure 207s returns true on success 207s rejects when the validator raises an exception 207s rejects nil 207s rejects when the validator returns false 207s factories 207s is expected to receive new(10) 1 time 207s is expected to receive new(10) 1 time 207s goroutines 207s .go_via 207s raises an exception when no block is given 207s is expected to receive post(1, 2, 3) 1 time 207s .go 207s raises an exception when no block is given 207s is expected to receive post(1, 2, 3) 1 time 207s .go_loop 207s loops until the block returns false 207s raises an exception when no block is given 207s .go_loop_via 207s raises an exception when no block is given 207s loops until the block returns false 207s select 207s is expected to be truthy 207s raises an exception when no block is given 207s passes a selector to the block 207s #put 207s rejects when the validator returns false 207s rejects nil 207s rejects when the validator raises an exception 207s returns false on failure 207s returns true on success 207s initialization 207s raises an exception when the :buffer is invalid 207s raises an exception when :dropping given without :capacity 207s is :buffered when :capacity > 0 and no :buffer given 207s is :unbuffered when neither :buffer nore :capacity is given 207s raises an exception when :buffered given without :capacity 207s is :sliding when :sliding and :capacity > 0 207s raises an exception when :buffered and :capacity < 0 207s is :buffered when :buffered given 207s is :dropping when :dropping and :capacity > 0 207s raises an exception when :sliding given without :capacity 207s is :unbuffered when :buffered and capacity: 0 207s raises an exception when :sliding and :capacity < 1 207s raises an exception when both :unbuffered and :capacity are given 207s is :unbuffered when :unbuffered is given 207s uses the given buffer 207s raises an exception when :dropping and :capacity < 1 207s 207s Concurrent::Exchanger 207s class hierarchy 207s inherits from RubyExchanger 207s 207s Concurrent::ProcessingActor 207s is expected to eq "ab" 207s 207s Concurrent::Promises 207s zip_futures_over 207s .event 207s is expected to equal true 207s .zip_events 207s waits for all and returns event 207s Future 207s can be risen when rejected 207s has sync and async callbacks 207s chains with correct arguments 207s runs 207s value! supports setting timeout 207s result supports setting timeout 207s wait! supports setting timeout 207s chains 207s wait supports setting timeout 207s value supports setting timeout 207s constructs promise like tree 207s resolves future when Exception raised 207s allows graphs 207s reason supports setting timeout 207s #flat 207s it propagates rejection of the future which was suppose to provide inner future 207s propagates requests for values to delayed futures 207s rejects if inner value is not a future 207s accepts inner event 207s returns value of inner future 207s propagates rejection of inner future 207s has shortcuts 207s ResolvableEvent 207s #resolve(raise_on_reassign = true) 207s #wait 207s #resolve(raise_on_reassign = false) 207s reservation 207s .any_fulfilled 207s continues on first result 207s treats a resolved Event as a fulfilled Future 207s treats a pending Event as a pending Future 207s .rejected_future 207s raises the correct error when passed an unraised error 207s chain_resolvable 207s future 207s event 207s .future without block 207s is expected to eq 0 207s .zip 207s waits for all results 207s when a future raises an error 207s raises a concurrent error 207s when deeply nested 207s raises the original error 207s value! 207s does not return spuriously without timeout 208s does not return spuriously with timeout 208s .future 208s executes 208s executes with args 208s .any_resolved 208s continues on first result 208s .delay 208s is expected to eq 2 208s ResolvableFuture 208s #wait! 208s result 208s #wait 208s atomic_resolution 208s #value! 208s #value 208s reservation 208s #reason 208s interoperability 208s with erlang actor 208s with channel 208s with processing actor 208s .schedule 208s scheduled execution in graph 208s scheduled execution 208s 208s Concurrent::Atom 208s #compare_and_set 208s returns true if the current value matches 208s returns false if the current value does not match 208s rejects the new value if the current value does not match 208s returns false if the validator returns false 208s sets the new value if the current value matches 208s returns false if the validator raises an exception 208s rejects the new value if the validator returns false 208s rejects the new value if the validator raises an exception 208s #reset 208s returns the new value on success 208s returns the new value on success 208s returns the old value if the validator returns false 208s returns the old value if the validator raises an exception 208s sets the new value 208s #swap 208s rejects the new value if the validator returns false 208s rejects the new value if the validator raises an exception 208s reraises the exception from block 208s returns the new value on success 208s calls the block more than once if the value changes underneath 208s sets the new value to the result of the block 208s returns the old value if the validator returns false 208s raises an exception when no block is given 208s passes all arguments to the block 208s returns the old value if the validator raises an exception 208s passes the current value to the block 208s observable 208s behaves like observable 208s first notification 209s does not notify any observers removed with #delete_observer 209s calls the appropriate function on all observers which specified a :func 210s does not notify any observers after #delete_observers called 210s calls the proc for all observers added as a block 210s calls the #update method on all observers without a specified :func 210s #add_observer 210s creates an observer from a block if called before first notification 210s adds an observer with :func if called before first notification 210s adds an observer if called before first notification 210s raises an exception if not given an observer or a block 210s raises an exception when given both an observer and a block 210s #delete_observer 210s returns the given observer even when not found in the observer set 210s returns the removed observer if found in the observer set 210s deletes the given observer if called before first notification 210s #count_observers 210s returns a count of registered observers if called before first notification 210s returns zero after #delete_observers has been called 210s returns zero for a new observable object 210s #delete_observers 210s deletes all observers when called before first notification 210s returns self 210s construction 210s sets the initial value to the given value 210s 210s Concurrent::Future 210s it should behave like thread_arguments 210s passes an empty array when there is no :args key 210s allows the given arguments array to be dereferenced 210s passes an array when when the :args key has an array value 210s passes the given array when the :args key has a complex array value 210s passes an empty array when opts is not given 210s passes a one-element array when the :args key has a non-array value 210s passes an empty array when opts is an empty hash 210s passes an empty array when the :args key has a nil value 210s class #execute 210s calls #execute on the new Future 210s creates a new Future 210s passes the block to the new Future 210s #initialize 210s raises an exception when no block given 210s sets the state to :unscheduled 210s uses the executor given with the :executor option 210s uses the global io executor by default 210s cancellation 210s #wait_or_cancel 210s returns true if the operation completes before timeout 210s cancels the task on timeout 210s #cancel 210s fails to cancel the task once processing has begun 210s fails to cancel the task once processing is complete 210s cancels a pending task 210s instance #execute 210s posts the block given on construction 210s returns self 210s does nothing unless the state is :unscheduled 210s sets the state to :pending 210s fulfillment 210s sets the state to :rejected when the handler raises an exception 210s sets the value to nil when the handler raises Exception 210s sets the value to nil when the handler raises an exception 210s sets the reason to the Exception instance when the handler raises Exception 210s sets the value to the result of the handler 210s passes all arguments to handler 210s sets the state to :processing while the task is executing 210s sets the state to :fulfilled when the block completes 210s aliases 210s aliases #deref for #value 210s aliases #realized? for #fulfilled? 210s it should behave like ivar 210s #try_set 210s when unset 210s assigns the value 210s returns true 210s assigns the block result 210s when fulfilled 210s does not assign the block result 210s does not assign the value 210s returns false 210s when rejected 210s does not assign the value 210s has a nil value 210s does not assign the block result 210s returns false 210s #fail 210s sets the state to be rejected 210s defaults the reason to a StandardError 210s sets the value to be nil 210s sets the reason to the given exception 210s raises an exception if set more than once 210s returns self 210s it should behave like obligation 210s #reason 210s is nil when :fulfilled 210s is set to error object of the exception when :rejected 210s is nil when :pending 210s #value 210s returns nil when timeout reached 210s is nil when :pending 210s is nil when :rejected 210s returns nil when reaching the optional timeout value 215s returns the value when fulfilled before timeout 220s blocks the caller when :pending and timeout is nil 220s is set to the return value of the block when :fulfilled 220s returns immediately when timeout is zero 220s #state 220s is :fulfilled when the handler completes 220s is :pending when first created 220s is :rejected when the handler raises an exception 220s it should behave like dereferenceable 221s calls #dup when the :dup_on_deref option is true 221s supports dereference flags with observers 221s defaults :copy_on_deref to nil 221s does not call the #copy_on_deref block when the value is nil 221s calls the :copy block first followed by #dup followed by #freeze 221s does not call #freeze when #freeze_on_deref is set and the value is nil 222s calls #freeze when the :freeze_on_deref option is true 222s calls the block when the :copy_on_deref option is passed a proc 222s defaults :freeze_on_deref to false 222s does not call #dup when #dup_on_deref is set and the value is nil 223s defaults :dup_on_deref to false 223s it should behave like observable 223s #delete_observers 223s returns self 223s deletes all observers when called before first notification 223s #add_observer 223s adds an observer with :func if called before first notification 223s raises an exception if not given an observer or a block 223s creates an observer from a block if called before first notification 223s raises an exception when given both an observer and a block 223s adds an observer if called before first notification 223s #count_observers 223s returns zero after #delete_observers has been called 223s returns zero for a new observable object 223s returns a count of registered observers if called before first notification 223s first notification 223s calls the appropriate function on all observers which specified a :func 224s does not notify any observers removed with #delete_observer 224s calls the proc for all observers added as a block 225s does not notify any observers after #delete_observers called 225s calls the #update method on all observers without a specified :func 225s #delete_observer 225s returns the removed observer if found in the observer set 225s deletes the given observer if called before first notification 225s returns the given observer even when not found in the observer set 225s #set 225s fulfils when given a block which executes successfully 225s raises an exception when given neither a value nor a block 225s sets the state to be fulfilled 225s raises an exception if set more than once 225s raises an exception when given a value and a block 225s sets the value 225s returns self 225s rejects when given a block which raises an exception 225s initialization 225s sets the state to incomplete 225s observation 225s notifies an observer added after fulfillment 225s does not notify existing observers when a new observer added after fulfillment 225s notifies all observers on fulfillment 225s does not notify existing observers when a new observer added after rejection 225s notifies an observer added after rejection 225s notifies all observers on rejection 225s deadlock avoidance 225s should notify observers outside mutex lock 225s should notify a new observer added after fulfillment outside lock 225s 225s #leave_transaction 225s neither commits nor aborts a transaction 225s raises an exception outside an #atomically block 225s 225s Concurrent::Actor 225s forbids Immediate executor 225s links atomically 225s links 225s dead letter routing 225s logs by deafault 225s messaging 225s is expected to eq 4 225s termination 225s terminates with all its children 225s spawning 225s terminates on failed initialization and raises with spawn! 225s terminates on failed initialization 225s terminates on failed message processing 225s Actor#spawn! 225s spawn 225s executor should be global 225s returns arg 225s #name 225s is expected to eq "ping" 225s #path 225s is expected to eq "/ping" 225s #reference 225s is expected to eq # 225s #parent 225s is expected to eq # 225s context_spawn_by_hash 225s executor should be global 225s returns arg 225s #reference 225s is expected to eq # 225s #path 225s is expected to eq "/ping" 225s #parent 225s is expected to eq # 225s #name 225s is expected to eq "ping" 225s context_spawn 225s executor should be global 225s returns arg 225s #reference 225s is expected to eq # 225s #parent 225s is expected to eq # 225s #path 225s is expected to eq "/ping" 225s #name 225s is expected to eq "ping" 225s spawn_by_hash 225s returns arg 225s executor should be global 225s #name 225s is expected to eq "ping" 225s #parent 225s is expected to eq # 225s #path 225s is expected to eq "/ping" 225s #reference 225s is expected to eq # 225s pausing 225s pauses on error and resets 225s pauses on error and resumes 225s pauses on error and restarts 225s envelope 225s is expected to eq # 225s pool 225s supports asks 225s message redirecting 225s is evaluated by child 225s children 225s has children set after a child is created 225s 225s monotonic_time 225s behavior 225s returns a Float when unit = :float_second 225s returns seconds as float 225s returns an Integer when unit = :millisecond 225s returns an Integer when unit = :nanosecond 225s returns an Integer when unit = :microsecond 225s raises ArgumentError on unknown units 225s returns a Float when unit = :float_microsecond 225s returns a Float when unit = :float_millisecond 225s returns an Integer when unit = :second 225s 225s #abort_transaction 225s raises an exception outside an #atomically block 225s 225s Concurrent 225s Throttle 226s capacity limited 226s acquiring 226s #to_s 226s #on 226s 226s Concurrent::Maybe 226s comparison 226s something is less than a bigger value 226s nothing is not greater than nothing 226s something is not equal to nothing 226s something is not equal to a different value 226s something is greater than a smaller value 226s nothing is equal to nothing 226s something is equal to the same value 226s nothing is not less than nothing 226s construction 226s hides Maybe.new 226s Maybe.nothing 226s creates a new Nothing Maybe 226s creates a new error object when given nothing 226s creates a new error object with the given string 226s uses the given Error object 226s Maybe.just 226s creates a new Just Maybe 226s Maybe.from 226s creates a Just Maybe on success 226s passes all arguments to the block 226s sets the reason to the error object on exception 226s creates a Nothing Maybe on exception 226s sets the value to the block result on success 226s raises an exception when no block is given 226s when just 226s #nothing returns NONE 226s #fulfilled? returns true 226s #nothing? returns false 226s #reason returns NONE 226s #rejected? returns false 226s #just? returns true 226s #value returns the value 226s #just returns the value 226s when nothing 226s #nothing returns the raised error 226s #rejected? returns true 226s #just returns NONE 226s #value returns NONE 226s #nothing? returns true 226s #reason returns the raised error 226s #just? returns false 226s #fulfilled? returns false 226s #or 226s returns the other when nothing 226s returns the value when something 226s 226s Concurrent::Options 226s .executor_from_options 226s raises an exception when :executor is an unrecognized symbol 226s returns the global io executor when :executor is :io 226s returns an immediate executor when :executor is :immediate 226s returns the global fast executor when :executor is :fast 226s returns the given :executor 226s 226s Concurrent::RubyExchanger 227s Good: 10000, Bad (timeout): 0, Ugly: 0 227s stress test 227s behaves like exchanger 227s #try_exchange 227s behaves like exchanger method with indefinite timeout 227s blocks indefinitely 227s receives the other value 227s can be reused 227s behaves like exchanger method with finite timeout 227s can be reused 227s receives the other value 227s blocks until timeout 227s behaves like exchanger method cross-thread interactions 227s allows multiple firsts to cancel if necessary 227s when first, waits for a second 227s #exchange 227s behaves like exchanger method with finite timeout 227s blocks until timeout 227s can be reused 227s receives the other value 227s behaves like exchanger method cross-thread interactions 227s allows multiple firsts to cancel if necessary 228s when first, waits for a second 228s behaves like exchanger method with indefinite timeout 228s receives the other value 228s can be reused 228s blocks indefinitely 228s #exchange! 228s behaves like exchanger method with indefinite timeout 228s blocks indefinitely 228s receives the other value 228s can be reused 228s behaves like exchanger method cross-thread interactions 228s allows multiple firsts to cancel if necessary 228s when first, waits for a second 228s behaves like exchanger method with finite timeout 228s blocks until timeout 228s receives the other value 228s can be reused 228s 228s Concurrent::ScheduledTask 228s #initialize 228s raises an exception when no block given 228s sets the initial state to :unscheduled 228s raises an exception when seconds is less than zero 228s accepts a number of seconds (from now) as the schedule time 228s behavior 228s it should behave like obligation 228s #reason 228s is set to error object of the exception when :rejected 228s is nil when :pending 228s is nil when :fulfilled 228s #value 228s is set to the return value of the block when :fulfilled 228s returns nil when timeout reached 228s returns nil when reaching the optional timeout value 229s blocks the caller when :pending and timeout is nil 229s returns immediately when timeout is zero 230s returns the value when fulfilled before timeout 230s is nil when :pending 230s is nil when :rejected 230s #state 230s is :fulfilled when the handler completes 230s is :pending when first created 230s is :rejected when the handler raises an exception 230s it should behave like dereferenceable 230s calls #dup when the :dup_on_deref option is true 230s calls #freeze when the :freeze_on_deref option is true 230s defaults :freeze_on_deref to false 230s defaults :dup_on_deref to false 230s calls the :copy block first followed by #dup followed by #freeze 230s calls the block when the :copy_on_deref option is passed a proc 230s supports dereference flags with observers 230s does not call the #copy_on_deref block when the value is nil 230s does not call #freeze when #freeze_on_deref is set and the value is nil 230s does not call #dup when #dup_on_deref is set and the value is nil 230s defaults :copy_on_deref to nil 230s it should behave like observable 230s first notification 231s does not notify any observers after #delete_observers called 231s calls the appropriate function on all observers which specified a :func 232s calls the proc for all observers added as a block 233s does not notify any observers removed with #delete_observer 233s calls the #update method on all observers without a specified :func 233s #count_observers 233s returns zero after #delete_observers has been called 233s returns a count of registered observers if called before first notification 233s returns zero for a new observable object 233s #add_observer 233s creates an observer from a block if called before first notification 233s raises an exception if not given an observer or a block 233s adds an observer with :func if called before first notification 233s adds an observer if called before first notification 233s raises an exception when given both an observer and a block 233s #delete_observers 233s deletes all observers when called before first notification 233s returns self 233s #delete_observer 233s returns the removed observer if found in the observer set 233s deletes the given observer if called before first notification 233s returns the given observer even when not found in the observer set 233s class #execute 233s passes the block to the new ScheduledTask 233s creates a new ScheduledTask 233s calls #execute on the new ScheduledTask 233s instance #execute 233s returns self 233s sets the sate to :pending 233s does nothing unless the state is :unscheduled 233s execution 233s passes :args from the options to the block 233s uses the :executor from the options 233s uses the :timer_set from the options 233s sets the state to :processing when the task is running 233s observation 233s notifies all observers on rejection 233s notifies all observers on fulfillment 233s returns true for an observer added while :pending 233s returns true for an observer added while :unscheduled 234s returns true for an observer added while :processing 234s #cancel 234s returns true on success 234s returns false if the task has already been performed 234s cancels the task if it has not yet scheduled 234s sets the reason to CancelledOperationError when cancelled 235s cancels the task if it has not yet started 235s returns false if the task is already in progress 235s 235s Concurrent::Synchronization 235s Concurrent::Synchronization::Object 235s does not ensure visibility when not needed 235s does ensure visibility when specified in a parent 235s does ensure visibility once when specified in child again 235s does ensure visibility when specified 235s it should behave like attr_volatile 236s older writes are always visible 236s Concurrent::Synchronization::Volatile module 236s it should behave like attr_volatile 237s older writes are always visible 237s Concurrent::Synchronization::LockableObject 237s final field always visible 237s #synchronize 237s allows only one thread to execute count 237s #wait 238s allows the sleeping thread to be killed 238s releases the lock on the current object 238s can be called from within a #synchronize block 238s puts the current thread to sleep 238s it should behave like attr_volatile 239s older writes are always visible 239s signaling 239s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 239s attr_atomic 239s is expected to be == b 239s 239s Concurrent::Map 239s #key? 239s is unfreezable 239s default_proc is called with the Concurrent::Map and the key after #dup 239s options validation 239s #delete_pair 239s #put_if_absent 240s collision resistance 240s concurrency 240s #values 240s default_proc is called with the Concurrent::Map and the key 240s #get_and_set 240s #size 240s #replace_if_exists 240s initial capacity options validation 240s #get_or_default 240s #each_key 240s #clear 240s retrieval 240s collision resistance with arrays 240s marshal dump does not work with default proc 240s #value? 240s #delete 240s default proc 240s #empty 240s #keys 240s marshal dump load 240s load factor options validation 240s updates dont block reads 240s #each_value 240s #inspect 240s falsy default proc 240s #key 240s #replace_pair 240s #dup,#clone 240s #compute 240s exception 240s common 240s with return 240s #compute_if_present 240s common 240s exception 240s with return 240s #fetch 240s common 240s falsy 240s with return 240s #merge_pair 240s exception 240s common 240s with return 240s #each 240s it should behave like collection_each 240s common 240s allows modification 240s pair iterator 240s when no block is given 240s returns an object which is enumerable 240s returns an enumerator 240s #each_pair 240s it should behave like collection_each 240s common 240s pair iterator 240s allows modification 240s when no block is given 240s returns an enumerator 240s returns an object which is enumerable 240s #compute_if_absent 240s atomicity 240s exception 240s works in default_proc 240s common 240s with return 240s #fetch_or_store 240s falsy 240s common 240s with return 240s 240s Concurrent::Agent 240s nested actions 240s occur in the order they ar post 240s work with immediate execution 240s initialization 240s sets #failed? to false 240s sets the initial error to nil 240s defaults the error mode to :continue when an error handler is given 240s defaults the error mode to :fail when no error handler is given 240s sets the error mode when given a valid value 240s sets the initial value 240s raises an error when given an invalid error mode 240s action processing 240s when validation raises an error the handler will be called 240s upon validation the new value will be set to the block return value 240s the given block will be passed any provided arguments 240s when validation raises an error the value will not change 240s the return value will be passed to the validator function 240s any recursive action dispatches will run after the value has been updated 240s when validation fails the handler will be called 240s when the action raises an error the validator will not be called 240s when the action raises an error the handler will be called 240s when validation returns false the value will not change 240s on success all observers will be notified 240s the given block will be passed the current value 240s when the action raises an error the value will not change 240s posting 240s with #send 240s returns false when #failed? 240s returns true when the job is post 240s posts to the global fast executor 240s does not wait for the action to process 240s with #send_off 240s does not wait for the action to process 240s returns true when the job is post 240s returns false when #failed? 240s posts to the global io executor 240s with #send! 240s returns true when the job is post 240s raises an error when #failed? 240s posts to the global fast executor 240s does not wait for the action to process 240s with #send_off! 240s does not wait for the action to process 240s posts to the global io executor 240s returns true when the job is post 240s raises an error when #failed? 240s with #send_via 240s returns true when the job is post 240s posts to the given executor 240s returns false when #failed? 240s with #<< 240s posts to the global io executor 240s returns self when #failed? 240s returns self when the job is post 240s does not wait for the action to process 240s with #send_via! 240s posts to the given executor 240s raises an error when #failed? 240s returns true when the job is post 240s with #post 240s posts to the global io executor 240s returns true when the job is post 240s does not wait for the action to process 240s returns false when #failed? 240s error handling 240s the agent will be passed to the handler 240s the exception will be passed to the handler 240s does not trigger observation 240s #restart 240s when #failed? 240s raises an error if the new value is not valid 240s does not trigger observation 240s sets #failed? to true 240s clears the error 240s does not clear the action queue when :clear_actions is false 240s resumes action processing if actions are enqueued 240s sets the new value 240s does not clear the action queue when :clear_actions is not given 241s removes all actions from the queue when :clear_actions is true 241s when not #failed? 241s raises an error 241s observable 241s behaves like observable 241s #delete_observer 241s deletes the given observer if called before first notification 241s returns the given observer even when not found in the observer set 241s returns the removed observer if found in the observer set 241s #count_observers 241s returns zero after #delete_observers has been called 241s returns zero for a new observable object 241s returns a count of registered observers if called before first notification 241s first notification 241s calls the appropriate function on all observers which specified a :func 242s does not notify any observers after #delete_observers called 242s calls the proc for all observers added as a block 243s does not notify any observers removed with #delete_observer 243s calls the #update method on all observers without a specified :func 243s #add_observer 243s raises an exception if not given an observer or a block 243s raises an exception when given both an observer and a block 243s adds an observer if called before first notification 243s adds an observer with :func if called before first notification 243s creates an observer from a block if called before first notification 243s #delete_observers 243s deletes all observers when called before first notification 243s returns self 243s waiting 243s with .await_for 243s returns true when all prior actions for all agents have processed 244s returns false on timeout 244s returns true when there are no pending actions 244s with #await_for 244s does not block on actions from other threads 244s returns true when there are no pending actions 245s returns false on timeout 245s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 246s returns true when all prior actions have processed 246s with #await_for! 246s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 246s does not block on actions from other threads 247s raises an error on timeout 247s returns true when there are no pending actions 248s returns true when all prior actions have processed 248s with #await 249s blocks indefinitely 250s returns true when all prior actions have processed 250s returns self when there are no pending actions 250s does not block on actions from other threads 250s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 250s with await_for! 251s raises an exception on timeout 251s returns true when all prior actions for all agents have processed 251s returns true when there are no pending actions 251s with .await 251s returns true when all prior actions on all agents have processed 251s with #wait 252s returns true when all prior actions have processed 253s blocks indefinitely when timeout is nil 253s does not block on actions from other threads 253s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 253s returns true when there are no pending actions and a timeout is given 254s returns false on timeout 254s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 254s returns true when there are no pending actions and timeout is nil 254s the await job 254s does not trigger the error mode 254s does not change the value 254s waits for nested actions 254s does not trigger observers 254s validation 254s rejects the new value when the validator returns false 254s sets the error when the error mode is :fail and the validator raises an error 254s sets the error when the error mode is :fail and the validator returns false 254s does not set an error when the error mode is :continue and the validator returns false 254s does not trigger observation when validation fails 254s does not set an error when the error mode is :continue and the validator raises an error 254s sets the new value when the validator returns true 254s rejects the new value when the validator raises an error 254s error mode 254s :continue 254s does not block further action processing 254s does not set an error when the action raises an error 254s sets #failed? to false 254s does not set an error when the validator raises an error 254s does not set an error when the validator returns false 254s :fail 254s blocks all further action processing until a restart 254s sets the error when the validator raises an error 254s sets #failed? to true 254s sets the error when the action raises an error 254s sets the error when the validator returns false 254s 254s Finished in 1 minute 21.83 seconds (files took 0.50896 seconds to load) 254s 1426 examples, 0 failures, 7 pending 254s 254s Randomized with seed 1 254s 254s mv ./.gem2deb.lib lib 254s mv ./.gem2deb.ext ext 255s autopkgtest [20:46:15]: test ruby: -----------------------] 259s ruby PASS 259s autopkgtest [20:46:19]: test ruby: - - - - - - - - - - results - - - - - - - - - - 263s autopkgtest [20:46:23]: test jruby: preparing testbed 286s autopkgtest [20:46:46]: testbed dpkg architecture: armhf 288s autopkgtest [20:46:48]: testbed apt version: 3.1.14 293s autopkgtest [20:46:53]: @@@@@@@@@@@@@@@@@@@@ test bed setup 295s autopkgtest [20:46:55]: testbed release detected to be: resolute 303s autopkgtest [20:47:03]: updating testbed package index (apt update) 305s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 305s Get:2 http://ftpmaster.internal/ubuntu resolute InRelease [124 kB] 305s Get:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease [124 kB] 305s Get:4 http://ftpmaster.internal/ubuntu resolute-security InRelease [124 kB] 305s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [242 kB] 305s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [27.9 kB] 305s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5260 B] 305s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1343 kB] 306s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf Packages [283 kB] 306s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe armhf Packages [1070 kB] 306s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse armhf Packages [6336 B] 306s Get:12 http://ftpmaster.internal/ubuntu resolute/main Sources [1400 kB] 306s Get:13 http://ftpmaster.internal/ubuntu resolute/multiverse Sources [310 kB] 306s Get:14 http://ftpmaster.internal/ubuntu resolute/universe Sources [21.3 MB] 306s Get:15 http://ftpmaster.internal/ubuntu resolute/main armhf Packages [1373 kB] 306s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf Packages [15.0 MB] 307s Get:17 http://ftpmaster.internal/ubuntu resolute/multiverse armhf Packages [176 kB] 310s Fetched 43.1 MB in 5s (8478 kB/s) 311s Reading package lists... 317s autopkgtest [20:47:17]: upgrading testbed (apt dist-upgrade and autopurge) 319s Reading package lists... 319s Building dependency tree... 319s Reading state information... 319s Calculating upgrade... 320s The following packages will be upgraded: 320s powermgmt-base systemd-hwe-hwdb 320s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 320s Need to get 11.0 kB of archives. 320s After this operation, 1024 B of additional disk space will be used. 320s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf systemd-hwe-hwdb all 259.0.1 [3152 B] 320s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf powermgmt-base all 1.38ubuntu2 [7878 B] 320s Fetched 11.0 kB in 0s (45.2 kB/s) 321s (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 ... 68394 files and directories currently installed.) 321s Preparing to unpack .../systemd-hwe-hwdb_259.0.1_all.deb ... 321s Unpacking systemd-hwe-hwdb (259.0.1) over (257.7.1) ... 321s Preparing to unpack .../powermgmt-base_1.38ubuntu2_all.deb ... 321s Unpacking powermgmt-base (1.38ubuntu2) over (1.38ubuntu1) ... 321s Setting up powermgmt-base (1.38ubuntu2) ... 321s Setting up systemd-hwe-hwdb (259.0.1) ... 321s Processing triggers for udev (259-1ubuntu3) ... 322s Processing triggers for man-db (2.13.1-1) ... 324s Reading package lists... 325s Building dependency tree... 325s Reading state information... 325s Solving dependencies... 325s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 327s autopkgtest [20:47:27]: rebooting testbed after setup commands that affected boot 394s Reading package lists... 395s Building dependency tree... 395s Reading state information... 395s Solving dependencies... 396s The following NEW packages will be installed: 396s ca-certificates-java default-jre-headless java-common jruby libasm-java 396s libbackport9-java libbcpkix-java libbcprov-java libbctls-java libbcutil-java 396s libdirgra-java libfixposix4t64 libhawtjni-runtime-java 396s libheadius-options-java libinvokebinder-java libjansi-native-java 396s libjansi1-java libjcodings-java libjffi-java libjffi-jni libjitescript-java 396s libjline2-java libjnr-constants-java libjnr-enxio-java libjnr-ffi-java 396s libjnr-netdb-java libjnr-posix-java libjnr-unixsocket-java 396s libjnr-x86asm-java libjoda-time-java libjpeg-turbo8 libjpeg8 396s libjruby-joni-java libjzlib-java liblcms2-2 libpcsclite1 libruby libruby3.3 396s libsnakeyaml-engine-java openjdk-21-jre-headless rake ruby ruby-concurrent 396s ruby-concurrent-ext ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-net-telnet 396s ruby-rspec ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks 396s ruby-rspec-support ruby-ruby2-keywords ruby-rubygems ruby-timecop 396s ruby-webrick ruby-xmlrpc ruby3.3 rubygems-integration 396s 0 upgraded, 60 newly installed, 0 to remove and 0 not upgraded. 396s Need to get 84.1 MB of archives. 396s After this operation, 262 MB of additional disk space will be used. 396s Get:1 http://ftpmaster.internal/ubuntu resolute/main armhf ca-certificates-java all 20240118build1 [11.7 kB] 396s Get:2 http://ftpmaster.internal/ubuntu resolute/main armhf java-common all 0.76build1 [6956 B] 396s Get:3 http://ftpmaster.internal/ubuntu resolute/main armhf liblcms2-2 armhf 2.17-1 [139 kB] 396s Get:4 http://ftpmaster.internal/ubuntu resolute/main armhf libjpeg-turbo8 armhf 2.1.5-4ubuntu2 [127 kB] 396s Get:5 http://ftpmaster.internal/ubuntu resolute/main armhf libjpeg8 armhf 8c-2ubuntu11 [2148 B] 396s Get:6 http://ftpmaster.internal/ubuntu resolute/main armhf libpcsclite1 armhf 2.4.1-1 [25.3 kB] 396s Get:7 http://ftpmaster.internal/ubuntu resolute/main armhf openjdk-21-jre-headless armhf 21.0.10+7-1 [39.8 MB] 398s Get:8 http://ftpmaster.internal/ubuntu resolute/main armhf default-jre-headless armhf 2:1.21-76build1 [3268 B] 398s Get:9 http://ftpmaster.internal/ubuntu resolute/universe armhf libasm-java all 9.8-2 [388 kB] 398s Get:10 http://ftpmaster.internal/ubuntu resolute/universe armhf libbackport9-java all 1.10-2build1 [13.2 kB] 398s Get:11 http://ftpmaster.internal/ubuntu resolute/universe armhf libbcprov-java all 1.80-3 [5468 kB] 398s Get:12 http://ftpmaster.internal/ubuntu resolute/universe armhf libbcutil-java all 1.80-3 [545 kB] 398s Get:13 http://ftpmaster.internal/ubuntu resolute/universe armhf libbcpkix-java all 1.80-3 [913 kB] 398s Get:14 http://ftpmaster.internal/ubuntu resolute/universe armhf libbctls-java all 1.80-3 [645 kB] 398s Get:15 http://ftpmaster.internal/ubuntu resolute/universe armhf libdirgra-java all 0.4-2build1 [21.8 kB] 398s Get:16 http://ftpmaster.internal/ubuntu resolute/universe armhf libfixposix4t64 armhf 1:0.5.1-1+nmu1.1build2 [14.4 kB] 398s Get:17 http://ftpmaster.internal/ubuntu resolute/universe armhf libheadius-options-java all 1.7-1build1 [18.3 kB] 398s Get:18 http://ftpmaster.internal/ubuntu resolute/universe armhf libinvokebinder-java all 1.14-1build1 [52.1 kB] 398s Get:19 http://ftpmaster.internal/ubuntu resolute/universe armhf libhawtjni-runtime-java all 1.18-1build1 [28.4 kB] 398s Get:20 http://ftpmaster.internal/ubuntu resolute/universe armhf libjansi-native-java all 1.8-2build1 [23.6 kB] 398s Get:21 http://ftpmaster.internal/ubuntu resolute/universe armhf libjansi1-java all 1.18-3.1build1 [56.3 kB] 398s Get:22 http://ftpmaster.internal/ubuntu resolute/universe armhf libjcodings-java all 1.0.58-1build1 [1474 kB] 398s Get:23 http://ftpmaster.internal/ubuntu resolute/universe armhf libjffi-jni armhf 1.3.13+ds-1build1 [25.1 kB] 398s Get:24 http://ftpmaster.internal/ubuntu resolute/universe armhf libjffi-java all 1.3.13+ds-1build1 [111 kB] 398s Get:25 http://ftpmaster.internal/ubuntu resolute/universe armhf libjitescript-java all 0.4.3-1build1 [24.5 kB] 398s Get:26 http://ftpmaster.internal/ubuntu resolute/universe armhf libjline2-java all 2.14.6-6 [152 kB] 398s Get:27 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-constants-java all 0.10.4-2build1 [1416 kB] 398s Get:28 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-x86asm-java all 1.0.2-6build1 [216 kB] 398s Get:29 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-ffi-java all 2.2.15-2build1 [632 kB] 398s Get:30 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-enxio-java all 0.32.16-1build1 [33.8 kB] 398s Get:31 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-netdb-java all 1.2.0+dfsg-1build1 [58.7 kB] 398s Get:32 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-posix-java all 3.1.18-1build1 [268 kB] 398s Get:33 http://ftpmaster.internal/ubuntu resolute/universe armhf libjnr-unixsocket-java all 0.38.21-3 [46.8 kB] 398s Get:34 http://ftpmaster.internal/ubuntu resolute/universe armhf libjoda-time-java all 2.10.14-1 [535 kB] 398s Get:35 http://ftpmaster.internal/ubuntu resolute/universe armhf libjruby-joni-java all 2.2.1-1build1 [221 kB] 398s Get:36 http://ftpmaster.internal/ubuntu resolute/universe armhf libjzlib-java all 1.1.3-3build1 [76.7 kB] 398s Get:37 http://ftpmaster.internal/ubuntu resolute/universe armhf libsnakeyaml-engine-java all 2.7+ds-3build1 [258 kB] 398s Get:38 http://ftpmaster.internal/ubuntu resolute/universe armhf jruby all 9.4.8.0+ds-3ubuntu1 [23.4 MB] 399s Get:39 http://ftpmaster.internal/ubuntu resolute/main armhf rubygems-integration all 1.19build1 [5666 B] 399s Get:40 http://ftpmaster.internal/ubuntu resolute/main armhf ruby3.3 armhf 3.3.8-2ubuntu2 [59.0 kB] 399s Get:41 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-rubygems all 3.6.7-2ubuntu1 [332 kB] 399s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf ruby armhf 1:3.3build1 [3676 B] 399s Get:43 http://ftpmaster.internal/ubuntu resolute/main armhf rake all 13.2.1-1build1 [45.9 kB] 399s Get:44 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-csv all 3.3.4-1 [43.0 kB] 399s Get:45 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 399s Get:46 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 399s Get:47 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 399s Get:48 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-webrick all 1.9.1-1 [60.8 kB] 399s Get:49 http://ftpmaster.internal/ubuntu resolute/main armhf ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 399s Get:50 http://ftpmaster.internal/ubuntu resolute/main armhf libruby3.3 armhf 3.3.8-2ubuntu2 [5595 kB] 399s Get:51 http://ftpmaster.internal/ubuntu resolute-proposed/main armhf libruby armhf 1:3.3build1 [5276 B] 399s Get:52 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-concurrent all 1.3.4-1 [283 kB] 399s Get:53 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-concurrent-ext armhf 1.3.4-1 [8586 B] 399s Get:54 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-diff-lcs all 1.5.1-1 [22.8 kB] 399s Get:55 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 399s Get:56 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 399s Get:57 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 399s Get:58 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 399s Get:59 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 399s Get:60 http://ftpmaster.internal/ubuntu resolute/universe armhf ruby-timecop all 0.9.10-1.1 [11.5 kB] 399s Fetched 84.1 MB in 3s (27.8 MB/s) 399s Selecting previously unselected package ca-certificates-java. 400s (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 ... 68395 files and directories currently installed.) 400s Preparing to unpack .../00-ca-certificates-java_20240118build1_all.deb ... 400s Unpacking ca-certificates-java (20240118build1) ... 400s Selecting previously unselected package java-common. 400s Preparing to unpack .../01-java-common_0.76build1_all.deb ... 400s Unpacking java-common (0.76build1) ... 400s Selecting previously unselected package liblcms2-2:armhf. 400s Preparing to unpack .../02-liblcms2-2_2.17-1_armhf.deb ... 400s Unpacking liblcms2-2:armhf (2.17-1) ... 400s Selecting previously unselected package libjpeg-turbo8:armhf. 400s Preparing to unpack .../03-libjpeg-turbo8_2.1.5-4ubuntu2_armhf.deb ... 400s Unpacking libjpeg-turbo8:armhf (2.1.5-4ubuntu2) ... 400s Selecting previously unselected package libjpeg8:armhf. 400s Preparing to unpack .../04-libjpeg8_8c-2ubuntu11_armhf.deb ... 400s Unpacking libjpeg8:armhf (8c-2ubuntu11) ... 400s Selecting previously unselected package libpcsclite1:armhf. 400s Preparing to unpack .../05-libpcsclite1_2.4.1-1_armhf.deb ... 400s Unpacking libpcsclite1:armhf (2.4.1-1) ... 400s Selecting previously unselected package openjdk-21-jre-headless:armhf. 400s Preparing to unpack .../06-openjdk-21-jre-headless_21.0.10+7-1_armhf.deb ... 400s Unpacking openjdk-21-jre-headless:armhf (21.0.10+7-1) ... 401s Selecting previously unselected package default-jre-headless. 401s Preparing to unpack .../07-default-jre-headless_2%3a1.21-76build1_armhf.deb ... 401s Unpacking default-jre-headless (2:1.21-76build1) ... 401s Selecting previously unselected package libasm-java. 401s Preparing to unpack .../08-libasm-java_9.8-2_all.deb ... 401s Unpacking libasm-java (9.8-2) ... 401s Selecting previously unselected package libbackport9-java. 401s Preparing to unpack .../09-libbackport9-java_1.10-2build1_all.deb ... 401s Unpacking libbackport9-java (1.10-2build1) ... 401s Selecting previously unselected package libbcprov-java. 401s Preparing to unpack .../10-libbcprov-java_1.80-3_all.deb ... 401s Unpacking libbcprov-java (1.80-3) ... 401s Selecting previously unselected package libbcutil-java. 401s Preparing to unpack .../11-libbcutil-java_1.80-3_all.deb ... 401s Unpacking libbcutil-java (1.80-3) ... 401s Selecting previously unselected package libbcpkix-java. 401s Preparing to unpack .../12-libbcpkix-java_1.80-3_all.deb ... 401s Unpacking libbcpkix-java (1.80-3) ... 401s Selecting previously unselected package libbctls-java. 401s Preparing to unpack .../13-libbctls-java_1.80-3_all.deb ... 401s Unpacking libbctls-java (1.80-3) ... 401s Selecting previously unselected package libdirgra-java. 401s Preparing to unpack .../14-libdirgra-java_0.4-2build1_all.deb ... 401s Unpacking libdirgra-java (0.4-2build1) ... 401s Selecting previously unselected package libfixposix4t64:armhf. 401s Preparing to unpack .../15-libfixposix4t64_1%3a0.5.1-1+nmu1.1build2_armhf.deb ... 401s Unpacking libfixposix4t64:armhf (1:0.5.1-1+nmu1.1build2) ... 401s Selecting previously unselected package libheadius-options-java. 401s Preparing to unpack .../16-libheadius-options-java_1.7-1build1_all.deb ... 401s Unpacking libheadius-options-java (1.7-1build1) ... 401s Selecting previously unselected package libinvokebinder-java. 401s Preparing to unpack .../17-libinvokebinder-java_1.14-1build1_all.deb ... 401s Unpacking libinvokebinder-java (1.14-1build1) ... 401s Selecting previously unselected package libhawtjni-runtime-java. 401s Preparing to unpack .../18-libhawtjni-runtime-java_1.18-1build1_all.deb ... 401s Unpacking libhawtjni-runtime-java (1.18-1build1) ... 401s Selecting previously unselected package libjansi-native-java. 401s Preparing to unpack .../19-libjansi-native-java_1.8-2build1_all.deb ... 401s Unpacking libjansi-native-java (1.8-2build1) ... 401s Selecting previously unselected package libjansi1-java. 401s Preparing to unpack .../20-libjansi1-java_1.18-3.1build1_all.deb ... 401s Unpacking libjansi1-java (1.18-3.1build1) ... 401s Selecting previously unselected package libjcodings-java. 401s Preparing to unpack .../21-libjcodings-java_1.0.58-1build1_all.deb ... 401s Unpacking libjcodings-java (1.0.58-1build1) ... 401s Selecting previously unselected package libjffi-jni:armhf. 402s Preparing to unpack .../22-libjffi-jni_1.3.13+ds-1build1_armhf.deb ... 402s Unpacking libjffi-jni:armhf (1.3.13+ds-1build1) ... 402s Selecting previously unselected package libjffi-java. 402s Preparing to unpack .../23-libjffi-java_1.3.13+ds-1build1_all.deb ... 402s Unpacking libjffi-java (1.3.13+ds-1build1) ... 402s Selecting previously unselected package libjitescript-java. 402s Preparing to unpack .../24-libjitescript-java_0.4.3-1build1_all.deb ... 402s Unpacking libjitescript-java (0.4.3-1build1) ... 402s Selecting previously unselected package libjline2-java. 402s Preparing to unpack .../25-libjline2-java_2.14.6-6_all.deb ... 402s Unpacking libjline2-java (2.14.6-6) ... 402s Selecting previously unselected package libjnr-constants-java. 402s Preparing to unpack .../26-libjnr-constants-java_0.10.4-2build1_all.deb ... 402s Unpacking libjnr-constants-java (0.10.4-2build1) ... 402s Selecting previously unselected package libjnr-x86asm-java. 402s Preparing to unpack .../27-libjnr-x86asm-java_1.0.2-6build1_all.deb ... 402s Unpacking libjnr-x86asm-java (1.0.2-6build1) ... 402s Selecting previously unselected package libjnr-ffi-java. 402s Preparing to unpack .../28-libjnr-ffi-java_2.2.15-2build1_all.deb ... 402s Unpacking libjnr-ffi-java (2.2.15-2build1) ... 402s Selecting previously unselected package libjnr-enxio-java. 402s Preparing to unpack .../29-libjnr-enxio-java_0.32.16-1build1_all.deb ... 402s Unpacking libjnr-enxio-java (0.32.16-1build1) ... 402s Selecting previously unselected package libjnr-netdb-java. 402s Preparing to unpack .../30-libjnr-netdb-java_1.2.0+dfsg-1build1_all.deb ... 402s Unpacking libjnr-netdb-java (1.2.0+dfsg-1build1) ... 402s Selecting previously unselected package libjnr-posix-java. 402s Preparing to unpack .../31-libjnr-posix-java_3.1.18-1build1_all.deb ... 402s Unpacking libjnr-posix-java (3.1.18-1build1) ... 402s Selecting previously unselected package libjnr-unixsocket-java. 402s Preparing to unpack .../32-libjnr-unixsocket-java_0.38.21-3_all.deb ... 402s Unpacking libjnr-unixsocket-java (0.38.21-3) ... 402s Selecting previously unselected package libjoda-time-java. 402s Preparing to unpack .../33-libjoda-time-java_2.10.14-1_all.deb ... 402s Unpacking libjoda-time-java (2.10.14-1) ... 402s Selecting previously unselected package libjruby-joni-java. 402s Preparing to unpack .../34-libjruby-joni-java_2.2.1-1build1_all.deb ... 402s Unpacking libjruby-joni-java (2.2.1-1build1) ... 402s Selecting previously unselected package libjzlib-java. 402s Preparing to unpack .../35-libjzlib-java_1.1.3-3build1_all.deb ... 402s Unpacking libjzlib-java (1.1.3-3build1) ... 402s Selecting previously unselected package libsnakeyaml-engine-java. 402s Preparing to unpack .../36-libsnakeyaml-engine-java_2.7+ds-3build1_all.deb ... 402s Unpacking libsnakeyaml-engine-java (2.7+ds-3build1) ... 402s Selecting previously unselected package jruby. 402s Preparing to unpack .../37-jruby_9.4.8.0+ds-3ubuntu1_all.deb ... 402s Unpacking jruby (9.4.8.0+ds-3ubuntu1) ... 402s Selecting previously unselected package rubygems-integration. 402s Preparing to unpack .../38-rubygems-integration_1.19build1_all.deb ... 402s Unpacking rubygems-integration (1.19build1) ... 402s Selecting previously unselected package ruby3.3. 402s Preparing to unpack .../39-ruby3.3_3.3.8-2ubuntu2_armhf.deb ... 402s Unpacking ruby3.3 (3.3.8-2ubuntu2) ... 402s Selecting previously unselected package ruby-rubygems. 402s Preparing to unpack .../40-ruby-rubygems_3.6.7-2ubuntu1_all.deb ... 402s Unpacking ruby-rubygems (3.6.7-2ubuntu1) ... 403s Selecting previously unselected package ruby. 403s Preparing to unpack .../41-ruby_1%3a3.3build1_armhf.deb ... 403s Unpacking ruby (1:3.3build1) ... 403s Selecting previously unselected package rake. 403s Preparing to unpack .../42-rake_13.2.1-1build1_all.deb ... 403s Unpacking rake (13.2.1-1build1) ... 403s Selecting previously unselected package ruby-csv. 403s Preparing to unpack .../43-ruby-csv_3.3.4-1_all.deb ... 403s Unpacking ruby-csv (3.3.4-1) ... 403s Selecting previously unselected package ruby-did-you-mean. 403s Preparing to unpack .../44-ruby-did-you-mean_1.6.3-2build1_all.deb ... 403s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 403s Selecting previously unselected package ruby-net-telnet. 403s Preparing to unpack .../45-ruby-net-telnet_0.2.0-1build1_all.deb ... 403s Unpacking ruby-net-telnet (0.2.0-1build1) ... 403s Selecting previously unselected package ruby-ruby2-keywords. 403s Preparing to unpack .../46-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 403s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 403s Selecting previously unselected package ruby-webrick. 403s Preparing to unpack .../47-ruby-webrick_1.9.1-1_all.deb ... 403s Unpacking ruby-webrick (1.9.1-1) ... 403s Selecting previously unselected package ruby-xmlrpc. 403s Preparing to unpack .../48-ruby-xmlrpc_0.3.3-2build1_all.deb ... 403s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 403s Selecting previously unselected package libruby3.3:armhf. 403s Preparing to unpack .../49-libruby3.3_3.3.8-2ubuntu2_armhf.deb ... 403s Unpacking libruby3.3:armhf (3.3.8-2ubuntu2) ... 403s Selecting previously unselected package libruby:armhf. 403s Preparing to unpack .../50-libruby_1%3a3.3build1_armhf.deb ... 403s Unpacking libruby:armhf (1:3.3build1) ... 403s Selecting previously unselected package ruby-concurrent. 403s Preparing to unpack .../51-ruby-concurrent_1.3.4-1_all.deb ... 403s Unpacking ruby-concurrent (1.3.4-1) ... 403s Selecting previously unselected package ruby-concurrent-ext. 403s Preparing to unpack .../52-ruby-concurrent-ext_1.3.4-1_armhf.deb ... 403s Unpacking ruby-concurrent-ext (1.3.4-1) ... 403s Selecting previously unselected package ruby-diff-lcs. 403s Preparing to unpack .../53-ruby-diff-lcs_1.5.1-1_all.deb ... 403s Unpacking ruby-diff-lcs (1.5.1-1) ... 403s Selecting previously unselected package ruby-rspec-support. 403s Preparing to unpack .../54-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 403s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 403s Selecting previously unselected package ruby-rspec-core. 403s Preparing to unpack .../55-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 403s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 404s Selecting previously unselected package ruby-rspec-expectations. 404s Preparing to unpack .../56-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 404s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 404s Selecting previously unselected package ruby-rspec-mocks. 404s Preparing to unpack .../57-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 404s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 404s Selecting previously unselected package ruby-rspec. 404s Preparing to unpack .../58-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 404s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 404s Selecting previously unselected package ruby-timecop. 404s Preparing to unpack .../59-ruby-timecop_0.9.10-1.1_all.deb ... 404s Unpacking ruby-timecop (0.9.10-1.1) ... 404s Setting up libbcprov-java (1.80-3) ... 404s Setting up liblcms2-2:armhf (2.17-1) ... 404s Setting up libfixposix4t64:armhf (1:0.5.1-1+nmu1.1build2) ... 404s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 404s Setting up java-common (0.76build1) ... 404s Setting up libbcutil-java (1.80-3) ... 404s Setting up libasm-java (9.8-2) ... 404s Setting up rubygems-integration (1.19build1) ... 404s Setting up libheadius-options-java (1.7-1build1) ... 404s Setting up libbctls-java (1.80-3) ... 404s Setting up ruby-concurrent (1.3.4-1) ... 404s Setting up libjnr-x86asm-java (1.0.2-6build1) ... 404s Setting up ruby-timecop (0.9.10-1.1) ... 404s Setting up libjzlib-java (1.1.3-3build1) ... 404s Setting up libbackport9-java (1.10-2build1) ... 404s Setting up libjitescript-java (0.4.3-1build1) ... 404s Setting up libsnakeyaml-engine-java (2.7+ds-3build1) ... 404s Setting up ruby-net-telnet (0.2.0-1build1) ... 404s Setting up ruby-csv (3.3.4-1) ... 404s Setting up libpcsclite1:armhf (2.4.1-1) ... 404s Setting up libjpeg-turbo8:armhf (2.1.5-4ubuntu2) ... 404s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 404s Setting up libjoda-time-java (2.10.14-1) ... 404s Setting up libjcodings-java (1.0.58-1build1) ... 404s Setting up ruby-webrick (1.9.1-1) ... 404s Setting up libinvokebinder-java (1.14-1build1) ... 404s Setting up libjffi-jni:armhf (1.3.13+ds-1build1) ... 404s Setting up ca-certificates-java (20240118build1) ... 404s No JRE found. Skipping Java certificates setup. 404s Setting up ruby-did-you-mean (1.6.3-2build1) ... 404s Setting up libbcpkix-java (1.80-3) ... 404s Setting up ruby-xmlrpc (0.3.3-2build1) ... 404s Setting up libhawtjni-runtime-java (1.18-1build1) ... 404s Setting up libdirgra-java (0.4-2build1) ... 404s Setting up libjnr-constants-java (0.10.4-2build1) ... 404s Setting up libjpeg8:armhf (8c-2ubuntu11) ... 404s Setting up libjffi-java (1.3.13+ds-1build1) ... 404s Setting up openjdk-21-jre-headless:armhf (21.0.10+7-1) ... 404s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode 404s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 404s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 404s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 404s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 404s Setting up libjruby-joni-java (2.2.1-1build1) ... 404s Setting up libjansi-native-java (1.8-2build1) ... 404s Setting up libjansi1-java (1.18-3.1build1) ... 404s Setting up libjline2-java (2.14.6-6) ... 404s Setting up libjnr-ffi-java (2.2.15-2build1) ... 404s Setting up libjnr-enxio-java (0.32.16-1build1) ... 404s Setting up libjnr-netdb-java (1.2.0+dfsg-1build1) ... 404s Setting up libjnr-posix-java (3.1.18-1build1) ... 404s Setting up libjnr-unixsocket-java (0.38.21-3) ... 404s Setting up rake (13.2.1-1build1) ... 404s Setting up libruby3.3:armhf (3.3.8-2ubuntu2) ... 404s Setting up ruby3.3 (3.3.8-2ubuntu2) ... 404s Setting up libruby:armhf (1:3.3build1) ... 404s Setting up ruby (1:3.3build1) ... 404s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 404s Setting up ruby-diff-lcs (1.5.1-1) ... 404s Setting up ruby-rubygems (3.6.7-2ubuntu1) ... 404s Setting up ruby-concurrent-ext (1.3.4-1) ... 404s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 404s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 404s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 404s Processing triggers for libc-bin (2.42-2ubuntu4) ... 404s Processing triggers for man-db (2.13.1-1) ... 405s Processing triggers for ca-certificates-java (20240118build1) ... 405s Adding debian:ACCVRAIZ1.pem 405s Adding debian:AC_RAIZ_FNMT-RCM.pem 406s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 406s Adding debian:ANF_Secure_Server_Root_CA.pem 406s Adding debian:Actalis_Authentication_Root_CA.pem 406s Adding debian:AffirmTrust_Commercial.pem 406s Adding debian:AffirmTrust_Networking.pem 406s Adding debian:AffirmTrust_Premium.pem 406s Adding debian:AffirmTrust_Premium_ECC.pem 406s Adding debian:Amazon_Root_CA_1.pem 406s Adding debian:Amazon_Root_CA_2.pem 406s Adding debian:Amazon_Root_CA_3.pem 406s Adding debian:Amazon_Root_CA_4.pem 406s Adding debian:Atos_TrustedRoot_2011.pem 406s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 406s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 406s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 406s Adding debian:BJCA_Global_Root_CA1.pem 406s Adding debian:BJCA_Global_Root_CA2.pem 406s Adding debian:Baltimore_CyberTrust_Root.pem 406s Adding debian:Buypass_Class_2_Root_CA.pem 406s Adding debian:Buypass_Class_3_Root_CA.pem 406s Adding debian:CA_Disig_Root_R2.pem 406s Adding debian:CFCA_EV_ROOT.pem 406s Adding debian:COMODO_Certification_Authority.pem 406s Adding debian:COMODO_ECC_Certification_Authority.pem 406s Adding debian:COMODO_RSA_Certification_Authority.pem 406s Adding debian:Certainly_Root_E1.pem 406s Adding debian:Certainly_Root_R1.pem 406s Adding debian:Certigna.pem 406s Adding debian:Certigna_Root_CA.pem 406s Adding debian:Certum_EC-384_CA.pem 406s Adding debian:Certum_Trusted_Network_CA.pem 406s Adding debian:Certum_Trusted_Network_CA_2.pem 406s Adding debian:Certum_Trusted_Root_CA.pem 406s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 406s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 406s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 406s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 406s Adding debian:Comodo_AAA_Services_root.pem 406s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 406s Adding debian:D-TRUST_BR_Root_CA_2_2023.pem 406s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 406s Adding debian:D-TRUST_EV_Root_CA_2_2023.pem 406s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 406s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 406s Adding debian:DigiCert_Assured_ID_Root_CA.pem 406s Adding debian:DigiCert_Assured_ID_Root_G2.pem 406s Adding debian:DigiCert_Assured_ID_Root_G3.pem 406s Adding debian:DigiCert_Global_Root_CA.pem 406s Adding debian:DigiCert_Global_Root_G2.pem 406s Adding debian:DigiCert_Global_Root_G3.pem 406s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 406s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 406s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 406s Adding debian:DigiCert_Trusted_Root_G4.pem 406s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 406s Adding debian:Entrust_Root_Certification_Authority.pem 406s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 406s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 406s Adding debian:FIRMAPROFESIONAL_CA_ROOT-A_WEB.pem 406s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 406s Adding debian:GLOBALTRUST_2020.pem 406s Adding debian:GTS_Root_R1.pem 406s Adding debian:GTS_Root_R2.pem 406s Adding debian:GTS_Root_R3.pem 406s Adding debian:GTS_Root_R4.pem 406s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 406s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 406s Adding debian:GlobalSign_Root_CA.pem 406s Adding debian:GlobalSign_Root_CA_-_R3.pem 406s Adding debian:GlobalSign_Root_CA_-_R6.pem 406s Adding debian:GlobalSign_Root_E46.pem 406s Adding debian:GlobalSign_Root_R46.pem 406s Adding debian:Go_Daddy_Class_2_CA.pem 406s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 406s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 406s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 406s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 406s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 406s Adding debian:HiPKI_Root_CA_-_G1.pem 406s Adding debian:Hongkong_Post_Root_CA_3.pem 406s Adding debian:ISRG_Root_X1.pem 406s Adding debian:ISRG_Root_X2.pem 406s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 406s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 406s Adding debian:Izenpe.com.pem 406s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 406s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 406s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 406s Adding debian:NAVER_Global_Root_Certification_Authority.pem 406s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 406s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 406s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 406s Adding debian:QuoVadis_Root_CA_1_G3.pem 406s Adding debian:QuoVadis_Root_CA_2.pem 406s Adding debian:QuoVadis_Root_CA_2_G3.pem 406s Adding debian:QuoVadis_Root_CA_3.pem 406s Adding debian:QuoVadis_Root_CA_3_G3.pem 406s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 406s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 406s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 406s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 406s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 406s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 406s Adding debian:SZAFIR_ROOT_CA2.pem 406s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 406s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 406s Adding debian:SecureSign_Root_CA12.pem 406s Adding debian:SecureSign_Root_CA14.pem 406s Adding debian:SecureSign_Root_CA15.pem 406s Adding debian:SecureTrust_CA.pem 406s Adding debian:Secure_Global_CA.pem 406s Adding debian:Security_Communication_ECC_RootCA1.pem 406s Adding debian:Security_Communication_RootCA2.pem 406s Adding debian:Starfield_Class_2_CA.pem 406s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 406s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 406s Adding debian:SwissSign_Gold_CA_-_G2.pem 406s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 406s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 406s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 406s Adding debian:TWCA_CYBER_Root_CA.pem 406s Adding debian:TWCA_Global_Root_CA.pem 406s Adding debian:TWCA_Root_Certification_Authority.pem 406s Adding debian:Telekom_Security_TLS_ECC_Root_2020.pem 406s Adding debian:Telekom_Security_TLS_RSA_Root_2023.pem 406s Adding debian:TeliaSonera_Root_CA_v1.pem 406s Adding debian:Telia_Root_CA_v2.pem 406s Adding debian:TrustAsia_Global_Root_CA_G3.pem 406s Adding debian:TrustAsia_Global_Root_CA_G4.pem 406s Adding debian:Trustwave_Global_Certification_Authority.pem 406s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 406s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 406s Adding debian:TunTrust_Root_CA.pem 406s Adding debian:UCA_Extended_Validation_Root.pem 406s Adding debian:UCA_Global_G2_Root.pem 406s Adding debian:USERTrust_ECC_Certification_Authority.pem 406s Adding debian:USERTrust_RSA_Certification_Authority.pem 406s Adding debian:XRamp_Global_CA_Root.pem 406s Adding debian:certSIGN_ROOT_CA.pem 406s Adding debian:certSIGN_Root_CA_G2.pem 406s Adding debian:e-Szigno_Root_CA_2017.pem 406s Adding debian:ePKI_Root_Certification_Authority.pem 406s Adding debian:emSign_ECC_Root_CA_-_C3.pem 406s Adding debian:emSign_ECC_Root_CA_-_G3.pem 406s Adding debian:emSign_Root_CA_-_C1.pem 406s Adding debian:emSign_Root_CA_-_G1.pem 406s Adding debian:vTrus_ECC_Root_CA.pem 406s Adding debian:vTrus_Root_CA.pem 406s done. 406s Setting up default-jre-headless (2:1.21-76build1) ... 406s Setting up jruby (9.4.8.0+ds-3ubuntu1) ... 426s autopkgtest [20:49:06]: test jruby: [----------------------- 428s installing concurrent-ruby-1.3.4 gem into temporary GEM_HOME for jruby ... 428s installing concurrent-ruby-edge-0.7.1 gem into temporary GEM_HOME for jruby ... 428s installing diff-lcs-1.5.1 gem into temporary GEM_HOME for jruby ... 428s installing rspec-core-3.13.0 gem into temporary GEM_HOME for jruby ... 428s installing rspec-expectations-3.13.0 gem into temporary GEM_HOME for jruby ... 428s installing rspec-mocks-3.13.0 gem into temporary GEM_HOME for jruby ... 428s installing rspec-support-3.13.1 gem into temporary GEM_HOME for jruby ... 428s installing timecop-0.9.10 gem into temporary GEM_HOME for jruby ... 433s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/options.rb require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/options.rb:6 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/options.rb:3 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/scheduled_task.rb:8 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:1 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executors.rb:20 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:25 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:17 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:7 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 433s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/actor_spec.rb:1 433s load at org/jruby/RubyKernel.java:1220 433s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 433s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 433s each at org/jruby/RubyArray.java:1981 433s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 433s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 433s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 433s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 433s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 433s
at /usr/bin/rspec:4 433s 433s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:19 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:9 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executors.rb:20 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:25 433s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:17 433s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:7 433s require at org/jruby/RubyKernel.java:1184 433s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 433s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/actor_spec.rb:1 433s load at org/jruby/RubyKernel.java:1220 433s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 433s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 433s each at org/jruby/RubyArray.java:1981 433s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 433s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 433s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 433s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 433s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 433s
at /usr/bin/rspec:4 433s 437s /usr/share/jruby/lib/ruby/stdlib/date.rb:471: warning: previous definition of strptime was here 437s /usr/share/jruby/lib/ruby/stdlib/date.rb:490: warning: previous definition of parse was here 437s /usr/share/jruby/lib/ruby/stdlib/date.rb:737: warning: previous definition of parse was here 438s Run options: exclude {:stress=>true} 439s 439s Concurrent::Actor 439s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:30 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 439s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 439s require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 439s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/spec_helper.rb:50 439s instance_exec at org/jruby/RubyBasicObject.java:2620 439s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 439s each at org/jruby/RubyArray.java:1981 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 439s reverse_each at org/jruby/RubyArray.java:2063 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 439s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 439s map at org/jruby/RubyArray.java:2803 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s map at org/jruby/RubyArray.java:2803 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 439s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 439s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 439s
at /usr/bin/rspec:4 439s 439s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:53 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 439s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 439s require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 439s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/spec_helper.rb:50 439s instance_exec at org/jruby/RubyBasicObject.java:2620 439s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 439s each at org/jruby/RubyArray.java:1981 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 439s reverse_each at org/jruby/RubyArray.java:2063 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 439s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 439s map at org/jruby/RubyArray.java:2803 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s map at org/jruby/RubyArray.java:2803 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 439s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 439s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 439s
at /usr/bin/rspec:4 439s 439s forbids Immediate executor 439s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:74 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 439s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 439s require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 439s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/spec_helper.rb:50 439s instance_exec at org/jruby/RubyBasicObject.java:2620 439s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 439s each at org/jruby/RubyArray.java:1981 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 439s reverse_each at org/jruby/RubyArray.java:2063 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 439s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 439s map at org/jruby/RubyArray.java:2803 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s map at org/jruby/RubyArray.java:2803 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 439s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 439s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 439s
at /usr/bin/rspec:4 439s 439s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:101 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 439s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 439s require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 439s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/spec_helper.rb:50 439s instance_exec at org/jruby/RubyBasicObject.java:2620 439s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 439s each at org/jruby/RubyArray.java:1981 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 439s reverse_each at org/jruby/RubyArray.java:2063 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 439s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 439s map at org/jruby/RubyArray.java:2803 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s map at org/jruby/RubyArray.java:2803 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 439s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 439s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 439s
at /usr/bin/rspec:4 439s 439s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:136 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 439s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 439s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 439s require at org/jruby/RubyKernel.java:1184 439s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 439s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 439s
at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/spec_helper.rb:50 439s instance_exec at org/jruby/RubyBasicObject.java:2620 439s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 439s each at org/jruby/RubyArray.java:1981 439s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 439s reverse_each at org/jruby/RubyArray.java:2063 439s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 439s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 439s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 439s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 439s map at org/jruby/RubyArray.java:2803 439s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s map at org/jruby/RubyArray.java:2803 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 439s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 439s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 439s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 439s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 439s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 439s
at /usr/bin/rspec:4 439s 439s links 439s links atomically 439s spawning 439s terminates on failed initialization 439s terminates on failed initialization and raises with spawn! 439s terminates on failed message processing 439s Actor#spawn! 439s spawn 439s executor should be global 439s returns arg 439s #path 439s is expected to eq "/ping" 439s #parent 439s is expected to eq # 439s #name 439s is expected to eq "ping" 439s #reference 439s is expected to eq # 439s context_spawn 439s executor should be global 439s returns arg 439s #path 439s is expected to eq "/ping" 439s #parent 439s is expected to eq # 439s #name 439s is expected to eq "ping" 439s #reference 439s is expected to eq # 439s spawn_by_hash 439s executor should be global 439s returns arg 439s #path 439s is expected to eq "/ping" 439s #parent 439s is expected to eq # 439s #name 439s is expected to eq "ping" 439s #reference 439s is expected to eq # 439s context_spawn_by_hash 439s executor should be global 439s returns arg 439s #path 439s is expected to eq "/ping" 439s #parent 439s is expected to eq # 439s #name 439s is expected to eq "ping" 439s #reference 440s is expected to eq # 440s messaging 440s is expected to eq 4 440s children 440s has children set after a child is created 440s envelope 440s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb require at org/jruby/RubyKernel.java:1184 440s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 440s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:125 440s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:3 440s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:2 440s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:1 440s require at org/jruby/RubyKernel.java:1184 440s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 440s method_missing at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:964 440s method_missing at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:767 440s Actor at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/actor_spec.rb:136 440s instance_exec at org/jruby/RubyBasicObject.java:2620 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 440s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 440s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 440s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 440s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 440s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 440s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 440s map at org/jruby/RubyArray.java:2803 440s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 440s map at org/jruby/RubyArray.java:2803 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 440s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 440s map at org/jruby/RubyArray.java:2803 440s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 440s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 440s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 440s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 440s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 440s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 440s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 440s
at /usr/bin/rspec:4 440s 440s is expected to eq # 440s termination 440s terminates with all its children 440s dead letter routing 440s logs by deafault 440s message redirecting 440s is evaluated by child 440s pausing 440s pauses on error and resumes 440s pauses on error and resets 440s pauses on error and restarts 440s pool 440s supports asks 440s 440s Concurrent::Agent 440s initialization 440s sets the initial value 440s sets the initial error to nil 440s sets the error mode when given a valid value 440s defaults the error mode to :continue when an error handler is given 440s defaults the error mode to :fail when no error handler is given 440s raises an error when given an invalid error mode 440s sets #failed? to false 440s action processing 440s the given block will be passed the current value 440s the given block will be passed any provided arguments 440s the return value will be passed to the validator function 440s upon validation the new value will be set to the block return value 440s on success all observers will be notified 440s any recursive action dispatches will run after the value has been updated 440s when the action raises an error the value will not change 440s when the action raises an error the validator will not be called 440s when validation returns false the value will not change 440s when validation raises an error the value will not change 440s when the action raises an error the handler will be called 440s when validation fails the handler will be called 440s when validation raises an error the handler will be called 440s validation 440s sets the new value when the validator returns true 440s rejects the new value when the validator returns false 440s rejects the new value when the validator raises an error 440s sets the error when the error mode is :fail and the validator returns false 440s sets the error when the error mode is :fail and the validator raises an error 440s does not set an error when the error mode is :continue and the validator returns false 440s does not set an error when the error mode is :continue and the validator raises an error 440s does not trigger observation when validation fails 440s error handling 440s the agent will be passed to the handler 440s the exception will be passed to the handler 440s does not trigger observation 440s error mode 440s :continue 440s does not set an error when the validator returns false 440s does not set an error when the validator raises an error 440s does not set an error when the action raises an error 440s does not block further action processing 440s sets #failed? to false 440s :fail 440s sets the error when the validator returns false 440s sets the error when the validator raises an error 440s sets the error when the action raises an error 440s blocks all further action processing until a restart 440s sets #failed? to true 440s nested actions 440s occur in the order they ar post 440s work with immediate execution 440s posting 440s with #send 441s returns true when the job is post 441s returns false when #failed? 441s posts to the global fast executor 441s does not wait for the action to process 441s with #send! 441s returns true when the job is post 441s raises an error when #failed? 441s posts to the global fast executor 441s does not wait for the action to process 441s with #send_off 441s returns true when the job is post 441s returns false when #failed? 441s posts to the global io executor 441s does not wait for the action to process 441s with #send_off! 441s returns true when the job is post 441s raises an error when #failed? 441s posts to the global io executor 441s does not wait for the action to process 441s with #send_via 441s returns true when the job is post 441s returns false when #failed? 441s posts to the given executor 441s with #send_via! 441s returns true when the job is post 441s raises an error when #failed? 441s posts to the given executor 441s with #post 441s returns true when the job is post 441s returns false when #failed? 441s posts to the global io executor 441s does not wait for the action to process 441s with #<< 441s returns self when the job is post 441s returns self when #failed? 441s posts to the global io executor 441s does not wait for the action to process 441s #restart 441s when #failed? 441s raises an error if the new value is not valid 441s sets the new value 441s clears the error 441s sets #failed? to true 441s removes all actions from the queue when :clear_actions is true 441s does not clear the action queue when :clear_actions is false 441s does not clear the action queue when :clear_actions is not given 442s resumes action processing if actions are enqueued 442s does not trigger observation 442s when not #failed? 442s raises an error 442s waiting 442s the await job 442s does not change the value 442s does not trigger the error mode 442s does not trigger observers 442s waits for nested actions 442s with #await 442s returns self when there are no pending actions 442s does not block on actions from other threads 443s blocks indefinitely 444s returns true when all prior actions have processed 444s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 444s with #await_for 444s returns true when there are no pending actions 444s does not block on actions from other threads 445s returns true when all prior actions have processed 446s returns false on timeout 446s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 446s with #await_for! 446s returns true when there are no pending actions 446s does not block on actions from other threads 447s returns true when all prior actions have processed 448s raises an error on timeout 448s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 448s with #wait 448s returns true when there are no pending actions and timeout is nil 448s returns true when there are no pending actions and a timeout is given 448s does not block on actions from other threads 449s blocks indefinitely when timeout is nil 449s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 450s returns true when all prior actions have processed 451s returns false on timeout 451s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 451s with .await 451s returns true when all prior actions on all agents have processed 451s with .await_for 451s returns true when there are no pending actions 451s returns true when all prior actions for all agents have processed 452s returns false on timeout 452s with await_for! 452s returns true when there are no pending actions 452s returns true when all prior actions for all agents have processed 453s raises an exception on timeout 453s observable 453s behaves like observable 453s #add_observer 453s adds an observer if called before first notification 453s adds an observer with :func if called before first notification 453s creates an observer from a block if called before first notification 453s raises an exception if not given an observer or a block 453s raises an exception when given both an observer and a block 453s #delete_observer 453s deletes the given observer if called before first notification 453s returns the removed observer if found in the observer set 453s returns the given observer even when not found in the observer set 453s #delete_observers 453s deletes all observers when called before first notification 453s returns self 453s #count_observers 453s returns zero for a new observable object 453s returns a count of registered observers if called before first notification 453s returns zero after #delete_observers has been called 453s first notification 453s calls the #update method on all observers without a specified :func 453s calls the appropriate function on all observers which specified a :func 453s calls the proc for all observers added as a block 454s does not notify any observers removed with #delete_observer 455s does not notify any observers after #delete_observers called 455s 455s Concurrent::Array 455s .[] 455s when initializing with no arguments 455s is expected to be empty 455s when initializing with arguments 455s creates an array with the given objects 455s .new 455s when initializing with no arguments 455s is expected to be empty 455s when initializing with a size argument 455s creates an array with size elements set to nil 455s when initializing with a default value argument 455s creates an array with size elements set to the default value 455s when initializing with a block argument 455s creates an array with size elements set to the default value 455s when initializing with another array as an argument 455s creates a new array 455s creates an array with the same contents as the other array 455s creates an array with the results of calling #to_ary on the other array 455s concurrency 455s is expected to be empty 455s #slice 455s correctly initializes the monitor 455s 455s Concurrent::Async 455s object creation 455s delegates to the original constructor 455s passes all args to the original constructor 455s passes a given block to the original constructor 455s initializes synchronization 455s #validate_argc 456s raises an exception when the method is not defined 456s raises an exception for too many args on a zero arity method 456s does not raise an exception for correct zero arity 456s raises an exception for too many args on a method with positive arity 456s raises an exception for too few args on a method with positive arity 456s does not raise an exception for correct positive arity 456s raises an exception for too few args on a method with negative arity 456s does not raise an exception for correct negative arity 456s #async 456s raises an error when calling a method that does not exist 456s raises an error when passing too few arguments 456s raises an error when pasing too many arguments (arity >= 0) 456s returns the existence of the method 456s returns a :pending IVar 456s runs the future on the global executor 456s sets the value on success 456s sets the reason on failure 456s sets the reason when giving too many optional arguments 456s supports attribute accessors 456s supports methods with blocks 456s #await 456s raises an error when calling a method that does not exist 456s raises an error when passing too few arguments 456s raises an error when pasing too many arguments (arity >= 0) 456s returns the existence of the method 456s returns a :fulfilled IVar 456s runs the future on the global executor 456s sets the value on success 456s sets the reason on failure 456s sets the reason when giving too many optional arguments 456s supports attribute accessors 456s supports methods with blocks 456s locking 456s uses the same lock for both #async and #await 456s fork safety 456s does not hang when forked (PENDING: Platform does not support fork) 456s 456s Concurrent::Atom 456s construction 456s sets the initial value to the given value 456s #compare_and_set 456s sets the new value if the current value matches 456s returns true if the current value matches 456s rejects the new value if the current value does not match 456s returns false if the current value does not match 456s rejects the new value if the validator returns false 456s rejects the new value if the validator raises an exception 456s returns false if the validator returns false 456s returns false if the validator raises an exception 456s #swap 456s raises an exception when no block is given 456s passes the current value to the block 456s passes all arguments to the block 456s sets the new value to the result of the block 456s rejects the new value if the validator returns false 456s rejects the new value if the validator raises an exception 456s returns the new value on success 456s returns the old value if the validator returns false 456s returns the old value if the validator raises an exception 456s calls the block more than once if the value changes underneath 456s reraises the exception from block 456s #reset 456s sets the new value 456s returns the new value on success 456s returns the new value on success 456s returns the old value if the validator returns false 456s returns the old value if the validator raises an exception 456s observable 456s behaves like observable 456s #add_observer 456s adds an observer if called before first notification 456s adds an observer with :func if called before first notification 456s creates an observer from a block if called before first notification 456s raises an exception if not given an observer or a block 456s raises an exception when given both an observer and a block 456s #delete_observer 456s deletes the given observer if called before first notification 456s returns the removed observer if found in the observer set 456s returns the given observer even when not found in the observer set 456s #delete_observers 456s deletes all observers when called before first notification 456s returns self 456s #count_observers 456s returns zero for a new observable object 456s returns a count of registered observers if called before first notification 456s returns zero after #delete_observers has been called 456s first notification 456s calls the #update method on all observers without a specified :func 456s calls the appropriate function on all observers which specified a :func 456s calls the proc for all observers added as a block 457s does not notify any observers removed with #delete_observer 458s does not notify any observers after #delete_observers called 458s 458s Concurrent::MutexAtomicBoolean 458s it should behave like atomic_boolean 458s construction 458s sets the initial value 458s defaults the initial value to false 458s evaluates the truthiness of a true value 458s evaluates the truthiness of a false value 458s #value 458s returns the current value 458s #value= 458s sets the #value to the given `Boolean` 458s returns the new value 458s evaluates the truthiness of a true value 458s evaluates the truthiness of a false value 458s #true? 458s is expected to equal true 458s is expected to equal false 458s #false? 458s is expected to equal false 458s is expected to equal true 458s #make_true 458s makes a false value true and returns true 458s keeps a true value true and returns false 458s #make_false 458s makes a true value false and returns true 458s keeps a false value false and returns false 458s instance methods 458s value is synchronized 458s value= is synchronized 458s true? is synchronized 458s false? is synchronized 458s make_true is synchronized 458s make_false is synchronized 458s 458s Concurrent::JavaAtomicBoolean 458s it should behave like atomic_boolean 458s construction 458s sets the initial value 458s defaults the initial value to false 458s evaluates the truthiness of a true value 458s evaluates the truthiness of a false value 458s #value 458s returns the current value 458s #value= 458s sets the #value to the given `Boolean` 458s returns the new value 458s evaluates the truthiness of a true value 458s evaluates the truthiness of a false value 458s #true? 458s is expected to equal true 458s is expected to equal false 458s #false? 458s is expected to equal false 458s is expected to equal true 458s #make_true 458s makes a false value true and returns true 458s keeps a true value true and returns false 458s #make_false 458s makes a true value false and returns true 458s keeps a false value false and returns false 458s 459s Concurrent::AtomicBoolean 459s does not load the C extension 459s inherits from JavaAtomicBoolean 459s #to_s and #inspect 459s includes the value 459s 459s Concurrent::MutexAtomicFixnum 459s it should behave like atomic_fixnum 459s construction 459s sets the initial value 459s defaults the initial value to zero 459s raises an exception if the initial value is not a Fixnum 459s #value 459s returns the current value 459s #value= 459s sets the #value to the given `Fixnum` 459s returns the new value 459s raises and exception if the value is not a `Fixnum` 459s #increment 459s increases the value by one when no argument is given 459s returns the new value when no argument is given 459s increases the value by the given argument 459s returns the new value the given argument 459s is aliased as #up 459s #decrement 459s decreases the value by one when no argument is given 459s returns the new value when no argument is given 459s decreases the value by the given argument 459s returns the new value the given argument 459s is aliased as #down 459s #compare_and_set 459s returns false if the value is not found 459s returns true if the value is found 459s sets if the value is found 459s does not set if the value is not found 459s #update 459s passes the current value to the block 459s atomically sets the value to the return value from the block 459s returns the new value 459s construction 459s raises an exception if the initial value is too big 459s raises an exception if the initial value is too small 459s instance methods 459s value is synchronized 459s value= is synchronized 459s increment is synchronized 459s decrement is synchronized 459s compare_and_set is synchronized 459s 459s Concurrent::JavaAtomicFixnum 459s it should behave like atomic_fixnum 459s construction 459s sets the initial value 459s defaults the initial value to zero 459s raises an exception if the initial value is not a Fixnum 459s #value 459s returns the current value 459s #value= 459s sets the #value to the given `Fixnum` 459s returns the new value 459s raises and exception if the value is not a `Fixnum` 459s #increment 459s increases the value by one when no argument is given 459s returns the new value when no argument is given 459s increases the value by the given argument 459s returns the new value the given argument 459s is aliased as #up 459s #decrement 459s decreases the value by one when no argument is given 459s returns the new value when no argument is given 459s decreases the value by the given argument 459s returns the new value the given argument 459s is aliased as #down 459s #compare_and_set 459s returns false if the value is not found 459s returns true if the value is found 459s sets if the value is found 459s does not set if the value is not found 459s #update 459s passes the current value to the block 459s atomically sets the value to the return value from the block 459s returns the new value 459s 459s Concurrent::AtomicFixnum 459s does not load the C extension 459s inherits from JavaAtomicFixnum 459s #to_s and #inspect 459s includes the value 459s 459s Concurrent::AtomicMarkableReference 459s .initialize 459s constructs the object 459s has sane defaults 459s #set 459s sets the value and mark 459s #try_update! 459s updates the value and mark 459s raises ConcurrentUpdateError when attempting to set inside of block 459s #try_update 459s updates the value and mark 459s returns nil when attempting to set inside of block 459s #update 459s updates the value and mark 459s retries until update succeeds 459s #compare_and_set 459s when objects have the same identity 459s sets the value and mark 459s when objects have the different identity 459s it does not set the value or mark 459s when comparing Numeric objects 459s Non-idepotent Float 459s sets the value and mark 459s BigNum 459s sets the value and mark 459s Rational 459s sets the value and mark 459s Rational 459s is successful 459s 459s Concurrent::AtomicReference 459s it should behave like atomic_reference 459s test_construct 459s test_value 459s test_update 459s test_try_update 459s test_try_update_bang 459s test_swap 459s test_try_update_fails 459s test_try_update_bang_fails 459s test_update_retries 459s test_numeric_cas 459s #to_s and #inspect 459s includes the value 459s 459s Concurrent::MutexAtomicReference 459s it should behave like atomic_reference 459s test_construct 459s test_value 459s test_update 459s test_try_update 459s test_try_update_bang 459s test_swap 459s test_try_update_fails 459s test_try_update_bang_fails 459s test_update_retries 459s test_numeric_cas 459s 459s Concurrent::JavaAtomicReference 459s it should behave like atomic_reference 459s test_construct 459s test_value 459s test_update 459s test_try_update 459s test_try_update_bang 459s test_swap 459s test_try_update_fails 459s test_try_update_bang_fails 459s test_update_retries 459s test_numeric_cas 459s 459s Concurrent::AtomicReference 459s does not load the C extension 459s inherits from JavaAtomicReference 459s 459s Concurrent::MutexCountDownLatch 459s it should behave like count_down_latch 459s #initialize 459s raises an exception if the initial count is less than zero 459s raises an exception if the initial count is not an integer 459s defaults the count to 1 459s #count 459s should be the value passed to the constructor 459s should be decreased after every count down 459s should not go below zero 459s #wait 459s blocks indefinitely, and is kill-able 459s blocks indefinitely with timeout, and is kill-able 459s count set to zero 459s should return true immediately 459s should return true immediately with timeout 459s non zero count 459s should block thread until counter is set to zero 459s should block until counter is set to zero with timeout 459s should block until timeout and return false when counter is not set to zero 459s spurious wake ups 460s should resist to spurious wake ups without timeout 460s should resist to spurious wake ups with timeout 460s 460s Concurrent::JavaCountDownLatch 460s it should behave like count_down_latch 460s #initialize 460s raises an exception if the initial count is less than zero 460s raises an exception if the initial count is not an integer 460s defaults the count to 1 460s #count 460s should be the value passed to the constructor 460s should be decreased after every count down 460s should not go below zero 460s #wait 460s blocks indefinitely, and is kill-able 460s blocks indefinitely with timeout, and is kill-able 460s count set to zero 460s should return true immediately 460s should return true immediately with timeout 460s non zero count 460s should block thread until counter is set to zero 460s should block until counter is set to zero with timeout 461s should block until timeout and return false when counter is not set to zero 461s 461s Concurrent::CountDownLatch 461s inherits from JavaCountDownLatch 461s 461s Concurrent::CyclicBarrier 461s #initialize 461s raises an exception if the initial count is less than 1 461s raises an exception if the initial count is not an integer 461s #parties 461s should be the value passed to the constructor 461s #number_waiting 461s without any waiting thread 461s should be equal to zero 461s with waiting threads 461s should be equal to the waiting threads count 461s #broken? 461s should not be broken when created 461s should not be broken when reset is called without waiting thread 461s reset 461s should release all waiting threads 461s #wait 461s without timeout 461s should block the thread 461s should release all threads when their number matches the desired one 461s returns true when released 461s executes the block once 461s can be reused 461s return false if barrier has been reset 461s with timeout 461s timeout not expiring 461s should block the thread 461s should release all threads when their number matches the desired one 461s returns true when released 461s timeout expiring 461s returns false 461s breaks the barrier and release all other threads 462s breaks the barrier and release all other threads 2 462s does not execute the block on timeout 462s #broken barrier 462s should not accept new threads 462s can be reset 462s spurious wake ups 462s should resist to spurious wake ups without timeout 462s should resist to spurious wake ups with timeout 462s 462s Concurrent::Event 462s #initialize 462s sets the state to unset 462s #set? 462s returns true when the event has been set 462s returns false if the event is unset 462s #set 463s triggers the event 463s sets the state to set 463s #try? 463s triggers the event if not already set 463s returns true if not previously set 463s returns false if previously set 463s #reset 463s does not change the state of an unset event 463s does not trigger an unset event 463s returns true when called on an unset event 463s sets the state of a set event to unset 463s returns true when called on a set event 463s #wait 463s returns immediately when the event has been set 463s returns true once the event is set 463s blocks indefinitely when the timer is nil 463s blocks indefinitely 463s stops waiting when the timer expires 464s returns false when the timer expires 464s triggers multiple waiting threads 464s behaves appropriately if wait begins while #set is processing 464s spurious wake ups 464s should resist to spurious wake ups without timeout 465s should resist spurious wake ups with timeout 465s 465s Concurrent::FiberLocalVar 465s #initialize 465s can set an initial value 465s sets nil as a default initial value 465s sets the same initial value for all fibers 465s can set a block to be called to get the initial value 465s when attempting to set both an initial value and a block 465s is expected to raise ArgumentError 465s #value 465s returns the current value 465s returns the value after modification 465s when using a block to initialize the value 465s calls the block to initialize the value 465s sets the block return value as the current value 465s calls the block to initialize the value for each fiber 465s #value= 465s sets a new value 465s returns the new value 465s does not modify the initial value for other fibers 465s does not modify the value for other fibers 465s 465s Concurrent::FiberLocalVar 465s uses FiberLocalVar if Mutex is per Fiber 465s 465s Concurrent::ReadWriteLock 465s #write_locked? 465s returns true when the write lock is held 465s returns false when the write lock is not held 465s returns false when the write lock is not held but there are readers 465s #has_waiters? 465s returns false when no locks are held 465s returns false when there are readers but no writers 465s returns true when the write lock is held and there are waiting readers 465s returns true when the write lock is held and there are waiting writers 465s #with_read_lock 465s acquires the lock 465s returns the value of the block operation 465s releases the lock 465s raises an exception if no block is given 465s raises an exception if maximum lock limit is exceeded 465s releases the lock when an exception is raised 465s #with_write_lock 465s acquires the lock 465s returns the value of the block operation 465s releases the lock 465s raises an exception if no block is given 465s raises an exception if maximum lock limit is exceeded 465s releases the lock when an exception is raised 465s #acquire_read_lock 465s increments the lock count 465s waits for a running writer to finish 465s does not wait for any running readers 465s raises an exception if maximum lock limit is exceeded 465s returns true if the lock is acquired 465s #release_read_lock 465s decrements the counter 465s unblocks waiting writers 465s returns true if the lock is released 465s returns true if the lock was never set 465s #acquire_write_lock 465s increments the lock count 465s waits for a running writer to finish 465s waits for a running reader to finish 465s raises an exception if maximum lock limit is exceeded 465s returns true if the lock is acquired 465s #release_write_lock 465s decrements the counter 465s unblocks waiting readers 465s unblocks waiting writers 465s returns true if the lock is released 465s returns true if the lock was never set 465s 465s Concurrent::ReentrantReadWriteLock 466s can survive a torture test 466s read lock 466s allows other read locks to be acquired at the same time 466s can be acquired more than once 466s can be acquired while holding a write lock 466s can be upgraded to a write lock 466s can be upgraded to a write lock when read lock acquired more than once 466s cannot be released when not held 466s cannot be released more times than it was taken 466s wakes up waiting writers when the last read lock is released 466s write lock 466s cannot be acquired when another thread holds a write lock 466s cannot be acquired when another thread holds a read lock 466s can be acquired more than once 466s can be acquired while holding a read lock 466s can be downgraded to a read lock 466s cannot be released when not held 466s cannot be released more times than it was taken 466s wakes up waiting readers when the write lock is released 466s wakes up waiting writers when the write lock is released 466s #with_read_lock 466s acquires read block before yielding, then releases it 466s releases read lock if an exception is raised in block 466s #with_write_lock 466s acquires write block before yielding, then releases it 466s releases write lock if an exception is raised in block 466s #try_read_lock 466s returns false immediately if read lock cannot be obtained 466s acquires read lock and returns true if it can do so without blocking 466s can acquire a read lock if a read lock is already held 467s can acquire a read lock if a write lock is already held 467s #try_write_lock 467s returns false immediately if write lock cannot be obtained 467s acquires write lock and returns true if it can do so without blocking 467s can acquire a write lock if a read lock is already held 467s can acquire a write lock if a write lock is already held 467s 467s Concurrent::ReentrantReadWriteLock 467s can acquire locks in separate fibers 467s 467s Concurrent::MutexSemaphore 467s it should behave like semaphore 467s #initialize 467s raises an exception if the initial count is not an integer 467s when initializing with 0 467s is expected not to equal nil 467s when initializing with -1 467s is expected to eq 0 467s #acquire 467s without block 467s permits available 467s should return nil immediately 467s not enough permits available 467s should block thread until permits are available 467s when acquiring negative permits 467s raises ArgumentError 467s with block 467s permits available 467s should acquire permits, run the block, release permits, and return block return value 467s if the block raises, the permit is still released 467s not enough permits available 467s should block thread until permits are available 467s when acquiring negative permits 467s raises ArgumentError 467s #drain_permits 467s drains all available permits 467s drains nothing in no permits are available 467s #try_acquire 467s without block 467s without timeout 467s acquires immediately if permits are available 467s returns false immediately in no permits are available 467s when trying to acquire negative permits 467s is expected to raise ArgumentError 467s with timeout 467s acquires immediately if permits are available 467s acquires when permits are available within timeout 467s returns false on timeout 467s with block 467s without timeout 467s acquires immediately if permits are available and returns block return value 467s releases permit if block raises 467s returns false immediately in no permits are available 467s when trying to acquire negative permits 468s is expected not to change `semaphore.available_permits` 468s with timeout 468s acquires immediately if permits are available, and returns block return value 468s releases permits if block raises 468s acquires when permits are available within timeout, and returns block return value 468s returns false on timeout 468s #reduce_permits 468s raises ArgumentError if reducing by negative number 468s reduces permits below zero 468s reduces permits 468s reduces zero permits 468s #release 468s increases the number of available permits by one 468s when a number of permits is specified 468s increases the number of available permits by the specified value 468s when permits is set to negative number 468s is expected to raise ArgumentError 468s 468s Concurrent::JavaSemaphore 468s it should behave like semaphore 468s #initialize 468s raises an exception if the initial count is not an integer 468s when initializing with 0 468s is expected not to equal nil 468s when initializing with -1 468s is expected to eq 0 468s #acquire 468s without block 468s permits available 468s should return nil immediately 468s not enough permits available 468s should block thread until permits are available 468s when acquiring negative permits 468s raises ArgumentError 468s with block 468s permits available 468s should acquire permits, run the block, release permits, and return block return value 468s if the block raises, the permit is still released 468s not enough permits available 468s should block thread until permits are available 468s when acquiring negative permits 468s raises ArgumentError 468s #drain_permits 468s drains all available permits 468s drains nothing in no permits are available 468s #try_acquire 468s without block 468s without timeout 468s acquires immediately if permits are available 468s returns false immediately in no permits are available 468s when trying to acquire negative permits 468s is expected to raise ArgumentError 468s with timeout 468s acquires immediately if permits are available 469s acquires when permits are available within timeout 469s returns false on timeout 469s with block 469s without timeout 469s acquires immediately if permits are available and returns block return value 469s releases permit if block raises 469s returns false immediately in no permits are available 469s when trying to acquire negative permits 469s is expected not to change `semaphore.available_permits` 469s with timeout 469s acquires immediately if permits are available, and returns block return value 469s releases permits if block raises 469s acquires when permits are available within timeout, and returns block return value 469s returns false on timeout 469s #reduce_permits 469s raises ArgumentError if reducing by negative number 469s reduces permits below zero 469s reduces permits 469s reduces zero permits 469s #release 469s increases the number of available permits by one 469s when a number of permits is specified 469s increases the number of available permits by the specified value 469s when permits is set to negative number 469s is expected to raise ArgumentError 469s 469s Concurrent::Semaphore 469s inherits from JavaSemaphore 469s 469s Concurrent::ThreadLocalVar 469s #initialize 469s can set an initial value 469s sets nil as a default initial value 469s sets the same initial value for all threads 469s can set a block to be called to get the initial value 469s when attempting to set both an initial value and a block 469s is expected to raise ArgumentError 469s #value 469s returns the current value 469s returns the value after modification 469s when using a block to initialize the value 469s calls the block to initialize the value 469s sets the block return value as the current value 469s calls the block to initialize the value for each thread 469s #value= 469s sets a new value 469s returns the new value 469s does not modify the initial value for other threads 469s does not modify the value for other threads 469s 469s Concurrent 469s Cancellation 469s basic 469s is expected to be falsey 469s is expected to be truthy 469s is expected to be falsey 469s is expected to eq 2 469s #join 469s 469s Concurrent::Channel::Buffer::Base 469s is expected to eq 0 469s is expected to be blocking 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected to raise NotImplementedError 469s is expected not to be closed 469s is expected to be closed 469s 469s Concurrent::Channel::Buffer::Buffered 469s is expected to be blocking 469s behaves like channel_buffered_buffer 469s behaves like channel_buffer 469s is expected to respond to #blocking? 469s #capacity 469s is expected to be >= 0 469s #size 469s returns zero upon initialization 469s #empty? 469s returns true when empty 469s #full? 469s returns false when not full 469s #put 469s does not enqueue the item when closed 469s returns false when closed 469s #offer 469s returns true on success 469s does not enqueue the item when closed 469s returns false immediately when closed 469s #take 469s returns Concurrent::NULL when closed 469s #next 469s returns Concurrent::NULL, false when closed 469s #poll 469s returns the next item immediately if available 469s returns Concurrent::NULL immediately if no item is available 469s returns Concurrent::NULL when closed 469s #close 469s sets #closed? to false 469s returns true when not previously closed 469s returns false when already closed 469s #closed? 469s returns true when new 469s returns false after #close 469s #initialize 469s raises an exception if size <= 0 469s #capacity 469s returns the maximum capacity of the buffer 469s #size 469s is 0 when first created 469s returns the number of items in the buffer 469s is 0 when there are taking threads but no putting threads 469s #empty? 469s returns true when empty 469s #put 469s enqueues the item when size > 0, not full, and not closed 469s returns true when the item is put 469s #offer 469s enqueues the item immediately when not full and not closed 469s #take 469s returns the first item when not empty 469s blocks until not empty 469s returns Concurrent::NULL when closed and empty 469s #next 470s blocks until not empty 470s returns , true when there is only one item and not closed 470s returns , true when there are multiple items 470s returns , true when closed and last item 470s returns Concurrent::NULL, false when closed and no items remain 470s #full? 470s returns true when at max capacity 470s #put 470s blocks when at capacity until a thread is ready to take 470s #offer 470s returns false immediately when full 470s 470s Concurrent::Channel::Buffer::Dropping 470s is expected not to be blocking 470s behaves like channel_buffered_buffer 470s behaves like channel_buffer 470s is expected to respond to #blocking? 470s #capacity 470s is expected to be >= 0 470s #size 470s returns zero upon initialization 470s #empty? 470s returns true when empty 470s #full? 470s returns false when not full 470s #put 470s does not enqueue the item when closed 470s returns false when closed 470s #offer 470s returns true on success 470s does not enqueue the item when closed 470s returns false immediately when closed 470s #take 470s returns Concurrent::NULL when closed 470s #next 470s returns Concurrent::NULL, false when closed 470s #poll 470s returns the next item immediately if available 470s returns Concurrent::NULL immediately if no item is available 470s returns Concurrent::NULL when closed 470s #close 470s sets #closed? to false 470s returns true when not previously closed 470s returns false when already closed 470s #closed? 470s returns true when new 470s returns false after #close 470s #initialize 470s raises an exception if size <= 0 470s #capacity 470s returns the maximum capacity of the buffer 470s #size 470s is 0 when first created 470s returns the number of items in the buffer 470s is 0 when there are taking threads but no putting threads 470s #empty? 470s returns true when empty 470s #put 470s enqueues the item when size > 0, not full, and not closed 470s returns true when the item is put 470s #offer 470s enqueues the item immediately when not full and not closed 470s #take 470s returns the first item when not empty 470s blocks until not empty 470s returns Concurrent::NULL when closed and empty 470s #next 471s blocks until not empty 471s returns , true when there is only one item and not closed 471s returns , true when there are multiple items 471s returns , true when closed and last item 471s returns Concurrent::NULL, false when closed and no items remain 471s #put 471s does not block when full 471s drops the last value when full 471s #offer 471s returns true immediately when full 471s drops the last value when full 471s 471s Concurrent::Channel::Buffer::Sliding 471s is expected not to be blocking 471s behaves like channel_buffered_buffer 471s behaves like channel_buffer 471s is expected to respond to #blocking? 471s #capacity 471s is expected to be >= 0 471s #size 471s returns zero upon initialization 471s #empty? 471s returns true when empty 471s #full? 471s returns false when not full 471s #put 471s does not enqueue the item when closed 471s returns false when closed 471s #offer 471s returns true on success 471s does not enqueue the item when closed 471s returns false immediately when closed 471s #take 471s returns Concurrent::NULL when closed 471s #next 471s returns Concurrent::NULL, false when closed 471s #poll 471s returns the next item immediately if available 471s returns Concurrent::NULL immediately if no item is available 471s returns Concurrent::NULL when closed 471s #close 471s sets #closed? to false 471s returns true when not previously closed 471s returns false when already closed 471s #closed? 471s returns true when new 471s returns false after #close 471s #initialize 471s raises an exception if size <= 0 471s #capacity 471s returns the maximum capacity of the buffer 471s #size 471s is 0 when first created 471s returns the number of items in the buffer 471s is 0 when there are taking threads but no putting threads 471s #empty? 471s returns true when empty 471s #put 471s enqueues the item when size > 0, not full, and not closed 471s returns true when the item is put 471s #offer 471s enqueues the item immediately when not full and not closed 471s #take 471s returns the first item when not empty 471s blocks until not empty 471s returns Concurrent::NULL when closed and empty 471s #next 472s blocks until not empty 472s returns , true when there is only one item and not closed 472s returns , true when there are multiple items 472s returns , true when closed and last item 472s returns Concurrent::NULL, false when closed and no items remain 472s #put 472s does not block when full 472s drops the first value when full 472s #offer 472s returns true immediately when full 472s drops the first value when full 472s 472s Concurrent::Channel::Buffer::Ticker 472s behaves like channel_timing_buffer 472s is expected to be blocking 472s #capacity 472s is expected to eq 1 472s #size 472s is expected to eq 0 472s #empty? 472s is expected not to be empty 472s #full? 472s is expected to be full 472s #put 472s is expected to equal false 472s #offer 472s is expected to equal false 472s #take 472s blocks when the timer is not ready 472s returns a Tick 472s triggers after the specified time interval 472s returns Concurrent::NULL when closed 472s #poll 472s returns Concurrent::NULL when the timer is not ready 472s returns a Tick 472s returns Concurrent::NULL when closed 472s triggers after the specified time interval 472s #next 473s blocks when the timer is not ready 473s returns a Tick when open 473s returns Concurrent::NULL, false when closed 473s triggers after the specified time interval 473s #close 473s sets #closed? to false 473s returns true when not previously closed 473s returns false when already closed 473s #closed? 473s returns true when new 473s returns false after #close 473s #take 473s triggers until closed 473s returns Concurrent::NULL when closed after trigger 473s #poll 474s triggers until closed 474s #next 474s triggers until closed 474s returns true for more while open 474s returns false for more once closed 474s 474s Concurrent::Channel::Buffer::Timer 474s behaves like channel_timing_buffer 474s is expected to be blocking 474s #capacity 474s is expected to eq 1 474s #size 474s is expected to eq 0 474s #empty? 474s is expected not to be empty 474s #full? 474s is expected to be full 474s #put 474s is expected to equal false 474s #offer 474s is expected to equal false 474s #take 474s blocks when the timer is not ready 474s returns a Tick 474s triggers after the specified time interval 474s returns Concurrent::NULL when closed 474s #poll 474s returns Concurrent::NULL when the timer is not ready 475s returns a Tick 475s returns Concurrent::NULL when closed 475s triggers after the specified time interval 475s #next 475s blocks when the timer is not ready 475s returns a Tick when open 475s returns Concurrent::NULL, false when closed 475s triggers after the specified time interval 475s #close 475s sets #closed? to false 475s returns true when not previously closed 475s returns false when already closed 475s #closed? 475s returns true when new 475s returns false after #close 475s #take 475s closes automatically on first take 475s #poll 476s closes automatically on first take 476s #next 476s closes automatically on first take 476s returns false for more 476s 476s Concurrent::Channel::Buffer::Unbuffered 476s is expected to be blocking 476s is expected to eq 1 476s behaves like channel_buffer 476s is expected to respond to #blocking? 476s #capacity 476s is expected to be >= 0 476s #size 476s returns zero upon initialization 476s #empty? 476s returns true when empty 476s #full? 476s returns false when not full 476s #put 476s does not enqueue the item when closed 476s returns false when closed 476s #offer 476s returns true on success 476s does not enqueue the item when closed 476s returns false immediately when closed 476s #take 476s returns Concurrent::NULL when closed 476s #next 476s returns Concurrent::NULL, false when closed 476s #poll 476s returns the next item immediately if available 476s returns Concurrent::NULL immediately if no item is available 476s returns Concurrent::NULL when closed 476s #close 476s sets #closed? to false 476s returns true when not previously closed 476s returns false when already closed 476s #closed? 476s returns true when new 476s returns false after #close 476s #size 476s is 0 when first created 476s is 1 when a putting thread is waiting 477s is 0 when there are taking threads but no putting threads 477s #empty? 477s is true when there are no putting threads 477s is false when there are waiting putting threads 477s #full? 477s is false when there are no putting threads 477s is false when there are waiting putting threads 477s #put 477s does not enqueue the item when closed 477s returns false when closed 477s blocks until a thread is ready to take 477s delivers when closed after put starts 477s #offer 477s returns false immediately when a put in in progress 478s gives the item to a waiting taker and returns true 478s #take 478s returns false immediately when a put in in progress 478s gives the item to a waiting taker and returns true 478s #next 478s blocks when no putting and returns , true when one arrives 479s returns , true when there are multiple putting 479s returns , true when closed and last item 479s returns Concurrent::NULL, false when closed and no items remain 479s 479s channel integration tests 479s A Tour of Go 479s channels.rb 479s buffered-channels.rb 479s range-and-close.rb 480s select.rb 480s default-selection.rb (PENDING: flaky) 480s Go By Example 480s channels.rb 480s channel-buffering.rb 481s channel-synchronization.rb 481s channel-directions.rb 484s select.rb 487s timeouts.rb 487s non-blocking-channel-operations.rb 487s closing-channels.rb 487s range-over-channels.rb 490s timers.rb 491s ticker.rb 495s worker-pools.rb 496s rate-limiting.rb 496s 496s Concurrent::Channel::Tick 496s initializes to current time when no argument given 496s initializes to the given monotonic time 496s #utc returns a Time object in UTC 496s #epoch returns the UTC time as epoch seconds 497s #to_s formats as a time 497s comparison 497s correctly compares to a Numeric (monotonic) 497s correctly compares to a Time 497s correctly compares to a Tick 497s 497s Concurrent::Channel 497s initialization 497s raises an exception when the :buffer is invalid 497s is :unbuffered when neither :buffer nore :capacity is given 497s is :unbuffered when :unbuffered is given 497s is :unbuffered when :buffered and capacity: 0 497s raises an exception when both :unbuffered and :capacity are given 497s is :buffered when :capacity > 0 and no :buffer given 497s is :buffered when :buffered given 497s raises an exception when :buffered given without :capacity 497s raises an exception when :buffered and :capacity < 0 497s is :dropping when :dropping and :capacity > 0 497s raises an exception when :dropping given without :capacity 497s raises an exception when :dropping and :capacity < 1 497s is :sliding when :sliding and :capacity > 0 497s raises an exception when :sliding given without :capacity 497s raises an exception when :sliding and :capacity < 1 497s uses the given buffer 497s factories 497s is expected to receive new(10) 1 time 497s is expected to receive new(10) 1 time 497s #put 497s returns true on success 497s returns false on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s rejects nil 497s put! 497s returns true on success 497s raises an exception on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s rejects nil 497s put? 497s returns a just Maybe on success 497s returns a nothing Maybe on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s accepts nil 497s #offer 497s returns true on success 497s returns false on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s rejects nil 497s offer! 497s returns true on success 497s raises an exception on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s rejects nil 497s offer? 497s returns a just Maybe on success 497s returns a nothing Maybe on failure 497s rejects when the validator returns false 497s rejects when the validator raises an exception 497s accepts nil 497s #take 497s takes the next item when not empty 497s returns nil on failure 497s #take! 497s takes the next item when not empty 497s raises an exception on failure 497s #take? 497s returns a just Maybe on success 497s returns a nothing Maybe on failure 497s #next 497s returns , true when there is one item 497s returns , true when there are multiple items 497s returns nil, false when empty and closed 497s returns , true when closed and last item 497s returns nil, false when closed and no items remain 497s #next? 497s returns a just Maybe and true when there is one item 497s returns a just Maybe, true when there are multiple items 497s returns a nothing Maybe and false on failure 497s #poll 498s returns the next item immediately if available 498s returns nil immediately if no item is available 498s returns nil on failure 498s #poll! 498s returns the next item immediately if available 498s raises an exception immediately if no item is available 498s raises an exception on failure 498s #poll? 498s returns a just Maybe immediately if available 498s returns a nothing Maybe immediately if no item is available 498s returns a nothing Maybe on failure 498s .each 498s raises and exception when no block is given 498s iterates until the channel is closed 498s goroutines 498s .go 498s raises an exception when no block is given 498s is expected to receive post(1, 2, 3) 1 time 498s .go_via 498s raises an exception when no block is given 498s is expected to receive post(1, 2, 3) 1 time 498s .go_loop 498s raises an exception when no block is given 498s loops until the block returns false 498s .go_loop_via 498s raises an exception when no block is given 498s loops until the block returns false 498s select 498s raises an exception when no block is given 498s passes a selector to the block 498s is expected to be truthy 498s 498s Concurrent::Collection::CopyOnNotifyObserverSet 498s behaves like an observer set 498s #add_observer 498s with arguments 498s should return the observer 498s with a block 498s should return the observer based on a block 498s #notify_observers 498s should return the observer set 498s with a single observer 498s should update a registered observer without arguments 498s should update a registered observer with arguments 498s should notify an observer using the chosen method 498s should notify an observer once using the last added method 498s should notify an observer from a block 498s can be called many times 498s with many observers 498s should notify all observer using the chosen method 498s with a block 498s calls the block once for every observer 498s passes the block return value to the update method 498s accepts blocks returning a single value 498s accepts block return values that include arrays 498s raises an exception if given both arguments and a block 498s #count_observers 498s should be zero after initialization 498s should be 1 after the first observer is added 498s should be 1 if the same observer is added many times 498s should be equal to the number of unique observers 498s #delete_observer 498s should not notify a deleted observer 498s can delete a non added observer 498s should return the observer 498s #delete_observers 498s should remove all observers 498s should return the observer set 498s #notify_and_delete_observers 498s should notify all observers 498s should clear observers 498s can be called many times without any other notification 498s should return the observer set 498s 498s Concurrent::Collection::CopyOnWriteObserverSet 498s behaves like an observer set 498s #add_observer 498s with arguments 498s should return the observer 498s with a block 498s should return the observer based on a block 498s #notify_observers 498s should return the observer set 498s with a single observer 498s should update a registered observer without arguments 498s should update a registered observer with arguments 498s should notify an observer using the chosen method 498s should notify an observer once using the last added method 498s should notify an observer from a block 498s can be called many times 498s with many observers 498s should notify all observer using the chosen method 498s with a block 498s calls the block once for every observer 498s passes the block return value to the update method 498s accepts blocks returning a single value 498s accepts block return values that include arrays 498s raises an exception if given both arguments and a block 498s #count_observers 498s should be zero after initialization 498s should be 1 after the first observer is added 498s should be 1 if the same observer is added many times 498s should be equal to the number of unique observers 498s #delete_observer 498s should not notify a deleted observer 498s can delete a non added observer 498s should return the observer 498s #delete_observers 498s should remove all observers 498s should return the observer set 498s #notify_and_delete_observers 498s should notify all observers 498s should clear observers 499s can be called many times without any other notification 499s should return the observer set 499s 499s Concurrent::Collection::RubyNonConcurrentPriorityQueue 499s it should behave like priority_queue 499s #initialize 499s sorts from high to low when :order is :max 499s sorts from high to low when :order is :high 499s sorts from low to high when :order is :min 499s sorts from low to high when :order is :low 499s sorts from high to low by default 499s #clear 499s removes all items from a populated queue 499s has no effect on an empty queue 499s is expected to be truthy 499s #delete 499s deletes the requested item when found 499s deletes the requested item when it is the first element 499s deletes the requested item when it is the last element 499s deletes multiple matching items when present 499s returns true when found 499s returns false when not found 499s returns false when called on an empty queue 499s deletes the requested item when it is "smaller" than the last element 499s #empty? 499s returns true for an empty queue 499s returns false for a populated queue 499s #include? 499s returns true if the item is found 499s returns false if the item is not found 499s returns false when the queue is empty 499s is aliased as #has_priority? 499s #length 499s returns the length of a populated queue 499s returns zero when the queue is empty 499s is aliased as #size 499s #peek 499s returns the item at the head of the queue 499s does not remove the item from the queue 499s returns nil when the queue is empty 499s #pop 499s returns the item at the head of the queue 499s removes the item from the queue 499s returns nil when the queue is empty 499s returns nil when called multiple times while empty 499s is aliased as #deq 499s is aliased as #shift 499s #push 499s raises an exception when attempting to enqueue nil 499s adds the item to the queue 499s sorts the new item in priority order 499s arbitrarily orders equal items with respect to each other 499s is expected to be truthy 499s is aliased as << 499s is aliased as enq 499s .from_list 499s creates an empty queue from an empty list 499s creates a sorted, populated queue from an Array 499s creates a sorted, populated queue from a Hash 499s 499s Concurrent::Collection::JavaNonConcurrentPriorityQueue 499s it should behave like priority_queue 499s #initialize 499s sorts from high to low when :order is :max 499s sorts from high to low when :order is :high 499s sorts from low to high when :order is :min 499s sorts from low to high when :order is :low 499s sorts from high to low by default 499s #clear 499s removes all items from a populated queue 499s has no effect on an empty queue 499s is expected to be truthy 499s #delete 499s deletes the requested item when found 499s deletes the requested item when it is the first element 499s deletes the requested item when it is the last element 499s deletes multiple matching items when present 499s returns true when found 499s returns false when not found 499s returns false when called on an empty queue 499s deletes the requested item when it is "smaller" than the last element 499s #empty? 499s returns true for an empty queue 499s returns false for a populated queue 499s #include? 499s returns true if the item is found 499s returns false if the item is not found 499s returns false when the queue is empty 499s is aliased as #has_priority? 499s #length 499s returns the length of a populated queue 499s returns zero when the queue is empty 499s is aliased as #size 499s #peek 499s returns the item at the head of the queue 499s does not remove the item from the queue 499s returns nil when the queue is empty 499s #pop 499s returns the item at the head of the queue 499s removes the item from the queue 499s returns nil when the queue is empty 499s returns nil when called multiple times while empty 499s is aliased as #deq 499s is aliased as #shift 499s #push 499s raises an exception when attempting to enqueue nil 499s adds the item to the queue 499s sorts the new item in priority order 499s arbitrarily orders equal items with respect to each other 499s is expected to be truthy 499s is aliased as << 499s is aliased as enq 499s .from_list 499s creates an empty queue from an empty list 499s creates a sorted, populated queue from an Array 499s creates a sorted, populated queue from a Hash 499s 499s Concurrent::Collection::NonConcurrentPriorityQueue 499s inherits from JavaNonConcurrentPriorityQueue 499s 499s Concurrent::Concern::Obligation 499s unscheduled 499s it should behave like incomplete 499s should be not completed 499s should be incomplete 499s #value 499s should return immediately if timeout is zero 499s should block on the event if timeout is not set 499s should block on the event if timeout is not zero 499s #value! 500s should return immediately if timeout is zero 500s should block on the event if timeout is not set 500s should block on the event if timeout is not zero 500s #no_error! 500s should return immediately if timeout is zero 500s should block on the event if timeout is not set 500s should block on the event if timeout is not zero 500s pending 500s it should behave like incomplete 500s should be not completed 500s should be incomplete 500s #value 500s should return immediately if timeout is zero 500s should block on the event if timeout is not set 500s should block on the event if timeout is not zero 500s #value! 500s should return immediately if timeout is zero 500s should block on the event if timeout is not set 500s should block on the event if timeout is not zero 500s #no_error! 500s should return immediately if timeout is zero 500s should block on the event if timeout is not set 500s should block on the event if timeout is not zero 500s fulfilled 500s should be completed 500s should be not incomplete 500s #value 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s #value! 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s #no_error! 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s rejected 500s should be completed 500s should be not incomplete 500s #value 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s #value! 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s #no_error! 500s should return immediately if timeout is zero 500s should return immediately if timeout is not set 500s should return immediately if timeout is not zero 500s #compare_and_set_state 500s unexpected state 500s should return false if state is not the expected one 500s should not change the state if current is not the expected one 500s expected state 500s should return true if state is the expected one 500s should not change the state if current is not the expected one 500s #if_state 500s should raise without block 500s should return false if state is not expected 500s should the block value if state is expected 500s should execute the block within the mutex 500s #get_arguments_from 500s returns an empty array when opts is not given 500s returns an empty array when opts is an empty hash 500s returns an empty array when there is no :args key 500s returns an empty array when the :args key has a nil value 500s returns a one-element array when the :args key has a non-array value 500s returns an array when when the :args key has an array value 500s returns the given array when the :args key has a complex array value 500s 500s Concurrent::Concern::Observable 500s does not initialize set by by default 500s uses the given observer set 500s delegates #add_observer 500s delegates #with_observer 500s delegates #delete_observer 500s delegates #delete_observers 500s delegates #count_observers 500s 500s configuration 500s global executors 500s creates a global timer set 500s creates a global fast executor 500s creates a global io executor 500s 500s dataflow 500s raises an exception when no block given 500s #dataflow uses the global fast executor 500s #dataflow_with uses the given executor 500s #dataflow_with raises an exception when no executor given 500s accepts zero or more dependencies 500s accepts uncompleted dependencies 500s accepts completed dependencies 500s raises an exception if any dependencies are not IVars 500s doesn't raise exceptions from dependencies, unless called with ! 500s returns a Future 500s does not schedule the Future 500s if no dependencies are completed 500s if one dependency of two is completed 500s schedules the Future when all dependencies are available 500s if there is just one 500s if there is more than one 500s counts already executed dependencies 500s if there is just one 500s if there is more than one 500s passes the values of dependencies into the block 500s if there is just one 500s if there is more than one 500s module function 500s can be called as Concurrent.dataflow and Concurrent.dataflow_with 500s 500s Concurrent::Delay 500s behavior 500s it should behave like dereferenceable 500s defaults :dup_on_deref to false 500s calls #dup when the :dup_on_deref option is true 500s defaults :freeze_on_deref to false 500s calls #freeze when the :freeze_on_deref option is true 500s defaults :copy_on_deref to nil 500s calls the block when the :copy_on_deref option is passed a proc 500s calls the :copy block first followed by #dup followed by #freeze 500s does not call #dup when #dup_on_deref is set and the value is nil 500s does not call #freeze when #freeze_on_deref is set and the value is nil 500s does not call the #copy_on_deref block when the value is nil 500s supports dereference flags with observers 500s it should behave like obligation 500s #state 500s is :pending when first created 500s is :fulfilled when the handler completes 500s is :rejected when the handler raises an exception 500s #value 500s returns nil when reaching the optional timeout value 500s returns immediately when timeout is zero 500s returns the value when fulfilled before timeout 500s returns nil when timeout reached 500s is nil when :pending 501s blocks the caller when :pending and timeout is nil 501s is nil when :rejected 501s is set to the return value of the block when :fulfilled 501s #reason 501s is nil when :pending 501s is nil when :fulfilled 501s is set to error object of the exception when :rejected 501s #initialize 501s sets the state to :pending 501s raises an exception when no block given 501s #reconfigure 501s returns value of block used in reconfiguration 501s returns false when process completed? 501s #value 501s does not call the block before #value is called 501s calls the block when #value is called 501s only calls the block once no matter how often #value is called 501s raises when called recursively 501s can be called twice 501s 501s Concurrent 501s Promises::Channel 501s #capacity 501s #to_s 501s #(try_)push(_op) 501s #(try_)pop(_op) 501s #(try_)pop(_op)_matching 501s #(try_)select(_op) 501s exchanging 501s integration 501s 501s Concurrent 501s ErlangActor 501s on thread 501s is expected to eq [:bad_message, -1] 501s behaves like erlang actor 501s run to termination 501s run to termination with arguments 501s #receive 501s pid has name 501s receives message 501s receives message with matchers 501s spawn(link: true) 501s termination 501s monitoring 501s (de)monitor 501s demonitor 501s demonitor should leave the down message in the inbox if it's already there 501s notifications 1 501s notifications 2 501s linking 501s links 501s unlinks 501s link dead 501s link dead when trapping 501s exit/1 when linked 501s 1 501s 2 501s 3 501s 4 501s 5 501s 6 501s 7 501s 8 501s 9 501s exit/2 when linked 501s 1 501s 2 501s 3 501s 4 501s 5 501s 6 501s 7 501s 8 501s 9 501s 10 501s 11 501s 12 501s 13 501s asking 501s replies 501s timing out (PENDING: flaky on truffleruby and jruby) 501s rejects on no reply 501s on pool 501s receives message repeatedly with keep 501s class defined 501s behaves like erlang actor 501s run to termination 501s run to termination with arguments 502s #receive 502s pid has name 502s receives message 502s receives message with matchers 502s spawn(link: true) 502s termination 502s monitoring 502s (de)monitor 502s demonitor 502s demonitor should leave the down message in the inbox if it's already there 502s notifications 1 502s notifications 2 502s linking 502s links 502s unlinks 502s link dead 502s link dead when trapping 502s exit/1 when linked 502s 1 502s 2 502s 3 502s 4 502s 5 502s 6 502s 7 502s 8 502s 9 502s exit/2 when linked 502s 1 502s 2 502s 3 502s 4 502s 5 502s 6 502s 7 502s 8 502s 9 502s 10 502s 11 502s 12 502s 13 502s asking 502s replies 502s timing out (PENDING: flaky on truffleruby and jruby) 502s rejects on no reply 502s 502s Concurrent::Edge::LockFreeLinkedSet 502s .new 502s when passed default val 502s uses the val arg as data for each node 502s #add 502s appends to the linked set 502s in a multi-threaded environment 502s adds the items to the set 502s #<< 502s appends to the linked set and returns self 502s returns self regardless of whether it was logically added 502s #contains? 502s when checking if set includes a value 502s returns true if a value exists 502s compares object using Object#hash 502s returns false for values not in the set 502s when set is empty 502s does not break 502s when set is long 503s does not break 503s in a multi-threaded environment 503s correctly check that the set contains the item 503s #remove 503s when item is inside of set 503s the item is no longer visible to the user 503s allows for the item to be added despite being physically present 503s in a multi-threaded environment 503s adds the items to the set 503s does not recognize the existence of the item when removed 503s when item is not inside of set 503s does not remove to value 503s the set remains intact 503s when the set is empty 503s remove does not break 503s when the set is large 504s remove successfully removes the node 504s 504s Concurrent::RubyExchanger 504s behaves like exchanger 504s #exchange 504s behaves like exchanger method with indefinite timeout 504s blocks indefinitely 504s receives the other value 504s can be reused 504s behaves like exchanger method with finite timeout 504s blocks until timeout 504s receives the other value 504s can be reused 504s behaves like exchanger method cross-thread interactions 504s when first, waits for a second 504s allows multiple firsts to cancel if necessary 504s #exchange! 504s behaves like exchanger method with indefinite timeout 504s blocks indefinitely 504s receives the other value 504s can be reused 504s behaves like exchanger method with finite timeout 504s blocks until timeout 504s receives the other value 504s can be reused 504s behaves like exchanger method cross-thread interactions 504s when first, waits for a second 505s allows multiple firsts to cancel if necessary 505s #try_exchange 505s behaves like exchanger method with indefinite timeout 505s blocks indefinitely 505s receives the other value 505s can be reused 505s behaves like exchanger method with finite timeout 505s blocks until timeout 505s receives the other value 505s can be reused 505s behaves like exchanger method cross-thread interactions 505s when first, waits for a second 505s allows multiple firsts to cancel if necessary 505s 505s Concurrent::JavaExchanger 505s behaves like exchanger 505s #exchange 505s behaves like exchanger method with indefinite timeout 505s blocks indefinitely 505s receives the other value 505s can be reused 505s behaves like exchanger method with finite timeout 505s blocks until timeout 505s receives the other value 505s can be reused 505s behaves like exchanger method cross-thread interactions 506s when first, waits for a second 506s allows multiple firsts to cancel if necessary 506s #exchange! 506s behaves like exchanger method with indefinite timeout 506s blocks indefinitely 506s receives the other value 506s can be reused 506s behaves like exchanger method with finite timeout 506s blocks until timeout 506s receives the other value 506s can be reused 506s behaves like exchanger method cross-thread interactions 506s when first, waits for a second 507s allows multiple firsts to cancel if necessary 507s #try_exchange 507s behaves like exchanger method with indefinite timeout 507s blocks indefinitely 507s receives the other value 507s can be reused 507s behaves like exchanger method with finite timeout 507s blocks until timeout 507s receives the other value 507s can be reused 507s behaves like exchanger method cross-thread interactions 507s when first, waits for a second 507s allows multiple firsts to cancel if necessary 507s 507s Concurrent::Exchanger 507s class hierarchy 507s inherits from JavaExchanger 507s 507s Concurrent::CachedThreadPool 507s it should behave like thread_pool 507s it should behave like executor_service 507s it should behave like global_thread_pool 507s #post 507s raises an exception if no block is given 507s returns true when the block is added to the queue 507s calls the block with the given arguments 507s aliases #<< 507s #post 508s rejects the block while shutting down 508s rejects the block once shutdown 508s auto terminate 513s does not stop shutdown 513s #running? 513s returns true when the thread pool is running 514s returns false when the thread pool is shutting down 514s returns false when the thread pool is shutdown 514s returns false when the thread pool is killed 514s #shuttingdown? 514s returns false when the thread pool is running 514s returns true when the thread pool is shutting down 514s returns false when the thread pool is shutdown 514s #shutdown? 514s returns false when the thread pool is running 515s returns false when the thread pool is shutting down 515s returns true when the thread pool is shutdown 515s #shutdown 515s stops accepting new tasks 515s allows in-progress tasks to complete 516s allows pending tasks to complete 516s #shutdown followed by #wait_for_termination 516s allows in-progress tasks to complete 516s allows pending tasks to complete 516s stops accepting/running new tasks 516s #kill 516s stops accepting new tasks 516s rejects all pending tasks 516s #wait_for_termination 516s immediately returns true when no operations are pending 516s returns true after shutdown has complete 517s returns true when shutdown successfully completes before timeout 517s returns false when shutdown fails to complete before timeout 518s waits forever when no timeout value is given 518s #auto_terminate? 518s returns true by default 518s returns true when :enable_at_exit_handler is true 518s returns false when :enable_at_exit_handler is false 518s #length 518s returns zero on creation 518s returns zero once shut down 518s #scheduled_task_count 518s returns zero on creation 518s returns the approximate number of tasks that have been post thus far 518s returns the approximate number of tasks that were post 518s #completed_task_count 518s returns zero on creation 518s #shutdown 519s allows threads to exit normally 519s #initialize 519s sets :max_length to DEFAULT_MAX_POOL_SIZE 519s sets :min_length to DEFAULT_MIN_POOL_SIZE 519s sets :idletime to DEFAULT_THREAD_IDLETIMEOUT 519s sets :max_queue to DEFAULT_MAX_QUEUE_SIZE 519s #min_length 519s returns zero on creation 519s returns zero while running 519s returns zero once shutdown 519s #max_length 519s returns :max_length on creation 519s returns :max_length while running 519s returns :max_length once shutdown 519s #largest_length 519s returns zero on creation 519s returns a non-zero number once tasks have been received 519s returns a non-zero number after shutdown if tasks have been received 519s #idletime 519s returns the thread idletime 519s runtime-specific implementation 519s #initialize 519s sets :fallback_policy correctly 519s defaults :fallback_policy to :abort 519s raises an exception if given an invalid :fallback_policy 519s stress 520s is expected to be <= 200 520s is expected to be <= 4 520s 520s Concurrent::FixedThreadPool 520s it should behave like thread_pool 520s it should behave like executor_service 520s it should behave like global_thread_pool 520s #post 520s raises an exception if no block is given 520s returns true when the block is added to the queue 520s calls the block with the given arguments 520s aliases #<< 520s #post 521s rejects the block while shutting down 521s rejects the block once shutdown 521s auto terminate 530s does not stop shutdown 530s #running? 530s returns true when the thread pool is running 530s returns false when the thread pool is shutting down 530s returns false when the thread pool is shutdown 530s returns false when the thread pool is killed 530s #shuttingdown? 530s returns false when the thread pool is running 531s returns true when the thread pool is shutting down 531s returns false when the thread pool is shutdown 531s #shutdown? 531s returns false when the thread pool is running 531s returns false when the thread pool is shutting down 531s returns true when the thread pool is shutdown 531s #shutdown 532s stops accepting new tasks 532s allows in-progress tasks to complete 532s allows pending tasks to complete 532s #shutdown followed by #wait_for_termination 532s allows in-progress tasks to complete 532s allows pending tasks to complete 532s stops accepting/running new tasks 532s #kill 533s stops accepting new tasks 533s rejects all pending tasks 533s #wait_for_termination 533s immediately returns true when no operations are pending 533s returns true after shutdown has complete 533s returns true when shutdown successfully completes before timeout 534s returns false when shutdown fails to complete before timeout 534s waits forever when no timeout value is given 534s #auto_terminate? 534s returns true by default 534s returns true when :enable_at_exit_handler is true 534s returns false when :enable_at_exit_handler is false 534s #length 534s returns zero on creation 534s returns zero once shut down 534s #scheduled_task_count 534s returns zero on creation 534s returns the approximate number of tasks that have been post thus far 534s returns the approximate number of tasks that were post 534s #completed_task_count 534s returns zero on creation 534s #shutdown 535s allows threads to exit normally 535s #initialize default values 535s defaults :min_length correctly 535s defaults :max_length correctly 535s defaults :fallback_policy to :abort 535s defaults :idletime correctly 535s defaults default :max_queue to zero 535s #initialize explicit values 535s raises an exception when the pool length is less than one 535s sets explicit :max_queue correctly 535s correctly sets valid :fallback_policy 535s correctly sets valid :idletime 535s raises an exception if given an invalid :fallback_policy 535s #min_length 535s returns :num_threads on creation 535s returns :num_threads while running 535s returns :num_threads once shutdown 535s #max_length 535s returns :num_threads on creation 535s returns :num_threads while running 535s returns :num_threads once shutdown 535s #length 535s returns :num_threads while running 535s #largest_length 535s returns zero on creation 535s returns :num_threads while running 535s returns :num_threads once shutdown 535s #kill 536s attempts to kill all in-progress tasks 536s worker creation and caching 536s never creates more than :num_threads threads 536s fallback policy 536s raises an error when overflow on abort 537s discards when fallback_policy is :discard 537s uses the calling thread for overflow under caller_runs 537s runtime-specific implementation 537s sets :fallback_policy correctly 537s 537s Concurrent::ImmediateExecutor 537s it should behave like executor_service 537s it should behave like global_thread_pool 537s #post 537s raises an exception if no block is given 537s returns true when the block is added to the queue 537s calls the block with the given arguments 537s aliases #<< 537s #post 538s rejects the block while shutting down 538s rejects the block once shutdown 538s auto terminate 543s does not stop shutdown 543s #running? 543s returns true when the thread pool is running 544s returns false when the thread pool is shutting down 544s returns false when the thread pool is shutdown 544s returns false when the thread pool is killed 544s #shuttingdown? 544s returns false when the thread pool is running 544s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 544s returns false when the thread pool is shutdown 544s #shutdown? 544s returns false when the thread pool is running 544s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 544s returns true when the thread pool is shutdown 544s #shutdown 544s stops accepting new tasks 544s allows in-progress tasks to complete 545s allows pending tasks to complete 545s #shutdown followed by #wait_for_termination 545s allows in-progress tasks to complete 545s allows pending tasks to complete 546s stops accepting/running new tasks 546s #kill 546s stops accepting new tasks 547s rejects all pending tasks 547s #wait_for_termination 547s immediately returns true when no operations are pending 547s returns true after shutdown has complete 548s returns true when shutdown successfully completes before timeout 548s returns false when shutdown fails to complete before timeout 548s waits forever when no timeout value is given 548s 548s Concurrent::IndirectImmediateExecutor 548s runs its tasks synchronously 548s runs the task on a separate thread 548s it should behave like executor_service 548s it should behave like global_thread_pool 548s #post 548s raises an exception if no block is given 548s returns true when the block is added to the queue 548s calls the block with the given arguments 548s aliases #<< 548s #post 550s rejects the block while shutting down 550s rejects the block once shutdown 550s auto terminate 556s does not stop shutdown 556s #running? 556s returns true when the thread pool is running 557s returns false when the thread pool is shutting down 557s returns false when the thread pool is shutdown 557s returns false when the thread pool is killed 557s #shuttingdown? 557s returns false when the thread pool is running 557s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 557s returns false when the thread pool is shutdown 557s #shutdown? 557s returns false when the thread pool is running 557s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 557s returns true when the thread pool is shutdown 557s #shutdown 557s stops accepting new tasks 557s allows in-progress tasks to complete 557s allows pending tasks to complete 557s #shutdown followed by #wait_for_termination 558s allows in-progress tasks to complete 558s allows pending tasks to complete 558s stops accepting/running new tasks 558s #kill 558s stops accepting new tasks 560s rejects all pending tasks 560s #wait_for_termination 560s immediately returns true when no operations are pending 560s returns true after shutdown has complete 560s returns true when shutdown successfully completes before timeout 560s returns false when shutdown fails to complete before timeout 561s waits forever when no timeout value is given 561s 561s Concurrent::JavaSingleThreadExecutor 561s it should behave like executor_service 561s it should behave like global_thread_pool 561s #post 561s raises an exception if no block is given 561s returns true when the block is added to the queue 561s calls the block with the given arguments 561s aliases #<< 561s #post 562s rejects the block while shutting down 562s rejects the block once shutdown 562s auto terminate 567s does not stop shutdown 567s #running? 567s returns true when the thread pool is running 568s returns false when the thread pool is shutting down 568s returns false when the thread pool is shutdown 568s returns false when the thread pool is killed 568s #shuttingdown? 568s returns false when the thread pool is running 568s returns true when the thread pool is shutting down 568s returns false when the thread pool is shutdown 568s #shutdown? 568s returns false when the thread pool is running 569s returns false when the thread pool is shutting down 569s returns true when the thread pool is shutdown 569s #shutdown 569s stops accepting new tasks 569s allows in-progress tasks to complete 570s allows pending tasks to complete 570s #shutdown followed by #wait_for_termination 570s allows in-progress tasks to complete 570s allows pending tasks to complete 571s stops accepting/running new tasks 571s #kill 571s stops accepting new tasks 571s rejects all pending tasks 571s #wait_for_termination 571s immediately returns true when no operations are pending 571s returns true after shutdown has complete 572s returns true when shutdown successfully completes before timeout 572s returns false when shutdown fails to complete before timeout 572s waits forever when no timeout value is given 572s 572s Concurrent::JavaThreadPoolExecutor 572s it should behave like thread_pool 572s it should behave like executor_service 572s it should behave like global_thread_pool 572s #post 572s raises an exception if no block is given 572s returns true when the block is added to the queue 572s calls the block with the given arguments 572s aliases #<< 572s #post 573s rejects the block while shutting down 573s rejects the block once shutdown 573s auto terminate 579s does not stop shutdown 579s #running? 579s returns true when the thread pool is running 579s returns false when the thread pool is shutting down 579s returns false when the thread pool is shutdown 579s returns false when the thread pool is killed 579s #shuttingdown? 579s returns false when the thread pool is running 580s returns true when the thread pool is shutting down 580s returns false when the thread pool is shutdown 580s #shutdown? 580s returns false when the thread pool is running 580s returns false when the thread pool is shutting down 580s returns true when the thread pool is shutdown 580s #shutdown 580s stops accepting new tasks 581s allows in-progress tasks to complete 581s allows pending tasks to complete 581s #shutdown followed by #wait_for_termination 581s allows in-progress tasks to complete 581s allows pending tasks to complete 581s stops accepting/running new tasks 581s #kill 581s stops accepting new tasks 582s rejects all pending tasks 582s #wait_for_termination 582s immediately returns true when no operations are pending 582s returns true after shutdown has complete 582s returns true when shutdown successfully completes before timeout 582s returns false when shutdown fails to complete before timeout 583s waits forever when no timeout value is given 583s #auto_terminate? 583s returns true by default 583s returns true when :enable_at_exit_handler is true 583s returns false when :enable_at_exit_handler is false 583s #length 583s returns zero on creation 583s returns zero once shut down 583s #scheduled_task_count 583s returns zero on creation 583s returns the approximate number of tasks that have been post thus far 583s returns the approximate number of tasks that were post 583s #completed_task_count 583s returns zero on creation 583s #shutdown 584s allows threads to exit normally 584s it should behave like thread_pool_executor 584s #initialize defaults 584s defaults :min_length to DEFAULT_MIN_POOL_SIZE 584s defaults :max_length to DEFAULT_MAX_POOL_SIZE 584s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 584s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 584s defaults :fallback_policy to :abort 584s defaults :name to nil 584s #initialize explicit values 584s sets :min_threads 584s sets :max_threads 584s sets :idletime 584s doesn't allow max_threads < min_threads 584s accepts all valid fallback policies 584s raises an exception if :max_threads is less than zero 584s raises an exception if :min_threads is less than zero 584s raises an exception if :max_threads greater than the max allowable 584s raises an exception if :max_threads is less than :min_threads 584s raises an exception if given an invalid :fallback_policy 584s sets :name 584s #max_queue 584s returns the set value on creation 584s returns the set value when running 584s returns the set value after stopping 584s #synchronous 584s cannot be set unless `max_queue` is zero 584s executes fallback policy once max_threads has been reached 584s #queue_length 584s returns zero on creation 584s returns zero when there are no enqueued tasks 584s returns the size of the queue when tasks are enqueued 584s returns zero when stopped 584s can never be greater than :max_queue 584s #remaining_capacity 584s returns -1 when :max_queue is set to zero 584s returns :max_length on creation 585s returns :max_length when stopped 585s #active_count 585s returns the number of threads that are actively executing tasks. 585s #fallback_policy 585s :abort 585s #post raises an error when the queue is at capacity 585s #<< raises an error when the queue is at capacity 585s #post raises an error when the executor is shutting down 585s #<< raises an error when the executor is shutting down 585s a #post task is never executed when the queue is at capacity 585s a #<< task is never executed when the queue is at capacity 585s :discard 585s a #post task is never executed when the queue is at capacity 585s a #<< task is never executed when the queue is at capacity 585s a #post task is never executed when the executor is shutting down 585s a #<< task is never executed when the executor is shutting down 585s #post returns false when the executor is shutting down 585s :caller_runs 585s #post does not create any new threads when the queue is at capacity 585s native console only tested on i386, x86_64, powerpc64, aarch64, s390x 585s #<< executes the task on the current thread when the queue is at capacity 585s #post executes the task on the current thread when the queue is at capacity 585s #post executes the task on the current thread when the executor is shutting down 585s #<< executes the task on the current thread when the executor is shutting down 585s #post does not block other jobs running on the worker threads 585s prune 585s is a no-op, pruning is handled by the JVM 585s #overload_policy 585s :abort maps to AbortPolicy 585s :discard maps to DiscardPolicy 585s :caller_runs maps to CallerRunsPolicy 585s 585s Concurrent::RubySingleThreadExecutor 585s it should behave like executor_service 585s it should behave like global_thread_pool 585s #post 585s raises an exception if no block is given 585s returns true when the block is added to the queue 585s calls the block with the given arguments 585s aliases #<< 585s #post 586s rejects the block while shutting down 586s rejects the block once shutdown 586s auto terminate 592s does not stop shutdown 592s #running? 592s returns true when the thread pool is running 592s returns false when the thread pool is shutting down 592s returns false when the thread pool is shutdown 592s returns false when the thread pool is killed 592s #shuttingdown? 592s returns false when the thread pool is running 593s returns true when the thread pool is shutting down 593s returns false when the thread pool is shutdown 593s #shutdown? 593s returns false when the thread pool is running 593s returns false when the thread pool is shutting down 593s returns true when the thread pool is shutdown 593s #shutdown 594s stops accepting new tasks 594s allows in-progress tasks to complete 594s allows pending tasks to complete 594s #shutdown followed by #wait_for_termination 594s allows in-progress tasks to complete 595s allows pending tasks to complete 595s stops accepting/running new tasks 595s #kill 595s stops accepting new tasks 595s rejects all pending tasks 595s #wait_for_termination 595s immediately returns true when no operations are pending 595s returns true after shutdown has complete 596s returns true when shutdown successfully completes before timeout 596s returns false when shutdown fails to complete before timeout 597s waits forever when no timeout value is given 597s 597s Concurrent::RubyThreadPoolExecutor 597s it should behave like thread_pool 597s it should behave like executor_service 597s it should behave like global_thread_pool 597s #post 597s raises an exception if no block is given 597s returns true when the block is added to the queue 597s calls the block with the given arguments 597s aliases #<< 597s #post 598s rejects the block while shutting down 598s rejects the block once shutdown 598s auto terminate 603s does not stop shutdown 603s #running? 603s returns true when the thread pool is running 603s returns false when the thread pool is shutting down 603s returns false when the thread pool is shutdown 603s returns false when the thread pool is killed 603s #shuttingdown? 603s returns false when the thread pool is running 604s returns true when the thread pool is shutting down 604s returns false when the thread pool is shutdown 604s #shutdown? 604s returns false when the thread pool is running 604s returns false when the thread pool is shutting down 604s returns true when the thread pool is shutdown 604s #shutdown 604s stops accepting new tasks 605s allows in-progress tasks to complete 605s allows pending tasks to complete 605s #shutdown followed by #wait_for_termination 605s allows in-progress tasks to complete 605s allows pending tasks to complete 605s stops accepting/running new tasks 605s #kill 605s stops accepting new tasks 606s rejects all pending tasks 606s #wait_for_termination 606s immediately returns true when no operations are pending 606s returns true after shutdown has complete 606s returns true when shutdown successfully completes before timeout 606s returns false when shutdown fails to complete before timeout 607s waits forever when no timeout value is given 607s #auto_terminate? 607s returns true by default 607s returns true when :enable_at_exit_handler is true 607s returns false when :enable_at_exit_handler is false 607s #length 607s returns zero on creation 607s returns zero once shut down 607s #scheduled_task_count 607s returns zero on creation 607s returns the approximate number of tasks that have been post thus far 607s returns the approximate number of tasks that were post 607s #completed_task_count 607s returns zero on creation 607s #shutdown 608s allows threads to exit normally 608s it should behave like thread_pool_executor 608s #initialize defaults 608s defaults :min_length to DEFAULT_MIN_POOL_SIZE 608s defaults :max_length to DEFAULT_MAX_POOL_SIZE 608s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 608s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 608s defaults :fallback_policy to :abort 608s defaults :name to nil 608s #initialize explicit values 608s sets :min_threads 608s sets :max_threads 608s sets :idletime 608s doesn't allow max_threads < min_threads 608s accepts all valid fallback policies 608s raises an exception if :max_threads is less than zero 608s raises an exception if :min_threads is less than zero 608s raises an exception if :max_threads greater than the max allowable 608s raises an exception if :max_threads is less than :min_threads 608s raises an exception if given an invalid :fallback_policy 608s sets :name 608s #max_queue 608s returns the set value on creation 608s returns the set value when running 608s returns the set value after stopping 608s #synchronous 608s cannot be set unless `max_queue` is zero 608s executes fallback policy once max_threads has been reached 608s #queue_length 608s returns zero on creation 608s returns zero when there are no enqueued tasks 608s returns the size of the queue when tasks are enqueued 608s returns zero when stopped 608s can never be greater than :max_queue 608s #remaining_capacity 608s returns -1 when :max_queue is set to zero 608s returns :max_length on creation 608s returns :max_length when stopped 608s #active_count 608s returns the number of threads that are actively executing tasks. 608s #fallback_policy 608s :abort 608s #post raises an error when the queue is at capacity 608s #<< raises an error when the queue is at capacity 608s #post raises an error when the executor is shutting down 608s #<< raises an error when the executor is shutting down 608s a #post task is never executed when the queue is at capacity 608s a #<< task is never executed when the queue is at capacity 608s :discard 608s a #post task is never executed when the queue is at capacity 608s a #<< task is never executed when the queue is at capacity 608s a #post task is never executed when the executor is shutting down 608s a #<< task is never executed when the executor is shutting down 608s #post returns false when the executor is shutting down 608s :caller_runs 608s #post does not create any new threads when the queue is at capacity 608s #<< executes the task on the current thread when the queue is at capacity 609s #post executes the task on the current thread when the queue is at capacity 609s #post executes the task on the current thread when the executor is shutting down 609s #<< executes the task on the current thread when the executor is shutting down 609s #post does not block other jobs running on the worker threads 609s #remaining_capacity 609s returns :max_length when no tasks are enqueued 609s returns the remaining capacity when tasks are enqueued 609s threads naming 609s without pool name 609s sets counted name 609s with pool name 609s sets counted name 609s 609s Concurrent::SafeTaskExecutor 609s #execute 609s happy execution 609s should return success 609s should return task value 609s should return a nil reason 609s passes all arguments to #execute to the task 609s protectes #execute with a mutex 609s failing execution 609s should return false success 609s should return a nil value 609s should return the reason 609s rescues Exception when :rescue_exception is true 609s rescues StandardError when :rescue_exception is false 609s rescues StandardError by default 609s 609s Concurrent::SerializedExecutionDelegator 609s it should behave like executor_service 609s it should behave like global_thread_pool 609s #post 609s raises an exception if no block is given 609s returns true when the block is added to the queue 609s calls the block with the given arguments 609s aliases #<< 609s #post 610s rejects the block while shutting down 610s rejects the block once shutdown 610s auto terminate 615s does not stop shutdown 615s #running? 615s returns true when the thread pool is running 616s returns false when the thread pool is shutting down 616s returns false when the thread pool is shutdown 616s returns false when the thread pool is killed 616s #shuttingdown? 616s returns false when the thread pool is running 616s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 616s returns false when the thread pool is shutdown 616s #shutdown? 616s returns false when the thread pool is running 616s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 616s returns true when the thread pool is shutdown 616s #shutdown 616s stops accepting new tasks 616s allows in-progress tasks to complete 617s allows pending tasks to complete 617s #shutdown followed by #wait_for_termination 617s allows in-progress tasks to complete 617s allows pending tasks to complete 617s stops accepting/running new tasks 617s #kill 618s stops accepting new tasks 619s rejects all pending tasks 619s #wait_for_termination 619s immediately returns true when no operations are pending 619s returns true after shutdown has complete 619s returns true when shutdown successfully completes before timeout 619s returns false when shutdown fails to complete before timeout 620s waits forever when no timeout value is given 620s 620s Concurrent::SimpleExecutorService 620s it should behave like executor_service 620s it should behave like global_thread_pool 620s #post 620s raises an exception if no block is given 620s returns true when the block is added to the queue 620s calls the block with the given arguments 620s aliases #<< 620s #post 621s rejects the block while shutting down 621s rejects the block once shutdown 621s auto terminate 626s does not stop shutdown 626s #running? 626s returns true when the thread pool is running 627s returns false when the thread pool is shutting down 627s returns false when the thread pool is shutdown 627s returns false when the thread pool is killed 627s #shuttingdown? 627s returns false when the thread pool is running 627s returns true when the thread pool is shutting down 627s returns false when the thread pool is shutdown 627s #shutdown? 627s returns false when the thread pool is running 628s returns false when the thread pool is shutting down 628s returns true when the thread pool is shutdown 628s #shutdown 628s stops accepting new tasks 628s allows in-progress tasks to complete 628s allows pending tasks to complete 628s #shutdown followed by #wait_for_termination 629s allows in-progress tasks to complete 629s allows pending tasks to complete 629s stops accepting/running new tasks 629s #kill 629s stops accepting new tasks 629s rejects all pending tasks 629s #wait_for_termination 629s immediately returns true when no operations are pending 629s returns true after shutdown has complete 630s returns true when shutdown successfully completes before timeout 630s returns false when shutdown fails to complete before timeout 630s waits forever when no timeout value is given 630s #post 631s creates a new thread for a call without arguments 631s executes a call without arguments 631s creates a new thread for a call with arguments 631s executes a call with one argument 631s executes a call with multiple arguments 631s aliases #<< 631s SimpleExecutorService.post 631s creates a new thread for a call without arguments 631s executes a call without arguments 631s creates a new thread for a call with arguments 631s executes a call with one argument 631s executes a call with multiple arguments 631s aliases #<< 631s 631s Concurrent::SingleThreadExecutor 631s inherits from JavaSingleThreadExecutor 631s 631s Concurrent::ThreadPoolExecutor 631s inherits from JavaThreadPoolExecutor 631s 631s Concurrent::TimerSet 631s construction 631s uses the executor given at construction 631s uses the global io executor be default 631s #post 631s raises an exception when given a task with a delay less than zero 631s raises an exception when no block given 631s immediately posts a task when the delay is zero 631s execution 631s executes a given task when given an interval in seconds 631s returns an IVar when posting a task 631s executes a given task when given an interval in seconds, even if longer tasks have been scheduled 631s passes all arguments to the task on execution 631s does not execute tasks early 631s executes all tasks scheduled for the same time 631s executes tasks with different times in schedule order 632s executes tasks with different times in schedule time 632s continues to execute new tasks even after the queue is emptied 632s safely handles an executor raising RejectedExecutionError 632s resolution 632s sets the IVar value on success when delay is zero 632s sets the IVar value on success when given a delay 632s sets the IVar reason on failure when delay is zero 632s sets the IVar reason on failure when given a delay 632s task cancellation 632s fails to cancel the task once processing has begun 633s fails to cancel the task once processing is complete 633s cancels a pending task 633s returns false when not running 633s task rescheduling 633s raises an exception when given an invalid time 633s does not change the current schedule when given an invalid time 633s reschdules a pending and unpost task when given a valid time 633s returns false once the task has been post to the executor 633s returns false once the task is processing 633s returns false once the task has is complete 633s returns false when not running 633s task resetting 633s calls #reschedule with the original delay 633s termination 633s cancels all pending tasks on #shutdown 633s cancels all pending tasks on #kill 633s stops the monitor thread on #shutdown 633s kills the monitor thread on #kill 633s rejects tasks once shutdown 633s rejects tasks once killed 633s #wait_for_termination returns true if shutdown completes before timeout 633s #wait_for_termination returns false on timeout 633s state 633s is running? when first created 633s is running? after tasks have been post 633s is shutdown? after shutdown completes 633s is shutdown? after being killed 633s 633s Concurrent::WrappingExecutor 633s is expected to be a kind of Concurrent::WrappingExecutor 633s is expected to respond to #post 633s is expected to respond to #can_overflow? 633s is expected to respond to #serialized? 633s #post 633s with passthrough wrapper 633s is expected to equal # 633s with wrapper modifying args 633s is expected to equal # 633s with wrapper modifying task 633s is expected to equal # 633s 633s Concurrent::Future 633s it should behave like ivar 633s it should behave like obligation 633s #state 633s is :pending when first created 633s is :fulfilled when the handler completes 633s is :rejected when the handler raises an exception 633s #value 633s returns nil when reaching the optional timeout value 633s returns immediately when timeout is zero 638s returns the value when fulfilled before timeout 638s returns nil when timeout reached 638s is nil when :pending 643s blocks the caller when :pending and timeout is nil 643s is nil when :rejected 643s is set to the return value of the block when :fulfilled 643s #reason 643s is nil when :pending 643s is nil when :fulfilled 643s is set to error object of the exception when :rejected 643s it should behave like dereferenceable 643s defaults :dup_on_deref to false 644s calls #dup when the :dup_on_deref option is true 644s defaults :freeze_on_deref to false 644s calls #freeze when the :freeze_on_deref option is true 644s defaults :copy_on_deref to nil 645s calls the block when the :copy_on_deref option is passed a proc 645s calls the :copy block first followed by #dup followed by #freeze 645s does not call #dup when #dup_on_deref is set and the value is nil 645s does not call #freeze when #freeze_on_deref is set and the value is nil 645s does not call the #copy_on_deref block when the value is nil 645s supports dereference flags with observers 645s it should behave like observable 645s #add_observer 645s adds an observer if called before first notification 645s adds an observer with :func if called before first notification 645s creates an observer from a block if called before first notification 645s raises an exception if not given an observer or a block 645s raises an exception when given both an observer and a block 645s #delete_observer 645s deletes the given observer if called before first notification 645s returns the removed observer if found in the observer set 645s returns the given observer even when not found in the observer set 645s #delete_observers 645s deletes all observers when called before first notification 645s returns self 645s #count_observers 645s returns zero for a new observable object 645s returns a count of registered observers if called before first notification 645s returns zero after #delete_observers has been called 645s first notification 646s calls the #update method on all observers without a specified :func 646s calls the appropriate function on all observers which specified a :func 646s calls the proc for all observers added as a block 647s does not notify any observers removed with #delete_observer 648s does not notify any observers after #delete_observers called 648s initialization 648s sets the state to incomplete 648s #set 648s sets the state to be fulfilled 648s sets the value 648s raises an exception if set more than once 648s returns self 648s fulfils when given a block which executes successfully 648s rejects when given a block which raises an exception 648s raises an exception when given a value and a block 648s raises an exception when given neither a value nor a block 648s #fail 648s sets the state to be rejected 648s sets the value to be nil 648s sets the reason to the given exception 648s raises an exception if set more than once 648s defaults the reason to a StandardError 648s returns self 648s #try_set 648s when unset 648s assigns the value 648s assigns the block result 648s returns true 648s when fulfilled 648s does not assign the value 648s does not assign the block result 648s returns false 648s when rejected 648s does not assign the value 648s does not assign the block result 648s has a nil value 648s returns false 648s it should behave like thread_arguments 648s passes an empty array when opts is not given 648s passes an empty array when opts is an empty hash 648s passes an empty array when there is no :args key 648s passes an empty array when the :args key has a nil value 648s passes a one-element array when the :args key has a non-array value 648s passes an array when when the :args key has an array value 648s passes the given array when the :args key has a complex array value 648s allows the given arguments array to be dereferenced 648s #initialize 648s sets the state to :unscheduled 648s raises an exception when no block given 648s uses the executor given with the :executor option 648s uses the global io executor by default 648s instance #execute 648s does nothing unless the state is :unscheduled 648s posts the block given on construction 648s sets the state to :pending 648s returns self 648s class #execute 648s creates a new Future 648s passes the block to the new Future 648s calls #execute on the new Future 648s fulfillment 648s sets the state to :processing while the task is executing 648s passes all arguments to handler 648s sets the value to the result of the handler 648s sets the state to :fulfilled when the block completes 648s sets the value to nil when the handler raises an exception 648s sets the value to nil when the handler raises Exception 648s sets the reason to the Exception instance when the handler raises Exception 648s sets the state to :rejected when the handler raises an exception 648s aliases 648s aliases #realized? for #fulfilled? 648s aliases #deref for #value 648s cancellation 648s #cancel 648s fails to cancel the task once processing has begun 648s fails to cancel the task once processing is complete 648s cancels a pending task 648s #wait_or_cancel 648s returns true if the operation completes before timeout 648s cancels the task on timeout 648s observation 648s notifies all observers on fulfillment 648s notifies all observers on rejection 648s notifies an observer added after fulfillment 648s notifies an observer added after rejection 648s does not notify existing observers when a new observer added after fulfillment 648s does not notify existing observers when a new observer added after rejection 648s deadlock avoidance 648s should notify observers outside mutex lock 649s should notify a new observer added after fulfillment outside lock 649s 649s Concurrent::Hash 649s .[] 649s when initializing with no arguments 649s is expected to be empty 649s when initializing with an even number of arguments 649s creates a hash using the odd position arguments as keys and even position arguments as values 649s when initializing with an array of pairs 649s creates a hash using each pair as a (key, value) pair 649s when initializing with another hash as an argument 649s creates a new hash 649s creates a hash with the same contents as the other hash 649s creates a hash with the results of calling #to_hash on the other array 649s .new 649s when initializing with no arguments 649s is expected to be empty 649s when initialized with a default object 649s uses the default object for non-existing keys 649s when initialized with a block 649s calls the block for non-existing keys 649s returns the results of calling the block for non-existing key 649s concurrency 649s is expected to be empty 649s 649s Concurrent::ImmutableStruct 649s it should behave like struct 649s definition 649s registers the class when given a class name 649s registers the class when given a class name which is defined in the ancestors 649s creates an anonymous class when given at least one member 649s raises an exception when given an invalid class name 649s defines a getter for each member 649s raises an exception when given no members 649s raise an exception when given an invalid member 649s evalues a given block against the new class 649s construction 649s sets all absent members to nil 649s sets all given members in order 649s raises an exception when extra members are given 649s properties 649s #length 649s returns the number of struct members 649s #members 649s returns the struct members as an array of symbols 649s returns a different object than the array passed at definition 649s #size 649s returns the number of struct members 649s #values 649s returns the values of the struct as an array in order 649s #values_at 649s returns the value at the given offset 649s returns the values at multiple given offsets 649s returns values at offsets in a given range 649s returns values for multiple ranges 649s returns values for ranges and offsets 649s accessors 649s #[member] 649s retrieves the value when given a valid symbol member 649s retrieves the value when given a valid string member 649s raises an exception when given a non-existent symbol member 649s raises an exception when given a non-existent string member 649s #[index] 649s retrieves the value when given a valid index 649s raises an exception when given an out-of-bound index 649s comparison 649s #== 649s returns true if other has same struct subclass and equal values 649s returns false if other has different struct subclass 649s returns false if other has different values 649s #!= 649s returns false if other has same struct subclass and equal values 649s returns true if other has different struct subclass 649s returns true if other has different values 649s enumeration 649s #each 649s yields the value of each struct member in order 649s returns an enumerator when no block is given 649s #each_pair 649s yields the name and value of each struct member in order 649s returns an enumerator when no block is given 649s #select 649s yields each value 649s returns an Array with the values from for which the block returns true 649s returns an enumerator when no block is given 649s conversion 649s #to_s 649s includes the name of the class when registered 649s includes the names of all members 649s includes all values 649s returns the same string as #inspect 649s #to_a 649s returns the to_a for this struct as an array 649s #to_h 649s returns a Hash containing the names and values in order 649s copy 649s #dup 649s shallowly duplicates all members along with the struct 649s discards frozen state of the struct 649s retains frozen state of members 649s discards singleton class 649s copies the singleton class of members 649s #clone 649s shallowly clones all members along with the struct 649s retains frozen state 649s copies the singleton class 649s copies the singleton class of members 649s it should behave like mergeable_struct 649s #merge 649s updates all members with the new values from a given hash 649s calls the given block for each key in `other` 649s retains the value for all members not without values in the given hash 649s raises an exception when given a hash with members not in the struct 649s returns a new object 649s 649s Concurrent::IVar 649s it should behave like ivar 649s it should behave like obligation 649s #state 649s is :pending when first created 649s is :fulfilled when the handler completes 649s is :rejected when the handler raises an exception 649s #value 649s returns nil when reaching the optional timeout value 649s returns immediately when timeout is zero 649s returns the value when fulfilled before timeout 649s returns nil when timeout reached 649s is nil when :pending 649s blocks the caller when :pending and timeout is nil 649s is nil when :rejected 649s is set to the return value of the block when :fulfilled 649s #reason 649s is nil when :pending 649s is nil when :fulfilled 649s is set to error object of the exception when :rejected 649s it should behave like dereferenceable 649s defaults :dup_on_deref to false 649s calls #dup when the :dup_on_deref option is true 649s defaults :freeze_on_deref to false 649s calls #freeze when the :freeze_on_deref option is true 649s defaults :copy_on_deref to nil 649s calls the block when the :copy_on_deref option is passed a proc 649s calls the :copy block first followed by #dup followed by #freeze 649s does not call #dup when #dup_on_deref is set and the value is nil 649s does not call #freeze when #freeze_on_deref is set and the value is nil 649s does not call the #copy_on_deref block when the value is nil 649s supports dereference flags with observers 649s it should behave like observable 649s #add_observer 649s adds an observer if called before first notification 649s adds an observer with :func if called before first notification 649s creates an observer from a block if called before first notification 649s raises an exception if not given an observer or a block 649s raises an exception when given both an observer and a block 649s #delete_observer 649s deletes the given observer if called before first notification 649s returns the removed observer if found in the observer set 649s returns the given observer even when not found in the observer set 649s #delete_observers 649s deletes all observers when called before first notification 649s returns self 649s #count_observers 649s returns zero for a new observable object 649s returns a count of registered observers if called before first notification 649s returns zero after #delete_observers has been called 649s first notification 649s calls the #update method on all observers without a specified :func 649s calls the appropriate function on all observers which specified a :func 649s calls the proc for all observers added as a block 650s does not notify any observers removed with #delete_observer 651s does not notify any observers after #delete_observers called 651s initialization 651s sets the state to incomplete 651s #set 651s sets the state to be fulfilled 651s sets the value 651s raises an exception if set more than once 651s returns self 651s fulfils when given a block which executes successfully 651s rejects when given a block which raises an exception 651s raises an exception when given a value and a block 651s raises an exception when given neither a value nor a block 651s #fail 651s sets the state to be rejected 651s sets the value to be nil 651s sets the reason to the given exception 651s raises an exception if set more than once 651s defaults the reason to a StandardError 651s returns self 651s #try_set 651s when unset 651s assigns the value 651s assigns the block result 651s returns true 651s when fulfilled 651s does not assign the value 651s does not assign the block result 651s returns false 651s when rejected 651s does not assign the value 651s does not assign the block result 651s has a nil value 651s returns false 651s #initialize 651s does not have to set an initial value 651s does not set an initial value if you pass NULL 651s can set an initial value 651s can set an initial value with a block 651s raises an exception if given both a value and a block 651s observation 651s notifies all observers on #set 651s deadlock avoidance 651s should notify observers outside mutex lock 651s should notify a new observer added after fulfillment outside lock 651s 651s Concurrent::LazyRegister 651s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 651s 651s Concurrent::Map 651s default_proc is called with the Concurrent::Map and the key 651s default_proc is called with the Concurrent::Map and the key after #dup 651s concurrency 651s retrieval 651s #put_if_absent 652s updates dont block reads 652s collision resistance 662s collision resistance with arrays 662s #replace_pair 662s #replace_if_exists 662s #get_and_set 662s #key 662s #key? 662s #value? 662s #delete 662s #delete_pair 662s default proc 662s falsy default proc 662s #clear 662s #keys 662s #values 662s #each_key 662s #each_value 662s #empty 662s options validation 662s initial capacity options validation 662s load factor options validation 662s #size 662s #get_or_default 662s #dup,#clone 662s is unfreezable 662s marshal dump load 662s marshal dump does not work with default proc 662s #inspect 662s #compute_if_absent 662s works in default_proc 662s common 662s with return 662s exception 662s atomicity 662s #compute_if_present 662s common 662s with return 662s exception 662s #compute 662s common 662s with return 662s exception 662s #merge_pair 662s common 662s with return 662s exception 662s #fetch 662s common 662s falsy 662s with return 662s #fetch_or_store 662s common 662s falsy 662s with return 662s #each_pair 662s it should behave like collection_each 662s common 662s pair iterator 662s allows modification 662s when no block is given 662s returns an enumerator 662s returns an object which is enumerable 662s #each 662s it should behave like collection_each 662s common 662s pair iterator 662s allows modification 662s when no block is given 662s returns an enumerator 662s returns an object which is enumerable 662s 662s Concurrent::Maybe 662s construction 662s hides Maybe.new 662s Maybe.from 662s raises an exception when no block is given 662s passes all arguments to the block 662s creates a Just Maybe on success 662s sets the value to the block result on success 662s creates a Nothing Maybe on exception 662s sets the reason to the error object on exception 662s Maybe.just 662s creates a new Just Maybe 662s Maybe.nothing 662s creates a new Nothing Maybe 662s uses the given Error object 662s creates a new error object with the given string 662s creates a new error object when given nothing 662s when just 662s #just? returns true 662s #fulfilled? returns true 662s #nothing? returns false 662s #rejected? returns false 662s #just returns the value 662s #value returns the value 662s #nothing returns NONE 662s #reason returns NONE 662s when nothing 662s #just? returns false 662s #fulfilled? returns false 662s #nothing? returns true 662s #rejected? returns true 662s #just returns NONE 662s #value returns NONE 662s #nothing returns the raised error 662s #reason returns the raised error 662s comparison 662s something is not equal to nothing 662s nothing is equal to nothing 662s something is equal to the same value 662s something is not equal to a different value 662s something is greater than a smaller value 662s something is less than a bigger value 662s nothing is not less than nothing 662s nothing is not greater than nothing 662s #or 662s returns the value when something 662s returns the other when nothing 662s 662s monotonic_time 662s behavior 662s returns seconds as float 662s returns a Float when unit = :float_second 662s returns a Float when unit = :float_millisecond 662s returns a Float when unit = :float_microsecond 662s returns an Integer when unit = :second 662s returns an Integer when unit = :millisecond 662s returns an Integer when unit = :microsecond 662s returns an Integer when unit = :nanosecond 662s raises ArgumentError on unknown units 662s 662s Concurrent::MutableStruct 662s it should behave like struct 662s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 662s definition 662s registers the class when given a class name 662s registers the class when given a class name which is defined in the ancestors 662s creates an anonymous class when given at least one member 662s raises an exception when given an invalid class name 662s defines a getter for each member 662s raises an exception when given no members 662s raise an exception when given an invalid member 662s evalues a given block against the new class 662s construction 662s sets all absent members to nil 662s sets all given members in order 662s raises an exception when extra members are given 662s properties 662s #length 662s returns the number of struct members 662s #members 662s returns the struct members as an array of symbols 662s returns a different object than the array passed at definition 662s #size 662s returns the number of struct members 662s #values 662s returns the values of the struct as an array in order 662s #values_at 662s returns the value at the given offset 662s returns the values at multiple given offsets 662s returns values at offsets in a given range 662s returns values for multiple ranges 662s returns values for ranges and offsets 662s accessors 662s #[member] 662s retrieves the value when given a valid symbol member 662s retrieves the value when given a valid string member 662s raises an exception when given a non-existent symbol member 662s raises an exception when given a non-existent string member 662s #[index] 662s retrieves the value when given a valid index 662s raises an exception when given an out-of-bound index 662s comparison 662s #== 662s returns true if other has same struct subclass and equal values 662s returns false if other has different struct subclass 662s returns false if other has different values 662s #!= 662s returns false if other has same struct subclass and equal values 662s returns true if other has different struct subclass 662s returns true if other has different values 662s enumeration 662s #each 662s yields the value of each struct member in order 662s returns an enumerator when no block is given 662s #each_pair 662s yields the name and value of each struct member in order 662s returns an enumerator when no block is given 662s #select 662s yields each value 662s returns an Array with the values from for which the block returns true 662s returns an enumerator when no block is given 662s conversion 662s #to_s 662s includes the name of the class when registered 662s includes the names of all members 662s includes all values 662s returns the same string as #inspect 662s #to_a 662s returns the to_a for this struct as an array 662s #to_h 662s returns a Hash containing the names and values in order 662s copy 662s #dup 662s shallowly duplicates all members along with the struct 662s discards frozen state of the struct 662s retains frozen state of members 662s discards singleton class 662s copies the singleton class of members 662s #clone 662s shallowly clones all members along with the struct 662s retains frozen state 662s copies the singleton class 662s copies the singleton class of members 662s it should behave like mergeable_struct 662s #merge 662s updates all members with the new values from a given hash 662s calls the given block for each key in `other` 662s retains the value for all members not without values in the given hash 662s raises an exception when given a hash with members not in the struct 662s returns a new object 662s definition 662s defines a setter for each member 662s #[member]= 662s sets the value when given a valid symbol member 662s sets the value when given a valid string member 662s raises an exception when given a non-existent symbol member 662s raises an exception when given a non-existent string member 662s #[index]= 662s sets the value when given a valid index 662s raises an exception when given an out-of-bound index 662s synchronization 663s protects #values 663s protects #values_at 663s protects #[index] 663s protects #[member] 663s protects getter methods 663s protects #[index]= 663s protects #[member]= 663s protects getter methods 663s protects #to_s 663s protects #inspect 663s protects #merge 663s protects #to_h 663s protects #== 663s protects #each 663s protects #each_pair 663s protects #select 663s protects #initialize_copy 663s copy 663s #dup 663s mutates only the copy 663s #clone 663s mutates only the copy 663s 663s Concurrent::MVar 663s behavior 663s it should behave like dereferenceable 663s defaults :dup_on_deref to false 663s calls #dup when the :dup_on_deref option is true 663s defaults :freeze_on_deref to false 663s calls #freeze when the :freeze_on_deref option is true 663s defaults :copy_on_deref to nil 663s calls the block when the :copy_on_deref option is passed a proc 663s calls the :copy block first followed by #dup followed by #freeze 663s does not call #dup when #dup_on_deref is set and the value is nil 663s does not call #freeze when #freeze_on_deref is set and the value is nil 663s does not call the #copy_on_deref block when the value is nil 663s supports dereference flags with observers 663s #initialize 663s accepts no initial value 663s accepts an empty initial value 663s accepts an initial value 663s accepts a nil initial value 663s #take 663s sets the MVar to empty 663s returns the value on a full MVar 663s waits for another thread to #put 663s returns TIMEOUT on timeout on an empty MVar 663s #borrow 663s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:101 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 663s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 663s require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 663s Concurrent at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/mvar_spec.rb:78 663s instance_exec at org/jruby/RubyBasicObject.java:2620 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 663s map at org/jruby/RubyArray.java:2803 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s map at org/jruby/RubyArray.java:2803 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 663s map at org/jruby/RubyArray.java:2803 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 663s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 663s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 663s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 663s
at /usr/bin/rspec:4 663s 663s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:149 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 663s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 663s require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 663s Concurrent at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/mvar_spec.rb:78 663s instance_exec at org/jruby/RubyBasicObject.java:2620 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 663s map at org/jruby/RubyArray.java:2803 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s map at org/jruby/RubyArray.java:2803 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 663s map at org/jruby/RubyArray.java:2803 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 663s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 663s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 663s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 663s
at /usr/bin/rspec:4 663s 663s yields current value to the block and puts back value 663s puts back value even if an exception is raised 663s returns the returned value of the block 663s /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85: warning: loading in progress, circular require considered harmful - /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:296 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 663s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 663s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 663s require at org/jruby/RubyKernel.java:1184 663s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 663s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 663s Concurrent at /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/mvar_spec.rb:78 663s instance_exec at org/jruby/RubyBasicObject.java:2620 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 663s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 663s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 663s map at org/jruby/RubyArray.java:2803 663s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s map at org/jruby/RubyArray.java:2803 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 663s map at org/jruby/RubyArray.java:2803 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 663s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 663s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 663s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 663s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 663s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 663s
at /usr/bin/rspec:4 663s 663s returns TIMEOUT on timeout on an empty MVar 663s #put 663s sets the MVar to be empty 663s sets a new value on an empty MVar 663s waits for another thread to #take 663s returns TIMEOUT on timeout on a full MVar 663s returns the value 663s #empty? 663s returns true on an empty MVar 663s returns false on a full MVar 663s #full? 663s returns false on an empty MVar 663s returns true on a full MVar 663s #modify 663s raises an exception when no block given 663s modifies a full MVar 663s returns the unmodified value 663s waits for another thread to #put 664s is atomic 664s returns TIMEOUT on timeout on an empty MVar 664s #try_put! 664s returns true an empty MVar 664s returns false on a full MVar 664s sets an empty MVar to be full 664s #try_take! 664s returns EMPTY an empty MVar 664s returns the value on a full MVar 664s sets a full MVar to be empty 664s #set! 665s sets an empty MVar to be full 665s sets a full MVar to be full 665s returns EMPTY on an empty MVar 665s returns the original value on a full MVar 665s #modify! 665s raises an exception when no block given 665s modifies a full MVar 665s modifies an empty MVar 665s can be used to set a full MVar to empty 665s can be used to set an empty MVar to empty 665s returns the unmodified value 665s spurious wake ups 665s #take 665s waits for another thread to #put 665s returns TIMEOUT on timeout on an empty MVar 665s #modify 666s waits for another thread to #put 666s returns TIMEOUT on timeout on an empty MVar 666s #put 667s waits for another thread to #take 667s returns TIMEOUT on timeout on a full MVar 667s 667s Concurrent::Options 667s .executor_from_options 667s returns the given :executor 667s returns the global io executor when :executor is :io 667s returns the global fast executor when :executor is :fast 667s returns an immediate executor when :executor is :immediate 667s raises an exception when :executor is an unrecognized symbol 667s 667s Concurrent::ProcessingActor 667s is expected to eq "ab" 667s 667s Concurrent::Promise 667s it should behave like ivar 667s it should behave like obligation 667s #state 667s is :pending when first created 667s is :fulfilled when the handler completes 667s is :rejected when the handler raises an exception 667s #value 667s returns nil when reaching the optional timeout value 667s returns immediately when timeout is zero 672s returns the value when fulfilled before timeout 672s returns nil when timeout reached 672s is nil when :pending 677s blocks the caller when :pending and timeout is nil 677s is nil when :rejected 677s is set to the return value of the block when :fulfilled 677s #reason 677s is nil when :pending 677s is nil when :fulfilled 677s is set to error object of the exception when :rejected 677s it should behave like dereferenceable 678s defaults :dup_on_deref to false 678s calls #dup when the :dup_on_deref option is true 678s defaults :freeze_on_deref to false 678s calls #freeze when the :freeze_on_deref option is true 679s defaults :copy_on_deref to nil 679s calls the block when the :copy_on_deref option is passed a proc 679s calls the :copy block first followed by #dup followed by #freeze 679s does not call #dup when #dup_on_deref is set and the value is nil 679s does not call #freeze when #freeze_on_deref is set and the value is nil 679s does not call the #copy_on_deref block when the value is nil 680s supports dereference flags with observers 680s it should behave like observable 680s #add_observer 680s adds an observer if called before first notification 680s adds an observer with :func if called before first notification 680s creates an observer from a block if called before first notification 680s raises an exception if not given an observer or a block 680s raises an exception when given both an observer and a block 680s #delete_observer 680s deletes the given observer if called before first notification 680s returns the removed observer if found in the observer set 680s returns the given observer even when not found in the observer set 680s #delete_observers 680s deletes all observers when called before first notification 680s returns self 680s #count_observers 680s returns zero for a new observable object 680s returns a count of registered observers if called before first notification 680s returns zero after #delete_observers has been called 680s first notification 680s calls the #update method on all observers without a specified :func 680s calls the appropriate function on all observers which specified a :func 680s calls the proc for all observers added as a block 681s does not notify any observers removed with #delete_observer 682s does not notify any observers after #delete_observers called 682s initialization 682s sets the state to incomplete 682s #set 682s sets the state to be fulfilled 682s sets the value 682s raises an exception if set more than once 682s returns self 682s fulfils when given a block which executes successfully 682s rejects when given a block which raises an exception 682s raises an exception when given a value and a block 682s raises an exception when given neither a value nor a block 682s #fail 682s sets the state to be rejected 682s sets the value to be nil 682s sets the reason to the given exception 682s raises an exception if set more than once 682s defaults the reason to a StandardError 682s returns self 682s #try_set 682s when unset 682s assigns the value 682s assigns the block result 682s returns true 682s when fulfilled 682s does not assign the value 682s does not assign the block result 682s returns false 682s when rejected 682s does not assign the value 682s does not assign the block result 682s has a nil value 682s returns false 682s it should behave like thread_arguments 682s passes an empty array when opts is not given 682s passes an empty array when opts is an empty hash 682s passes an empty array when there is no :args key 682s passes an empty array when the :args key has a nil value 682s passes a one-element array when the :args key has a non-array value 682s passes an array when when the :args key has an array value 682s passes the given array when the :args key has a complex array value 682s allows the given arguments array to be dereferenced 682s initializers 682s .fulfill 682s should return a Promise 682s should return a fulfilled Promise 682s should return a Promise with set value 682s .reject 682s should return a Promise 682s should return a rejected Promise 682s should return a Promise with set reason 682s .new 682s should return an unscheduled Promise 682s .execute 682s creates a new Promise 682s passes the block to the new Promise 682s calls #execute on the new Promise 682s #execute 682s unscheduled 683s sets the promise to :pending 683s posts the block given in construction 683s pending 683s sets the promise to :pending 683s does not post again 683s with children 683s when called on the root 684s should set all promises to :pending 684s when called on a child 685s should set all promises to :pending 685s when called on child after parent completes 685s sets state to :pending immediately 685s #then 685s returns a new promise when a block is passed 685s returns a new promise when a rescuer is passed 685s returns a new promise when a block and rescuer are passed 685s returns a new promise when a block, rescuer and executor are passed 685s supports setting the executor using a named parameter 685s should have block or rescuers 685s can be called more than once 685s unscheduled 685s returns a new promise 685s returns an unscheduled promise 685s pending 685s returns a new promise 685s returns a pending promise 685s fulfilled 685s returns a new Promise 685s notifies fulfillment to new child 685s rejected 685s returns a new Promise when :rejected 685s notifies rejection to new child 685s on_success 685s should have a block 685s returns a new promise 685s #rescue 685s returns a new promise 685s #flat_map 685s returns a promise 685s succeeds if both promises succeed 685s fails if the left promise fails 685s fails if the right promise fails 685s fails if the generating block fails 685s #zip 685s executes the returned Promise by default 685s executes the returned Promise when execute is true 685s does not execute the returned Promise when execute is false 685s allows setting executor for Promise chain 685s yields the results as an array 685s fails if one component fails 685s preserves ordering of the executed promises 685s .zip 686s executes the returned Promise by default 686s executes the returned Promise when execute is true 686s does not execute the returned Promise when execute is false 686s allows setting executor for Promise chain 686s yields the results as an array 686s fails if one component fails 686s preserves ordering of the executed promises 686s aggregators 686s .all? 686s returns a new Promise 686s does not execute the returned Promise 686s executes the #then condition when all components succeed 686s executes the #then condition when no promises are given 686s executes the #rescue handler if even one component fails 686s .any? 686s returns a new Promise 686s does not execute the returned Promise 686s executes the #then condition when any components succeed 686s executes the #then condition when no promises are given 686s executes the #rescue handler if all componenst fail 686s fulfillment 686s passes the result of each block to all its children 686s sets the promise value to the result if its block 686s sets the promise state to :fulfilled if the block completes 686s passes the last result through when a promise has no block 686s uses result as fulfillment value when a promise has no block 686s can manage long chain 686s #set 686s #can only be called on the root promise 686s triggers children 686s can be called with a block 686s #fail 686s can only be called on the root promise 686s rejects children 686s rejection 686s passes the reason to all its children 686s sets the promise value to the result if its block 686s sets the promise state to :rejected if the block completes 686s uses reason as rejection reason when a promise has no rescue callable 686s rejects on Exception 686s aliases 686s aliases #realized? for #fulfilled? 686s aliases #deref for #value 686s aliases #catch for #rescue 686s aliases #on_error for #rescue 686s 686s Concurrent::Promises 686s zip_futures_over 686s chain_resolvable 686s event 686s future 686s .future 686s executes 686s executes with args 686s .delay 686s is expected to eq 2 686s .schedule 686s scheduled execution 686s scheduled execution in graph 686s .event 686s is expected to equal true 686s .future without block 686s is expected to eq 0 686s .any_resolved 686s continues on first result 686s .any_fulfilled 686s continues on first result 686s treats a resolved Event as a fulfilled Future 686s treats a pending Event as a pending Future 686s .zip 686s waits for all results 686s when a future raises an error 686s raises a concurrent error 686s when deeply nested 686s raises the original error 686s .zip_events 686s waits for all and returns event 686s .rejected_future 686s raises the correct error when passed an unraised error 686s Future 686s has sync and async callbacks 686s wait supports setting timeout 686s wait! supports setting timeout 686s value supports setting timeout 687s value! supports setting timeout 687s reason supports setting timeout 687s result supports setting timeout 687s chains 687s chains with correct arguments 687s constructs promise like tree 687s allows graphs 687s resolves future when Exception raised 687s runs 687s can be risen when rejected 687s #flat 687s returns value of inner future 687s propagates rejection of inner future 687s it propagates rejection of the future which was suppose to provide inner future 687s rejects if inner value is not a future 687s accepts inner event 687s propagates requests for values to delayed futures 687s has shortcuts 687s ResolvableEvent 687s #wait 687s #resolve(raise_on_reassign = true) 687s #resolve(raise_on_reassign = false) 687s reservation 687s ResolvableFuture 687s #wait 687s #wait! 687s #value 687s #value! 687s #reason 687s result 687s reservation 687s atomic_resolution 687s interoperability 687s with erlang actor 687s with channel 687s value! 687s does not return spuriously with timeout 687s does not return spuriously without timeout 687s 687s Concurrent::ScheduledTask 687s behavior 687s it should behave like obligation 687s #state 687s is :pending when first created 687s is :fulfilled when the handler completes 687s is :rejected when the handler raises an exception 687s #value 687s returns nil when reaching the optional timeout value 687s returns immediately when timeout is zero 688s returns the value when fulfilled before timeout 688s returns nil when timeout reached 688s is nil when :pending 689s blocks the caller when :pending and timeout is nil 689s is nil when :rejected 689s is set to the return value of the block when :fulfilled 689s #reason 689s is nil when :pending 689s is nil when :fulfilled 689s is set to error object of the exception when :rejected 689s it should behave like dereferenceable 689s defaults :dup_on_deref to false 689s calls #dup when the :dup_on_deref option is true 689s defaults :freeze_on_deref to false 689s calls #freeze when the :freeze_on_deref option is true 689s defaults :copy_on_deref to nil 689s calls the block when the :copy_on_deref option is passed a proc 689s calls the :copy block first followed by #dup followed by #freeze 689s does not call #dup when #dup_on_deref is set and the value is nil 689s does not call #freeze when #freeze_on_deref is set and the value is nil 689s does not call the #copy_on_deref block when the value is nil 689s supports dereference flags with observers 689s it should behave like observable 689s #add_observer 689s adds an observer if called before first notification 689s adds an observer with :func if called before first notification 689s creates an observer from a block if called before first notification 689s raises an exception if not given an observer or a block 689s raises an exception when given both an observer and a block 689s #delete_observer 689s deletes the given observer if called before first notification 689s returns the removed observer if found in the observer set 689s returns the given observer even when not found in the observer set 689s #delete_observers 689s deletes all observers when called before first notification 689s returns self 689s #count_observers 689s returns zero for a new observable object 689s returns a count of registered observers if called before first notification 689s returns zero after #delete_observers has been called 689s first notification 689s calls the #update method on all observers without a specified :func 689s calls the appropriate function on all observers which specified a :func 690s calls the proc for all observers added as a block 691s does not notify any observers removed with #delete_observer 692s does not notify any observers after #delete_observers called 692s #initialize 692s accepts a number of seconds (from now) as the schedule time 692s raises an exception when seconds is less than zero 692s raises an exception when no block given 692s sets the initial state to :unscheduled 692s instance #execute 692s does nothing unless the state is :unscheduled 692s sets the sate to :pending 692s returns self 692s class #execute 692s creates a new ScheduledTask 692s passes the block to the new ScheduledTask 692s calls #execute on the new ScheduledTask 692s execution 692s passes :args from the options to the block 692s uses the :executor from the options 692s uses the :timer_set from the options 692s sets the state to :processing when the task is running 692s #cancel 692s returns false if the task has already been performed 693s returns false if the task is already in progress 693s cancels the task if it has not yet scheduled 693s cancels the task if it has not yet started 694s returns true on success 694s sets the reason to CancelledOperationError when cancelled 694s observation 694s returns true for an observer added while :unscheduled 694s returns true for an observer added while :pending 694s returns true for an observer added while :processing 694s notifies all observers on fulfillment 694s notifies all observers on rejection 694s 694s Concurrent::Set 694s .[] 694s when initializing with no arguments 694s is expected to be empty 694s when initializing with arguments 694s creates a set with the given objects 694s .new 694s when initializing with no arguments 694s is expected to be empty 694s when initializing with an enumerable object 694s creates a set with the contents of the enumerable object 694s when initializing with a block argument 694s creates a set with the contents of the enumerable object 694s concurrency 694s #add and #delete 694s force context switch 697s #each 697s 697s Concurrent::SettableStruct 697s it should behave like struct 697s definition 697s registers the class when given a class name 697s /tmp/autopkgtest.6vGR9y/build.E0I/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 697s registers the class when given a class name which is defined in the ancestors 697s creates an anonymous class when given at least one member 697s raises an exception when given an invalid class name 697s defines a getter for each member 697s raises an exception when given no members 697s raise an exception when given an invalid member 697s evalues a given block against the new class 697s construction 697s sets all absent members to nil 697s sets all given members in order 697s raises an exception when extra members are given 697s properties 697s #length 697s returns the number of struct members 697s #members 697s returns the struct members as an array of symbols 697s returns a different object than the array passed at definition 697s #size 697s returns the number of struct members 697s #values 697s returns the values of the struct as an array in order 697s #values_at 697s returns the value at the given offset 697s returns the values at multiple given offsets 697s returns values at offsets in a given range 697s returns values for multiple ranges 697s returns values for ranges and offsets 697s accessors 697s #[member] 697s retrieves the value when given a valid symbol member 697s retrieves the value when given a valid string member 697s raises an exception when given a non-existent symbol member 697s raises an exception when given a non-existent string member 697s #[index] 697s retrieves the value when given a valid index 697s raises an exception when given an out-of-bound index 697s comparison 697s #== 697s returns true if other has same struct subclass and equal values 697s returns false if other has different struct subclass 697s returns false if other has different values 697s #!= 697s returns false if other has same struct subclass and equal values 697s returns true if other has different struct subclass 697s returns true if other has different values 697s enumeration 697s #each 697s yields the value of each struct member in order 697s returns an enumerator when no block is given 697s #each_pair 697s yields the name and value of each struct member in order 697s returns an enumerator when no block is given 697s #select 697s yields each value 697s returns an Array with the values from for which the block returns true 697s returns an enumerator when no block is given 697s conversion 697s #to_s 697s includes the name of the class when registered 697s includes the names of all members 697s includes all values 697s returns the same string as #inspect 697s #to_a 697s returns the to_a for this struct as an array 697s #to_h 697s returns a Hash containing the names and values in order 697s copy 697s #dup 697s shallowly duplicates all members along with the struct 697s discards frozen state of the struct 697s retains frozen state of members 697s discards singleton class 697s copies the singleton class of members 697s #clone 697s shallowly clones all members along with the struct 697s retains frozen state 697s copies the singleton class 697s copies the singleton class of members 697s it should behave like mergeable_struct 697s #merge 697s updates all members with the new values from a given hash 697s calls the given block for each key in `other` 697s retains the value for all members not without values in the given hash 697s raises an exception when given a hash with members not in the struct 697s returns a new object 697s definition 697s defines a setter for each member 697s #[member]= 697s sets the value when given a valid symbol member 697s sets the value when given a valid string member 697s raises an exception when given a non-existent symbol member 697s raises an exception when given a non-existent string member 697s raises an exception when given a symbol member that has already been set 697s raises an exception when given a string member that has already been set 697s #[index]= 697s sets the value when given a valid index 697s raises an exception when given an out-of-bound index 697s raises an exception when given an index that has already been set 697s synchronization 697s protects #values 697s protects #values_at 697s protects #[index] 697s protects #[member] 697s protects getter methods 697s protects #[index]= 697s protects #[member]= 697s protects getter methods 697s protects #to_s 697s protects #inspect 697s protects #to_h 697s protects #merge 697s protects #== 697s protects #each 697s protects #each_pair 697s protects #select 697s protects #initialize_copy 697s copy 697s #dup 697s retains settability of members 697s #clone 697s retains settability of members 697s 697s Concurrent::Synchronization 697s Concurrent::Synchronization::Object 697s does not ensure visibility when not needed 697s does ensure visibility when specified 697s does ensure visibility when specified in a parent 697s does ensure visibility once when specified in child again 697s it should behave like attr_volatile 697s older writes are always visible 697s Concurrent::Synchronization::LockableObject 697s final field always visible 697s #wait 697s puts the current thread to sleep 698s allows the sleeping thread to be killed 698s releases the lock on the current object 698s can be called from within a #synchronize block 698s #synchronize 698s allows only one thread to execute count 698s signaling 698s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 698s it should behave like attr_volatile 698s older writes are always visible 698s Concurrent::Synchronization::Volatile module 698s it should behave like attr_volatile 698s older writes are always visible 698s attr_atomic 698s is expected to be == b 698s 698s Concurrent::SynchronizedDelegator 698s wraps array 698s synchronizes access 698s synchronizes access with block 698s 698s Concurrent 698s Throttle 698s acquiring 698s #to_s 698s #on 698s capacity limited 698s 698s Concurrent::TimerTask 698s dereferenceable 698s it should behave like dereferenceable 699s defaults :dup_on_deref to false 699s calls #dup when the :dup_on_deref option is true 699s defaults :freeze_on_deref to false 699s calls #freeze when the :freeze_on_deref option is true 700s defaults :copy_on_deref to nil 700s calls the block when the :copy_on_deref option is passed a proc 700s calls the :copy block first followed by #dup followed by #freeze 700s does not call #dup when #dup_on_deref is set and the value is nil 700s does not call #freeze when #freeze_on_deref is set and the value is nil 700s does not call the #copy_on_deref block when the value is nil 700s supports dereference flags with observers 700s observable 700s it should behave like observable 700s #add_observer 700s adds an observer if called before first notification 700s adds an observer with :func if called before first notification 701s creates an observer from a block if called before first notification 701s raises an exception if not given an observer or a block 701s raises an exception when given both an observer and a block 701s #delete_observer 701s deletes the given observer if called before first notification 701s returns the removed observer if found in the observer set 701s returns the given observer even when not found in the observer set 701s #delete_observers 701s deletes all observers when called before first notification 701s returns self 701s #count_observers 701s returns zero for a new observable object 701s returns a count of registered observers if called before first notification 701s returns zero after #delete_observers has been called 701s first notification 701s calls the #update method on all observers without a specified :func 701s calls the appropriate function on all observers which specified a :func 701s calls the proc for all observers added as a block 702s does not notify any observers removed with #delete_observer 704s does not notify any observers after #delete_observers called 704s created with #new 704s #initialize 704s raises an exception if no block given 704s raises an exception if :execution_interval is not greater than zero 704s raises an exception if :execution_interval is not an integer 704s uses the default execution interval when no interval is given 704s uses the given execution interval 704s raises an exception if :interval_type is not a valid value 704s uses the default :interval_type when no type is given 704s uses the given interval type 704s #kill 704s returns true on success 704s #shutdown 704s returns true on success 704s arguments 704s raises an exception if no block given 704s TimeTask timeouts are now ignored as these were not able to be implemented correctly 704s #execution_interval is writeable 704s raises on invalid interval_type 704s TimeTask timeouts are now ignored as these were not able to be implemented correctly 704s #timeout_interval being written produces a warning 704s execution 704s runs the block immediately when the :run_now option is true 704s waits for :execution_interval seconds when the :run_now option is false 704s waits for :execution_interval seconds when the :run_now option is not given 704s passes a "self" reference to the block as the sole argument 704s uses the global executor by default 704s uses a custom executor when given 705s uses a fixed delay when set 705s uses a fixed rate when set 705s observation 705s notifies all observers on success 705s notifies all observers on error 705s 705s Concurrent::TVar 705s #initialize 705s accepts an initial value 705s #value 705s gets the value 705s #value= 705s sets the value 705s 705s #atomically 705s raises an exception when no block given 705s raises the same exception that was raised in Concurrent::atomically 705s retries on abort 705s commits writes if the transaction succeeds 705s undoes writes if the transaction is aborted 705s provides atomicity 705s nests 705s reflects transactional writes from within the same transaction 705s 705s #abort_transaction 705s raises an exception outside an #atomically block 705s 705s #leave_transaction 705s raises an exception outside an #atomically block 705s neither commits nor aborts a transaction 705s 705s #processor_count 705s retuns a positive integer 705s 705s #physical_processor_count 705s retuns a positive integer 705s 705s #cpu_quota 705s returns #compute_cpu_quota 705s returns nil if no quota is detected 705s returns nil if cgroups v2 sets no limit 705s returns a float if cgroups v2 sets a limit 705s returns nil if cgroups v1 sets no limit 705s returns nil if cgroups v1 and cpu.cfs_quota_us is -1 705s returns a float if cgroups v1 sets a limit 705s 705s #available_processor_count 705s returns #processor_count if #cpu_quota is nil 705s returns #processor_count if #cpu_quota is higher 705s returns #cpu_quota if #cpu_quota is lower than #processor_count 705s 705s #cpu_shares 705s returns a float when cgroups v2 sets a cpu.weight 705s returns a float if cgroups v1 sets a cpu.shares 705s 705s Finished in 4 minutes 26.6 seconds (files took 6.69 seconds to load) 705s 3009 examples, 0 failures, 17 pending 705s 706s autopkgtest [20:53:46]: test jruby: -----------------------] 710s autopkgtest [20:53:50]: test jruby: - - - - - - - - - - results - - - - - - - - - - 710s jruby PASS 714s autopkgtest [20:53:54]: @@@@@@@@@@@@@@@@@@@@ summary 714s ruby PASS 714s jruby PASS