0s autopkgtest [22:18:17]: starting date and time: 2026-02-03 22:18:17+0000 0s autopkgtest [22:18:17]: git checkout: 4b346b80 nova: make wait_reboot return success even when a no-op 0s autopkgtest [22:18:17]: host juju-7f2275-prod-proposed-migration-environment-2; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.kzvkkihq/out --timeout-copy=6000 --needs-internet=try --setup-commands /home/ubuntu/autopkgtest-cloud/worker-config-production/setup-canonical.sh --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 -- ssh -s /home/ubuntu/autopkgtest/ssh-setup/nova -- --flavor autopkgtest-cpu2-ram4-disk20-ppc64el --security-groups autopkgtest-juju-7f2275-prod-proposed-migration-environment-2@sto01-ppc64el-14.secgroup --name adt-resolute-ppc64el-ruby-concurrent-20260203-221817-juju-7f2275-prod-proposed-migration-environment-2-50267188-ee09-47d7-b0c9-3eabe22c5cef --image adt/ubuntu-resolute-ppc64el-server --keyname testbed-juju-7f2275-prod-proposed-migration-environment-2 --net-id=net_prod-autopkgtest-workers-ppc64el -e TERM=linux --mirror=http://ftpmaster.internal/ubuntu/ 3s Creating nova instance adt-resolute-ppc64el-ruby-concurrent-20260203-221817-juju-7f2275-prod-proposed-migration-environment-2-50267188-ee09-47d7-b0c9-3eabe22c5cef from image adt/ubuntu-resolute-ppc64el-server-20260203.img (UUID 36e1410e-0a72-4cd6-affd-580c415d80cb)... 53s autopkgtest [22:19:10]: testbed dpkg architecture: ppc64el 53s autopkgtest [22:19:10]: testbed apt version: 3.1.14 54s autopkgtest [22:19:11]: @@@@@@@@@@@@@@@@@@@@ test bed setup 54s autopkgtest [22:19:11]: testbed release detected to be: None 55s autopkgtest [22:19:12]: updating testbed package index (apt update) 55s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 55s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 55s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 55s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 55s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [232 kB] 55s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [27.9 kB] 55s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5260 B] 55s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1337 kB] 56s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [284 kB] 56s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [1152 kB] 56s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [17.8 kB] 56s Fetched 3181 kB in 1s (3034 kB/s) 57s Reading package lists... 58s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 58s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 58s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 58s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 58s Reading package lists... 59s Reading package lists... 59s Building dependency tree... 59s Reading state information... 59s Calculating upgrade... 59s The following packages will be upgraded: 59s libzstd1 zstd 59s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 59s Need to get 1275 kB of archives. 59s After this operation, 0 B of additional disk space will be used. 59s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el libzstd1 ppc64el 1.5.7+dfsg-3 [430 kB] 59s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el zstd ppc64el 1.5.7+dfsg-3 [845 kB] 59s dpkg-preconfigure: unable to re-open stdin: No such file or directory 59s Fetched 1275 kB in 0s (4825 kB/s) 60s (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 ... 82008 files and directories currently installed.) 60s Preparing to unpack .../libzstd1_1.5.7+dfsg-3_ppc64el.deb ... 60s Unpacking libzstd1:ppc64el (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 60s Setting up libzstd1:ppc64el (1.5.7+dfsg-3) ... 60s (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 ... 82008 files and directories currently installed.) 60s Preparing to unpack .../zstd_1.5.7+dfsg-3_ppc64el.deb ... 60s Unpacking zstd (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 60s Setting up zstd (1.5.7+dfsg-3) ... 60s Processing triggers for man-db (2.13.1-1) ... 61s Processing triggers for libc-bin (2.42-2ubuntu4) ... 61s autopkgtest [22:19:18]: upgrading testbed (apt dist-upgrade and autopurge) 62s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Calculating upgrade... 62s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 62s Reading package lists... 62s Building dependency tree... 62s Reading state information... 62s Solving dependencies... 62s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 65s autopkgtest [22:19:22]: testbed running kernel: Linux 6.18.0-9-generic #9-Ubuntu SMP PREEMPT_DYNAMIC Mon Jan 12 16:45:54 UTC 2026 66s autopkgtest [22:19:23]: @@@@@@@@@@@@@@@@@@@@ apt-source ruby-concurrent 68s Get:1 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (dsc) [1707 B] 68s Get:2 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (tar) [1005 kB] 68s Get:3 http://ftpmaster.internal/ubuntu resolute/universe ruby-concurrent 1.3.4-1 (diff) [6016 B] 68s gpgv: Signature made Tue Feb 4 18:01:40 2025 UTC 68s gpgv: using EDDSA key 84CFFDC21520F88306EC29D152699AB63F9F2BC3 68s gpgv: Can't check signature: No public key 68s dpkg-source: warning: cannot verify inline signature for ./ruby-concurrent_1.3.4-1.dsc: no acceptable signature found 68s autopkgtest [22:19:25]: testing package ruby-concurrent version 1.3.4-1 68s autopkgtest [22:19:25]: build not needed 69s autopkgtest [22:19:26]: test ruby: preparing testbed 69s Reading package lists... 69s Building dependency tree... 69s Reading state information... 69s Solving dependencies... 69s The following NEW packages will be installed: 69s gem2deb-test-runner libruby libruby3.3 rake ruby ruby-concurrent 69s ruby-concurrent-ext ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-minitest 69s ruby-net-telnet ruby-power-assert ruby-rspec ruby-rspec-core 69s ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support 69s ruby-ruby2-keywords ruby-rubygems ruby-test-unit ruby-timecop ruby-webrick 69s ruby-xmlrpc ruby3.3 rubygems-integration 69s 0 upgraded, 26 newly installed, 0 to remove and 0 not upgraded. 69s Need to get 7822 kB of archives. 69s After this operation, 43.0 MB of additional disk space will be used. 69s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el rubygems-integration all 1.19build1 [5666 B] 69s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-csv all 3.3.4-1 [43.0 kB] 69s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 69s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 69s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 69s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-webrick all 1.9.1-1 [60.8 kB] 69s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 69s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el libruby3.3 ppc64el 3.3.8-2ubuntu2 [6368 kB] 70s Get:9 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby3.3 ppc64el 3.3.8-2ubuntu2 [58.9 kB] 70s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libruby ppc64el 1:3.3build1 [5276 B] 70s Get:11 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-rubygems all 3.6.7-2ubuntu1 [332 kB] 70s Get:12 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el ruby ppc64el 1:3.3build1 [3680 B] 70s Get:13 http://ftpmaster.internal/ubuntu resolute/main ppc64el rake all 13.2.1-1build1 [45.9 kB] 70s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-minitest all 5.26.1-1 [49.3 kB] 70s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-power-assert all 2.0.5-1 [12.0 kB] 70s Get:16 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-test-unit all 3.6.2-1 [67.0 kB] 70s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el gem2deb-test-runner ppc64el 2.2.5 [18.3 kB] 70s Get:18 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-concurrent all 1.3.4-1 [283 kB] 70s Get:19 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-concurrent-ext ppc64el 1.3.4-1 [9218 B] 70s Get:20 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-diff-lcs all 1.5.1-1 [22.8 kB] 70s Get:21 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 70s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 70s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 70s Get:24 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 70s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 70s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-timecop all 0.9.10-1.1 [11.5 kB] 70s Fetched 7822 kB in 1s (14.5 MB/s) 70s Selecting previously unselected package rubygems-integration. 70s (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 ... 82008 files and directories currently installed.) 70s Preparing to unpack .../00-rubygems-integration_1.19build1_all.deb ... 70s Unpacking rubygems-integration (1.19build1) ... 70s Selecting previously unselected package ruby-csv. 70s Preparing to unpack .../01-ruby-csv_3.3.4-1_all.deb ... 70s Unpacking ruby-csv (3.3.4-1) ... 70s Selecting previously unselected package ruby-did-you-mean. 70s Preparing to unpack .../02-ruby-did-you-mean_1.6.3-2build1_all.deb ... 70s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 70s Selecting previously unselected package ruby-net-telnet. 70s Preparing to unpack .../03-ruby-net-telnet_0.2.0-1build1_all.deb ... 70s Unpacking ruby-net-telnet (0.2.0-1build1) ... 70s Selecting previously unselected package ruby-ruby2-keywords. 70s Preparing to unpack .../04-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 70s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 70s Selecting previously unselected package ruby-webrick. 70s Preparing to unpack .../05-ruby-webrick_1.9.1-1_all.deb ... 70s Unpacking ruby-webrick (1.9.1-1) ... 70s Selecting previously unselected package ruby-xmlrpc. 70s Preparing to unpack .../06-ruby-xmlrpc_0.3.3-2build1_all.deb ... 70s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 70s Selecting previously unselected package libruby3.3:ppc64el. 70s Preparing to unpack .../07-libruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 70s Unpacking libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 71s Selecting previously unselected package ruby3.3. 71s Preparing to unpack .../08-ruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 71s Unpacking ruby3.3 (3.3.8-2ubuntu2) ... 71s Selecting previously unselected package libruby:ppc64el. 71s Preparing to unpack .../09-libruby_1%3a3.3build1_ppc64el.deb ... 71s Unpacking libruby:ppc64el (1:3.3build1) ... 71s Selecting previously unselected package ruby-rubygems. 71s Preparing to unpack .../10-ruby-rubygems_3.6.7-2ubuntu1_all.deb ... 71s Unpacking ruby-rubygems (3.6.7-2ubuntu1) ... 71s Selecting previously unselected package ruby. 71s Preparing to unpack .../11-ruby_1%3a3.3build1_ppc64el.deb ... 71s Unpacking ruby (1:3.3build1) ... 71s Selecting previously unselected package rake. 71s Preparing to unpack .../12-rake_13.2.1-1build1_all.deb ... 71s Unpacking rake (13.2.1-1build1) ... 71s Selecting previously unselected package ruby-minitest. 71s Preparing to unpack .../13-ruby-minitest_5.26.1-1_all.deb ... 71s Unpacking ruby-minitest (5.26.1-1) ... 71s Selecting previously unselected package ruby-power-assert. 71s Preparing to unpack .../14-ruby-power-assert_2.0.5-1_all.deb ... 71s Unpacking ruby-power-assert (2.0.5-1) ... 71s Selecting previously unselected package ruby-test-unit. 71s Preparing to unpack .../15-ruby-test-unit_3.6.2-1_all.deb ... 71s Unpacking ruby-test-unit (3.6.2-1) ... 71s Selecting previously unselected package gem2deb-test-runner. 71s Preparing to unpack .../16-gem2deb-test-runner_2.2.5_ppc64el.deb ... 71s Unpacking gem2deb-test-runner (2.2.5) ... 71s Selecting previously unselected package ruby-concurrent. 71s Preparing to unpack .../17-ruby-concurrent_1.3.4-1_all.deb ... 71s Unpacking ruby-concurrent (1.3.4-1) ... 71s Selecting previously unselected package ruby-concurrent-ext. 71s Preparing to unpack .../18-ruby-concurrent-ext_1.3.4-1_ppc64el.deb ... 71s Unpacking ruby-concurrent-ext (1.3.4-1) ... 71s Selecting previously unselected package ruby-diff-lcs. 71s Preparing to unpack .../19-ruby-diff-lcs_1.5.1-1_all.deb ... 71s Unpacking ruby-diff-lcs (1.5.1-1) ... 71s Selecting previously unselected package ruby-rspec-support. 71s Preparing to unpack .../20-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 71s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 71s Selecting previously unselected package ruby-rspec-core. 71s Preparing to unpack .../21-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 71s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 71s Selecting previously unselected package ruby-rspec-expectations. 71s Preparing to unpack .../22-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 71s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 71s Selecting previously unselected package ruby-rspec-mocks. 71s Preparing to unpack .../23-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 71s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 71s Selecting previously unselected package ruby-rspec. 71s Preparing to unpack .../24-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 71s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 71s Selecting previously unselected package ruby-timecop. 71s Preparing to unpack .../25-ruby-timecop_0.9.10-1.1_all.deb ... 71s Unpacking ruby-timecop (0.9.10-1.1) ... 71s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 71s Setting up ruby-power-assert (2.0.5-1) ... 71s Setting up rubygems-integration (1.19build1) ... 71s Setting up ruby-concurrent (1.3.4-1) ... 71s Setting up ruby-timecop (0.9.10-1.1) ... 71s Setting up ruby-minitest (5.26.1-1) ... 71s Setting up ruby-test-unit (3.6.2-1) ... 71s Setting up ruby-net-telnet (0.2.0-1build1) ... 71s Setting up ruby-csv (3.3.4-1) ... 71s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 71s Setting up ruby-webrick (1.9.1-1) ... 71s Setting up ruby-did-you-mean (1.6.3-2build1) ... 71s Setting up ruby-xmlrpc (0.3.3-2build1) ... 71s Setting up rake (13.2.1-1build1) ... 71s Setting up libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 71s Setting up ruby3.3 (3.3.8-2ubuntu2) ... 71s Setting up libruby:ppc64el (1:3.3build1) ... 71s Setting up ruby (1:3.3build1) ... 71s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 71s Setting up ruby-diff-lcs (1.5.1-1) ... 71s Setting up ruby-rubygems (3.6.7-2ubuntu1) ... 71s Setting up gem2deb-test-runner (2.2.5) ... 71s Setting up ruby-concurrent-ext (1.3.4-1) ... 71s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 71s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 71s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 71s Processing triggers for libc-bin (2.42-2ubuntu4) ... 71s Processing triggers for man-db (2.13.1-1) ... 72s autopkgtest [22:19:29]: 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 72s autopkgtest [22:19:29]: test ruby: [----------------------- 73s 73s ┌──────────────────────────────────────────────────────────────────────────────┐ 73s │ Run tests for ruby3.3 from debian/ruby-tests.rake │ 73s └──────────────────────────────────────────────────────────────────────────────┘ 73s 73s RUBYLIB=. GEM_PATH= ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake 73s mv lib ./.gem2deb.lib 73s mv ext ./.gem2deb.ext 73s /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 74s Run options: exclude {:stress=>true} 74s 74s Randomized with seed 1 74s 74s Concurrent::IVar 74s #initialize 74s can set an initial value 74s does not have to set an initial value 74s can set an initial value with a block 74s does not set an initial value if you pass NULL 74s raises an exception if given both a value and a block 74s observation 74s notifies all observers on #set 74s deadlock avoidance 74s should notify observers outside mutex lock 74s should notify a new observer added after fulfillment outside lock 74s it should behave like ivar 74s initialization 74s sets the state to incomplete 74s it should behave like dereferenceable 74s does not call #freeze when #freeze_on_deref is set and the value is nil 74s defaults :copy_on_deref to nil 74s defaults :dup_on_deref to false 74s supports dereference flags with observers 74s calls #freeze when the :freeze_on_deref option is true 74s defaults :freeze_on_deref to false 74s does not call #dup when #dup_on_deref is set and the value is nil 74s calls #dup when the :dup_on_deref option is true 74s calls the block when the :copy_on_deref option is passed a proc 74s does not call the #copy_on_deref block when the value is nil 74s calls the :copy block first followed by #dup followed by #freeze 74s it should behave like obligation 74s #value 74s returns nil when reaching the optional timeout value 74s is nil when :pending 74s blocks the caller when :pending and timeout is nil 74s returns the value when fulfilled before timeout 74s is set to the return value of the block when :fulfilled 74s is nil when :rejected 74s returns nil when timeout reached 74s returns immediately when timeout is zero 74s #state 74s is :pending when first created 74s is :fulfilled when the handler completes 74s is :rejected when the handler raises an exception 74s #reason 74s is nil when :fulfilled 74s is set to error object of the exception when :rejected 74s is nil when :pending 74s it should behave like observable 74s #delete_observer 74s deletes the given observer if called before first notification 74s returns the given observer even when not found in the observer set 74s returns the removed observer if found in the observer set 74s #add_observer 74s raises an exception if not given an observer or a block 74s adds an observer if called before first notification 74s raises an exception when given both an observer and a block 74s creates an observer from a block if called before first notification 74s adds an observer with :func if called before first notification 74s first notification 75s does not notify any observers after #delete_observers called 75s calls the appropriate function on all observers which specified a :func 76s does not notify any observers removed with #delete_observer 76s calls the proc for all observers added as a block 76s calls the #update method on all observers without a specified :func 76s #count_observers 76s returns zero for a new observable object 76s returns a count of registered observers if called before first notification 76s returns zero after #delete_observers has been called 76s #delete_observers 76s deletes all observers when called before first notification 76s returns self 76s #set 76s raises an exception when given neither a value nor a block 76s raises an exception if set more than once 76s rejects when given a block which raises an exception 76s returns self 76s sets the state to be fulfilled 76s fulfils when given a block which executes successfully 76s raises an exception when given a value and a block 76s sets the value 76s #fail 76s sets the reason to the given exception 76s raises an exception if set more than once 76s sets the value to be nil 76s returns self 76s defaults the reason to a StandardError 76s sets the state to be rejected 76s #try_set 76s when unset 76s assigns the value 76s assigns the block result 76s returns true 76s when rejected 76s does not assign the block result 76s returns false 76s has a nil value 76s does not assign the value 76s when fulfilled 76s does not assign the value 76s returns false 76s does not assign the block result 76s 76s Concurrent::LazyRegister 76s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 76s 76s dataflow 76s #dataflow uses the global fast executor 76s #dataflow_with raises an exception when no executor given 76s raises an exception when no block given 76s accepts completed dependencies 76s doesn't raise exceptions from dependencies, unless called with ! 76s returns a Future 76s accepts zero or more dependencies 76s accepts uncompleted dependencies 76s #dataflow_with uses the given executor 76s raises an exception if any dependencies are not IVars 76s passes the values of dependencies into the block 76s if there is more than one 76s if there is just one 76s does not schedule the Future 76s if no dependencies are completed 76s if one dependency of two is completed 76s module function 76s can be called as Concurrent.dataflow and Concurrent.dataflow_with 76s counts already executed dependencies 76s if there is more than one 76s if there is just one 76s schedules the Future when all dependencies are available 76s if there is more than one 76s if there is just one 76s 76s Concurrent::MutableStruct 76s #[member]= 76s sets the value when given a valid string member 76s sets the value when given a valid symbol member 76s raises an exception when given a non-existent symbol member 76s raises an exception when given a non-existent string member 76s synchronization 76s protects #[member] 76s protects #values 76s protects #to_h 76s protects getter methods 76s protects #each_pair 76s protects getter methods 76s protects #inspect 76s protects #[member]= 76s protects #to_s 76s protects #values_at 76s protects #merge 76s protects #initialize_copy 76s protects #[index]= 76s protects #== 76s protects #each 76s protects #[index] 76s protects #select 76s definition 76s defines a setter for each member 76s copy 76s #clone 76s mutates only the copy 76s #dup 76s mutates only the copy 76s #[index]= 76s sets the value when given a valid index 76s raises an exception when given an out-of-bound index 76s it should behave like struct 76s properties 76s #members 76s returns a different object than the array passed at definition 76s returns the struct members as an array of symbols 76s #size 76s returns the number of struct members 76s #values 76s returns the values of the struct as an array in order 76s #values_at 76s returns values for ranges and offsets 76s returns the values at multiple given offsets 76s returns values at offsets in a given range 76s returns the value at the given offset 76s returns values for multiple ranges 76s #length 76s returns the number of struct members 76s comparison 76s #!= 76s returns false if other has same struct subclass and equal values 76s returns true if other has different values 76s returns true if other has different struct subclass 76s #== 76s returns true if other has same struct subclass and equal values 76s returns false if other has different struct subclass 76s returns false if other has different values 76s definition 76s registers the class when given a class name which is defined in the ancestors 76s raises an exception when given an invalid class name 76s raises an exception when given no members 76s raise an exception when given an invalid member 76s defines a getter for each member 76s registers the class when given a class name 76s evalues a given block against the new class 76s creates an anonymous class when given at least one member 76s conversion 76s #to_a 76s returns the to_a for this struct as an array 76s #to_s 76s returns the same string as #inspect 76s includes the name of the class when registered 76s includes the names of all members 76s includes all values 76s #to_h 76s returns a Hash containing the names and values in order 76s accessors 76s #[index] 76s retrieves the value when given a valid index 76s raises an exception when given an out-of-bound index 76s #[member] 76s retrieves the value when given a valid string member 76s raises an exception when given a non-existent string member 76s raises an exception when given a non-existent symbol member 76s retrieves the value when given a valid symbol member 76s enumeration 76s #select 76s yields each value 76s returns an enumerator when no block is given 76s returns an Array with the values from for which the block returns true 76s #each 76s returns an enumerator when no block is given 76s yields the value of each struct member in order 76s #each_pair 76s returns an enumerator when no block is given 76s yields the name and value of each struct member in order 76s construction 76s raises an exception when extra members are given 76s sets all absent members to nil 76s sets all given members in order 76s copy 76s #dup 76s discards singleton class 76s shallowly duplicates all members along with the struct 76s discards frozen state of the struct 76s retains frozen state of members 76s copies the singleton class of members 76s #clone 76s retains frozen state 76s copies the singleton class 76s copies the singleton class of members 76s shallowly clones all members along with the struct 76s it should behave like mergeable_struct 76s #merge 76s calls the given block for each key in `other` 76s raises an exception when given a hash with members not in the struct 76s returns a new object 76s retains the value for all members not without values in the given hash 76s updates all members with the new values from a given hash 76s 76s Concurrent 76s Cancellation 76s basic 76s is expected to be falsey 76s is expected to be truthy 76s #join 76s is expected to eq 2 76s is expected to be falsey 76s 76s #atomically 76s provides atomicity 76s raises an exception when no block given 76s reflects transactional writes from within the same transaction 76s undoes writes if the transaction is aborted 76s commits writes if the transaction succeeds 76s retries on abort 76s nests 76s raises the same exception that was raised in Concurrent::atomically 76s 76s Concurrent::Set 76s .[] 76s when initializing with arguments 76s creates a set with the given objects 76s when initializing with no arguments 76s is expected to be empty 76s .new 76s when initializing with no arguments 76s is expected to be empty 76s when initializing with an enumerable object 76s creates a set with the contents of the enumerable object 76s when initializing with a block argument 76s creates a set with the contents of the enumerable object 76s concurrency 76s #each 76s force context switch 78s #add and #delete 78s 78s Concurrent::Delay 78s #reconfigure 78s returns value of block used in reconfiguration 78s returns false when process completed? 78s #value 78s can be called twice 78s calls the block when #value is called 78s raises when called recursively 78s does not call the block before #value is called 78s only calls the block once no matter how often #value is called 78s behavior 78s it should behave like dereferenceable 78s calls the block when the :copy_on_deref option is passed a proc 78s defaults :copy_on_deref to nil 78s does not call #freeze when #freeze_on_deref is set and the value is nil 78s calls #dup when the :dup_on_deref option is true 78s does not call #dup when #dup_on_deref is set and the value is nil 78s defaults :dup_on_deref to false 78s supports dereference flags with observers 78s does not call the #copy_on_deref block when the value is nil 78s calls the :copy block first followed by #dup followed by #freeze 78s defaults :freeze_on_deref to false 78s calls #freeze when the :freeze_on_deref option is true 78s it should behave like obligation 78s #reason 78s is nil when :pending 78s is nil when :fulfilled 78s is set to error object of the exception when :rejected 78s #value 78s is nil when :rejected 78s is set to the return value of the block when :fulfilled 78s returns immediately when timeout is zero 78s blocks the caller when :pending and timeout is nil 78s returns nil when reaching the optional timeout value 78s returns nil when timeout reached 78s returns the value when fulfilled before timeout 78s is nil when :pending 78s #state 78s is :pending when first created 78s is :rejected when the handler raises an exception 78s is :fulfilled when the handler completes 78s #initialize 78s raises an exception when no block given 78s sets the state to :pending 78s 78s Concurrent::Promise 78s #rescue 78s returns a new promise 78s it should behave like thread_arguments 78s passes a one-element array when the :args key has a non-array value 78s passes an empty array when opts is not given 78s passes an empty array when the :args key has a nil value 78s passes an empty array when opts is an empty hash 78s allows the given arguments array to be dereferenced 78s passes the given array when the :args key has a complex array value 78s passes an array when when the :args key has an array value 78s passes an empty array when there is no :args key 78s aliases 78s aliases #realized? for #fulfilled? 78s aliases #catch for #rescue 78s aliases #deref for #value 78s aliases #on_error for #rescue 78s fulfillment 78s can manage long chain 78s sets the promise state to :fulfilled if the block completes 78s passes the result of each block to all its children 78s sets the promise value to the result if its block 78s uses result as fulfillment value when a promise has no block 78s passes the last result through when a promise has no block 78s #fail 78s can only be called on the root promise 78s rejects children 78s #set 78s triggers children 78s can be called with a block 78s #can only be called on the root promise 78s rejection 78s sets the promise value to the result if its block 78s passes the reason to all its children 78s rejects on Exception 78s sets the promise state to :rejected if the block completes 78s uses reason as rejection reason when a promise has no rescue callable 78s .zip 78s does not execute the returned Promise when execute is false 78s preserves ordering of the executed promises 78s executes the returned Promise by default 78s allows setting executor for Promise chain 78s fails if one component fails 78s executes the returned Promise when execute is true 78s yields the results as an array 78s aggregators 78s .any? 78s executes the #then condition when any components succeed 78s executes the #rescue handler if all componenst fail 78s does not execute the returned Promise 78s returns a new Promise 78s executes the #then condition when no promises are given 78s .all? 78s executes the #then condition when all components succeed 78s executes the #rescue handler if even one component fails 78s returns a new Promise 78s does not execute the returned Promise 78s executes the #then condition when no promises are given 78s initializers 78s .execute 78s passes the block to the new Promise 78s calls #execute on the new Promise 78s creates a new Promise 78s .fulfill 78s should return a Promise with set value 78s should return a fulfilled Promise 78s should return a Promise 78s .reject 78s should return a Promise with set reason 78s should return a Promise 78s should return a rejected Promise 78s .new 78s should return an unscheduled Promise 78s #then 78s should have block or rescuers 78s returns a new promise when a block and rescuer are passed 78s returns a new promise when a block is passed 78s returns a new promise when a rescuer is passed 78s can be called more than once 78s supports setting the executor using a named parameter 78s returns a new promise when a block, rescuer and executor are passed 78s fulfilled 78s returns a new Promise 78s notifies fulfillment to new child 78s rejected 78s returns a new Promise when :rejected 78s notifies rejection to new child 78s pending 78s returns a new promise 78s returns a pending promise 78s unscheduled 78s returns a new promise 78s returns an unscheduled promise 78s on_success 78s returns a new promise 78s should have a block 78s #execute 78s with children 78s when called on a child 79s should set all promises to :pending 79s when called on child after parent completes 79s sets state to :pending immediately 79s when called on the root 80s should set all promises to :pending 80s pending 80s does not post again 80s sets the promise to :pending 80s unscheduled 80s posts the block given in construction 81s sets the promise to :pending 81s #flat_map 81s returns a promise 81s fails if the left promise fails 81s fails if the right promise fails 81s fails if the generating block fails 81s succeeds if both promises succeed 81s #zip 81s allows setting executor for Promise chain 81s fails if one component fails 81s executes the returned Promise when execute is true 81s does not execute the returned Promise when execute is false 81s executes the returned Promise by default 81s preserves ordering of the executed promises 81s yields the results as an array 81s it should behave like ivar 81s #set 81s raises an exception if set more than once 81s returns self 81s raises an exception when given neither a value nor a block 81s raises an exception when given a value and a block 81s rejects when given a block which raises an exception 81s sets the state to be fulfilled 81s sets the value 81s fulfils when given a block which executes successfully 81s #try_set 81s when fulfilled 81s returns false 81s does not assign the value 81s does not assign the block result 81s when rejected 81s returns false 81s does not assign the block result 81s has a nil value 81s does not assign the value 81s when unset 81s returns true 81s assigns the value 81s assigns the block result 81s it should behave like observable 81s #add_observer 81s adds an observer with :func if called before first notification 81s raises an exception if not given an observer or a block 81s creates an observer from a block if called before first notification 81s adds an observer if called before first notification 81s raises an exception when given both an observer and a block 81s #count_observers 81s returns zero for a new observable object 81s returns a count of registered observers if called before first notification 81s returns zero after #delete_observers has been called 81s first notification 83s does not notify any observers removed with #delete_observer 84s does not notify any observers after #delete_observers called 84s calls the proc for all observers added as a block 84s calls the appropriate function on all observers which specified a :func 84s calls the #update method on all observers without a specified :func 84s #delete_observer 84s returns the given observer even when not found in the observer set 84s returns the removed observer if found in the observer set 84s deletes the given observer if called before first notification 84s #delete_observers 84s returns self 84s deletes all observers when called before first notification 84s initialization 84s sets the state to incomplete 84s #fail 84s sets the state to be rejected 84s sets the value to be nil 84s raises an exception if set more than once 84s defaults the reason to a StandardError 84s sets the reason to the given exception 84s returns self 84s it should behave like dereferenceable 84s calls the block when the :copy_on_deref option is passed a proc 84s defaults :copy_on_deref to nil 85s does not call #freeze when #freeze_on_deref is set and the value is nil 85s calls #dup when the :dup_on_deref option is true 85s supports dereference flags with observers 85s calls #freeze when the :freeze_on_deref option is true 85s calls the :copy block first followed by #dup followed by #freeze 86s defaults :dup_on_deref to false 86s defaults :freeze_on_deref to false 86s does not call #dup when #dup_on_deref is set and the value is nil 86s does not call the #copy_on_deref block when the value is nil 86s it should behave like obligation 86s #value 91s blocks the caller when :pending and timeout is nil 91s returns nil when reaching the optional timeout value 91s is set to the return value of the block when :fulfilled 91s is nil when :pending 91s returns nil when timeout reached 91s returns immediately when timeout is zero 91s is nil when :rejected 96s returns the value when fulfilled before timeout 96s #reason 96s is nil when :fulfilled 96s is nil when :pending 96s is set to error object of the exception when :rejected 96s #state 96s is :pending when first created 96s is :fulfilled when the handler completes 96s is :rejected when the handler raises an exception 96s 96s Concurrent::TVar 96s #value 96s gets the value 96s #initialize 96s accepts an initial value 96s #value= 96s sets the value 96s 96s Concurrent::Async 96s object creation 96s initializes synchronization 96s passes all args to the original constructor 96s delegates to the original constructor 96s passes a given block to the original constructor 96s #await 96s raises an error when calling a method that does not exist 96s raises an error when passing too few arguments 96s sets the reason when giving too many optional arguments 96s supports methods with blocks 96s sets the value on success 96s supports attribute accessors 96s returns a :fulfilled IVar 96s runs the future on the global executor 96s returns the existence of the method 96s raises an error when pasing too many arguments (arity >= 0) 96s sets the reason on failure 96s #validate_argc 96s raises an exception for too many args on a method with positive arity 96s raises an exception for too many args on a zero arity method 96s does not raise an exception for correct negative arity 96s raises an exception for too few args on a method with negative arity 96s raises an exception when the method is not defined 96s raises an exception for too few args on a method with positive arity 96s does not raise an exception for correct positive arity 96s does not raise an exception for correct zero arity 96s fork safety 96s does not hang when forked 96s locking 97s uses the same lock for both #async and #await 97s #async 97s sets the reason on failure 97s raises an error when calling a method that does not exist 97s supports methods with blocks 97s returns the existence of the method 97s raises an error when passing too few arguments 97s raises an error when pasing too many arguments (arity >= 0) 97s supports attribute accessors 97s runs the future on the global executor 97s returns a :pending IVar 97s sets the value on success 97s sets the reason when giving too many optional arguments 97s 97s Concurrent::MVar 97s #take 97s returns TIMEOUT on timeout on an empty MVar 97s waits for another thread to #put 97s returns the value on a full MVar 97s sets the MVar to empty 97s spurious wake ups 97s #put 97s returns TIMEOUT on timeout on a full MVar 98s waits for another thread to #take 98s #modify 98s waits for another thread to #put 99s returns TIMEOUT on timeout on an empty MVar 99s #take 99s waits for another thread to #put 100s returns TIMEOUT on timeout on an empty MVar 100s #empty? 100s returns false on a full MVar 100s returns true on an empty MVar 100s #set! 100s sets a full MVar to be full 100s returns EMPTY on an empty MVar 100s sets an empty MVar to be full 100s returns the original value on a full MVar 100s #modify! 100s raises an exception when no block given 100s modifies an empty MVar 100s returns the unmodified value 100s can be used to set an empty MVar to empty 100s can be used to set a full MVar to empty 100s modifies a full MVar 100s #initialize 100s accepts an initial value 100s accepts a nil initial value 100s accepts no initial value 100s accepts an empty initial value 100s #try_take! 100s returns EMPTY an empty MVar 100s returns the value on a full MVar 100s sets a full MVar to be empty 100s #borrow 100s returns TIMEOUT on timeout on an empty MVar 100s yields current value to the block and puts back value 100s returns the returned value of the block 100s puts back value even if an exception is raised 100s #put 100s returns the value 100s sets a new value on an empty MVar 100s waits for another thread to #take 100s sets the MVar to be empty 100s returns TIMEOUT on timeout on a full MVar 100s #full? 100s returns true on a full MVar 100s returns false on an empty MVar 100s #try_put! 100s returns false on a full MVar 100s returns true an empty MVar 100s sets an empty MVar to be full 100s #modify 100s waits for another thread to #put 100s returns TIMEOUT on timeout on an empty MVar 101s is atomic 101s raises an exception when no block given 101s modifies a full MVar 101s returns the unmodified value 101s behavior 101s it should behave like dereferenceable 101s calls the block when the :copy_on_deref option is passed a proc 101s defaults :copy_on_deref to nil 101s supports dereference flags with observers 101s does not call #freeze when #freeze_on_deref is set and the value is nil 101s defaults :dup_on_deref to false 101s does not call #dup when #dup_on_deref is set and the value is nil 101s calls the :copy block first followed by #dup followed by #freeze 101s defaults :freeze_on_deref to false 101s calls #freeze when the :freeze_on_deref option is true 101s does not call the #copy_on_deref block when the value is nil 101s calls #dup when the :dup_on_deref option is true 101s 101s configuration 101s global executors 101s creates a global fast executor 101s creates a global timer set 101s creates a global io executor 101s 101s Concurrent::TimerTask 101s execution 101s uses a custom executor when given 101s waits for :execution_interval seconds when the :run_now option is not given 102s uses a fixed rate when set 102s uses a fixed delay when set 102s passes a "self" reference to the block as the sole argument 102s uses the global executor by default 102s waits for :execution_interval seconds when the :run_now option is false 102s runs the block immediately when the :run_now option is true 102s arguments 102s TimeTask timeouts are now ignored as these were not able to be implemented correctly 102s #timeout_interval being written produces a warning 102s TimeTask timeouts are now ignored as these were not able to be implemented correctly 102s #execution_interval is writeable 102s raises an exception if no block given 102s raises on invalid interval_type 102s observation 102s notifies all observers on error 102s notifies all observers on success 102s dereferenceable 102s it should behave like dereferenceable 103s defaults :freeze_on_deref to false 103s defaults :copy_on_deref to nil 103s calls #freeze when the :freeze_on_deref option is true 103s does not call the #copy_on_deref block when the value is nil 103s does not call #freeze when #freeze_on_deref is set and the value is nil 103s does not call #dup when #dup_on_deref is set and the value is nil 104s calls the block when the :copy_on_deref option is passed a proc 104s defaults :dup_on_deref to false 104s calls the :copy block first followed by #dup followed by #freeze 104s calls #dup when the :dup_on_deref option is true 104s supports dereference flags with observers 104s created with #new 104s #kill 105s returns true on success 105s #shutdown 105s returns true on success 105s #initialize 105s uses the default execution interval when no interval is given 105s uses the given execution interval 105s raises an exception if :execution_interval is not greater than zero 105s uses the default :interval_type when no type is given 105s raises an exception if :execution_interval is not an integer 105s raises an exception if :interval_type is not a valid value 105s uses the given interval type 105s raises an exception if no block given 105s observable 105s it should behave like observable 105s #delete_observer 105s deletes the given observer if called before first notification 105s returns the given observer even when not found in the observer set 105s returns the removed observer if found in the observer set 105s #count_observers 105s returns zero after #delete_observers has been called 105s returns a count of registered observers if called before first notification 105s returns zero for a new observable object 105s #delete_observers 105s returns self 105s deletes all observers when called before first notification 105s first notification 105s calls the #update method on all observers without a specified :func 105s calls the appropriate function on all observers which specified a :func 105s calls the proc for all observers added as a block 107s does not notify any observers removed with #delete_observer 108s does not notify any observers after #delete_observers called 108s #add_observer 108s creates an observer from a block if called before first notification 108s raises an exception if not given an observer or a block 108s raises an exception when given both an observer and a block 108s adds an observer with :func if called before first notification 108s adds an observer if called before first notification 108s 108s Concurrent::Hash 108s .[] 108s when initializing with another hash as an argument 108s creates a hash with the results of calling #to_hash on the other array 108s creates a new hash 108s creates a hash with the same contents as the other hash 108s when initializing with an array of pairs 108s creates a hash using each pair as a (key, value) pair 108s when initializing with no arguments 108s is expected to be empty 108s when initializing with an even number of arguments 108s creates a hash using the odd position arguments as keys and even position arguments as values 108s .new 108s when initialized with a block 108s calls the block for non-existing keys 108s returns the results of calling the block for non-existing key 108s when initializing with no arguments 108s is expected to be empty 108s when initialized with a default object 108s uses the default object for non-existing keys 108s concurrency 109s is expected to be empty 109s 109s Concurrent::SettableStruct 109s it should behave like mergeable_struct 109s #merge 109s raises an exception when given a hash with members not in the struct 109s calls the given block for each key in `other` 109s retains the value for all members not without values in the given hash 109s updates all members with the new values from a given hash 109s returns a new object 109s definition 109s /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 109s /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 109s /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 109s /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 109s defines a setter for each member 109s #[index]= 109s raises an exception when given an out-of-bound index 109s raises an exception when given an index that has already been set 109s sets the value when given a valid index 109s it should behave like struct 109s construction 109s /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 109s /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 109s /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 109s /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 109s sets all absent members to nil 109s /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 109s /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 109s /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 109s /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 109s raises an exception when extra members are given 109s /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 109s /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 109s /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 109s /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 109s sets all given members in order 109s accessors 109s #[member] 109s raises an exception when given a non-existent string member 109s retrieves the value when given a valid string member 109s raises an exception when given a non-existent symbol member 109s retrieves the value when given a valid symbol member 109s #[index] 109s retrieves the value when given a valid index 109s raises an exception when given an out-of-bound index 109s definition 109s evalues a given block against the new class 109s raises an exception when given an invalid class name 109s raises an exception when given no members 109s creates an anonymous class when given at least one member 109s raise an exception when given an invalid member 109s registers the class when given a class name 109s /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 109s /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 109s /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 109s /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 109s defines a getter for each member 109s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 109s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 109s registers the class when given a class name which is defined in the ancestors 109s conversion 109s #to_h 109s returns a Hash containing the names and values in order 109s #to_a 109s returns the to_a for this struct as an array 109s #to_s 109s includes all values 109s returns the same string as #inspect 109s includes the name of the class when registered 109s includes the names of all members 109s copy 109s #clone 109s shallowly clones all members along with the struct 109s copies the singleton class 109s copies the singleton class of members 109s retains frozen state 109s #dup 109s shallowly duplicates all members along with the struct 109s retains frozen state of members 109s discards singleton class 109s discards frozen state of the struct 109s copies the singleton class of members 109s properties 109s #values_at 109s returns values at offsets in a given range 109s returns values for multiple ranges 109s returns the values at multiple given offsets 109s returns the value at the given offset 109s returns values for ranges and offsets 109s #size 109s returns the number of struct members 109s #members 109s returns the struct members as an array of symbols 109s returns a different object than the array passed at definition 109s #values 109s returns the values of the struct as an array in order 109s #length 109s returns the number of struct members 109s enumeration 109s #each_pair 109s returns an enumerator when no block is given 109s yields the name and value of each struct member in order 109s #select 109s yields each value 109s returns an Array with the values from for which the block returns true 109s returns an enumerator when no block is given 109s #each 109s yields the value of each struct member in order 109s returns an enumerator when no block is given 109s comparison 109s #!= 109s returns true if other has different values 109s returns true if other has different struct subclass 109s returns false if other has same struct subclass and equal values 109s #== 109s returns true if other has same struct subclass and equal values 109s returns false if other has different values 109s returns false if other has different struct subclass 109s #[member]= 109s raises an exception when given a string member that has already been set 109s sets the value when given a valid string member 109s raises an exception when given a non-existent string member 109s raises an exception when given a symbol member that has already been set 109s raises an exception when given a non-existent symbol member 109s sets the value when given a valid symbol member 109s synchronization 109s protects getter methods 109s protects #select 109s protects #each_pair 109s protects #inspect 109s protects #[index] 109s protects getter methods 109s protects #to_h 109s protects #initialize_copy 109s protects #[member]= 109s protects #each 109s protects #[index]= 109s protects #values 109s protects #== 109s protects #[member] 109s protects #values_at 109s protects #to_s 109s protects #merge 109s copy 109s #clone 109s retains settability of members 109s #dup 109s retains settability of members 109s 109s Concurrent::ImmutableStruct 109s it should behave like struct 109s accessors 109s #[member] 109s retrieves the value when given a valid string member 109s retrieves the value when given a valid symbol member 109s raises an exception when given a non-existent string member 109s raises an exception when given a non-existent symbol member 109s #[index] 109s retrieves the value when given a valid index 109s raises an exception when given an out-of-bound index 109s definition 109s evalues a given block against the new class 109s raise an exception when given an invalid member 109s defines a getter for each member 109s creates an anonymous class when given at least one member 109s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 109s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 109s registers the class when given a class name which is defined in the ancestors 109s raises an exception when given an invalid class name 109s raises an exception when given no members 109s registers the class when given a class name 109s conversion 109s #to_s 109s returns the same string as #inspect 109s includes the names of all members 109s includes the name of the class when registered 109s includes all values 109s #to_a 109s returns the to_a for this struct as an array 109s #to_h 109s returns a Hash containing the names and values in order 109s properties 109s #values_at 109s returns values for multiple ranges 109s returns the values at multiple given offsets 109s returns values for ranges and offsets 109s returns values at offsets in a given range 109s returns the value at the given offset 109s #members 109s returns the struct members as an array of symbols 109s returns a different object than the array passed at definition 109s #size 109s returns the number of struct members 109s #length 109s returns the number of struct members 109s #values 109s returns the values of the struct as an array in order 109s comparison 109s #!= 109s returns false if other has same struct subclass and equal values 109s returns true if other has different struct subclass 109s returns true if other has different values 109s #== 109s returns true if other has same struct subclass and equal values 109s returns false if other has different struct subclass 109s returns false if other has different values 109s copy 109s #dup 109s shallowly duplicates all members along with the struct 109s discards frozen state of the struct 109s retains frozen state of members 109s discards singleton class 109s copies the singleton class of members 109s #clone 109s copies the singleton class 109s retains frozen state 109s copies the singleton class of members 109s shallowly clones all members along with the struct 109s construction 109s raises an exception when extra members are given 109s sets all given members in order 109s sets all absent members to nil 109s enumeration 109s #each_pair 109s yields the name and value of each struct member in order 109s returns an enumerator when no block is given 109s #each 109s returns an enumerator when no block is given 109s yields the value of each struct member in order 109s #select 109s returns an enumerator when no block is given 109s yields each value 109s returns an Array with the values from for which the block returns true 109s it should behave like mergeable_struct 109s #merge 109s raises an exception when given a hash with members not in the struct 109s returns a new object 109s updates all members with the new values from a given hash 109s retains the value for all members not without values in the given hash 109s calls the given block for each key in `other` 109s 109s Concurrent::Array 109s concurrency 109s is expected to be empty 109s .new 109s when initializing with a size argument 109s creates an array with size elements set to nil 109s when initializing with a block argument 109s creates an array with size elements set to the default value 109s when initializing with a default value argument 109s creates an array with size elements set to the default value 109s when initializing with no arguments 109s is expected to be empty 109s when initializing with another array as an argument 109s creates an array with the results of calling #to_ary on the other array 109s creates an array with the same contents as the other array 109s creates a new array 109s .[] 109s when initializing with no arguments 109s is expected to be empty 109s when initializing with arguments 109s creates an array with the given objects 109s #slice 109s correctly initializes the monitor 109s 109s Concurrent::Channel 109s #next? 109s returns a just Maybe, true when there are multiple items 109s returns a nothing Maybe and false on failure 109s returns a just Maybe and true when there is one item 109s #take! 109s raises an exception on failure 109s takes the next item when not empty 109s #take? 109s returns a nothing Maybe on failure 109s returns a just Maybe on success 109s #next 109s returns , true when closed and last item 109s returns nil, false when closed and no items remain 109s returns , true when there are multiple items 109s returns nil, false when empty and closed 109s returns , true when there is one item 109s #take 109s returns nil on failure 109s takes the next item when not empty 109s #offer 109s returns true on success 109s rejects nil 109s rejects when the validator raises an exception 109s returns false on failure 109s rejects when the validator returns false 109s put? 109s returns a nothing Maybe on failure 109s rejects when the validator raises an exception 109s accepts nil 109s rejects when the validator returns false 109s returns a just Maybe on success 109s #poll? 109s returns a nothing Maybe immediately if no item is available 109s returns a just Maybe immediately if available 109s returns a nothing Maybe on failure 109s offer? 109s returns a just Maybe on success 109s accepts nil 109s rejects when the validator raises an exception 109s rejects when the validator returns false 109s returns a nothing Maybe on failure 109s offer! 109s returns true on success 109s rejects when the validator raises an exception 109s raises an exception on failure 109s rejects nil 109s rejects when the validator returns false 109s #poll! 109s raises an exception on failure 109s returns the next item immediately if available 109s raises an exception immediately if no item is available 109s #poll 109s returns nil on failure 109s returns nil immediately if no item is available 109s returns the next item immediately if available 109s .each 109s iterates until the channel is closed 109s raises and exception when no block is given 109s put! 109s raises an exception on failure 109s returns true on success 109s rejects when the validator raises an exception 109s rejects nil 109s rejects when the validator returns false 109s factories 109s is expected to receive new(10) 1 time 109s is expected to receive new(10) 1 time 109s goroutines 109s .go_via 109s raises an exception when no block is given 109s is expected to receive post(1, 2, 3) 1 time 109s .go 109s raises an exception when no block is given 109s is expected to receive post(1, 2, 3) 1 time 109s .go_loop 109s loops until the block returns false 109s raises an exception when no block is given 109s .go_loop_via 109s raises an exception when no block is given 109s loops until the block returns false 109s select 109s is expected to be truthy 109s raises an exception when no block is given 109s passes a selector to the block 109s #put 109s rejects when the validator returns false 109s rejects nil 109s rejects when the validator raises an exception 109s returns false on failure 109s returns true on success 109s initialization 109s raises an exception when the :buffer is invalid 109s raises an exception when :dropping given without :capacity 109s is :buffered when :capacity > 0 and no :buffer given 109s is :unbuffered when neither :buffer nore :capacity is given 109s raises an exception when :buffered given without :capacity 109s is :sliding when :sliding and :capacity > 0 109s raises an exception when :buffered and :capacity < 0 109s is :buffered when :buffered given 109s is :dropping when :dropping and :capacity > 0 109s raises an exception when :sliding given without :capacity 109s is :unbuffered when :buffered and capacity: 0 109s raises an exception when :sliding and :capacity < 1 109s raises an exception when both :unbuffered and :capacity are given 109s is :unbuffered when :unbuffered is given 109s uses the given buffer 109s raises an exception when :dropping and :capacity < 1 109s 109s Concurrent::Exchanger 109s class hierarchy 109s inherits from RubyExchanger 109s 109s Concurrent::ProcessingActor 109s is expected to eq "ab" 109s 109s Concurrent::Promises 109s zip_futures_over 109s .event 109s is expected to equal true 109s .zip_events 109s waits for all and returns event 109s Future 109s can be risen when rejected 109s has sync and async callbacks 109s chains with correct arguments 109s runs 109s value! supports setting timeout 109s result supports setting timeout 109s wait! supports setting timeout 109s chains 109s wait supports setting timeout 109s value supports setting timeout 109s constructs promise like tree 109s resolves future when Exception raised 109s allows graphs 109s reason supports setting timeout 109s #flat 109s it propagates rejection of the future which was suppose to provide inner future 109s propagates requests for values to delayed futures 109s rejects if inner value is not a future 109s accepts inner event 109s returns value of inner future 109s propagates rejection of inner future 109s has shortcuts 109s ResolvableEvent 109s #resolve(raise_on_reassign = true) 109s #wait 109s #resolve(raise_on_reassign = false) 109s reservation 109s .any_fulfilled 109s continues on first result 109s treats a resolved Event as a fulfilled Future 109s treats a pending Event as a pending Future 109s .rejected_future 109s raises the correct error when passed an unraised error 109s chain_resolvable 109s future 109s event 109s .future without block 109s is expected to eq 0 109s .zip 109s waits for all results 109s when a future raises an error 109s raises a concurrent error 109s when deeply nested 109s raises the original error 109s value! 109s does not return spuriously without timeout 109s does not return spuriously with timeout 109s .future 109s executes 109s executes with args 109s .any_resolved 109s continues on first result 109s .delay 109s is expected to eq 2 109s ResolvableFuture 109s #wait! 109s result 109s #wait 109s atomic_resolution 109s #value! 109s #value 109s reservation 109s #reason 109s interoperability 109s with erlang actor 109s with channel 109s with processing actor 109s .schedule 110s scheduled execution in graph 110s scheduled execution 110s 110s Concurrent::Atom 110s #compare_and_set 110s returns true if the current value matches 110s returns false if the current value does not match 110s rejects the new value if the current value does not match 110s returns false if the validator returns false 110s sets the new value if the current value matches 110s returns false if the validator raises an exception 110s rejects the new value if the validator returns false 110s rejects the new value if the validator raises an exception 110s #reset 110s returns the new value on success 110s returns the new value on success 110s returns the old value if the validator returns false 110s returns the old value if the validator raises an exception 110s sets the new value 110s #swap 110s rejects the new value if the validator returns false 110s rejects the new value if the validator raises an exception 110s reraises the exception from block 110s returns the new value on success 110s calls the block more than once if the value changes underneath 110s sets the new value to the result of the block 110s returns the old value if the validator returns false 110s raises an exception when no block is given 110s passes all arguments to the block 110s returns the old value if the validator raises an exception 110s passes the current value to the block 110s observable 110s behaves like observable 110s first notification 111s does not notify any observers removed with #delete_observer 111s calls the appropriate function on all observers which specified a :func 112s does not notify any observers after #delete_observers called 112s calls the proc for all observers added as a block 112s calls the #update method on all observers without a specified :func 112s #add_observer 112s creates an observer from a block if called before first notification 112s adds an observer with :func if called before first notification 112s adds an observer if called before first notification 112s raises an exception if not given an observer or a block 112s raises an exception when given both an observer and a block 112s #delete_observer 112s returns the given observer even when not found in the observer set 112s returns the removed observer if found in the observer set 112s deletes the given observer if called before first notification 112s #count_observers 112s returns a count of registered observers if called before first notification 112s returns zero after #delete_observers has been called 112s returns zero for a new observable object 112s #delete_observers 112s deletes all observers when called before first notification 112s returns self 112s construction 112s sets the initial value to the given value 112s 112s Concurrent::Future 112s it should behave like thread_arguments 112s passes an empty array when there is no :args key 112s allows the given arguments array to be dereferenced 112s passes an array when when the :args key has an array value 112s passes the given array when the :args key has a complex array value 112s passes an empty array when opts is not given 112s passes a one-element array when the :args key has a non-array value 112s passes an empty array when opts is an empty hash 112s passes an empty array when the :args key has a nil value 112s class #execute 112s calls #execute on the new Future 112s creates a new Future 112s passes the block to the new Future 112s #initialize 112s raises an exception when no block given 112s sets the state to :unscheduled 112s uses the executor given with the :executor option 112s uses the global io executor by default 112s cancellation 112s #wait_or_cancel 112s returns true if the operation completes before timeout 112s cancels the task on timeout 112s #cancel 112s fails to cancel the task once processing has begun 112s fails to cancel the task once processing is complete 112s cancels a pending task 112s instance #execute 112s posts the block given on construction 112s returns self 112s does nothing unless the state is :unscheduled 112s sets the state to :pending 112s fulfillment 112s sets the state to :rejected when the handler raises an exception 112s sets the value to nil when the handler raises Exception 112s sets the value to nil when the handler raises an exception 112s sets the reason to the Exception instance when the handler raises Exception 112s sets the value to the result of the handler 112s passes all arguments to handler 112s sets the state to :processing while the task is executing 112s sets the state to :fulfilled when the block completes 112s aliases 112s aliases #deref for #value 112s aliases #realized? for #fulfilled? 112s it should behave like ivar 112s #try_set 112s when unset 112s assigns the value 112s returns true 112s assigns the block result 112s when fulfilled 112s does not assign the block result 112s does not assign the value 112s returns false 112s when rejected 112s does not assign the value 112s has a nil value 112s does not assign the block result 112s returns false 112s #fail 112s sets the state to be rejected 112s defaults the reason to a StandardError 112s sets the value to be nil 112s sets the reason to the given exception 112s raises an exception if set more than once 112s returns self 112s it should behave like obligation 112s #reason 112s is nil when :fulfilled 112s is set to error object of the exception when :rejected 112s is nil when :pending 112s #value 112s returns nil when timeout reached 112s is nil when :pending 112s is nil when :rejected 112s returns nil when reaching the optional timeout value 117s returns the value when fulfilled before timeout 122s blocks the caller when :pending and timeout is nil 122s is set to the return value of the block when :fulfilled 122s returns immediately when timeout is zero 122s #state 122s is :fulfilled when the handler completes 122s is :pending when first created 122s is :rejected when the handler raises an exception 122s it should behave like dereferenceable 122s calls #dup when the :dup_on_deref option is true 123s supports dereference flags with observers 123s defaults :copy_on_deref to nil 123s does not call the #copy_on_deref block when the value is nil 123s calls the :copy block first followed by #dup followed by #freeze 123s does not call #freeze when #freeze_on_deref is set and the value is nil 123s calls #freeze when the :freeze_on_deref option is true 124s calls the block when the :copy_on_deref option is passed a proc 124s defaults :freeze_on_deref to false 124s does not call #dup when #dup_on_deref is set and the value is nil 124s defaults :dup_on_deref to false 124s it should behave like observable 124s #delete_observers 124s returns self 124s deletes all observers when called before first notification 124s #add_observer 124s adds an observer with :func if called before first notification 124s raises an exception if not given an observer or a block 124s creates an observer from a block if called before first notification 124s raises an exception when given both an observer and a block 124s adds an observer if called before first notification 124s #count_observers 124s returns zero after #delete_observers has been called 124s returns zero for a new observable object 124s returns a count of registered observers if called before first notification 124s first notification 124s calls the appropriate function on all observers which specified a :func 126s does not notify any observers removed with #delete_observer 126s calls the proc for all observers added as a block 127s does not notify any observers after #delete_observers called 127s calls the #update method on all observers without a specified :func 127s #delete_observer 127s returns the removed observer if found in the observer set 127s deletes the given observer if called before first notification 127s returns the given observer even when not found in the observer set 127s #set 127s fulfils when given a block which executes successfully 127s raises an exception when given neither a value nor a block 127s sets the state to be fulfilled 127s raises an exception if set more than once 127s raises an exception when given a value and a block 127s sets the value 127s returns self 127s rejects when given a block which raises an exception 127s initialization 127s sets the state to incomplete 127s observation 127s notifies an observer added after fulfillment 127s does not notify existing observers when a new observer added after fulfillment 127s notifies all observers on fulfillment 127s does not notify existing observers when a new observer added after rejection 127s notifies an observer added after rejection 127s notifies all observers on rejection 127s deadlock avoidance 127s should notify observers outside mutex lock 127s should notify a new observer added after fulfillment outside lock 127s 127s #leave_transaction 127s neither commits nor aborts a transaction 127s raises an exception outside an #atomically block 127s 127s Concurrent::Actor 127s forbids Immediate executor 127s links atomically 127s links 127s dead letter routing 127s logs by deafault 127s messaging 127s is expected to eq 4 127s termination 127s terminates with all its children 127s spawning 127s terminates on failed initialization and raises with spawn! 127s terminates on failed initialization 127s terminates on failed message processing 127s Actor#spawn! 127s spawn 127s executor should be global 127s returns arg 127s #name 127s is expected to eq "ping" 127s #path 127s is expected to eq "/ping" 127s #reference 127s is expected to eq # 127s #parent 127s is expected to eq # 127s context_spawn_by_hash 127s executor should be global 127s returns arg 127s #reference 127s is expected to eq # 127s #path 127s is expected to eq "/ping" 127s #parent 127s is expected to eq # 127s #name 127s is expected to eq "ping" 127s context_spawn 127s executor should be global 127s returns arg 127s #reference 127s is expected to eq # 127s #parent 127s is expected to eq # 127s #path 127s is expected to eq "/ping" 127s #name 127s is expected to eq "ping" 127s spawn_by_hash 127s returns arg 127s executor should be global 127s #name 127s is expected to eq "ping" 127s #parent 127s is expected to eq # 127s #path 127s is expected to eq "/ping" 127s #reference 127s is expected to eq # 127s pausing 127s pauses on error and resets 127s pauses on error and resumes 127s pauses on error and restarts 127s envelope 127s is expected to eq # 127s pool 127s supports asks 127s message redirecting 127s is evaluated by child 127s children 127s has children set after a child is created 127s 127s monotonic_time 127s behavior 127s returns a Float when unit = :float_second 127s returns seconds as float 127s returns an Integer when unit = :millisecond 127s returns an Integer when unit = :nanosecond 127s returns an Integer when unit = :microsecond 127s raises ArgumentError on unknown units 127s returns a Float when unit = :float_microsecond 127s returns a Float when unit = :float_millisecond 127s returns an Integer when unit = :second 127s 127s #abort_transaction 127s raises an exception outside an #atomically block 127s 127s Concurrent 127s Throttle 128s capacity limited 128s acquiring 128s #to_s 128s #on 128s 128s Concurrent::Maybe 128s comparison 128s something is less than a bigger value 128s nothing is not greater than nothing 128s something is not equal to nothing 128s something is not equal to a different value 128s something is greater than a smaller value 128s nothing is equal to nothing 128s something is equal to the same value 128s nothing is not less than nothing 128s construction 128s hides Maybe.new 128s Maybe.nothing 128s creates a new Nothing Maybe 128s creates a new error object when given nothing 128s creates a new error object with the given string 128s uses the given Error object 128s Maybe.just 128s creates a new Just Maybe 128s Maybe.from 128s creates a Just Maybe on success 128s passes all arguments to the block 128s sets the reason to the error object on exception 128s creates a Nothing Maybe on exception 128s sets the value to the block result on success 128s raises an exception when no block is given 128s when just 128s #nothing returns NONE 128s #fulfilled? returns true 128s #nothing? returns false 128s #reason returns NONE 128s #rejected? returns false 128s #just? returns true 128s #value returns the value 128s #just returns the value 128s when nothing 128s #nothing returns the raised error 128s #rejected? returns true 128s #just returns NONE 128s #value returns NONE 128s #nothing? returns true 128s #reason returns the raised error 128s #just? returns false 128s #fulfilled? returns false 128s #or 128s returns the other when nothing 128s returns the value when something 128s 128s Concurrent::Options 128s .executor_from_options 128s raises an exception when :executor is an unrecognized symbol 128s returns the global io executor when :executor is :io 128s returns an immediate executor when :executor is :immediate 128s returns the global fast executor when :executor is :fast 128s returns the given :executor 128s 128s Concurrent::RubyExchanger 128s Good: 10000, Bad (timeout): 0, Ugly: 0 128s stress test 128s behaves like exchanger 128s #try_exchange 128s behaves like exchanger method with indefinite timeout 128s blocks indefinitely 128s receives the other value 128s can be reused 128s behaves like exchanger method with finite timeout 128s can be reused 128s receives the other value 128s blocks until timeout 128s behaves like exchanger method cross-thread interactions 128s allows multiple firsts to cancel if necessary 128s when first, waits for a second 128s #exchange 128s behaves like exchanger method with finite timeout 128s blocks until timeout 128s can be reused 128s receives the other value 128s behaves like exchanger method cross-thread interactions 129s allows multiple firsts to cancel if necessary 129s when first, waits for a second 129s behaves like exchanger method with indefinite timeout 129s receives the other value 129s can be reused 129s blocks indefinitely 129s #exchange! 129s behaves like exchanger method with indefinite timeout 129s blocks indefinitely 129s receives the other value 129s can be reused 129s behaves like exchanger method cross-thread interactions 129s allows multiple firsts to cancel if necessary 129s when first, waits for a second 129s behaves like exchanger method with finite timeout 129s blocks until timeout 129s receives the other value 129s can be reused 129s 129s Concurrent::ScheduledTask 129s #initialize 129s raises an exception when no block given 129s sets the initial state to :unscheduled 129s raises an exception when seconds is less than zero 129s accepts a number of seconds (from now) as the schedule time 129s behavior 129s it should behave like obligation 129s #reason 129s is set to error object of the exception when :rejected 129s is nil when :pending 129s is nil when :fulfilled 129s #value 129s is set to the return value of the block when :fulfilled 129s returns nil when timeout reached 129s returns nil when reaching the optional timeout value 130s blocks the caller when :pending and timeout is nil 130s returns immediately when timeout is zero 131s returns the value when fulfilled before timeout 131s is nil when :pending 131s is nil when :rejected 131s #state 131s is :fulfilled when the handler completes 131s is :pending when first created 131s is :rejected when the handler raises an exception 131s it should behave like dereferenceable 131s calls #dup when the :dup_on_deref option is true 131s calls #freeze when the :freeze_on_deref option is true 131s defaults :freeze_on_deref to false 131s defaults :dup_on_deref to false 131s calls the :copy block first followed by #dup followed by #freeze 131s calls the block when the :copy_on_deref option is passed a proc 131s supports dereference flags with observers 131s does not call the #copy_on_deref block when the value is nil 131s does not call #freeze when #freeze_on_deref is set and the value is nil 131s does not call #dup when #dup_on_deref is set and the value is nil 131s defaults :copy_on_deref to nil 131s it should behave like observable 131s first notification 132s does not notify any observers after #delete_observers called 133s calls the appropriate function on all observers which specified a :func 133s calls the proc for all observers added as a block 134s does not notify any observers removed with #delete_observer 134s calls the #update method on all observers without a specified :func 134s #count_observers 134s returns zero after #delete_observers has been called 134s returns a count of registered observers if called before first notification 134s returns zero for a new observable object 134s #add_observer 134s creates an observer from a block if called before first notification 134s raises an exception if not given an observer or a block 134s adds an observer with :func if called before first notification 134s adds an observer if called before first notification 134s raises an exception when given both an observer and a block 134s #delete_observers 134s deletes all observers when called before first notification 134s returns self 134s #delete_observer 134s returns the removed observer if found in the observer set 134s deletes the given observer if called before first notification 134s returns the given observer even when not found in the observer set 134s class #execute 134s passes the block to the new ScheduledTask 134s creates a new ScheduledTask 134s calls #execute on the new ScheduledTask 134s instance #execute 134s returns self 134s sets the sate to :pending 134s does nothing unless the state is :unscheduled 134s execution 134s passes :args from the options to the block 134s uses the :executor from the options 134s uses the :timer_set from the options 134s sets the state to :processing when the task is running 134s observation 135s notifies all observers on rejection 135s notifies all observers on fulfillment 135s returns true for an observer added while :pending 135s returns true for an observer added while :unscheduled 135s returns true for an observer added while :processing 135s #cancel 135s returns true on success 135s returns false if the task has already been performed 135s cancels the task if it has not yet scheduled 135s sets the reason to CancelledOperationError when cancelled 136s cancels the task if it has not yet started 136s returns false if the task is already in progress 136s 136s Concurrent::Synchronization 136s Concurrent::Synchronization::Object 136s does not ensure visibility when not needed 136s does ensure visibility when specified in a parent 136s does ensure visibility once when specified in child again 136s does ensure visibility when specified 136s it should behave like attr_volatile 137s older writes are always visible 137s Concurrent::Synchronization::Volatile module 137s it should behave like attr_volatile 139s older writes are always visible 139s Concurrent::Synchronization::LockableObject 139s final field always visible 139s #synchronize 139s allows only one thread to execute count 139s #wait 139s allows the sleeping thread to be killed 139s releases the lock on the current object 139s can be called from within a #synchronize block 139s puts the current thread to sleep 139s it should behave like attr_volatile 140s older writes are always visible 140s signaling 140s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 140s attr_atomic 140s is expected to be == b 140s 140s Concurrent::Map 140s #key? 140s is unfreezable 140s default_proc is called with the Concurrent::Map and the key after #dup 140s options validation 140s #delete_pair 140s #put_if_absent 141s collision resistance 141s concurrency 141s #values 141s default_proc is called with the Concurrent::Map and the key 141s #get_and_set 141s #size 141s #replace_if_exists 141s initial capacity options validation 141s #get_or_default 141s #each_key 141s #clear 141s retrieval 141s collision resistance with arrays 141s marshal dump does not work with default proc 141s #value? 141s #delete 141s default proc 141s #empty 141s #keys 141s marshal dump load 141s load factor options validation 141s updates dont block reads 141s #each_value 141s #inspect 141s falsy default proc 141s #key 141s #replace_pair 141s #dup,#clone 141s #compute 141s exception 141s common 141s with return 141s #compute_if_present 141s common 141s exception 141s with return 141s #fetch 141s common 141s falsy 141s with return 141s #merge_pair 141s exception 141s common 141s with return 141s #each 141s it should behave like collection_each 141s common 141s allows modification 141s pair iterator 141s when no block is given 141s returns an object which is enumerable 141s returns an enumerator 141s #each_pair 141s it should behave like collection_each 141s common 141s pair iterator 141s allows modification 141s when no block is given 141s returns an enumerator 141s returns an object which is enumerable 141s #compute_if_absent 141s atomicity 141s exception 141s works in default_proc 141s common 141s with return 141s #fetch_or_store 141s falsy 141s common 141s with return 141s 141s Concurrent::Agent 141s nested actions 141s occur in the order they ar post 141s work with immediate execution 141s initialization 141s sets #failed? to false 141s sets the initial error to nil 141s defaults the error mode to :continue when an error handler is given 141s defaults the error mode to :fail when no error handler is given 141s sets the error mode when given a valid value 141s sets the initial value 141s raises an error when given an invalid error mode 141s action processing 141s when validation raises an error the handler will be called 141s upon validation the new value will be set to the block return value 141s the given block will be passed any provided arguments 141s when validation raises an error the value will not change 141s the return value will be passed to the validator function 141s any recursive action dispatches will run after the value has been updated 141s when validation fails the handler will be called 141s when the action raises an error the validator will not be called 141s when the action raises an error the handler will be called 141s when validation returns false the value will not change 141s on success all observers will be notified 141s the given block will be passed the current value 141s when the action raises an error the value will not change 141s posting 141s with #send 141s returns false when #failed? 141s returns true when the job is post 141s posts to the global fast executor 141s does not wait for the action to process 141s with #send_off 141s does not wait for the action to process 141s returns true when the job is post 141s returns false when #failed? 141s posts to the global io executor 141s with #send! 141s returns true when the job is post 141s raises an error when #failed? 141s posts to the global fast executor 141s does not wait for the action to process 141s with #send_off! 141s does not wait for the action to process 141s posts to the global io executor 141s returns true when the job is post 141s raises an error when #failed? 141s with #send_via 141s returns true when the job is post 141s posts to the given executor 141s returns false when #failed? 141s with #<< 141s posts to the global io executor 141s returns self when #failed? 141s returns self when the job is post 141s does not wait for the action to process 141s with #send_via! 141s posts to the given executor 141s raises an error when #failed? 141s returns true when the job is post 141s with #post 141s posts to the global io executor 141s returns true when the job is post 141s does not wait for the action to process 141s returns false when #failed? 141s error handling 141s the agent will be passed to the handler 141s the exception will be passed to the handler 141s does not trigger observation 141s #restart 141s when #failed? 141s raises an error if the new value is not valid 141s does not trigger observation 141s sets #failed? to true 141s clears the error 141s does not clear the action queue when :clear_actions is false 141s resumes action processing if actions are enqueued 141s sets the new value 142s does not clear the action queue when :clear_actions is not given 142s removes all actions from the queue when :clear_actions is true 142s when not #failed? 142s raises an error 142s observable 142s behaves like observable 142s #delete_observer 142s deletes the given observer if called before first notification 142s returns the given observer even when not found in the observer set 142s returns the removed observer if found in the observer set 142s #count_observers 142s returns zero after #delete_observers has been called 142s returns zero for a new observable object 142s returns a count of registered observers if called before first notification 142s first notification 142s calls the appropriate function on all observers which specified a :func 143s does not notify any observers after #delete_observers called 143s calls the proc for all observers added as a block 144s does not notify any observers removed with #delete_observer 144s calls the #update method on all observers without a specified :func 144s #add_observer 144s raises an exception if not given an observer or a block 144s raises an exception when given both an observer and a block 144s adds an observer if called before first notification 144s adds an observer with :func if called before first notification 144s creates an observer from a block if called before first notification 144s #delete_observers 144s deletes all observers when called before first notification 144s returns self 144s waiting 144s with .await_for 144s returns true when all prior actions for all agents have processed 145s returns false on timeout 145s returns true when there are no pending actions 145s with #await_for 145s does not block on actions from other threads 145s returns true when there are no pending actions 146s returns false on timeout 146s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 147s returns true when all prior actions have processed 147s with #await_for! 147s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 147s does not block on actions from other threads 148s raises an error on timeout 148s returns true when there are no pending actions 149s returns true when all prior actions have processed 149s with #await 150s blocks indefinitely 151s returns true when all prior actions have processed 151s returns self when there are no pending actions 151s does not block on actions from other threads 151s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 151s with await_for! 152s raises an exception on timeout 152s returns true when all prior actions for all agents have processed 152s returns true when there are no pending actions 152s with .await 152s returns true when all prior actions on all agents have processed 152s with #wait 153s returns true when all prior actions have processed 154s blocks indefinitely when timeout is nil 154s does not block on actions from other threads 154s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 154s returns true when there are no pending actions and a timeout is given 155s returns false on timeout 155s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 155s returns true when there are no pending actions and timeout is nil 155s the await job 155s does not trigger the error mode 155s does not change the value 155s waits for nested actions 155s does not trigger observers 155s validation 155s rejects the new value when the validator returns false 155s sets the error when the error mode is :fail and the validator raises an error 155s sets the error when the error mode is :fail and the validator returns false 155s does not set an error when the error mode is :continue and the validator returns false 155s does not trigger observation when validation fails 155s does not set an error when the error mode is :continue and the validator raises an error 155s sets the new value when the validator returns true 155s rejects the new value when the validator raises an error 155s error mode 155s :continue 155s does not block further action processing 155s does not set an error when the action raises an error 155s sets #failed? to false 155s does not set an error when the validator raises an error 155s does not set an error when the validator returns false 155s :fail 155s blocks all further action processing until a restart 155s sets the error when the validator raises an error 155s sets #failed? to true 155s sets the error when the action raises an error 155s sets the error when the validator returns false 155s 155s Finished in 1 minute 21.54 seconds (files took 0.44884 seconds to load) 155s 1426 examples, 0 failures, 7 pending 155s 155s Randomized with seed 1 155s 155s mv ./.gem2deb.lib lib 155s mv ./.gem2deb.ext ext 156s autopkgtest [22:20:53]: test ruby: -----------------------] 156s ruby PASS 156s autopkgtest [22:20:53]: test ruby: - - - - - - - - - - results - - - - - - - - - - 156s autopkgtest [22:20:53]: test jruby: preparing testbed 175s Creating nova instance adt-resolute-ppc64el-ruby-concurrent-20260203-221817-juju-7f2275-prod-proposed-migration-environment-2-50267188-ee09-47d7-b0c9-3eabe22c5cef from image adt/ubuntu-resolute-ppc64el-server-20260203.img (UUID 36e1410e-0a72-4cd6-affd-580c415d80cb)... 225s autopkgtest [22:22:02]: testbed dpkg architecture: ppc64el 225s autopkgtest [22:22:02]: testbed apt version: 3.1.14 225s autopkgtest [22:22:02]: @@@@@@@@@@@@@@@@@@@@ test bed setup 225s autopkgtest [22:22:02]: testbed release detected to be: resolute 226s autopkgtest [22:22:03]: updating testbed package index (apt update) 226s Get:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease [124 kB] 226s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 227s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 227s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 227s Get:5 http://ftpmaster.internal/ubuntu resolute-proposed/universe Sources [1337 kB] 227s Get:6 http://ftpmaster.internal/ubuntu resolute-proposed/restricted Sources [5260 B] 227s Get:7 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse Sources [27.9 kB] 227s Get:8 http://ftpmaster.internal/ubuntu resolute-proposed/main Sources [232 kB] 227s Get:9 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el Packages [284 kB] 227s Get:10 http://ftpmaster.internal/ubuntu resolute-proposed/universe ppc64el Packages [1152 kB] 227s Get:11 http://ftpmaster.internal/ubuntu resolute-proposed/multiverse ppc64el Packages [17.8 kB] 227s Fetched 3181 kB in 1s (3696 kB/s) 228s Reading package lists... 229s Hit:1 http://ftpmaster.internal/ubuntu resolute-proposed InRelease 229s Hit:2 http://ftpmaster.internal/ubuntu resolute InRelease 229s Hit:3 http://ftpmaster.internal/ubuntu resolute-updates InRelease 229s Hit:4 http://ftpmaster.internal/ubuntu resolute-security InRelease 230s Reading package lists... 230s Reading package lists... 230s Building dependency tree... 230s Reading state information... 230s Calculating upgrade... 230s The following packages will be upgraded: 230s libzstd1 zstd 230s 2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 230s Need to get 1275 kB of archives. 230s After this operation, 0 B of additional disk space will be used. 230s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el libzstd1 ppc64el 1.5.7+dfsg-3 [430 kB] 230s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el zstd ppc64el 1.5.7+dfsg-3 [845 kB] 231s dpkg-preconfigure: unable to re-open stdin: No such file or directory 231s Fetched 1275 kB in 0s (13.4 MB/s) 231s (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 ... 82008 files and directories currently installed.) 231s Preparing to unpack .../libzstd1_1.5.7+dfsg-3_ppc64el.deb ... 231s Unpacking libzstd1:ppc64el (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 232s Setting up libzstd1:ppc64el (1.5.7+dfsg-3) ... 233s (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 ... 82008 files and directories currently installed.) 233s Preparing to unpack .../zstd_1.5.7+dfsg-3_ppc64el.deb ... 236s Unpacking zstd (1.5.7+dfsg-3) over (1.5.7+dfsg-2) ... 236s Setting up zstd (1.5.7+dfsg-3) ... 236s Processing triggers for man-db (2.13.1-1) ... 240s Processing triggers for libc-bin (2.42-2ubuntu4) ... 240s autopkgtest [22:22:17]: upgrading testbed (apt dist-upgrade and autopurge) 240s Reading package lists... 241s Building dependency tree... 241s Reading state information... 241s Calculating upgrade... 241s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 241s Reading package lists... 241s Building dependency tree... 241s Reading state information... 241s Solving dependencies... 241s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 244s Reading package lists... 244s Building dependency tree... 244s Reading state information... 244s Solving dependencies... 244s The following NEW packages will be installed: 244s ca-certificates-java default-jre-headless java-common jruby libasm-java 244s libbackport9-java libbcpkix-java libbcprov-java libbctls-java libbcutil-java 244s libdirgra-java libfixposix4t64 libhawtjni-runtime-java 244s libheadius-options-java libinvokebinder-java libjansi-native-java 244s libjansi1-java libjcodings-java libjffi-java libjffi-jni libjitescript-java 244s libjline2-java libjnr-constants-java libjnr-enxio-java libjnr-ffi-java 244s libjnr-netdb-java libjnr-posix-java libjnr-unixsocket-java 244s libjnr-x86asm-java libjoda-time-java libjpeg-turbo8 libjpeg8 244s libjruby-joni-java libjzlib-java liblcms2-2 libpcsclite1 libruby libruby3.3 244s libsnakeyaml-engine-java openjdk-21-jre-headless rake ruby ruby-concurrent 244s ruby-concurrent-ext ruby-csv ruby-did-you-mean ruby-diff-lcs ruby-net-telnet 244s ruby-rspec ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks 244s ruby-rspec-support ruby-ruby2-keywords ruby-rubygems ruby-timecop 244s ruby-webrick ruby-xmlrpc ruby3.3 rubygems-integration 244s 0 upgraded, 60 newly installed, 0 to remove and 0 not upgraded. 244s Need to get 91.2 MB of archives. 244s After this operation, 303 MB of additional disk space will be used. 244s Get:1 http://ftpmaster.internal/ubuntu resolute/main ppc64el ca-certificates-java all 20240118build1 [11.7 kB] 244s Get:2 http://ftpmaster.internal/ubuntu resolute/main ppc64el java-common all 0.76build1 [6956 B] 244s Get:3 http://ftpmaster.internal/ubuntu resolute/main ppc64el liblcms2-2 ppc64el 2.17-1 [246 kB] 244s Get:4 http://ftpmaster.internal/ubuntu resolute/main ppc64el libjpeg-turbo8 ppc64el 2.1.5-4ubuntu2 [215 kB] 244s Get:5 http://ftpmaster.internal/ubuntu resolute/main ppc64el libjpeg8 ppc64el 8c-2ubuntu11 [2148 B] 244s Get:6 http://ftpmaster.internal/ubuntu resolute/main ppc64el libpcsclite1 ppc64el 2.4.1-1 [31.9 kB] 244s Get:7 http://ftpmaster.internal/ubuntu resolute/main ppc64el openjdk-21-jre-headless ppc64el 21.0.10+7-1 [45.9 MB] 245s Get:8 http://ftpmaster.internal/ubuntu resolute/main ppc64el default-jre-headless ppc64el 2:1.21-76build1 [3270 B] 245s Get:9 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libasm-java all 9.8-2 [388 kB] 245s Get:10 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libbackport9-java all 1.10-2build1 [13.2 kB] 245s Get:11 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libbcprov-java all 1.80-3 [5468 kB] 246s Get:12 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libbcutil-java all 1.80-3 [545 kB] 246s Get:13 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libbcpkix-java all 1.80-3 [913 kB] 246s Get:14 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libbctls-java all 1.80-3 [645 kB] 246s Get:15 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libdirgra-java all 0.4-2build1 [21.8 kB] 246s Get:16 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libfixposix4t64 ppc64el 1:0.5.1-1+nmu1.1build2 [17.8 kB] 246s Get:17 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libheadius-options-java all 1.7-1build1 [18.3 kB] 246s Get:18 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libinvokebinder-java all 1.14-1build1 [52.1 kB] 246s Get:19 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libhawtjni-runtime-java all 1.18-1build1 [28.4 kB] 246s Get:20 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjansi-native-java all 1.8-2build1 [23.6 kB] 246s Get:21 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjansi1-java all 1.18-3.1build1 [56.3 kB] 246s Get:22 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjcodings-java all 1.0.58-1build1 [1474 kB] 246s Get:23 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjffi-jni ppc64el 1.3.13+ds-1build1 [31.8 kB] 246s Get:24 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjffi-java all 1.3.13+ds-1build1 [111 kB] 246s Get:25 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjitescript-java all 0.4.3-1build1 [24.5 kB] 246s Get:26 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjline2-java all 2.14.6-6 [152 kB] 246s Get:27 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-constants-java all 0.10.4-2build1 [1416 kB] 246s Get:28 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-x86asm-java all 1.0.2-6build1 [216 kB] 246s Get:29 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-ffi-java all 2.2.15-2build1 [632 kB] 246s Get:30 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-enxio-java all 0.32.16-1build1 [33.8 kB] 246s Get:31 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-netdb-java all 1.2.0+dfsg-1build1 [58.7 kB] 246s Get:32 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-posix-java all 3.1.18-1build1 [268 kB] 246s Get:33 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjnr-unixsocket-java all 0.38.21-3 [46.8 kB] 246s Get:34 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjoda-time-java all 2.10.14-1 [535 kB] 246s Get:35 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjruby-joni-java all 2.2.1-1build1 [221 kB] 246s Get:36 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libjzlib-java all 1.1.3-3build1 [76.7 kB] 246s Get:37 http://ftpmaster.internal/ubuntu resolute/universe ppc64el libsnakeyaml-engine-java all 2.7+ds-3build1 [258 kB] 246s Get:38 http://ftpmaster.internal/ubuntu resolute/universe ppc64el jruby all 9.4.8.0+ds-3ubuntu1 [23.4 MB] 247s Get:39 http://ftpmaster.internal/ubuntu resolute/main ppc64el rubygems-integration all 1.19build1 [5666 B] 247s Get:40 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby3.3 ppc64el 3.3.8-2ubuntu2 [58.9 kB] 247s Get:41 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-rubygems all 3.6.7-2ubuntu1 [332 kB] 247s Get:42 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el ruby ppc64el 1:3.3build1 [3680 B] 247s Get:43 http://ftpmaster.internal/ubuntu resolute/main ppc64el rake all 13.2.1-1build1 [45.9 kB] 247s Get:44 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-csv all 3.3.4-1 [43.0 kB] 247s Get:45 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-did-you-mean all 1.6.3-2build1 [14.9 kB] 247s Get:46 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-net-telnet all 0.2.0-1build1 [13.5 kB] 247s Get:47 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-ruby2-keywords all 0.0.5-1build1 [4398 B] 247s Get:48 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-webrick all 1.9.1-1 [60.8 kB] 247s Get:49 http://ftpmaster.internal/ubuntu resolute/main ppc64el ruby-xmlrpc all 0.3.3-2build1 [24.9 kB] 247s Get:50 http://ftpmaster.internal/ubuntu resolute/main ppc64el libruby3.3 ppc64el 3.3.8-2ubuntu2 [6368 kB] 247s Get:51 http://ftpmaster.internal/ubuntu resolute-proposed/main ppc64el libruby ppc64el 1:3.3build1 [5276 B] 247s Get:52 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-concurrent all 1.3.4-1 [283 kB] 247s Get:53 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-concurrent-ext ppc64el 1.3.4-1 [9218 B] 247s Get:54 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-diff-lcs all 1.5.1-1 [22.8 kB] 247s Get:55 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 247s Get:56 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 247s Get:57 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 247s Get:58 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 247s Get:59 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 247s Get:60 http://ftpmaster.internal/ubuntu resolute/universe ppc64el ruby-timecop all 0.9.10-1.1 [11.5 kB] 247s Fetched 91.2 MB in 3s (30.6 MB/s) 247s Selecting previously unselected package ca-certificates-java. 247s (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 ... 82008 files and directories currently installed.) 247s Preparing to unpack .../00-ca-certificates-java_20240118build1_all.deb ... 247s Unpacking ca-certificates-java (20240118build1) ... 247s Selecting previously unselected package java-common. 247s Preparing to unpack .../01-java-common_0.76build1_all.deb ... 247s Unpacking java-common (0.76build1) ... 247s Selecting previously unselected package liblcms2-2:ppc64el. 247s Preparing to unpack .../02-liblcms2-2_2.17-1_ppc64el.deb ... 247s Unpacking liblcms2-2:ppc64el (2.17-1) ... 247s Selecting previously unselected package libjpeg-turbo8:ppc64el. 247s Preparing to unpack .../03-libjpeg-turbo8_2.1.5-4ubuntu2_ppc64el.deb ... 247s Unpacking libjpeg-turbo8:ppc64el (2.1.5-4ubuntu2) ... 247s Selecting previously unselected package libjpeg8:ppc64el. 247s Preparing to unpack .../04-libjpeg8_8c-2ubuntu11_ppc64el.deb ... 247s Unpacking libjpeg8:ppc64el (8c-2ubuntu11) ... 247s Selecting previously unselected package libpcsclite1:ppc64el. 247s Preparing to unpack .../05-libpcsclite1_2.4.1-1_ppc64el.deb ... 247s Unpacking libpcsclite1:ppc64el (2.4.1-1) ... 247s Selecting previously unselected package openjdk-21-jre-headless:ppc64el. 247s Preparing to unpack .../06-openjdk-21-jre-headless_21.0.10+7-1_ppc64el.deb ... 247s Unpacking openjdk-21-jre-headless:ppc64el (21.0.10+7-1) ... 248s Selecting previously unselected package default-jre-headless. 248s Preparing to unpack .../07-default-jre-headless_2%3a1.21-76build1_ppc64el.deb ... 248s Unpacking default-jre-headless (2:1.21-76build1) ... 248s Selecting previously unselected package libasm-java. 248s Preparing to unpack .../08-libasm-java_9.8-2_all.deb ... 248s Unpacking libasm-java (9.8-2) ... 248s Selecting previously unselected package libbackport9-java. 248s Preparing to unpack .../09-libbackport9-java_1.10-2build1_all.deb ... 248s Unpacking libbackport9-java (1.10-2build1) ... 248s Selecting previously unselected package libbcprov-java. 248s Preparing to unpack .../10-libbcprov-java_1.80-3_all.deb ... 248s Unpacking libbcprov-java (1.80-3) ... 248s Selecting previously unselected package libbcutil-java. 248s Preparing to unpack .../11-libbcutil-java_1.80-3_all.deb ... 248s Unpacking libbcutil-java (1.80-3) ... 248s Selecting previously unselected package libbcpkix-java. 248s Preparing to unpack .../12-libbcpkix-java_1.80-3_all.deb ... 248s Unpacking libbcpkix-java (1.80-3) ... 248s Selecting previously unselected package libbctls-java. 248s Preparing to unpack .../13-libbctls-java_1.80-3_all.deb ... 248s Unpacking libbctls-java (1.80-3) ... 248s Selecting previously unselected package libdirgra-java. 248s Preparing to unpack .../14-libdirgra-java_0.4-2build1_all.deb ... 248s Unpacking libdirgra-java (0.4-2build1) ... 248s Selecting previously unselected package libfixposix4t64:ppc64el. 248s Preparing to unpack .../15-libfixposix4t64_1%3a0.5.1-1+nmu1.1build2_ppc64el.deb ... 248s Unpacking libfixposix4t64:ppc64el (1:0.5.1-1+nmu1.1build2) ... 248s Selecting previously unselected package libheadius-options-java. 248s Preparing to unpack .../16-libheadius-options-java_1.7-1build1_all.deb ... 248s Unpacking libheadius-options-java (1.7-1build1) ... 248s Selecting previously unselected package libinvokebinder-java. 248s Preparing to unpack .../17-libinvokebinder-java_1.14-1build1_all.deb ... 248s Unpacking libinvokebinder-java (1.14-1build1) ... 248s Selecting previously unselected package libhawtjni-runtime-java. 248s Preparing to unpack .../18-libhawtjni-runtime-java_1.18-1build1_all.deb ... 248s Unpacking libhawtjni-runtime-java (1.18-1build1) ... 248s Selecting previously unselected package libjansi-native-java. 248s Preparing to unpack .../19-libjansi-native-java_1.8-2build1_all.deb ... 248s Unpacking libjansi-native-java (1.8-2build1) ... 248s Selecting previously unselected package libjansi1-java. 248s Preparing to unpack .../20-libjansi1-java_1.18-3.1build1_all.deb ... 248s Unpacking libjansi1-java (1.18-3.1build1) ... 249s Selecting previously unselected package libjcodings-java. 249s Preparing to unpack .../21-libjcodings-java_1.0.58-1build1_all.deb ... 249s Unpacking libjcodings-java (1.0.58-1build1) ... 249s Selecting previously unselected package libjffi-jni:ppc64el. 249s Preparing to unpack .../22-libjffi-jni_1.3.13+ds-1build1_ppc64el.deb ... 249s Unpacking libjffi-jni:ppc64el (1.3.13+ds-1build1) ... 249s Selecting previously unselected package libjffi-java. 249s Preparing to unpack .../23-libjffi-java_1.3.13+ds-1build1_all.deb ... 249s Unpacking libjffi-java (1.3.13+ds-1build1) ... 249s Selecting previously unselected package libjitescript-java. 249s Preparing to unpack .../24-libjitescript-java_0.4.3-1build1_all.deb ... 249s Unpacking libjitescript-java (0.4.3-1build1) ... 249s Selecting previously unselected package libjline2-java. 249s Preparing to unpack .../25-libjline2-java_2.14.6-6_all.deb ... 249s Unpacking libjline2-java (2.14.6-6) ... 249s Selecting previously unselected package libjnr-constants-java. 249s Preparing to unpack .../26-libjnr-constants-java_0.10.4-2build1_all.deb ... 249s Unpacking libjnr-constants-java (0.10.4-2build1) ... 249s Selecting previously unselected package libjnr-x86asm-java. 249s Preparing to unpack .../27-libjnr-x86asm-java_1.0.2-6build1_all.deb ... 249s Unpacking libjnr-x86asm-java (1.0.2-6build1) ... 249s Selecting previously unselected package libjnr-ffi-java. 249s Preparing to unpack .../28-libjnr-ffi-java_2.2.15-2build1_all.deb ... 249s Unpacking libjnr-ffi-java (2.2.15-2build1) ... 249s Selecting previously unselected package libjnr-enxio-java. 249s Preparing to unpack .../29-libjnr-enxio-java_0.32.16-1build1_all.deb ... 249s Unpacking libjnr-enxio-java (0.32.16-1build1) ... 249s Selecting previously unselected package libjnr-netdb-java. 249s Preparing to unpack .../30-libjnr-netdb-java_1.2.0+dfsg-1build1_all.deb ... 249s Unpacking libjnr-netdb-java (1.2.0+dfsg-1build1) ... 249s Selecting previously unselected package libjnr-posix-java. 249s Preparing to unpack .../31-libjnr-posix-java_3.1.18-1build1_all.deb ... 249s Unpacking libjnr-posix-java (3.1.18-1build1) ... 249s Selecting previously unselected package libjnr-unixsocket-java. 249s Preparing to unpack .../32-libjnr-unixsocket-java_0.38.21-3_all.deb ... 249s Unpacking libjnr-unixsocket-java (0.38.21-3) ... 249s Selecting previously unselected package libjoda-time-java. 249s Preparing to unpack .../33-libjoda-time-java_2.10.14-1_all.deb ... 249s Unpacking libjoda-time-java (2.10.14-1) ... 249s Selecting previously unselected package libjruby-joni-java. 249s Preparing to unpack .../34-libjruby-joni-java_2.2.1-1build1_all.deb ... 249s Unpacking libjruby-joni-java (2.2.1-1build1) ... 249s Selecting previously unselected package libjzlib-java. 249s Preparing to unpack .../35-libjzlib-java_1.1.3-3build1_all.deb ... 249s Unpacking libjzlib-java (1.1.3-3build1) ... 249s Selecting previously unselected package libsnakeyaml-engine-java. 249s Preparing to unpack .../36-libsnakeyaml-engine-java_2.7+ds-3build1_all.deb ... 249s Unpacking libsnakeyaml-engine-java (2.7+ds-3build1) ... 249s Selecting previously unselected package jruby. 249s Preparing to unpack .../37-jruby_9.4.8.0+ds-3ubuntu1_all.deb ... 249s Unpacking jruby (9.4.8.0+ds-3ubuntu1) ... 249s Selecting previously unselected package rubygems-integration. 249s Preparing to unpack .../38-rubygems-integration_1.19build1_all.deb ... 249s Unpacking rubygems-integration (1.19build1) ... 249s Selecting previously unselected package ruby3.3. 249s Preparing to unpack .../39-ruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 249s Unpacking ruby3.3 (3.3.8-2ubuntu2) ... 249s Selecting previously unselected package ruby-rubygems. 249s Preparing to unpack .../40-ruby-rubygems_3.6.7-2ubuntu1_all.deb ... 249s Unpacking ruby-rubygems (3.6.7-2ubuntu1) ... 249s Selecting previously unselected package ruby. 249s Preparing to unpack .../41-ruby_1%3a3.3build1_ppc64el.deb ... 249s Unpacking ruby (1:3.3build1) ... 249s Selecting previously unselected package rake. 249s Preparing to unpack .../42-rake_13.2.1-1build1_all.deb ... 249s Unpacking rake (13.2.1-1build1) ... 249s Selecting previously unselected package ruby-csv. 249s Preparing to unpack .../43-ruby-csv_3.3.4-1_all.deb ... 249s Unpacking ruby-csv (3.3.4-1) ... 249s Selecting previously unselected package ruby-did-you-mean. 249s Preparing to unpack .../44-ruby-did-you-mean_1.6.3-2build1_all.deb ... 249s Unpacking ruby-did-you-mean (1.6.3-2build1) ... 249s Selecting previously unselected package ruby-net-telnet. 249s Preparing to unpack .../45-ruby-net-telnet_0.2.0-1build1_all.deb ... 249s Unpacking ruby-net-telnet (0.2.0-1build1) ... 249s Selecting previously unselected package ruby-ruby2-keywords. 249s Preparing to unpack .../46-ruby-ruby2-keywords_0.0.5-1build1_all.deb ... 249s Unpacking ruby-ruby2-keywords (0.0.5-1build1) ... 249s Selecting previously unselected package ruby-webrick. 249s Preparing to unpack .../47-ruby-webrick_1.9.1-1_all.deb ... 249s Unpacking ruby-webrick (1.9.1-1) ... 250s Selecting previously unselected package ruby-xmlrpc. 250s Preparing to unpack .../48-ruby-xmlrpc_0.3.3-2build1_all.deb ... 250s Unpacking ruby-xmlrpc (0.3.3-2build1) ... 250s Selecting previously unselected package libruby3.3:ppc64el. 250s Preparing to unpack .../49-libruby3.3_3.3.8-2ubuntu2_ppc64el.deb ... 250s Unpacking libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 250s Selecting previously unselected package libruby:ppc64el. 250s Preparing to unpack .../50-libruby_1%3a3.3build1_ppc64el.deb ... 250s Unpacking libruby:ppc64el (1:3.3build1) ... 250s Selecting previously unselected package ruby-concurrent. 250s Preparing to unpack .../51-ruby-concurrent_1.3.4-1_all.deb ... 250s Unpacking ruby-concurrent (1.3.4-1) ... 250s Selecting previously unselected package ruby-concurrent-ext. 250s Preparing to unpack .../52-ruby-concurrent-ext_1.3.4-1_ppc64el.deb ... 250s Unpacking ruby-concurrent-ext (1.3.4-1) ... 250s Selecting previously unselected package ruby-diff-lcs. 250s Preparing to unpack .../53-ruby-diff-lcs_1.5.1-1_all.deb ... 250s Unpacking ruby-diff-lcs (1.5.1-1) ... 250s Selecting previously unselected package ruby-rspec-support. 250s Preparing to unpack .../54-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 250s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 251s Selecting previously unselected package ruby-rspec-core. 251s Preparing to unpack .../55-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 251s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 251s Selecting previously unselected package ruby-rspec-expectations. 251s Preparing to unpack .../56-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 251s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 251s Selecting previously unselected package ruby-rspec-mocks. 251s Preparing to unpack .../57-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 251s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 251s Selecting previously unselected package ruby-rspec. 251s Preparing to unpack .../58-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 251s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 251s Selecting previously unselected package ruby-timecop. 251s Preparing to unpack .../59-ruby-timecop_0.9.10-1.1_all.deb ... 251s Unpacking ruby-timecop (0.9.10-1.1) ... 251s Setting up libbcprov-java (1.80-3) ... 251s Setting up liblcms2-2:ppc64el (2.17-1) ... 251s Setting up libfixposix4t64:ppc64el (1:0.5.1-1+nmu1.1build2) ... 251s Setting up ruby-ruby2-keywords (0.0.5-1build1) ... 251s Setting up java-common (0.76build1) ... 251s Setting up libbcutil-java (1.80-3) ... 251s Setting up libasm-java (9.8-2) ... 251s Setting up rubygems-integration (1.19build1) ... 251s Setting up libheadius-options-java (1.7-1build1) ... 251s Setting up libbctls-java (1.80-3) ... 251s Setting up ruby-concurrent (1.3.4-1) ... 251s Setting up libjnr-x86asm-java (1.0.2-6build1) ... 251s Setting up ruby-timecop (0.9.10-1.1) ... 251s Setting up libjzlib-java (1.1.3-3build1) ... 251s Setting up libbackport9-java (1.10-2build1) ... 251s Setting up libjitescript-java (0.4.3-1build1) ... 251s Setting up libsnakeyaml-engine-java (2.7+ds-3build1) ... 251s Setting up ruby-net-telnet (0.2.0-1build1) ... 251s Setting up ruby-csv (3.3.4-1) ... 251s Setting up libpcsclite1:ppc64el (2.4.1-1) ... 251s Setting up libjpeg-turbo8:ppc64el (2.1.5-4ubuntu2) ... 251s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 251s Setting up libjoda-time-java (2.10.14-1) ... 251s Setting up libjcodings-java (1.0.58-1build1) ... 251s Setting up ruby-webrick (1.9.1-1) ... 251s Setting up libinvokebinder-java (1.14-1build1) ... 251s Setting up libjffi-jni:ppc64el (1.3.13+ds-1build1) ... 251s Setting up ca-certificates-java (20240118build1) ... 251s No JRE found. Skipping Java certificates setup. 251s Setting up ruby-did-you-mean (1.6.3-2build1) ... 251s Setting up libbcpkix-java (1.80-3) ... 251s Setting up ruby-xmlrpc (0.3.3-2build1) ... 251s Setting up libhawtjni-runtime-java (1.18-1build1) ... 251s Setting up libdirgra-java (0.4-2build1) ... 251s Setting up libjnr-constants-java (0.10.4-2build1) ... 251s Setting up libjpeg8:ppc64el (8c-2ubuntu11) ... 251s Setting up libjffi-java (1.3.13+ds-1build1) ... 251s Setting up openjdk-21-jre-headless:ppc64el (21.0.10+7-1) ... 251s update-alternatives: using /usr/lib/jvm/java-21-openjdk-ppc64el/bin/java to provide /usr/bin/java (java) in auto mode 251s update-alternatives: using /usr/lib/jvm/java-21-openjdk-ppc64el/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 251s update-alternatives: using /usr/lib/jvm/java-21-openjdk-ppc64el/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 251s update-alternatives: using /usr/lib/jvm/java-21-openjdk-ppc64el/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 251s update-alternatives: using /usr/lib/jvm/java-21-openjdk-ppc64el/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 251s Setting up libjruby-joni-java (2.2.1-1build1) ... 251s Setting up libjansi-native-java (1.8-2build1) ... 251s Setting up libjansi1-java (1.18-3.1build1) ... 251s Setting up libjline2-java (2.14.6-6) ... 251s Setting up libjnr-ffi-java (2.2.15-2build1) ... 251s Setting up libjnr-enxio-java (0.32.16-1build1) ... 251s Setting up libjnr-netdb-java (1.2.0+dfsg-1build1) ... 251s Setting up libjnr-posix-java (3.1.18-1build1) ... 251s Setting up libjnr-unixsocket-java (0.38.21-3) ... 251s Setting up rake (13.2.1-1build1) ... 251s Setting up libruby3.3:ppc64el (3.3.8-2ubuntu2) ... 251s Setting up ruby3.3 (3.3.8-2ubuntu2) ... 251s Setting up libruby:ppc64el (1:3.3build1) ... 251s Setting up ruby (1:3.3build1) ... 251s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 251s Setting up ruby-diff-lcs (1.5.1-1) ... 251s Setting up ruby-rubygems (3.6.7-2ubuntu1) ... 251s Setting up ruby-concurrent-ext (1.3.4-1) ... 251s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 251s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 251s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 251s Processing triggers for libc-bin (2.42-2ubuntu4) ... 251s Processing triggers for man-db (2.13.1-1) ... 252s Processing triggers for ca-certificates-java (20240118build1) ... 254s Adding debian:ACCVRAIZ1.pem 254s Adding debian:AC_RAIZ_FNMT-RCM.pem 254s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 254s Adding debian:ANF_Secure_Server_Root_CA.pem 254s Adding debian:Actalis_Authentication_Root_CA.pem 254s Adding debian:AffirmTrust_Commercial.pem 254s Adding debian:AffirmTrust_Networking.pem 254s Adding debian:AffirmTrust_Premium.pem 254s Adding debian:AffirmTrust_Premium_ECC.pem 254s Adding debian:Amazon_Root_CA_1.pem 254s Adding debian:Amazon_Root_CA_2.pem 254s Adding debian:Amazon_Root_CA_3.pem 254s Adding debian:Amazon_Root_CA_4.pem 254s Adding debian:Atos_TrustedRoot_2011.pem 254s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 254s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 254s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 254s Adding debian:BJCA_Global_Root_CA1.pem 254s Adding debian:BJCA_Global_Root_CA2.pem 254s Adding debian:Baltimore_CyberTrust_Root.pem 254s Adding debian:Buypass_Class_2_Root_CA.pem 254s Adding debian:Buypass_Class_3_Root_CA.pem 254s Adding debian:CA_Disig_Root_R2.pem 254s Adding debian:CFCA_EV_ROOT.pem 254s Adding debian:COMODO_Certification_Authority.pem 254s Adding debian:COMODO_ECC_Certification_Authority.pem 254s Adding debian:COMODO_RSA_Certification_Authority.pem 254s Adding debian:Certainly_Root_E1.pem 254s Adding debian:Certainly_Root_R1.pem 254s Adding debian:Certigna.pem 254s Adding debian:Certigna_Root_CA.pem 254s Adding debian:Certum_EC-384_CA.pem 254s Adding debian:Certum_Trusted_Network_CA.pem 254s Adding debian:Certum_Trusted_Network_CA_2.pem 254s Adding debian:Certum_Trusted_Root_CA.pem 254s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 254s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 254s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 254s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 254s Adding debian:Comodo_AAA_Services_root.pem 254s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 254s Adding debian:D-TRUST_BR_Root_CA_2_2023.pem 254s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 254s Adding debian:D-TRUST_EV_Root_CA_2_2023.pem 254s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 254s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 254s Adding debian:DigiCert_Assured_ID_Root_CA.pem 254s Adding debian:DigiCert_Assured_ID_Root_G2.pem 254s Adding debian:DigiCert_Assured_ID_Root_G3.pem 254s Adding debian:DigiCert_Global_Root_CA.pem 254s Adding debian:DigiCert_Global_Root_G2.pem 254s Adding debian:DigiCert_Global_Root_G3.pem 254s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 254s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 254s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 254s Adding debian:DigiCert_Trusted_Root_G4.pem 254s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 254s Adding debian:Entrust_Root_Certification_Authority.pem 254s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 255s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 255s Adding debian:FIRMAPROFESIONAL_CA_ROOT-A_WEB.pem 255s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 255s Adding debian:GLOBALTRUST_2020.pem 255s Adding debian:GTS_Root_R1.pem 255s Adding debian:GTS_Root_R2.pem 255s Adding debian:GTS_Root_R3.pem 255s Adding debian:GTS_Root_R4.pem 255s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 255s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 255s Adding debian:GlobalSign_Root_CA.pem 255s Adding debian:GlobalSign_Root_CA_-_R3.pem 255s Adding debian:GlobalSign_Root_CA_-_R6.pem 255s Adding debian:GlobalSign_Root_E46.pem 255s Adding debian:GlobalSign_Root_R46.pem 255s Adding debian:Go_Daddy_Class_2_CA.pem 255s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 255s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 255s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 255s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 255s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 255s Adding debian:HiPKI_Root_CA_-_G1.pem 255s Adding debian:Hongkong_Post_Root_CA_3.pem 255s Adding debian:ISRG_Root_X1.pem 255s Adding debian:ISRG_Root_X2.pem 255s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 255s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 255s Adding debian:Izenpe.com.pem 255s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 255s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 255s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 255s Adding debian:NAVER_Global_Root_Certification_Authority.pem 255s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 255s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 255s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 255s Adding debian:QuoVadis_Root_CA_1_G3.pem 255s Adding debian:QuoVadis_Root_CA_2.pem 255s Adding debian:QuoVadis_Root_CA_2_G3.pem 255s Adding debian:QuoVadis_Root_CA_3.pem 255s Adding debian:QuoVadis_Root_CA_3_G3.pem 255s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 255s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 255s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 255s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 255s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 255s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 255s Adding debian:SZAFIR_ROOT_CA2.pem 255s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 255s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 255s Adding debian:SecureSign_Root_CA12.pem 255s Adding debian:SecureSign_Root_CA14.pem 255s Adding debian:SecureSign_Root_CA15.pem 255s Adding debian:SecureTrust_CA.pem 255s Adding debian:Secure_Global_CA.pem 255s Adding debian:Security_Communication_ECC_RootCA1.pem 255s Adding debian:Security_Communication_RootCA2.pem 255s Adding debian:Starfield_Class_2_CA.pem 255s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 255s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 255s Adding debian:SwissSign_Gold_CA_-_G2.pem 255s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 255s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 255s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 255s Adding debian:TWCA_CYBER_Root_CA.pem 255s Adding debian:TWCA_Global_Root_CA.pem 255s Adding debian:TWCA_Root_Certification_Authority.pem 255s Adding debian:Telekom_Security_TLS_ECC_Root_2020.pem 255s Adding debian:Telekom_Security_TLS_RSA_Root_2023.pem 255s Adding debian:TeliaSonera_Root_CA_v1.pem 255s Adding debian:Telia_Root_CA_v2.pem 255s Adding debian:TrustAsia_Global_Root_CA_G3.pem 255s Adding debian:TrustAsia_Global_Root_CA_G4.pem 255s Adding debian:Trustwave_Global_Certification_Authority.pem 255s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 255s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 255s Adding debian:TunTrust_Root_CA.pem 255s Adding debian:UCA_Extended_Validation_Root.pem 255s Adding debian:UCA_Global_G2_Root.pem 255s Adding debian:USERTrust_ECC_Certification_Authority.pem 255s Adding debian:USERTrust_RSA_Certification_Authority.pem 255s Adding debian:XRamp_Global_CA_Root.pem 255s Adding debian:certSIGN_ROOT_CA.pem 255s Adding debian:certSIGN_Root_CA_G2.pem 255s Adding debian:e-Szigno_Root_CA_2017.pem 255s Adding debian:ePKI_Root_Certification_Authority.pem 255s Adding debian:emSign_ECC_Root_CA_-_C3.pem 255s Adding debian:emSign_ECC_Root_CA_-_G3.pem 255s Adding debian:emSign_Root_CA_-_C1.pem 255s Adding debian:emSign_Root_CA_-_G1.pem 255s Adding debian:vTrus_ECC_Root_CA.pem 255s Adding debian:vTrus_Root_CA.pem 255s done. 255s Setting up default-jre-headless (2:1.21-76build1) ... 255s Setting up jruby (9.4.8.0+ds-3ubuntu1) ... 257s autopkgtest [22:22:34]: test jruby: [----------------------- 257s installing concurrent-ruby-1.3.4 gem into temporary GEM_HOME for jruby ... 257s installing concurrent-ruby-edge-0.7.1 gem into temporary GEM_HOME for jruby ... 257s installing diff-lcs-1.5.1 gem into temporary GEM_HOME for jruby ... 257s installing rspec-core-3.13.0 gem into temporary GEM_HOME for jruby ... 257s installing rspec-expectations-3.13.0 gem into temporary GEM_HOME for jruby ... 257s installing rspec-mocks-3.13.0 gem into temporary GEM_HOME for jruby ... 257s installing rspec-support-3.13.1 gem into temporary GEM_HOME for jruby ... 257s installing timecop-0.9.10 gem into temporary GEM_HOME for jruby ... 262s /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 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/options.rb:6 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/options.rb:3 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/scheduled_task.rb:8 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:1 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executors.rb:20 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:25 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:17 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:7 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 262s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/actor_spec.rb:1 262s load at org/jruby/RubyKernel.java:1220 262s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 262s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 262s each at org/jruby/RubyArray.java:1981 262s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 262s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 262s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 262s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 262s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 262s
at /usr/bin/rspec:4 262s 262s /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 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:19 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executor/timer_set.rb:9 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.3.4/lib/concurrent-ruby/concurrent/executors.rb:20 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:25 262s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:17 262s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.1/lib/concurrent-ruby-edge/concurrent/actor.rb:7 262s require at org/jruby/RubyKernel.java:1184 262s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 262s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/actor_spec.rb:1 262s load at org/jruby/RubyKernel.java:1220 262s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 262s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 262s each at org/jruby/RubyArray.java:1981 262s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 262s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 262s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 262s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 262s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 262s
at /usr/bin/rspec:4 262s 265s /usr/share/jruby/lib/ruby/stdlib/date.rb:471: warning: previous definition of strptime was here 265s /usr/share/jruby/lib/ruby/stdlib/date.rb:490: warning: previous definition of parse was here 265s /usr/share/jruby/lib/ruby/stdlib/date.rb:737: warning: previous definition of parse was here 266s Run options: exclude {:stress=>true} 266s 266s Concurrent::Actor 266s /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 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:30 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 266s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 266s require at org/jruby/RubyKernel.java:1184 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 266s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/spec_helper.rb:50 266s instance_exec at org/jruby/RubyBasicObject.java:2620 266s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 266s each at org/jruby/RubyArray.java:1981 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 266s reverse_each at org/jruby/RubyArray.java:2063 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 266s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 266s map at org/jruby/RubyArray.java:2803 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s map at org/jruby/RubyArray.java:2803 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 266s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 266s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 266s
at /usr/bin/rspec:4 266s 266s /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 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:53 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 266s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 266s require at org/jruby/RubyKernel.java:1184 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 266s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/spec_helper.rb:50 266s instance_exec at org/jruby/RubyBasicObject.java:2620 266s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 266s each at org/jruby/RubyArray.java:1981 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 266s reverse_each at org/jruby/RubyArray.java:2063 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 266s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 266s map at org/jruby/RubyArray.java:2803 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s map at org/jruby/RubyArray.java:2803 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 266s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 266s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 266s
at /usr/bin/rspec:4 266s 266s /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 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:74 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 266s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 266s require at org/jruby/RubyKernel.java:1184 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 266s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/spec_helper.rb:50 266s instance_exec at org/jruby/RubyBasicObject.java:2620 266s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 266s each at org/jruby/RubyArray.java:1981 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 266s reverse_each at org/jruby/RubyArray.java:2063 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 266s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 266s map at org/jruby/RubyArray.java:2803 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s map at org/jruby/RubyArray.java:2803 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 266s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 266s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 266s
at /usr/bin/rspec:4 266s 266s /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 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:101 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 266s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 266s require at org/jruby/RubyKernel.java:1184 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 266s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/spec_helper.rb:50 266s instance_exec at org/jruby/RubyBasicObject.java:2620 266s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 266s each at org/jruby/RubyArray.java:1981 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 266s reverse_each at org/jruby/RubyArray.java:2063 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 266s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 266s map at org/jruby/RubyArray.java:2803 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s map at org/jruby/RubyArray.java:2803 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 266s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 266s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 266s
at /usr/bin/rspec:4 266s 266s /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 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:136 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 266s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 266s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 266s require at org/jruby/RubyKernel.java:1184 266s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 266s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 266s
at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/spec_helper.rb:50 266s instance_exec at org/jruby/RubyBasicObject.java:2620 266s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 266s each at org/jruby/RubyArray.java:1981 266s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 266s reverse_each at org/jruby/RubyArray.java:2063 266s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 266s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 266s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 266s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 266s map at org/jruby/RubyArray.java:2803 266s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s map at org/jruby/RubyArray.java:2803 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 266s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 266s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 266s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 266s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 266s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 266s
at /usr/bin/rspec:4 266s 266s forbids Immediate executor 266s links 266s links atomically 266s spawning 266s terminates on failed initialization 266s terminates on failed initialization and raises with spawn! 266s terminates on failed message processing 266s Actor#spawn! 266s spawn 266s executor should be global 266s returns arg 266s #path 266s is expected to eq "/ping" 266s #parent 266s is expected to eq # 266s #name 266s is expected to eq "ping" 266s #reference 266s is expected to eq # 266s context_spawn 266s executor should be global 266s returns arg 266s #path 266s is expected to eq "/ping" 266s #parent 266s is expected to eq # 266s #name 266s is expected to eq "ping" 266s #reference 266s is expected to eq # 266s spawn_by_hash 266s executor should be global 266s returns arg 266s #path 266s is expected to eq "/ping" 266s #parent 266s is expected to eq # 267s #name 267s is expected to eq "ping" 267s #reference 267s is expected to eq # 267s context_spawn_by_hash 267s executor should be global 267s returns arg 267s #path 267s is expected to eq "/ping" 267s #parent 267s is expected to eq # 267s #name 267s is expected to eq "ping" 267s #reference 267s is expected to eq # 267s messaging 267s is expected to eq 4 267s children 267s has children set after a child is created 267s envelope 267s /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 267s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 267s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:125 267s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:3 267s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:2 267s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:1 267s require at org/jruby/RubyKernel.java:1184 267s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 267s method_missing at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:964 267s method_missing at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:767 267s Actor at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/actor_spec.rb:136 267s instance_exec at org/jruby/RubyBasicObject.java:2620 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 267s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 267s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 267s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 267s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 267s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 267s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 267s map at org/jruby/RubyArray.java:2803 267s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 267s map at org/jruby/RubyArray.java:2803 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 267s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 267s map at org/jruby/RubyArray.java:2803 267s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 267s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 267s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 267s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 267s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 267s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 267s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 267s
at /usr/bin/rspec:4 267s 267s is expected to eq # 267s termination 267s terminates with all its children 267s dead letter routing 267s logs by deafault 267s message redirecting 267s is evaluated by child 267s pausing 267s pauses on error and resumes 267s pauses on error and resets 267s pauses on error and restarts 267s pool 267s supports asks 267s 267s Concurrent::Agent 267s initialization 267s sets the initial value 267s sets the initial error to nil 267s sets the error mode when given a valid value 267s defaults the error mode to :continue when an error handler is given 267s defaults the error mode to :fail when no error handler is given 267s raises an error when given an invalid error mode 267s sets #failed? to false 267s action processing 267s the given block will be passed the current value 267s the given block will be passed any provided arguments 267s the return value will be passed to the validator function 267s upon validation the new value will be set to the block return value 267s on success all observers will be notified 267s any recursive action dispatches will run after the value has been updated 267s when the action raises an error the value will not change 267s when the action raises an error the validator will not be called 267s when validation returns false the value will not change 267s when validation raises an error the value will not change 267s when the action raises an error the handler will be called 267s when validation fails the handler will be called 267s when validation raises an error the handler will be called 267s validation 267s sets the new value when the validator returns true 267s rejects the new value when the validator returns false 267s rejects the new value when the validator raises an error 267s sets the error when the error mode is :fail and the validator returns false 267s sets the error when the error mode is :fail and the validator raises an error 267s does not set an error when the error mode is :continue and the validator returns false 267s does not set an error when the error mode is :continue and the validator raises an error 267s does not trigger observation when validation fails 267s error handling 267s the agent will be passed to the handler 267s the exception will be passed to the handler 267s does not trigger observation 267s error mode 267s :continue 267s does not set an error when the validator returns false 267s does not set an error when the validator raises an error 267s does not set an error when the action raises an error 267s does not block further action processing 267s sets #failed? to false 267s :fail 267s sets the error when the validator returns false 267s sets the error when the validator raises an error 267s sets the error when the action raises an error 267s blocks all further action processing until a restart 267s sets #failed? to true 267s nested actions 267s occur in the order they ar post 268s work with immediate execution 268s posting 268s with #send 268s returns true when the job is post 268s returns false when #failed? 268s posts to the global fast executor 268s does not wait for the action to process 268s with #send! 268s returns true when the job is post 268s raises an error when #failed? 268s posts to the global fast executor 268s does not wait for the action to process 268s with #send_off 268s returns true when the job is post 268s returns false when #failed? 268s posts to the global io executor 268s does not wait for the action to process 268s with #send_off! 268s returns true when the job is post 268s raises an error when #failed? 268s posts to the global io executor 268s does not wait for the action to process 268s with #send_via 268s returns true when the job is post 268s returns false when #failed? 268s posts to the given executor 268s with #send_via! 268s returns true when the job is post 268s raises an error when #failed? 268s posts to the given executor 268s with #post 268s returns true when the job is post 268s returns false when #failed? 268s posts to the global io executor 268s does not wait for the action to process 268s with #<< 268s returns self when the job is post 268s returns self when #failed? 268s posts to the global io executor 268s does not wait for the action to process 268s #restart 268s when #failed? 268s raises an error if the new value is not valid 268s sets the new value 268s clears the error 268s sets #failed? to true 268s removes all actions from the queue when :clear_actions is true 268s does not clear the action queue when :clear_actions is false 268s does not clear the action queue when :clear_actions is not given 268s resumes action processing if actions are enqueued 268s does not trigger observation 268s when not #failed? 268s raises an error 268s waiting 268s the await job 269s does not change the value 269s does not trigger the error mode 269s does not trigger observers 269s waits for nested actions 269s with #await 269s returns self when there are no pending actions 269s does not block on actions from other threads 270s blocks indefinitely 271s returns true when all prior actions have processed 271s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 271s with #await_for 271s returns true when there are no pending actions 271s does not block on actions from other threads 272s returns true when all prior actions have processed 273s returns false on timeout 273s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 273s with #await_for! 273s returns true when there are no pending actions 273s does not block on actions from other threads 274s returns true when all prior actions have processed 275s raises an error on timeout 275s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 275s with #wait 275s returns true when there are no pending actions and timeout is nil 275s returns true when there are no pending actions and a timeout is given 275s does not block on actions from other threads 276s blocks indefinitely when timeout is nil 276s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 277s returns true when all prior actions have processed 278s returns false on timeout 278s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 278s with .await 278s returns true when all prior actions on all agents have processed 278s with .await_for 278s returns true when there are no pending actions 278s returns true when all prior actions for all agents have processed 279s returns false on timeout 279s with await_for! 279s returns true when there are no pending actions 279s returns true when all prior actions for all agents have processed 280s raises an exception on timeout 280s observable 280s behaves like observable 280s #add_observer 280s adds an observer if called before first notification 280s adds an observer with :func if called before first notification 280s creates an observer from a block if called before first notification 280s raises an exception if not given an observer or a block 280s raises an exception when given both an observer and a block 280s #delete_observer 280s deletes the given observer if called before first notification 280s returns the removed observer if found in the observer set 280s returns the given observer even when not found in the observer set 280s #delete_observers 280s deletes all observers when called before first notification 280s returns self 280s #count_observers 280s returns zero for a new observable object 280s returns a count of registered observers if called before first notification 280s returns zero after #delete_observers has been called 280s first notification 280s calls the #update method on all observers without a specified :func 280s calls the appropriate function on all observers which specified a :func 280s calls the proc for all observers added as a block 281s does not notify any observers removed with #delete_observer 282s does not notify any observers after #delete_observers called 282s 282s Concurrent::Array 282s .[] 282s when initializing with no arguments 282s is expected to be empty 282s when initializing with arguments 282s creates an array with the given objects 282s .new 282s when initializing with no arguments 282s is expected to be empty 282s when initializing with a size argument 282s creates an array with size elements set to nil 282s when initializing with a default value argument 282s creates an array with size elements set to the default value 282s when initializing with a block argument 282s creates an array with size elements set to the default value 282s when initializing with another array as an argument 282s creates a new array 282s creates an array with the same contents as the other array 282s creates an array with the results of calling #to_ary on the other array 282s concurrency 282s is expected to be empty 282s #slice 282s correctly initializes the monitor 282s 282s Concurrent::Async 282s object creation 282s delegates to the original constructor 282s passes all args to the original constructor 282s passes a given block to the original constructor 282s initializes synchronization 282s #validate_argc 282s raises an exception when the method is not defined 282s raises an exception for too many args on a zero arity method 282s does not raise an exception for correct zero arity 282s raises an exception for too many args on a method with positive arity 282s raises an exception for too few args on a method with positive arity 282s does not raise an exception for correct positive arity 282s raises an exception for too few args on a method with negative arity 282s does not raise an exception for correct negative arity 282s #async 282s raises an error when calling a method that does not exist 282s raises an error when passing too few arguments 282s raises an error when pasing too many arguments (arity >= 0) 282s returns the existence of the method 282s returns a :pending IVar 282s runs the future on the global executor 282s sets the value on success 282s sets the reason on failure 282s sets the reason when giving too many optional arguments 282s supports attribute accessors 282s supports methods with blocks 282s #await 282s raises an error when calling a method that does not exist 282s raises an error when passing too few arguments 282s raises an error when pasing too many arguments (arity >= 0) 282s returns the existence of the method 282s returns a :fulfilled IVar 282s runs the future on the global executor 282s sets the value on success 282s sets the reason on failure 282s sets the reason when giving too many optional arguments 282s supports attribute accessors 282s supports methods with blocks 282s locking 283s uses the same lock for both #async and #await 283s fork safety 283s does not hang when forked (PENDING: Platform does not support fork) 283s 283s Concurrent::Atom 283s construction 283s sets the initial value to the given value 283s #compare_and_set 283s sets the new value if the current value matches 283s returns true if the current value matches 283s rejects the new value if the current value does not match 283s returns false if the current value does not match 283s rejects the new value if the validator returns false 283s rejects the new value if the validator raises an exception 283s returns false if the validator returns false 283s returns false if the validator raises an exception 283s #swap 283s raises an exception when no block is given 283s passes the current value to the block 283s passes all arguments to the block 283s sets the new value to the result of the block 283s rejects the new value if the validator returns false 283s rejects the new value if the validator raises an exception 283s returns the new value on success 283s returns the old value if the validator returns false 283s returns the old value if the validator raises an exception 283s calls the block more than once if the value changes underneath 283s reraises the exception from block 283s #reset 283s sets the new value 283s returns the new value on success 283s returns the new value on success 283s returns the old value if the validator returns false 283s returns the old value if the validator raises an exception 283s observable 283s behaves like observable 283s #add_observer 283s adds an observer if called before first notification 283s adds an observer with :func if called before first notification 283s creates an observer from a block if called before first notification 283s raises an exception if not given an observer or a block 283s raises an exception when given both an observer and a block 283s #delete_observer 283s deletes the given observer if called before first notification 283s returns the removed observer if found in the observer set 283s returns the given observer even when not found in the observer set 283s #delete_observers 283s deletes all observers when called before first notification 283s returns self 283s #count_observers 283s returns zero for a new observable object 283s returns a count of registered observers if called before first notification 283s returns zero after #delete_observers has been called 283s first notification 283s calls the #update method on all observers without a specified :func 283s calls the appropriate function on all observers which specified a :func 283s calls the proc for all observers added as a block 284s does not notify any observers removed with #delete_observer 285s does not notify any observers after #delete_observers called 285s 285s Concurrent::MutexAtomicBoolean 285s it should behave like atomic_boolean 285s construction 285s sets the initial value 285s defaults the initial value to false 285s evaluates the truthiness of a true value 285s evaluates the truthiness of a false value 285s #value 285s returns the current value 285s #value= 285s sets the #value to the given `Boolean` 285s returns the new value 285s evaluates the truthiness of a true value 285s evaluates the truthiness of a false value 285s #true? 285s is expected to equal true 285s is expected to equal false 285s #false? 285s is expected to equal false 285s is expected to equal true 285s #make_true 285s makes a false value true and returns true 285s keeps a true value true and returns false 285s #make_false 285s makes a true value false and returns true 285s keeps a false value false and returns false 285s instance methods 285s value is synchronized 285s value= is synchronized 285s true? is synchronized 285s false? is synchronized 285s make_true is synchronized 285s make_false is synchronized 285s 285s Concurrent::JavaAtomicBoolean 285s it should behave like atomic_boolean 285s construction 285s sets the initial value 285s defaults the initial value to false 285s evaluates the truthiness of a true value 285s evaluates the truthiness of a false value 285s #value 285s returns the current value 285s #value= 285s sets the #value to the given `Boolean` 285s returns the new value 285s evaluates the truthiness of a true value 285s evaluates the truthiness of a false value 285s #true? 285s is expected to equal true 285s is expected to equal false 285s #false? 285s is expected to equal false 285s is expected to equal true 285s #make_true 285s makes a false value true and returns true 285s keeps a true value true and returns false 285s #make_false 285s makes a true value false and returns true 285s keeps a false value false and returns false 285s 285s Concurrent::AtomicBoolean 285s does not load the C extension 285s inherits from JavaAtomicBoolean 285s #to_s and #inspect 285s includes the value 285s 285s Concurrent::MutexAtomicFixnum 285s it should behave like atomic_fixnum 285s construction 285s sets the initial value 285s defaults the initial value to zero 285s raises an exception if the initial value is not a Fixnum 285s #value 285s returns the current value 285s #value= 285s sets the #value to the given `Fixnum` 285s returns the new value 285s raises and exception if the value is not a `Fixnum` 285s #increment 285s increases the value by one when no argument is given 285s returns the new value when no argument is given 285s increases the value by the given argument 285s returns the new value the given argument 285s is aliased as #up 285s #decrement 285s decreases the value by one when no argument is given 285s returns the new value when no argument is given 285s decreases the value by the given argument 285s returns the new value the given argument 285s is aliased as #down 285s #compare_and_set 285s returns false if the value is not found 285s returns true if the value is found 285s sets if the value is found 285s does not set if the value is not found 285s #update 285s passes the current value to the block 285s atomically sets the value to the return value from the block 285s returns the new value 285s construction 285s raises an exception if the initial value is too big 285s raises an exception if the initial value is too small 285s instance methods 285s value is synchronized 285s value= is synchronized 285s increment is synchronized 285s decrement is synchronized 285s compare_and_set is synchronized 285s 285s Concurrent::JavaAtomicFixnum 285s it should behave like atomic_fixnum 285s construction 285s sets the initial value 285s defaults the initial value to zero 285s raises an exception if the initial value is not a Fixnum 285s #value 285s returns the current value 285s #value= 285s sets the #value to the given `Fixnum` 285s returns the new value 285s raises and exception if the value is not a `Fixnum` 285s #increment 285s increases the value by one when no argument is given 285s returns the new value when no argument is given 285s increases the value by the given argument 285s returns the new value the given argument 285s is aliased as #up 285s #decrement 285s decreases the value by one when no argument is given 285s returns the new value when no argument is given 285s decreases the value by the given argument 285s returns the new value the given argument 285s is aliased as #down 285s #compare_and_set 285s returns false if the value is not found 285s returns true if the value is found 285s sets if the value is found 285s does not set if the value is not found 285s #update 285s passes the current value to the block 285s atomically sets the value to the return value from the block 285s returns the new value 285s 285s Concurrent::AtomicFixnum 285s does not load the C extension 285s inherits from JavaAtomicFixnum 285s #to_s and #inspect 285s includes the value 285s 285s Concurrent::AtomicMarkableReference 285s .initialize 285s constructs the object 285s has sane defaults 285s #set 285s sets the value and mark 285s #try_update! 285s updates the value and mark 285s raises ConcurrentUpdateError when attempting to set inside of block 285s #try_update 285s updates the value and mark 285s returns nil when attempting to set inside of block 285s #update 285s updates the value and mark 285s retries until update succeeds 285s #compare_and_set 285s when objects have the same identity 285s sets the value and mark 285s when objects have the different identity 285s it does not set the value or mark 285s when comparing Numeric objects 285s Non-idepotent Float 285s sets the value and mark 285s BigNum 285s sets the value and mark 285s Rational 285s sets the value and mark 285s Rational 285s is successful 285s 285s Concurrent::AtomicReference 285s it should behave like atomic_reference 285s test_construct 285s test_value 285s test_update 285s test_try_update 285s test_try_update_bang 285s test_swap 285s test_try_update_fails 285s test_try_update_bang_fails 285s test_update_retries 285s test_numeric_cas 285s #to_s and #inspect 285s includes the value 285s 285s Concurrent::MutexAtomicReference 285s it should behave like atomic_reference 285s test_construct 285s test_value 285s test_update 285s test_try_update 285s test_try_update_bang 285s test_swap 285s test_try_update_fails 285s test_try_update_bang_fails 285s test_update_retries 285s test_numeric_cas 285s 285s Concurrent::JavaAtomicReference 285s it should behave like atomic_reference 285s test_construct 285s test_value 285s test_update 285s test_try_update 285s test_try_update_bang 285s test_swap 285s test_try_update_fails 285s test_try_update_bang_fails 285s test_update_retries 285s test_numeric_cas 285s 285s Concurrent::AtomicReference 285s does not load the C extension 285s inherits from JavaAtomicReference 285s 285s Concurrent::MutexCountDownLatch 285s it should behave like count_down_latch 285s #initialize 285s raises an exception if the initial count is less than zero 285s raises an exception if the initial count is not an integer 285s defaults the count to 1 285s #count 285s should be the value passed to the constructor 285s should be decreased after every count down 285s should not go below zero 285s #wait 285s blocks indefinitely, and is kill-able 285s blocks indefinitely with timeout, and is kill-able 285s count set to zero 285s should return true immediately 285s should return true immediately with timeout 285s non zero count 285s should block thread until counter is set to zero 285s should block until counter is set to zero with timeout 286s should block until timeout and return false when counter is not set to zero 286s spurious wake ups 286s should resist to spurious wake ups without timeout 286s should resist to spurious wake ups with timeout 286s 286s Concurrent::JavaCountDownLatch 286s it should behave like count_down_latch 286s #initialize 286s raises an exception if the initial count is less than zero 286s raises an exception if the initial count is not an integer 286s defaults the count to 1 286s #count 286s should be the value passed to the constructor 286s should be decreased after every count down 286s should not go below zero 286s #wait 286s blocks indefinitely, and is kill-able 286s blocks indefinitely with timeout, and is kill-able 286s count set to zero 286s should return true immediately 286s should return true immediately with timeout 286s non zero count 287s should block thread until counter is set to zero 287s should block until counter is set to zero with timeout 287s should block until timeout and return false when counter is not set to zero 287s 287s Concurrent::CountDownLatch 287s inherits from JavaCountDownLatch 287s 287s Concurrent::CyclicBarrier 287s #initialize 287s raises an exception if the initial count is less than 1 287s raises an exception if the initial count is not an integer 287s #parties 287s should be the value passed to the constructor 287s #number_waiting 287s without any waiting thread 287s should be equal to zero 287s with waiting threads 287s should be equal to the waiting threads count 287s #broken? 287s should not be broken when created 287s should not be broken when reset is called without waiting thread 287s reset 287s should release all waiting threads 287s #wait 287s without timeout 287s should block the thread 287s should release all threads when their number matches the desired one 287s returns true when released 287s executes the block once 287s can be reused 287s return false if barrier has been reset 287s with timeout 287s timeout not expiring 287s should block the thread 287s should release all threads when their number matches the desired one 287s returns true when released 287s timeout expiring 288s returns false 288s breaks the barrier and release all other threads 288s breaks the barrier and release all other threads 2 288s does not execute the block on timeout 288s #broken barrier 288s should not accept new threads 288s can be reset 288s spurious wake ups 288s should resist to spurious wake ups without timeout 289s should resist to spurious wake ups with timeout 289s 289s Concurrent::Event 289s #initialize 289s sets the state to unset 289s #set? 289s returns true when the event has been set 289s returns false if the event is unset 289s #set 289s triggers the event 289s sets the state to set 289s #try? 289s triggers the event if not already set 289s returns true if not previously set 289s returns false if previously set 289s #reset 289s does not change the state of an unset event 289s does not trigger an unset event 289s returns true when called on an unset event 289s sets the state of a set event to unset 289s returns true when called on a set event 289s #wait 289s returns immediately when the event has been set 289s returns true once the event is set 289s blocks indefinitely when the timer is nil 289s blocks indefinitely 289s stops waiting when the timer expires 290s returns false when the timer expires 290s triggers multiple waiting threads 290s behaves appropriately if wait begins while #set is processing 290s spurious wake ups 291s should resist to spurious wake ups without timeout 291s should resist spurious wake ups with timeout 291s 291s Concurrent::FiberLocalVar 291s #initialize 291s can set an initial value 291s sets nil as a default initial value 291s sets the same initial value for all fibers 291s can set a block to be called to get the initial value 291s when attempting to set both an initial value and a block 291s is expected to raise ArgumentError 291s #value 291s returns the current value 291s returns the value after modification 291s when using a block to initialize the value 291s calls the block to initialize the value 291s sets the block return value as the current value 291s calls the block to initialize the value for each fiber 291s #value= 291s sets a new value 291s returns the new value 291s does not modify the initial value for other fibers 291s does not modify the value for other fibers 291s 291s Concurrent::FiberLocalVar 291s uses FiberLocalVar if Mutex is per Fiber 291s 291s Concurrent::ReadWriteLock 291s #write_locked? 291s returns true when the write lock is held 291s returns false when the write lock is not held 291s returns false when the write lock is not held but there are readers 291s #has_waiters? 291s returns false when no locks are held 291s returns false when there are readers but no writers 291s returns true when the write lock is held and there are waiting readers 291s returns true when the write lock is held and there are waiting writers 291s #with_read_lock 291s acquires the lock 291s returns the value of the block operation 291s releases the lock 291s raises an exception if no block is given 291s raises an exception if maximum lock limit is exceeded 291s releases the lock when an exception is raised 291s #with_write_lock 291s acquires the lock 291s returns the value of the block operation 291s releases the lock 291s raises an exception if no block is given 291s raises an exception if maximum lock limit is exceeded 291s releases the lock when an exception is raised 291s #acquire_read_lock 291s increments the lock count 291s waits for a running writer to finish 291s does not wait for any running readers 291s raises an exception if maximum lock limit is exceeded 291s returns true if the lock is acquired 291s #release_read_lock 291s decrements the counter 291s unblocks waiting writers 291s returns true if the lock is released 292s returns true if the lock was never set 292s #acquire_write_lock 292s increments the lock count 292s waits for a running writer to finish 292s waits for a running reader to finish 292s raises an exception if maximum lock limit is exceeded 292s returns true if the lock is acquired 292s #release_write_lock 292s decrements the counter 292s unblocks waiting readers 292s unblocks waiting writers 292s returns true if the lock is released 292s returns true if the lock was never set 292s 292s Concurrent::ReentrantReadWriteLock 292s can survive a torture test 292s read lock 292s allows other read locks to be acquired at the same time 292s can be acquired more than once 292s can be acquired while holding a write lock 292s can be upgraded to a write lock 292s can be upgraded to a write lock when read lock acquired more than once 292s cannot be released when not held 292s cannot be released more times than it was taken 292s wakes up waiting writers when the last read lock is released 292s write lock 292s cannot be acquired when another thread holds a write lock 292s cannot be acquired when another thread holds a read lock 292s can be acquired more than once 292s can be acquired while holding a read lock 292s can be downgraded to a read lock 292s cannot be released when not held 292s cannot be released more times than it was taken 292s wakes up waiting readers when the write lock is released 292s wakes up waiting writers when the write lock is released 292s #with_read_lock 292s acquires read block before yielding, then releases it 292s releases read lock if an exception is raised in block 292s #with_write_lock 292s acquires write block before yielding, then releases it 292s releases write lock if an exception is raised in block 292s #try_read_lock 292s returns false immediately if read lock cannot be obtained 292s acquires read lock and returns true if it can do so without blocking 292s can acquire a read lock if a read lock is already held 292s can acquire a read lock if a write lock is already held 292s #try_write_lock 292s returns false immediately if write lock cannot be obtained 292s acquires write lock and returns true if it can do so without blocking 292s can acquire a write lock if a read lock is already held 292s can acquire a write lock if a write lock is already held 292s 292s Concurrent::ReentrantReadWriteLock 293s can acquire locks in separate fibers 293s 293s Concurrent::MutexSemaphore 293s it should behave like semaphore 293s #initialize 293s raises an exception if the initial count is not an integer 293s when initializing with 0 293s is expected not to equal nil 293s when initializing with -1 293s is expected to eq 0 293s #acquire 293s without block 293s permits available 293s should return nil immediately 293s not enough permits available 293s should block thread until permits are available 293s when acquiring negative permits 293s raises ArgumentError 293s with block 293s permits available 293s should acquire permits, run the block, release permits, and return block return value 293s if the block raises, the permit is still released 293s not enough permits available 293s should block thread until permits are available 293s when acquiring negative permits 293s raises ArgumentError 293s #drain_permits 293s drains all available permits 293s drains nothing in no permits are available 293s #try_acquire 293s without block 293s without timeout 293s acquires immediately if permits are available 293s returns false immediately in no permits are available 293s when trying to acquire negative permits 293s is expected to raise ArgumentError 293s with timeout 293s acquires immediately if permits are available 293s acquires when permits are available within timeout 293s returns false on timeout 293s with block 293s without timeout 293s acquires immediately if permits are available and returns block return value 293s releases permit if block raises 293s returns false immediately in no permits are available 293s when trying to acquire negative permits 294s is expected not to change `semaphore.available_permits` 294s with timeout 294s acquires immediately if permits are available, and returns block return value 294s releases permits if block raises 294s acquires when permits are available within timeout, and returns block return value 294s returns false on timeout 294s #reduce_permits 294s raises ArgumentError if reducing by negative number 294s reduces permits below zero 294s reduces permits 294s reduces zero permits 294s #release 294s increases the number of available permits by one 294s when a number of permits is specified 294s increases the number of available permits by the specified value 294s when permits is set to negative number 294s is expected to raise ArgumentError 294s 294s Concurrent::JavaSemaphore 294s it should behave like semaphore 294s #initialize 294s raises an exception if the initial count is not an integer 294s when initializing with 0 294s is expected not to equal nil 294s when initializing with -1 294s is expected to eq 0 294s #acquire 294s without block 294s permits available 294s should return nil immediately 294s not enough permits available 294s should block thread until permits are available 294s when acquiring negative permits 294s raises ArgumentError 294s with block 294s permits available 294s should acquire permits, run the block, release permits, and return block return value 294s if the block raises, the permit is still released 294s not enough permits available 295s should block thread until permits are available 295s when acquiring negative permits 295s raises ArgumentError 295s #drain_permits 295s drains all available permits 295s drains nothing in no permits are available 295s #try_acquire 295s without block 295s without timeout 295s acquires immediately if permits are available 295s returns false immediately in no permits are available 295s when trying to acquire negative permits 295s is expected to raise ArgumentError 295s with timeout 295s acquires immediately if permits are available 295s acquires when permits are available within timeout 295s returns false on timeout 295s with block 295s without timeout 295s acquires immediately if permits are available and returns block return value 295s releases permit if block raises 295s returns false immediately in no permits are available 295s when trying to acquire negative permits 295s is expected not to change `semaphore.available_permits` 295s with timeout 295s acquires immediately if permits are available, and returns block return value 295s releases permits if block raises 295s acquires when permits are available within timeout, and returns block return value 295s returns false on timeout 295s #reduce_permits 295s raises ArgumentError if reducing by negative number 295s reduces permits below zero 295s reduces permits 295s reduces zero permits 295s #release 295s increases the number of available permits by one 295s when a number of permits is specified 295s increases the number of available permits by the specified value 295s when permits is set to negative number 295s is expected to raise ArgumentError 295s 295s Concurrent::Semaphore 295s inherits from JavaSemaphore 295s 295s Concurrent::ThreadLocalVar 295s #initialize 295s can set an initial value 295s sets nil as a default initial value 295s sets the same initial value for all threads 295s can set a block to be called to get the initial value 295s when attempting to set both an initial value and a block 295s is expected to raise ArgumentError 295s #value 295s returns the current value 295s returns the value after modification 295s when using a block to initialize the value 295s calls the block to initialize the value 295s sets the block return value as the current value 295s calls the block to initialize the value for each thread 295s #value= 295s sets a new value 295s returns the new value 295s does not modify the initial value for other threads 295s does not modify the value for other threads 295s 295s Concurrent 295s Cancellation 295s basic 295s is expected to be falsey 295s is expected to be truthy 295s is expected to be falsey 295s is expected to eq 2 295s #join 295s 295s Concurrent::Channel::Buffer::Base 295s is expected to eq 0 295s is expected to be blocking 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected to raise NotImplementedError 295s is expected not to be closed 295s is expected to be closed 295s 295s Concurrent::Channel::Buffer::Buffered 295s is expected to be blocking 295s behaves like channel_buffered_buffer 295s behaves like channel_buffer 295s is expected to respond to #blocking? 295s #capacity 295s is expected to be >= 0 295s #size 295s returns zero upon initialization 295s #empty? 295s returns true when empty 295s #full? 295s returns false when not full 295s #put 295s does not enqueue the item when closed 295s returns false when closed 295s #offer 295s returns true on success 295s does not enqueue the item when closed 295s returns false immediately when closed 295s #take 295s returns Concurrent::NULL when closed 295s #next 295s returns Concurrent::NULL, false when closed 295s #poll 295s returns the next item immediately if available 295s returns Concurrent::NULL immediately if no item is available 295s returns Concurrent::NULL when closed 295s #close 295s sets #closed? to false 295s returns true when not previously closed 295s returns false when already closed 295s #closed? 295s returns true when new 295s returns false after #close 295s #initialize 295s raises an exception if size <= 0 295s #capacity 295s returns the maximum capacity of the buffer 295s #size 295s is 0 when first created 295s returns the number of items in the buffer 295s is 0 when there are taking threads but no putting threads 295s #empty? 295s returns true when empty 295s #put 295s enqueues the item when size > 0, not full, and not closed 295s returns true when the item is put 295s #offer 295s enqueues the item immediately when not full and not closed 295s #take 295s returns the first item when not empty 296s blocks until not empty 296s returns Concurrent::NULL when closed and empty 296s #next 296s blocks until not empty 296s returns , true when there is only one item and not closed 296s returns , true when there are multiple items 296s returns , true when closed and last item 296s returns Concurrent::NULL, false when closed and no items remain 296s #full? 296s returns true when at max capacity 296s #put 296s blocks when at capacity until a thread is ready to take 296s #offer 296s returns false immediately when full 296s 296s Concurrent::Channel::Buffer::Dropping 296s is expected not to be blocking 296s behaves like channel_buffered_buffer 296s behaves like channel_buffer 296s is expected to respond to #blocking? 296s #capacity 296s is expected to be >= 0 296s #size 296s returns zero upon initialization 296s #empty? 296s returns true when empty 296s #full? 296s returns false when not full 296s #put 296s does not enqueue the item when closed 296s returns false when closed 296s #offer 296s returns true on success 296s does not enqueue the item when closed 296s returns false immediately when closed 296s #take 296s returns Concurrent::NULL when closed 296s #next 296s returns Concurrent::NULL, false when closed 296s #poll 296s returns the next item immediately if available 296s returns Concurrent::NULL immediately if no item is available 296s returns Concurrent::NULL when closed 296s #close 296s sets #closed? to false 296s returns true when not previously closed 296s returns false when already closed 296s #closed? 296s returns true when new 296s returns false after #close 296s #initialize 296s raises an exception if size <= 0 296s #capacity 296s returns the maximum capacity of the buffer 296s #size 296s is 0 when first created 296s returns the number of items in the buffer 296s is 0 when there are taking threads but no putting threads 296s #empty? 296s returns true when empty 296s #put 296s enqueues the item when size > 0, not full, and not closed 296s returns true when the item is put 296s #offer 296s enqueues the item immediately when not full and not closed 296s #take 296s returns the first item when not empty 297s blocks until not empty 297s returns Concurrent::NULL when closed and empty 297s #next 297s blocks until not empty 297s returns , true when there is only one item and not closed 297s returns , true when there are multiple items 297s returns , true when closed and last item 297s returns Concurrent::NULL, false when closed and no items remain 297s #put 297s does not block when full 297s drops the last value when full 297s #offer 297s returns true immediately when full 297s drops the last value when full 297s 297s Concurrent::Channel::Buffer::Sliding 297s is expected not to be blocking 297s behaves like channel_buffered_buffer 297s behaves like channel_buffer 297s is expected to respond to #blocking? 297s #capacity 297s is expected to be >= 0 297s #size 297s returns zero upon initialization 297s #empty? 297s returns true when empty 297s #full? 297s returns false when not full 297s #put 297s does not enqueue the item when closed 297s returns false when closed 297s #offer 297s returns true on success 297s does not enqueue the item when closed 297s returns false immediately when closed 297s #take 297s returns Concurrent::NULL when closed 297s #next 297s returns Concurrent::NULL, false when closed 297s #poll 297s returns the next item immediately if available 297s returns Concurrent::NULL immediately if no item is available 297s returns Concurrent::NULL when closed 297s #close 297s sets #closed? to false 297s returns true when not previously closed 297s returns false when already closed 297s #closed? 297s returns true when new 297s returns false after #close 297s #initialize 297s raises an exception if size <= 0 297s #capacity 297s returns the maximum capacity of the buffer 297s #size 297s is 0 when first created 297s returns the number of items in the buffer 297s is 0 when there are taking threads but no putting threads 297s #empty? 297s returns true when empty 297s #put 297s enqueues the item when size > 0, not full, and not closed 297s returns true when the item is put 297s #offer 297s enqueues the item immediately when not full and not closed 297s #take 297s returns the first item when not empty 298s blocks until not empty 298s returns Concurrent::NULL when closed and empty 298s #next 298s blocks until not empty 298s returns , true when there is only one item and not closed 298s returns , true when there are multiple items 298s returns , true when closed and last item 298s returns Concurrent::NULL, false when closed and no items remain 298s #put 298s does not block when full 298s drops the first value when full 298s #offer 298s returns true immediately when full 298s drops the first value when full 298s 298s Concurrent::Channel::Buffer::Ticker 298s behaves like channel_timing_buffer 298s is expected to be blocking 298s #capacity 298s is expected to eq 1 298s #size 298s is expected to eq 0 298s #empty? 298s is expected not to be empty 298s #full? 298s is expected to be full 298s #put 298s is expected to equal false 298s #offer 298s is expected to equal false 298s #take 298s blocks when the timer is not ready 298s returns a Tick 298s triggers after the specified time interval 298s returns Concurrent::NULL when closed 298s #poll 298s returns Concurrent::NULL when the timer is not ready 298s returns a Tick 298s returns Concurrent::NULL when closed 298s triggers after the specified time interval 298s #next 299s blocks when the timer is not ready 299s returns a Tick when open 299s returns Concurrent::NULL, false when closed 299s triggers after the specified time interval 299s #close 299s sets #closed? to false 299s returns true when not previously closed 299s returns false when already closed 299s #closed? 299s returns true when new 299s returns false after #close 299s #take 299s triggers until closed 299s returns Concurrent::NULL when closed after trigger 299s #poll 300s triggers until closed 300s #next 300s triggers until closed 300s returns true for more while open 300s returns false for more once closed 300s 300s Concurrent::Channel::Buffer::Timer 300s behaves like channel_timing_buffer 300s is expected to be blocking 300s #capacity 300s is expected to eq 1 300s #size 300s is expected to eq 0 300s #empty? 300s is expected not to be empty 300s #full? 300s is expected to be full 300s #put 300s is expected to equal false 300s #offer 300s is expected to equal false 300s #take 300s blocks when the timer is not ready 300s returns a Tick 300s triggers after the specified time interval 300s returns Concurrent::NULL when closed 300s #poll 300s returns Concurrent::NULL when the timer is not ready 301s returns a Tick 301s returns Concurrent::NULL when closed 301s triggers after the specified time interval 301s #next 301s blocks when the timer is not ready 301s returns a Tick when open 301s returns Concurrent::NULL, false when closed 301s triggers after the specified time interval 301s #close 301s sets #closed? to false 301s returns true when not previously closed 301s returns false when already closed 301s #closed? 301s returns true when new 301s returns false after #close 301s #take 301s closes automatically on first take 301s #poll 301s closes automatically on first take 301s #next 301s closes automatically on first take 302s returns false for more 302s 302s Concurrent::Channel::Buffer::Unbuffered 302s is expected to be blocking 302s is expected to eq 1 302s behaves like channel_buffer 302s is expected to respond to #blocking? 302s #capacity 302s is expected to be >= 0 302s #size 302s returns zero upon initialization 302s #empty? 302s returns true when empty 302s #full? 302s returns false when not full 302s #put 302s does not enqueue the item when closed 302s returns false when closed 302s #offer 302s returns true on success 302s does not enqueue the item when closed 302s returns false immediately when closed 302s #take 302s returns Concurrent::NULL when closed 302s #next 302s returns Concurrent::NULL, false when closed 302s #poll 302s returns the next item immediately if available 302s returns Concurrent::NULL immediately if no item is available 302s returns Concurrent::NULL when closed 302s #close 302s sets #closed? to false 302s returns true when not previously closed 302s returns false when already closed 302s #closed? 302s returns true when new 302s returns false after #close 302s #size 302s is 0 when first created 302s is 1 when a putting thread is waiting 302s is 0 when there are taking threads but no putting threads 302s #empty? 302s is true when there are no putting threads 303s is false when there are waiting putting threads 303s #full? 303s is false when there are no putting threads 303s is false when there are waiting putting threads 303s #put 303s does not enqueue the item when closed 303s returns false when closed 303s blocks until a thread is ready to take 303s delivers when closed after put starts 303s #offer 303s returns false immediately when a put in in progress 304s gives the item to a waiting taker and returns true 304s #take 304s returns false immediately when a put in in progress 304s gives the item to a waiting taker and returns true 304s #next 304s blocks when no putting and returns , true when one arrives 305s returns , true when there are multiple putting 305s returns , true when closed and last item 305s returns Concurrent::NULL, false when closed and no items remain 305s 305s channel integration tests 305s A Tour of Go 305s channels.rb 305s buffered-channels.rb 305s range-and-close.rb 305s select.rb 305s default-selection.rb (PENDING: flaky) 305s Go By Example 306s channels.rb 306s channel-buffering.rb 307s channel-synchronization.rb 307s channel-directions.rb 309s select.rb 312s timeouts.rb 313s non-blocking-channel-operations.rb 313s closing-channels.rb 313s range-over-channels.rb 315s timers.rb 317s ticker.rb 320s worker-pools.rb 322s rate-limiting.rb 322s 322s Concurrent::Channel::Tick 322s initializes to current time when no argument given 322s initializes to the given monotonic time 322s #utc returns a Time object in UTC 322s #epoch returns the UTC time as epoch seconds 322s #to_s formats as a time 322s comparison 322s correctly compares to a Numeric (monotonic) 322s correctly compares to a Time 322s correctly compares to a Tick 322s 322s Concurrent::Channel 322s initialization 322s raises an exception when the :buffer is invalid 322s is :unbuffered when neither :buffer nore :capacity is given 322s is :unbuffered when :unbuffered is given 322s is :unbuffered when :buffered and capacity: 0 322s raises an exception when both :unbuffered and :capacity are given 322s is :buffered when :capacity > 0 and no :buffer given 322s is :buffered when :buffered given 322s raises an exception when :buffered given without :capacity 322s raises an exception when :buffered and :capacity < 0 322s is :dropping when :dropping and :capacity > 0 322s raises an exception when :dropping given without :capacity 322s raises an exception when :dropping and :capacity < 1 322s is :sliding when :sliding and :capacity > 0 322s raises an exception when :sliding given without :capacity 322s raises an exception when :sliding and :capacity < 1 322s uses the given buffer 322s factories 322s is expected to receive new(10) 1 time 322s is expected to receive new(10) 1 time 322s #put 322s returns true on success 322s returns false on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s rejects nil 322s put! 322s returns true on success 322s raises an exception on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s rejects nil 322s put? 322s returns a just Maybe on success 322s returns a nothing Maybe on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s accepts nil 322s #offer 322s returns true on success 322s returns false on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s rejects nil 322s offer! 322s returns true on success 322s raises an exception on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s rejects nil 322s offer? 322s returns a just Maybe on success 322s returns a nothing Maybe on failure 322s rejects when the validator returns false 322s rejects when the validator raises an exception 322s accepts nil 322s #take 322s takes the next item when not empty 322s returns nil on failure 322s #take! 322s takes the next item when not empty 322s raises an exception on failure 322s #take? 322s returns a just Maybe on success 322s returns a nothing Maybe on failure 322s #next 322s returns , true when there is one item 322s returns , true when there are multiple items 322s returns nil, false when empty and closed 322s returns , true when closed and last item 322s returns nil, false when closed and no items remain 322s #next? 322s returns a just Maybe and true when there is one item 322s returns a just Maybe, true when there are multiple items 322s returns a nothing Maybe and false on failure 322s #poll 322s returns the next item immediately if available 322s returns nil immediately if no item is available 322s returns nil on failure 322s #poll! 322s returns the next item immediately if available 322s raises an exception immediately if no item is available 322s raises an exception on failure 322s #poll? 323s returns a just Maybe immediately if available 323s returns a nothing Maybe immediately if no item is available 323s returns a nothing Maybe on failure 323s .each 323s raises and exception when no block is given 323s iterates until the channel is closed 323s goroutines 323s .go 323s raises an exception when no block is given 323s is expected to receive post(1, 2, 3) 1 time 323s .go_via 323s raises an exception when no block is given 323s is expected to receive post(1, 2, 3) 1 time 323s .go_loop 323s raises an exception when no block is given 323s loops until the block returns false 323s .go_loop_via 323s raises an exception when no block is given 323s loops until the block returns false 323s select 323s raises an exception when no block is given 323s passes a selector to the block 323s is expected to be truthy 323s 323s Concurrent::Collection::CopyOnNotifyObserverSet 323s behaves like an observer set 323s #add_observer 323s with arguments 323s should return the observer 323s with a block 323s should return the observer based on a block 323s #notify_observers 323s should return the observer set 323s with a single observer 323s should update a registered observer without arguments 323s should update a registered observer with arguments 323s should notify an observer using the chosen method 323s should notify an observer once using the last added method 323s should notify an observer from a block 323s can be called many times 323s with many observers 323s should notify all observer using the chosen method 323s with a block 323s calls the block once for every observer 323s passes the block return value to the update method 323s accepts blocks returning a single value 323s accepts block return values that include arrays 323s raises an exception if given both arguments and a block 323s #count_observers 323s should be zero after initialization 323s should be 1 after the first observer is added 323s should be 1 if the same observer is added many times 323s should be equal to the number of unique observers 323s #delete_observer 323s should not notify a deleted observer 323s can delete a non added observer 323s should return the observer 323s #delete_observers 323s should remove all observers 323s should return the observer set 323s #notify_and_delete_observers 323s should notify all observers 323s should clear observers 323s can be called many times without any other notification 323s should return the observer set 323s 323s Concurrent::Collection::CopyOnWriteObserverSet 323s behaves like an observer set 323s #add_observer 323s with arguments 323s should return the observer 323s with a block 323s should return the observer based on a block 323s #notify_observers 323s should return the observer set 323s with a single observer 323s should update a registered observer without arguments 323s should update a registered observer with arguments 323s should notify an observer using the chosen method 323s should notify an observer once using the last added method 323s should notify an observer from a block 323s can be called many times 323s with many observers 323s should notify all observer using the chosen method 323s with a block 323s calls the block once for every observer 323s passes the block return value to the update method 323s accepts blocks returning a single value 323s accepts block return values that include arrays 323s raises an exception if given both arguments and a block 323s #count_observers 323s should be zero after initialization 323s should be 1 after the first observer is added 323s should be 1 if the same observer is added many times 323s should be equal to the number of unique observers 323s #delete_observer 323s should not notify a deleted observer 323s can delete a non added observer 323s should return the observer 323s #delete_observers 323s should remove all observers 323s should return the observer set 323s #notify_and_delete_observers 323s should notify all observers 323s should clear observers 323s can be called many times without any other notification 323s should return the observer set 323s 323s Concurrent::Collection::RubyNonConcurrentPriorityQueue 323s it should behave like priority_queue 323s #initialize 323s sorts from high to low when :order is :max 323s sorts from high to low when :order is :high 323s sorts from low to high when :order is :min 323s sorts from low to high when :order is :low 323s sorts from high to low by default 323s #clear 323s removes all items from a populated queue 323s has no effect on an empty queue 323s is expected to be truthy 323s #delete 323s deletes the requested item when found 323s deletes the requested item when it is the first element 323s deletes the requested item when it is the last element 323s deletes multiple matching items when present 323s returns true when found 323s returns false when not found 323s returns false when called on an empty queue 323s deletes the requested item when it is "smaller" than the last element 323s #empty? 323s returns true for an empty queue 323s returns false for a populated queue 323s #include? 323s returns true if the item is found 323s returns false if the item is not found 323s returns false when the queue is empty 323s is aliased as #has_priority? 323s #length 323s returns the length of a populated queue 323s returns zero when the queue is empty 323s is aliased as #size 323s #peek 323s returns the item at the head of the queue 323s does not remove the item from the queue 323s returns nil when the queue is empty 323s #pop 323s returns the item at the head of the queue 323s removes the item from the queue 323s returns nil when the queue is empty 323s returns nil when called multiple times while empty 323s is aliased as #deq 323s is aliased as #shift 323s #push 323s raises an exception when attempting to enqueue nil 323s adds the item to the queue 323s sorts the new item in priority order 323s arbitrarily orders equal items with respect to each other 323s is expected to be truthy 323s is aliased as << 323s is aliased as enq 323s .from_list 323s creates an empty queue from an empty list 323s creates a sorted, populated queue from an Array 323s creates a sorted, populated queue from a Hash 323s 323s Concurrent::Collection::JavaNonConcurrentPriorityQueue 323s it should behave like priority_queue 323s #initialize 323s sorts from high to low when :order is :max 323s sorts from high to low when :order is :high 323s sorts from low to high when :order is :min 323s sorts from low to high when :order is :low 323s sorts from high to low by default 323s #clear 323s removes all items from a populated queue 323s has no effect on an empty queue 323s is expected to be truthy 323s #delete 323s deletes the requested item when found 323s deletes the requested item when it is the first element 323s deletes the requested item when it is the last element 323s deletes multiple matching items when present 323s returns true when found 323s returns false when not found 323s returns false when called on an empty queue 323s deletes the requested item when it is "smaller" than the last element 323s #empty? 323s returns true for an empty queue 323s returns false for a populated queue 323s #include? 323s returns true if the item is found 323s returns false if the item is not found 323s returns false when the queue is empty 323s is aliased as #has_priority? 323s #length 323s returns the length of a populated queue 323s returns zero when the queue is empty 323s is aliased as #size 323s #peek 323s returns the item at the head of the queue 323s does not remove the item from the queue 323s returns nil when the queue is empty 323s #pop 323s returns the item at the head of the queue 323s removes the item from the queue 323s returns nil when the queue is empty 323s returns nil when called multiple times while empty 323s is aliased as #deq 323s is aliased as #shift 323s #push 323s raises an exception when attempting to enqueue nil 323s adds the item to the queue 323s sorts the new item in priority order 323s arbitrarily orders equal items with respect to each other 323s is expected to be truthy 323s is aliased as << 323s is aliased as enq 323s .from_list 323s creates an empty queue from an empty list 323s creates a sorted, populated queue from an Array 323s creates a sorted, populated queue from a Hash 323s 323s Concurrent::Collection::NonConcurrentPriorityQueue 323s inherits from JavaNonConcurrentPriorityQueue 323s 323s Concurrent::Concern::Obligation 323s unscheduled 323s it should behave like incomplete 323s should be not completed 323s should be incomplete 323s #value 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s #value! 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s #no_error! 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s pending 323s it should behave like incomplete 323s should be not completed 323s should be incomplete 323s #value 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s #value! 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s #no_error! 323s should return immediately if timeout is zero 323s should block on the event if timeout is not set 323s should block on the event if timeout is not zero 323s fulfilled 323s should be completed 323s should be not incomplete 323s #value 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s #value! 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s #no_error! 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s rejected 323s should be completed 323s should be not incomplete 323s #value 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s #value! 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s #no_error! 323s should return immediately if timeout is zero 323s should return immediately if timeout is not set 323s should return immediately if timeout is not zero 323s #compare_and_set_state 323s unexpected state 323s should return false if state is not the expected one 323s should not change the state if current is not the expected one 323s expected state 323s should return true if state is the expected one 323s should not change the state if current is not the expected one 323s #if_state 323s should raise without block 323s should return false if state is not expected 323s should the block value if state is expected 323s should execute the block within the mutex 323s #get_arguments_from 323s returns an empty array when opts is not given 323s returns an empty array when opts is an empty hash 323s returns an empty array when there is no :args key 323s returns an empty array when the :args key has a nil value 323s returns a one-element array when the :args key has a non-array value 323s returns an array when when the :args key has an array value 323s returns the given array when the :args key has a complex array value 323s 323s Concurrent::Concern::Observable 323s does not initialize set by by default 323s uses the given observer set 323s delegates #add_observer 323s delegates #with_observer 323s delegates #delete_observer 323s delegates #delete_observers 323s delegates #count_observers 323s 323s configuration 323s global executors 323s creates a global timer set 323s creates a global fast executor 323s creates a global io executor 323s 323s dataflow 323s raises an exception when no block given 323s #dataflow uses the global fast executor 323s #dataflow_with uses the given executor 323s #dataflow_with raises an exception when no executor given 323s accepts zero or more dependencies 323s accepts uncompleted dependencies 323s accepts completed dependencies 323s raises an exception if any dependencies are not IVars 323s doesn't raise exceptions from dependencies, unless called with ! 323s returns a Future 323s does not schedule the Future 323s if no dependencies are completed 323s if one dependency of two is completed 323s schedules the Future when all dependencies are available 323s if there is just one 323s if there is more than one 323s counts already executed dependencies 323s if there is just one 323s if there is more than one 323s passes the values of dependencies into the block 323s if there is just one 323s if there is more than one 323s module function 323s can be called as Concurrent.dataflow and Concurrent.dataflow_with 323s 323s Concurrent::Delay 323s behavior 323s it should behave like dereferenceable 323s defaults :dup_on_deref to false 323s calls #dup when the :dup_on_deref option is true 323s defaults :freeze_on_deref to false 323s calls #freeze when the :freeze_on_deref option is true 323s defaults :copy_on_deref to nil 323s calls the block when the :copy_on_deref option is passed a proc 323s calls the :copy block first followed by #dup followed by #freeze 323s does not call #dup when #dup_on_deref is set and the value is nil 323s does not call #freeze when #freeze_on_deref is set and the value is nil 323s does not call the #copy_on_deref block when the value is nil 323s supports dereference flags with observers 323s it should behave like obligation 323s #state 323s is :pending when first created 323s is :fulfilled when the handler completes 323s is :rejected when the handler raises an exception 323s #value 323s returns nil when reaching the optional timeout value 323s returns immediately when timeout is zero 324s returns the value when fulfilled before timeout 324s returns nil when timeout reached 324s is nil when :pending 324s blocks the caller when :pending and timeout is nil 324s is nil when :rejected 324s is set to the return value of the block when :fulfilled 324s #reason 324s is nil when :pending 324s is nil when :fulfilled 324s is set to error object of the exception when :rejected 324s #initialize 324s sets the state to :pending 324s raises an exception when no block given 324s #reconfigure 324s returns value of block used in reconfiguration 324s returns false when process completed? 324s #value 324s does not call the block before #value is called 324s calls the block when #value is called 324s only calls the block once no matter how often #value is called 324s raises when called recursively 324s can be called twice 324s 324s Concurrent 324s Promises::Channel 324s #capacity 324s #to_s 324s #(try_)push(_op) 324s #(try_)pop(_op) 324s #(try_)pop(_op)_matching 324s #(try_)select(_op) 324s exchanging 324s integration 324s 324s Concurrent 324s ErlangActor 324s on thread 324s is expected to eq [:bad_message, -1] 324s behaves like erlang actor 324s run to termination 324s run to termination with arguments 324s #receive 324s pid has name 324s receives message 324s receives message with matchers 324s spawn(link: true) 324s termination 324s monitoring 324s (de)monitor 324s demonitor 324s demonitor should leave the down message in the inbox if it's already there 324s notifications 1 324s notifications 2 324s linking 324s links 324s unlinks 324s link dead 324s link dead when trapping 324s exit/1 when linked 324s 1 324s 2 324s 3 324s 4 324s 5 324s 6 325s 7 325s 8 325s 9 325s exit/2 when linked 325s 1 325s 2 325s 3 325s 4 325s 5 325s 6 325s 7 325s 8 325s 9 325s 10 325s 11 325s 12 325s 13 325s asking 325s replies 325s timing out (PENDING: flaky on truffleruby and jruby) 325s rejects on no reply 325s on pool 325s receives message repeatedly with keep 325s class defined 325s behaves like erlang actor 325s run to termination 325s run to termination with arguments 325s #receive 325s pid has name 325s receives message 325s receives message with matchers 325s spawn(link: true) 325s termination 325s monitoring 325s (de)monitor 325s demonitor 325s demonitor should leave the down message in the inbox if it's already there 325s notifications 1 325s notifications 2 325s linking 325s links 325s unlinks 325s link dead 325s link dead when trapping 325s exit/1 when linked 325s 1 325s 2 325s 3 325s 4 325s 5 325s 6 325s 7 325s 8 325s 9 325s exit/2 when linked 325s 1 325s 2 325s 3 325s 4 325s 5 325s 6 325s 7 325s 8 325s 9 325s 10 325s 11 325s 12 325s 13 325s asking 325s replies 325s timing out (PENDING: flaky on truffleruby and jruby) 325s rejects on no reply 325s 325s Concurrent::Edge::LockFreeLinkedSet 325s .new 325s when passed default val 325s uses the val arg as data for each node 325s #add 325s appends to the linked set 325s in a multi-threaded environment 326s adds the items to the set 326s #<< 326s appends to the linked set and returns self 326s returns self regardless of whether it was logically added 326s #contains? 326s when checking if set includes a value 326s returns true if a value exists 326s compares object using Object#hash 326s returns false for values not in the set 326s when set is empty 326s does not break 326s when set is long 326s does not break 326s in a multi-threaded environment 326s correctly check that the set contains the item 326s #remove 326s when item is inside of set 326s the item is no longer visible to the user 326s allows for the item to be added despite being physically present 326s in a multi-threaded environment 326s adds the items to the set 327s does not recognize the existence of the item when removed 327s when item is not inside of set 327s does not remove to value 327s the set remains intact 327s when the set is empty 327s remove does not break 327s when the set is large 327s remove successfully removes the node 327s 327s Concurrent::RubyExchanger 327s behaves like exchanger 327s #exchange 327s behaves like exchanger method with indefinite timeout 327s blocks indefinitely 327s receives the other value 327s can be reused 327s behaves like exchanger method with finite timeout 327s blocks until timeout 327s receives the other value 327s can be reused 327s behaves like exchanger method cross-thread interactions 327s when first, waits for a second 328s allows multiple firsts to cancel if necessary 328s #exchange! 328s behaves like exchanger method with indefinite timeout 328s blocks indefinitely 328s receives the other value 328s can be reused 328s behaves like exchanger method with finite timeout 328s blocks until timeout 328s receives the other value 328s can be reused 328s behaves like exchanger method cross-thread interactions 328s when first, waits for a second 328s allows multiple firsts to cancel if necessary 328s #try_exchange 328s behaves like exchanger method with indefinite timeout 328s blocks indefinitely 328s receives the other value 328s can be reused 328s behaves like exchanger method with finite timeout 328s blocks until timeout 328s receives the other value 328s can be reused 328s behaves like exchanger method cross-thread interactions 329s when first, waits for a second 329s allows multiple firsts to cancel if necessary 329s 329s Concurrent::JavaExchanger 329s behaves like exchanger 329s #exchange 329s behaves like exchanger method with indefinite timeout 329s blocks indefinitely 329s receives the other value 329s can be reused 329s behaves like exchanger method with finite timeout 329s blocks until timeout 329s receives the other value 329s can be reused 329s behaves like exchanger method cross-thread interactions 329s when first, waits for a second 330s allows multiple firsts to cancel if necessary 330s #exchange! 330s behaves like exchanger method with indefinite timeout 330s blocks indefinitely 330s receives the other value 330s can be reused 330s behaves like exchanger method with finite timeout 330s blocks until timeout 330s receives the other value 330s can be reused 330s behaves like exchanger method cross-thread interactions 330s when first, waits for a second 330s allows multiple firsts to cancel if necessary 330s #try_exchange 330s behaves like exchanger method with indefinite timeout 330s blocks indefinitely 330s receives the other value 330s can be reused 330s behaves like exchanger method with finite timeout 330s blocks until timeout 330s receives the other value 330s can be reused 330s behaves like exchanger method cross-thread interactions 331s when first, waits for a second 331s allows multiple firsts to cancel if necessary 331s 331s Concurrent::Exchanger 331s class hierarchy 331s inherits from JavaExchanger 331s 331s Concurrent::CachedThreadPool 331s it should behave like thread_pool 331s it should behave like executor_service 331s it should behave like global_thread_pool 331s #post 331s raises an exception if no block is given 331s returns true when the block is added to the queue 331s calls the block with the given arguments 331s aliases #<< 331s #post 332s rejects the block while shutting down 332s rejects the block once shutdown 332s auto terminate 335s does not stop shutdown 335s #running? 335s returns true when the thread pool is running 336s returns false when the thread pool is shutting down 336s returns false when the thread pool is shutdown 336s returns false when the thread pool is killed 336s #shuttingdown? 336s returns false when the thread pool is running 336s returns true when the thread pool is shutting down 336s returns false when the thread pool is shutdown 336s #shutdown? 336s returns false when the thread pool is running 337s returns false when the thread pool is shutting down 337s returns true when the thread pool is shutdown 337s #shutdown 337s stops accepting new tasks 337s allows in-progress tasks to complete 338s allows pending tasks to complete 338s #shutdown followed by #wait_for_termination 338s allows in-progress tasks to complete 338s allows pending tasks to complete 338s stops accepting/running new tasks 338s #kill 338s stops accepting new tasks 338s rejects all pending tasks 338s #wait_for_termination 338s immediately returns true when no operations are pending 338s returns true after shutdown has complete 339s returns true when shutdown successfully completes before timeout 339s returns false when shutdown fails to complete before timeout 340s waits forever when no timeout value is given 340s #auto_terminate? 340s returns true by default 340s returns true when :enable_at_exit_handler is true 340s returns false when :enable_at_exit_handler is false 340s #length 340s returns zero on creation 340s returns zero once shut down 340s #scheduled_task_count 340s returns zero on creation 340s returns the approximate number of tasks that have been post thus far 340s returns the approximate number of tasks that were post 340s #completed_task_count 340s returns zero on creation 340s #shutdown 341s allows threads to exit normally 341s #initialize 341s sets :max_length to DEFAULT_MAX_POOL_SIZE 341s sets :min_length to DEFAULT_MIN_POOL_SIZE 341s sets :idletime to DEFAULT_THREAD_IDLETIMEOUT 341s sets :max_queue to DEFAULT_MAX_QUEUE_SIZE 341s #min_length 341s returns zero on creation 341s returns zero while running 341s returns zero once shutdown 341s #max_length 341s returns :max_length on creation 341s returns :max_length while running 341s returns :max_length once shutdown 341s #largest_length 341s returns zero on creation 341s returns a non-zero number once tasks have been received 341s returns a non-zero number after shutdown if tasks have been received 341s #idletime 341s returns the thread idletime 341s runtime-specific implementation 341s #initialize 341s sets :fallback_policy correctly 341s defaults :fallback_policy to :abort 341s raises an exception if given an invalid :fallback_policy 341s stress 342s is expected to be <= 200 342s is expected to be <= 4 342s 342s Concurrent::FixedThreadPool 342s it should behave like thread_pool 342s it should behave like executor_service 342s it should behave like global_thread_pool 342s #post 342s raises an exception if no block is given 342s returns true when the block is added to the queue 342s calls the block with the given arguments 342s aliases #<< 342s #post 343s rejects the block while shutting down 343s rejects the block once shutdown 343s auto terminate 347s does not stop shutdown 347s #running? 347s returns true when the thread pool is running 347s returns false when the thread pool is shutting down 347s returns false when the thread pool is shutdown 347s returns false when the thread pool is killed 347s #shuttingdown? 347s returns false when the thread pool is running 348s returns true when the thread pool is shutting down 348s returns false when the thread pool is shutdown 348s #shutdown? 348s returns false when the thread pool is running 348s returns false when the thread pool is shutting down 348s returns true when the thread pool is shutdown 348s #shutdown 349s stops accepting new tasks 349s allows in-progress tasks to complete 349s allows pending tasks to complete 349s #shutdown followed by #wait_for_termination 349s allows in-progress tasks to complete 349s allows pending tasks to complete 349s stops accepting/running new tasks 349s #kill 350s stops accepting new tasks 350s rejects all pending tasks 350s #wait_for_termination 350s immediately returns true when no operations are pending 350s returns true after shutdown has complete 350s returns true when shutdown successfully completes before timeout 351s returns false when shutdown fails to complete before timeout 351s waits forever when no timeout value is given 351s #auto_terminate? 351s returns true by default 351s returns true when :enable_at_exit_handler is true 351s returns false when :enable_at_exit_handler is false 351s #length 351s returns zero on creation 351s returns zero once shut down 351s #scheduled_task_count 351s returns zero on creation 351s returns the approximate number of tasks that have been post thus far 351s returns the approximate number of tasks that were post 351s #completed_task_count 351s returns zero on creation 351s #shutdown 352s allows threads to exit normally 352s #initialize default values 352s defaults :min_length correctly 352s defaults :max_length correctly 352s defaults :fallback_policy to :abort 352s defaults :idletime correctly 352s defaults default :max_queue to zero 352s #initialize explicit values 352s raises an exception when the pool length is less than one 352s sets explicit :max_queue correctly 352s correctly sets valid :fallback_policy 352s correctly sets valid :idletime 352s raises an exception if given an invalid :fallback_policy 352s #min_length 352s returns :num_threads on creation 352s returns :num_threads while running 352s returns :num_threads once shutdown 352s #max_length 352s returns :num_threads on creation 352s returns :num_threads while running 352s returns :num_threads once shutdown 352s #length 352s returns :num_threads while running 352s #largest_length 352s returns zero on creation 352s returns :num_threads while running 352s returns :num_threads once shutdown 352s #kill 353s attempts to kill all in-progress tasks 353s worker creation and caching 353s never creates more than :num_threads threads 353s fallback policy 353s raises an error when overflow on abort 354s discards when fallback_policy is :discard 354s uses the calling thread for overflow under caller_runs 354s runtime-specific implementation 354s sets :fallback_policy correctly 354s 354s Concurrent::ImmediateExecutor 354s it should behave like executor_service 354s it should behave like global_thread_pool 354s #post 354s raises an exception if no block is given 354s returns true when the block is added to the queue 354s calls the block with the given arguments 354s aliases #<< 354s #post 355s rejects the block while shutting down 355s rejects the block once shutdown 355s auto terminate 359s does not stop shutdown 359s #running? 359s returns true when the thread pool is running 359s returns false when the thread pool is shutting down 359s returns false when the thread pool is shutdown 359s returns false when the thread pool is killed 359s #shuttingdown? 359s returns false when the thread pool is running 359s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 359s returns false when the thread pool is shutdown 359s #shutdown? 359s returns false when the thread pool is running 359s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 359s returns true when the thread pool is shutdown 359s #shutdown 359s stops accepting new tasks 360s allows in-progress tasks to complete 360s allows pending tasks to complete 360s #shutdown followed by #wait_for_termination 360s allows in-progress tasks to complete 361s allows pending tasks to complete 361s stops accepting/running new tasks 361s #kill 361s stops accepting new tasks 362s rejects all pending tasks 362s #wait_for_termination 362s immediately returns true when no operations are pending 362s returns true after shutdown has complete 363s returns true when shutdown successfully completes before timeout 363s returns false when shutdown fails to complete before timeout 363s waits forever when no timeout value is given 363s 363s Concurrent::IndirectImmediateExecutor 364s runs its tasks synchronously 364s runs the task on a separate thread 364s it should behave like executor_service 364s it should behave like global_thread_pool 364s #post 364s raises an exception if no block is given 364s returns true when the block is added to the queue 364s calls the block with the given arguments 364s aliases #<< 364s #post 365s rejects the block while shutting down 365s rejects the block once shutdown 365s auto terminate 368s does not stop shutdown 368s #running? 368s returns true when the thread pool is running 369s returns false when the thread pool is shutting down 369s returns false when the thread pool is shutdown 369s returns false when the thread pool is killed 369s #shuttingdown? 369s returns false when the thread pool is running 369s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 369s returns false when the thread pool is shutdown 369s #shutdown? 369s returns false when the thread pool is running 369s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 369s returns true when the thread pool is shutdown 369s #shutdown 369s stops accepting new tasks 369s allows in-progress tasks to complete 370s allows pending tasks to complete 370s #shutdown followed by #wait_for_termination 370s allows in-progress tasks to complete 370s allows pending tasks to complete 371s stops accepting/running new tasks 371s #kill 371s stops accepting new tasks 372s rejects all pending tasks 372s #wait_for_termination 372s immediately returns true when no operations are pending 372s returns true after shutdown has complete 373s returns true when shutdown successfully completes before timeout 373s returns false when shutdown fails to complete before timeout 373s waits forever when no timeout value is given 373s 373s Concurrent::JavaSingleThreadExecutor 373s it should behave like executor_service 373s it should behave like global_thread_pool 373s #post 373s raises an exception if no block is given 373s returns true when the block is added to the queue 373s calls the block with the given arguments 373s aliases #<< 373s #post 374s rejects the block while shutting down 374s rejects the block once shutdown 374s auto terminate 378s does not stop shutdown 378s #running? 378s returns true when the thread pool is running 379s returns false when the thread pool is shutting down 379s returns false when the thread pool is shutdown 379s returns false when the thread pool is killed 379s #shuttingdown? 379s returns false when the thread pool is running 379s returns true when the thread pool is shutting down 379s returns false when the thread pool is shutdown 379s #shutdown? 379s returns false when the thread pool is running 380s returns false when the thread pool is shutting down 380s returns true when the thread pool is shutdown 380s #shutdown 380s stops accepting new tasks 380s allows in-progress tasks to complete 380s allows pending tasks to complete 380s #shutdown followed by #wait_for_termination 380s allows in-progress tasks to complete 381s allows pending tasks to complete 381s stops accepting/running new tasks 381s #kill 381s stops accepting new tasks 382s rejects all pending tasks 382s #wait_for_termination 382s immediately returns true when no operations are pending 382s returns true after shutdown has complete 382s returns true when shutdown successfully completes before timeout 382s returns false when shutdown fails to complete before timeout 383s waits forever when no timeout value is given 383s 383s Concurrent::JavaThreadPoolExecutor 383s it should behave like thread_pool 383s it should behave like executor_service 383s it should behave like global_thread_pool 383s #post 383s raises an exception if no block is given 383s returns true when the block is added to the queue 383s calls the block with the given arguments 383s aliases #<< 383s #post 384s rejects the block while shutting down 384s rejects the block once shutdown 384s auto terminate 387s does not stop shutdown 387s #running? 387s returns true when the thread pool is running 388s returns false when the thread pool is shutting down 388s returns false when the thread pool is shutdown 388s returns false when the thread pool is killed 388s #shuttingdown? 388s returns false when the thread pool is running 388s returns true when the thread pool is shutting down 388s returns false when the thread pool is shutdown 388s #shutdown? 388s returns false when the thread pool is running 389s returns false when the thread pool is shutting down 389s returns true when the thread pool is shutdown 389s #shutdown 389s stops accepting new tasks 389s allows in-progress tasks to complete 389s allows pending tasks to complete 389s #shutdown followed by #wait_for_termination 389s allows in-progress tasks to complete 390s allows pending tasks to complete 390s stops accepting/running new tasks 390s #kill 390s stops accepting new tasks 390s rejects all pending tasks 390s #wait_for_termination 390s immediately returns true when no operations are pending 390s returns true after shutdown has complete 391s returns true when shutdown successfully completes before timeout 391s returns false when shutdown fails to complete before timeout 392s waits forever when no timeout value is given 392s #auto_terminate? 392s returns true by default 392s returns true when :enable_at_exit_handler is true 392s returns false when :enable_at_exit_handler is false 392s #length 392s returns zero on creation 392s returns zero once shut down 392s #scheduled_task_count 392s returns zero on creation 392s returns the approximate number of tasks that have been post thus far 392s returns the approximate number of tasks that were post 392s #completed_task_count 392s returns zero on creation 392s #shutdown 393s allows threads to exit normally 393s it should behave like thread_pool_executor 393s #initialize defaults 393s defaults :min_length to DEFAULT_MIN_POOL_SIZE 393s defaults :max_length to DEFAULT_MAX_POOL_SIZE 393s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 393s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 393s defaults :fallback_policy to :abort 393s defaults :name to nil 393s #initialize explicit values 393s sets :min_threads 393s sets :max_threads 393s sets :idletime 393s doesn't allow max_threads < min_threads 393s accepts all valid fallback policies 393s raises an exception if :max_threads is less than zero 393s raises an exception if :min_threads is less than zero 393s raises an exception if :max_threads greater than the max allowable 393s raises an exception if :max_threads is less than :min_threads 393s raises an exception if given an invalid :fallback_policy 393s sets :name 393s #max_queue 393s returns the set value on creation 393s returns the set value when running 393s returns the set value after stopping 393s #synchronous 393s cannot be set unless `max_queue` is zero 393s executes fallback policy once max_threads has been reached 393s #queue_length 393s returns zero on creation 393s returns zero when there are no enqueued tasks 393s returns the size of the queue when tasks are enqueued 393s returns zero when stopped 393s can never be greater than :max_queue 393s #remaining_capacity 393s returns -1 when :max_queue is set to zero 393s returns :max_length on creation 393s returns :max_length when stopped 393s #active_count 393s returns the number of threads that are actively executing tasks. 393s #fallback_policy 393s :abort 393s #post raises an error when the queue is at capacity 393s #<< raises an error when the queue is at capacity 393s #post raises an error when the executor is shutting down 393s #<< raises an error when the executor is shutting down 393s a #post task is never executed when the queue is at capacity 393s a #<< task is never executed when the queue is at capacity 393s :discard 393s a #post task is never executed when the queue is at capacity 393s a #<< task is never executed when the queue is at capacity 393s a #post task is never executed when the executor is shutting down 393s a #<< task is never executed when the executor is shutting down 393s #post returns false when the executor is shutting down 393s :caller_runs 393s #post does not create any new threads when the queue is at capacity 394s #<< executes the task on the current thread when the queue is at capacity 394s #post executes the task on the current thread when the queue is at capacity 394s #post executes the task on the current thread when the executor is shutting down 394s #<< executes the task on the current thread when the executor is shutting down 394s #post does not block other jobs running on the worker threads 394s prune 394s is a no-op, pruning is handled by the JVM 394s #overload_policy 394s :abort maps to AbortPolicy 394s :discard maps to DiscardPolicy 394s :caller_runs maps to CallerRunsPolicy 394s 394s Concurrent::RubySingleThreadExecutor 394s it should behave like executor_service 394s it should behave like global_thread_pool 394s #post 394s raises an exception if no block is given 394s returns true when the block is added to the queue 394s calls the block with the given arguments 394s aliases #<< 394s #post 395s rejects the block while shutting down 395s rejects the block once shutdown 395s auto terminate 399s does not stop shutdown 399s #running? 399s returns true when the thread pool is running 399s returns false when the thread pool is shutting down 399s returns false when the thread pool is shutdown 399s returns false when the thread pool is killed 399s #shuttingdown? 399s returns false when the thread pool is running 400s returns true when the thread pool is shutting down 400s returns false when the thread pool is shutdown 400s #shutdown? 400s returns false when the thread pool is running 400s returns false when the thread pool is shutting down 400s returns true when the thread pool is shutdown 400s #shutdown 400s stops accepting new tasks 401s allows in-progress tasks to complete 401s allows pending tasks to complete 401s #shutdown followed by #wait_for_termination 401s allows in-progress tasks to complete 402s allows pending tasks to complete 402s stops accepting/running new tasks 402s #kill 402s stops accepting new tasks 402s rejects all pending tasks 402s #wait_for_termination 402s immediately returns true when no operations are pending 402s returns true after shutdown has complete 403s returns true when shutdown successfully completes before timeout 403s returns false when shutdown fails to complete before timeout 403s waits forever when no timeout value is given 403s 403s Concurrent::RubyThreadPoolExecutor 403s it should behave like thread_pool 403s it should behave like executor_service 403s it should behave like global_thread_pool 403s #post 403s raises an exception if no block is given 403s returns true when the block is added to the queue 403s calls the block with the given arguments 403s aliases #<< 403s #post 404s rejects the block while shutting down 404s rejects the block once shutdown 404s auto terminate 408s does not stop shutdown 408s #running? 408s returns true when the thread pool is running 409s returns false when the thread pool is shutting down 409s returns false when the thread pool is shutdown 409s returns false when the thread pool is killed 409s #shuttingdown? 409s returns false when the thread pool is running 409s returns true when the thread pool is shutting down 409s returns false when the thread pool is shutdown 409s #shutdown? 409s returns false when the thread pool is running 410s returns false when the thread pool is shutting down 410s returns true when the thread pool is shutdown 410s #shutdown 410s stops accepting new tasks 410s allows in-progress tasks to complete 410s allows pending tasks to complete 410s #shutdown followed by #wait_for_termination 410s allows in-progress tasks to complete 410s allows pending tasks to complete 411s stops accepting/running new tasks 411s #kill 411s stops accepting new tasks 411s rejects all pending tasks 411s #wait_for_termination 411s immediately returns true when no operations are pending 411s returns true after shutdown has complete 412s returns true when shutdown successfully completes before timeout 412s returns false when shutdown fails to complete before timeout 412s waits forever when no timeout value is given 412s #auto_terminate? 412s returns true by default 412s returns true when :enable_at_exit_handler is true 412s returns false when :enable_at_exit_handler is false 412s #length 412s returns zero on creation 412s returns zero once shut down 412s #scheduled_task_count 412s returns zero on creation 412s returns the approximate number of tasks that have been post thus far 412s returns the approximate number of tasks that were post 412s #completed_task_count 412s returns zero on creation 412s #shutdown 413s allows threads to exit normally 413s it should behave like thread_pool_executor 413s #initialize defaults 413s defaults :min_length to DEFAULT_MIN_POOL_SIZE 413s defaults :max_length to DEFAULT_MAX_POOL_SIZE 413s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 413s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 413s defaults :fallback_policy to :abort 413s defaults :name to nil 413s #initialize explicit values 413s sets :min_threads 413s sets :max_threads 413s sets :idletime 413s doesn't allow max_threads < min_threads 413s accepts all valid fallback policies 413s raises an exception if :max_threads is less than zero 413s raises an exception if :min_threads is less than zero 413s raises an exception if :max_threads greater than the max allowable 413s raises an exception if :max_threads is less than :min_threads 413s raises an exception if given an invalid :fallback_policy 413s sets :name 413s #max_queue 413s returns the set value on creation 413s returns the set value when running 413s returns the set value after stopping 413s #synchronous 413s cannot be set unless `max_queue` is zero 413s executes fallback policy once max_threads has been reached 413s #queue_length 413s returns zero on creation 413s returns zero when there are no enqueued tasks 413s returns the size of the queue when tasks are enqueued 413s returns zero when stopped 413s can never be greater than :max_queue 413s #remaining_capacity 413s returns -1 when :max_queue is set to zero 413s returns :max_length on creation 414s returns :max_length when stopped 414s #active_count 414s returns the number of threads that are actively executing tasks. 414s #fallback_policy 414s :abort 414s #post raises an error when the queue is at capacity 414s #<< raises an error when the queue is at capacity 414s #post raises an error when the executor is shutting down 414s #<< raises an error when the executor is shutting down 414s a #post task is never executed when the queue is at capacity 414s a #<< task is never executed when the queue is at capacity 414s :discard 414s a #post task is never executed when the queue is at capacity 414s a #<< task is never executed when the queue is at capacity 414s a #post task is never executed when the executor is shutting down 414s a #<< task is never executed when the executor is shutting down 414s #post returns false when the executor is shutting down 414s :caller_runs 414s #post does not create any new threads when the queue is at capacity 414s #<< executes the task on the current thread when the queue is at capacity 414s #post executes the task on the current thread when the queue is at capacity 414s #post executes the task on the current thread when the executor is shutting down 414s #<< executes the task on the current thread when the executor is shutting down 414s #post does not block other jobs running on the worker threads 414s #remaining_capacity 414s returns :max_length when no tasks are enqueued 414s returns the remaining capacity when tasks are enqueued 414s threads naming 414s without pool name 414s sets counted name 414s with pool name 414s sets counted name 414s 414s Concurrent::SafeTaskExecutor 414s #execute 414s happy execution 414s should return success 414s should return task value 414s should return a nil reason 414s passes all arguments to #execute to the task 414s protectes #execute with a mutex 414s failing execution 414s should return false success 414s should return a nil value 414s should return the reason 414s rescues Exception when :rescue_exception is true 414s rescues StandardError when :rescue_exception is false 414s rescues StandardError by default 414s 414s Concurrent::SerializedExecutionDelegator 414s it should behave like executor_service 414s it should behave like global_thread_pool 414s #post 414s raises an exception if no block is given 414s returns true when the block is added to the queue 414s calls the block with the given arguments 414s aliases #<< 414s #post 415s rejects the block while shutting down 415s rejects the block once shutdown 415s auto terminate 419s does not stop shutdown 419s #running? 419s returns true when the thread pool is running 419s returns false when the thread pool is shutting down 419s returns false when the thread pool is shutdown 419s returns false when the thread pool is killed 419s #shuttingdown? 419s returns false when the thread pool is running 419s returns true when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 419s returns false when the thread pool is shutdown 419s #shutdown? 419s returns false when the thread pool is running 419s returns false when the thread pool is shutting down (PENDING: will never be in shuttingdown? state) 419s returns true when the thread pool is shutdown 419s #shutdown 420s stops accepting new tasks 420s allows in-progress tasks to complete 420s allows pending tasks to complete 420s #shutdown followed by #wait_for_termination 420s allows in-progress tasks to complete 421s allows pending tasks to complete 421s stops accepting/running new tasks 421s #kill 421s stops accepting new tasks 422s rejects all pending tasks 422s #wait_for_termination 422s immediately returns true when no operations are pending 422s returns true after shutdown has complete 423s returns true when shutdown successfully completes before timeout 423s returns false when shutdown fails to complete before timeout 424s waits forever when no timeout value is given 424s 424s Concurrent::SimpleExecutorService 424s it should behave like executor_service 424s it should behave like global_thread_pool 424s #post 424s raises an exception if no block is given 424s returns true when the block is added to the queue 424s calls the block with the given arguments 424s aliases #<< 424s #post 425s rejects the block while shutting down 425s rejects the block once shutdown 425s auto terminate 428s does not stop shutdown 428s #running? 428s returns true when the thread pool is running 429s returns false when the thread pool is shutting down 429s returns false when the thread pool is shutdown 429s returns false when the thread pool is killed 429s #shuttingdown? 429s returns false when the thread pool is running 429s returns true when the thread pool is shutting down 429s returns false when the thread pool is shutdown 429s #shutdown? 429s returns false when the thread pool is running 430s returns false when the thread pool is shutting down 430s returns true when the thread pool is shutdown 430s #shutdown 430s stops accepting new tasks 430s allows in-progress tasks to complete 431s allows pending tasks to complete 431s #shutdown followed by #wait_for_termination 431s allows in-progress tasks to complete 431s allows pending tasks to complete 431s stops accepting/running new tasks 431s #kill 431s stops accepting new tasks 431s rejects all pending tasks 431s #wait_for_termination 431s immediately returns true when no operations are pending 431s returns true after shutdown has complete 432s returns true when shutdown successfully completes before timeout 432s returns false when shutdown fails to complete before timeout 432s waits forever when no timeout value is given 432s #post 433s creates a new thread for a call without arguments 433s executes a call without arguments 433s creates a new thread for a call with arguments 433s executes a call with one argument 433s executes a call with multiple arguments 433s aliases #<< 433s SimpleExecutorService.post 433s creates a new thread for a call without arguments 433s executes a call without arguments 433s creates a new thread for a call with arguments 433s executes a call with one argument 433s executes a call with multiple arguments 433s aliases #<< 433s 433s Concurrent::SingleThreadExecutor 433s inherits from JavaSingleThreadExecutor 433s 433s Concurrent::ThreadPoolExecutor 433s inherits from JavaThreadPoolExecutor 433s 433s Concurrent::TimerSet 433s construction 433s uses the executor given at construction 433s uses the global io executor be default 433s #post 433s raises an exception when given a task with a delay less than zero 433s raises an exception when no block given 433s immediately posts a task when the delay is zero 433s execution 433s executes a given task when given an interval in seconds 433s returns an IVar when posting a task 433s executes a given task when given an interval in seconds, even if longer tasks have been scheduled 433s passes all arguments to the task on execution 433s does not execute tasks early 433s executes all tasks scheduled for the same time 433s executes tasks with different times in schedule order 433s executes tasks with different times in schedule time 434s continues to execute new tasks even after the queue is emptied 434s safely handles an executor raising RejectedExecutionError 434s resolution 434s sets the IVar value on success when delay is zero 434s sets the IVar value on success when given a delay 434s sets the IVar reason on failure when delay is zero 434s sets the IVar reason on failure when given a delay 434s task cancellation 434s fails to cancel the task once processing has begun 435s fails to cancel the task once processing is complete 435s cancels a pending task 435s returns false when not running 435s task rescheduling 435s raises an exception when given an invalid time 435s does not change the current schedule when given an invalid time 435s reschdules a pending and unpost task when given a valid time 435s returns false once the task has been post to the executor 435s returns false once the task is processing 435s returns false once the task has is complete 435s returns false when not running 435s task resetting 435s calls #reschedule with the original delay 435s termination 435s cancels all pending tasks on #shutdown 435s cancels all pending tasks on #kill 435s stops the monitor thread on #shutdown 435s kills the monitor thread on #kill 435s rejects tasks once shutdown 435s rejects tasks once killed 435s #wait_for_termination returns true if shutdown completes before timeout 435s #wait_for_termination returns false on timeout 435s state 435s is running? when first created 435s is running? after tasks have been post 435s is shutdown? after shutdown completes 435s is shutdown? after being killed 435s 435s Concurrent::WrappingExecutor 435s is expected to be a kind of Concurrent::WrappingExecutor 435s is expected to respond to #post 435s is expected to respond to #can_overflow? 435s is expected to respond to #serialized? 435s #post 435s with passthrough wrapper 435s is expected to equal # 435s with wrapper modifying args 435s is expected to equal # 435s with wrapper modifying task 435s is expected to equal # 435s 435s Concurrent::Future 435s it should behave like ivar 435s it should behave like obligation 435s #state 435s is :pending when first created 435s is :fulfilled when the handler completes 435s is :rejected when the handler raises an exception 435s #value 435s returns nil when reaching the optional timeout value 435s returns immediately when timeout is zero 440s returns the value when fulfilled before timeout 440s returns nil when timeout reached 440s is nil when :pending 445s blocks the caller when :pending and timeout is nil 445s is nil when :rejected 445s is set to the return value of the block when :fulfilled 445s #reason 445s is nil when :pending 445s is nil when :fulfilled 445s is set to error object of the exception when :rejected 445s it should behave like dereferenceable 445s defaults :dup_on_deref to false 446s calls #dup when the :dup_on_deref option is true 446s defaults :freeze_on_deref to false 446s calls #freeze when the :freeze_on_deref option is true 446s defaults :copy_on_deref to nil 447s calls the block when the :copy_on_deref option is passed a proc 447s calls the :copy block first followed by #dup followed by #freeze 447s does not call #dup when #dup_on_deref is set and the value is nil 447s does not call #freeze when #freeze_on_deref is set and the value is nil 447s does not call the #copy_on_deref block when the value is nil 447s supports dereference flags with observers 447s it should behave like observable 447s #add_observer 447s adds an observer if called before first notification 447s adds an observer with :func if called before first notification 447s creates an observer from a block if called before first notification 447s raises an exception if not given an observer or a block 447s raises an exception when given both an observer and a block 447s #delete_observer 447s deletes the given observer if called before first notification 447s returns the removed observer if found in the observer set 447s returns the given observer even when not found in the observer set 447s #delete_observers 447s deletes all observers when called before first notification 447s returns self 447s #count_observers 447s returns zero for a new observable object 447s returns a count of registered observers if called before first notification 447s returns zero after #delete_observers has been called 447s first notification 447s calls the #update method on all observers without a specified :func 447s calls the appropriate function on all observers which specified a :func 448s calls the proc for all observers added as a block 449s does not notify any observers removed with #delete_observer 450s does not notify any observers after #delete_observers called 450s initialization 450s sets the state to incomplete 450s #set 450s sets the state to be fulfilled 450s sets the value 450s raises an exception if set more than once 450s returns self 450s fulfils when given a block which executes successfully 450s rejects when given a block which raises an exception 450s raises an exception when given a value and a block 450s raises an exception when given neither a value nor a block 450s #fail 450s sets the state to be rejected 450s sets the value to be nil 450s sets the reason to the given exception 450s raises an exception if set more than once 450s defaults the reason to a StandardError 450s returns self 450s #try_set 450s when unset 450s assigns the value 450s assigns the block result 450s returns true 450s when fulfilled 450s does not assign the value 450s does not assign the block result 450s returns false 450s when rejected 450s does not assign the value 450s does not assign the block result 450s has a nil value 450s returns false 450s it should behave like thread_arguments 450s passes an empty array when opts is not given 450s passes an empty array when opts is an empty hash 450s passes an empty array when there is no :args key 450s passes an empty array when the :args key has a nil value 450s passes a one-element array when the :args key has a non-array value 450s passes an array when when the :args key has an array value 450s passes the given array when the :args key has a complex array value 450s allows the given arguments array to be dereferenced 450s #initialize 450s sets the state to :unscheduled 450s raises an exception when no block given 450s uses the executor given with the :executor option 450s uses the global io executor by default 450s instance #execute 450s does nothing unless the state is :unscheduled 450s posts the block given on construction 450s sets the state to :pending 450s returns self 450s class #execute 450s creates a new Future 450s passes the block to the new Future 450s calls #execute on the new Future 450s fulfillment 450s sets the state to :processing while the task is executing 450s passes all arguments to handler 450s sets the value to the result of the handler 450s sets the state to :fulfilled when the block completes 450s sets the value to nil when the handler raises an exception 450s sets the value to nil when the handler raises Exception 450s sets the reason to the Exception instance when the handler raises Exception 450s sets the state to :rejected when the handler raises an exception 450s aliases 450s aliases #realized? for #fulfilled? 450s aliases #deref for #value 450s cancellation 450s #cancel 450s fails to cancel the task once processing has begun 450s fails to cancel the task once processing is complete 450s cancels a pending task 450s #wait_or_cancel 450s returns true if the operation completes before timeout 450s cancels the task on timeout 450s observation 450s notifies all observers on fulfillment 450s notifies all observers on rejection 450s notifies an observer added after fulfillment 450s notifies an observer added after rejection 450s does not notify existing observers when a new observer added after fulfillment 450s does not notify existing observers when a new observer added after rejection 450s deadlock avoidance 450s should notify observers outside mutex lock 450s should notify a new observer added after fulfillment outside lock 450s 450s Concurrent::Hash 450s .[] 450s when initializing with no arguments 450s is expected to be empty 450s when initializing with an even number of arguments 450s creates a hash using the odd position arguments as keys and even position arguments as values 450s when initializing with an array of pairs 450s creates a hash using each pair as a (key, value) pair 450s when initializing with another hash as an argument 450s creates a new hash 450s creates a hash with the same contents as the other hash 450s creates a hash with the results of calling #to_hash on the other array 450s .new 450s when initializing with no arguments 450s is expected to be empty 450s when initialized with a default object 450s uses the default object for non-existing keys 450s when initialized with a block 450s calls the block for non-existing keys 450s returns the results of calling the block for non-existing key 450s concurrency 450s is expected to be empty 450s 450s Concurrent::ImmutableStruct 450s it should behave like struct 450s definition 450s registers the class when given a class name 450s registers the class when given a class name which is defined in the ancestors 450s creates an anonymous class when given at least one member 450s raises an exception when given an invalid class name 450s defines a getter for each member 450s raises an exception when given no members 450s raise an exception when given an invalid member 450s evalues a given block against the new class 450s construction 450s sets all absent members to nil 450s sets all given members in order 450s raises an exception when extra members are given 450s properties 450s #length 450s returns the number of struct members 450s #members 450s returns the struct members as an array of symbols 450s returns a different object than the array passed at definition 450s #size 450s returns the number of struct members 450s #values 450s returns the values of the struct as an array in order 450s #values_at 450s returns the value at the given offset 450s returns the values at multiple given offsets 450s returns values at offsets in a given range 450s returns values for multiple ranges 450s returns values for ranges and offsets 450s accessors 450s #[member] 450s retrieves the value when given a valid symbol member 450s retrieves the value when given a valid string member 450s raises an exception when given a non-existent symbol member 450s raises an exception when given a non-existent string member 450s #[index] 450s retrieves the value when given a valid index 450s raises an exception when given an out-of-bound index 450s comparison 450s #== 450s returns true if other has same struct subclass and equal values 450s returns false if other has different struct subclass 450s returns false if other has different values 450s #!= 450s returns false if other has same struct subclass and equal values 450s returns true if other has different struct subclass 450s returns true if other has different values 450s enumeration 450s #each 450s yields the value of each struct member in order 450s returns an enumerator when no block is given 450s #each_pair 450s yields the name and value of each struct member in order 450s returns an enumerator when no block is given 450s #select 450s yields each value 450s returns an Array with the values from for which the block returns true 450s returns an enumerator when no block is given 450s conversion 450s #to_s 450s includes the name of the class when registered 450s includes the names of all members 450s includes all values 450s returns the same string as #inspect 450s #to_a 450s returns the to_a for this struct as an array 450s #to_h 450s returns a Hash containing the names and values in order 450s copy 450s #dup 450s shallowly duplicates all members along with the struct 450s discards frozen state of the struct 450s retains frozen state of members 450s discards singleton class 450s copies the singleton class of members 450s #clone 451s shallowly clones all members along with the struct 451s retains frozen state 451s copies the singleton class 451s copies the singleton class of members 451s it should behave like mergeable_struct 451s #merge 451s updates all members with the new values from a given hash 451s calls the given block for each key in `other` 451s retains the value for all members not without values in the given hash 451s raises an exception when given a hash with members not in the struct 451s returns a new object 451s 451s Concurrent::IVar 451s it should behave like ivar 451s it should behave like obligation 451s #state 451s is :pending when first created 451s is :fulfilled when the handler completes 451s is :rejected when the handler raises an exception 451s #value 451s returns nil when reaching the optional timeout value 451s returns immediately when timeout is zero 451s returns the value when fulfilled before timeout 451s returns nil when timeout reached 451s is nil when :pending 451s blocks the caller when :pending and timeout is nil 451s is nil when :rejected 451s is set to the return value of the block when :fulfilled 451s #reason 451s is nil when :pending 451s is nil when :fulfilled 451s is set to error object of the exception when :rejected 451s it should behave like dereferenceable 451s defaults :dup_on_deref to false 451s calls #dup when the :dup_on_deref option is true 451s defaults :freeze_on_deref to false 451s calls #freeze when the :freeze_on_deref option is true 451s defaults :copy_on_deref to nil 451s calls the block when the :copy_on_deref option is passed a proc 451s calls the :copy block first followed by #dup followed by #freeze 451s does not call #dup when #dup_on_deref is set and the value is nil 451s does not call #freeze when #freeze_on_deref is set and the value is nil 451s does not call the #copy_on_deref block when the value is nil 451s supports dereference flags with observers 451s it should behave like observable 451s #add_observer 451s adds an observer if called before first notification 451s adds an observer with :func if called before first notification 451s creates an observer from a block if called before first notification 451s raises an exception if not given an observer or a block 451s raises an exception when given both an observer and a block 451s #delete_observer 451s deletes the given observer if called before first notification 451s returns the removed observer if found in the observer set 451s returns the given observer even when not found in the observer set 451s #delete_observers 451s deletes all observers when called before first notification 451s returns self 451s #count_observers 451s returns zero for a new observable object 451s returns a count of registered observers if called before first notification 451s returns zero after #delete_observers has been called 451s first notification 451s calls the #update method on all observers without a specified :func 451s calls the appropriate function on all observers which specified a :func 451s calls the proc for all observers added as a block 452s does not notify any observers removed with #delete_observer 453s does not notify any observers after #delete_observers called 453s initialization 453s sets the state to incomplete 453s #set 453s sets the state to be fulfilled 453s sets the value 453s raises an exception if set more than once 453s returns self 453s fulfils when given a block which executes successfully 453s rejects when given a block which raises an exception 453s raises an exception when given a value and a block 453s raises an exception when given neither a value nor a block 453s #fail 453s sets the state to be rejected 453s sets the value to be nil 453s sets the reason to the given exception 453s raises an exception if set more than once 453s defaults the reason to a StandardError 453s returns self 453s #try_set 453s when unset 453s assigns the value 453s assigns the block result 453s returns true 453s when fulfilled 453s does not assign the value 453s does not assign the block result 453s returns false 453s when rejected 453s does not assign the value 453s does not assign the block result 453s has a nil value 453s returns false 453s #initialize 453s does not have to set an initial value 453s does not set an initial value if you pass NULL 453s can set an initial value 453s can set an initial value with a block 453s raises an exception if given both a value and a block 453s observation 453s notifies all observers on #set 453s deadlock avoidance 453s should notify observers outside mutex lock 453s should notify a new observer added after fulfillment outside lock 453s 453s Concurrent::LazyRegister 453s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 453s 453s Concurrent::Map 453s default_proc is called with the Concurrent::Map and the key 453s default_proc is called with the Concurrent::Map and the key after #dup 453s concurrency 453s retrieval 453s #put_if_absent 453s updates dont block reads 453s collision resistance 463s collision resistance with arrays 463s #replace_pair 463s #replace_if_exists 463s #get_and_set 463s #key 463s #key? 463s #value? 463s #delete 463s #delete_pair 463s default proc 463s falsy default proc 463s #clear 463s #keys 463s #values 463s #each_key 463s #each_value 463s #empty 463s options validation 463s initial capacity options validation 463s load factor options validation 463s #size 463s #get_or_default 463s #dup,#clone 463s is unfreezable 463s marshal dump load 463s marshal dump does not work with default proc 463s #inspect 463s #compute_if_absent 463s works in default_proc 463s common 463s with return 463s exception 464s atomicity 464s #compute_if_present 464s common 464s with return 464s exception 464s #compute 464s common 464s with return 464s exception 464s #merge_pair 464s common 464s with return 464s exception 464s #fetch 464s common 464s falsy 464s with return 464s #fetch_or_store 464s common 464s falsy 464s with return 464s #each_pair 464s it should behave like collection_each 464s common 464s pair iterator 464s allows modification 464s when no block is given 464s returns an enumerator 464s returns an object which is enumerable 464s #each 464s it should behave like collection_each 464s common 464s pair iterator 464s allows modification 464s when no block is given 464s returns an enumerator 464s returns an object which is enumerable 464s 464s Concurrent::Maybe 464s construction 464s hides Maybe.new 464s Maybe.from 464s raises an exception when no block is given 464s passes all arguments to the block 464s creates a Just Maybe on success 464s sets the value to the block result on success 464s creates a Nothing Maybe on exception 464s sets the reason to the error object on exception 464s Maybe.just 464s creates a new Just Maybe 464s Maybe.nothing 464s creates a new Nothing Maybe 464s uses the given Error object 464s creates a new error object with the given string 464s creates a new error object when given nothing 464s when just 464s #just? returns true 464s #fulfilled? returns true 464s #nothing? returns false 464s #rejected? returns false 464s #just returns the value 464s #value returns the value 464s #nothing returns NONE 464s #reason returns NONE 464s when nothing 464s #just? returns false 464s #fulfilled? returns false 464s #nothing? returns true 464s #rejected? returns true 464s #just returns NONE 464s #value returns NONE 464s #nothing returns the raised error 464s #reason returns the raised error 464s comparison 464s something is not equal to nothing 464s nothing is equal to nothing 464s something is equal to the same value 464s something is not equal to a different value 464s something is greater than a smaller value 464s something is less than a bigger value 464s nothing is not less than nothing 464s nothing is not greater than nothing 464s #or 464s returns the value when something 464s returns the other when nothing 464s 464s monotonic_time 464s behavior 464s returns seconds as float 464s returns a Float when unit = :float_second 464s returns a Float when unit = :float_millisecond 464s returns a Float when unit = :float_microsecond 464s returns an Integer when unit = :second 464s returns an Integer when unit = :millisecond 464s returns an Integer when unit = :microsecond 464s returns an Integer when unit = :nanosecond 464s raises ArgumentError on unknown units 464s 464s Concurrent::MutableStruct 464s it should behave like struct 464s definition 464s registers the class when given a class name 464s registers the class when given a class name which is defined in the ancestors 464s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 464s creates an anonymous class when given at least one member 464s raises an exception when given an invalid class name 464s defines a getter for each member 464s raises an exception when given no members 464s raise an exception when given an invalid member 464s evalues a given block against the new class 464s construction 464s sets all absent members to nil 464s sets all given members in order 464s raises an exception when extra members are given 464s properties 464s #length 464s returns the number of struct members 464s #members 464s returns the struct members as an array of symbols 464s returns a different object than the array passed at definition 464s #size 464s returns the number of struct members 464s #values 464s returns the values of the struct as an array in order 464s #values_at 464s returns the value at the given offset 464s returns the values at multiple given offsets 464s returns values at offsets in a given range 464s returns values for multiple ranges 464s returns values for ranges and offsets 464s accessors 464s #[member] 464s retrieves the value when given a valid symbol member 464s retrieves the value when given a valid string member 464s raises an exception when given a non-existent symbol member 464s raises an exception when given a non-existent string member 464s #[index] 464s retrieves the value when given a valid index 464s raises an exception when given an out-of-bound index 464s comparison 464s #== 464s returns true if other has same struct subclass and equal values 464s returns false if other has different struct subclass 464s returns false if other has different values 464s #!= 464s returns false if other has same struct subclass and equal values 464s returns true if other has different struct subclass 464s returns true if other has different values 464s enumeration 464s #each 464s yields the value of each struct member in order 464s returns an enumerator when no block is given 464s #each_pair 464s yields the name and value of each struct member in order 464s returns an enumerator when no block is given 464s #select 464s yields each value 464s returns an Array with the values from for which the block returns true 464s returns an enumerator when no block is given 464s conversion 464s #to_s 464s includes the name of the class when registered 464s includes the names of all members 464s includes all values 464s returns the same string as #inspect 464s #to_a 464s returns the to_a for this struct as an array 464s #to_h 464s returns a Hash containing the names and values in order 464s copy 464s #dup 464s shallowly duplicates all members along with the struct 464s discards frozen state of the struct 464s retains frozen state of members 464s discards singleton class 464s copies the singleton class of members 464s #clone 464s shallowly clones all members along with the struct 464s retains frozen state 464s copies the singleton class 464s copies the singleton class of members 464s it should behave like mergeable_struct 464s #merge 464s updates all members with the new values from a given hash 464s calls the given block for each key in `other` 464s retains the value for all members not without values in the given hash 464s raises an exception when given a hash with members not in the struct 464s returns a new object 464s definition 464s defines a setter for each member 464s #[member]= 464s sets the value when given a valid symbol member 464s sets the value when given a valid string member 464s raises an exception when given a non-existent symbol member 464s raises an exception when given a non-existent string member 464s #[index]= 464s sets the value when given a valid index 464s raises an exception when given an out-of-bound index 464s synchronization 464s protects #values 464s protects #values_at 464s protects #[index] 464s protects #[member] 464s protects getter methods 464s protects #[index]= 464s protects #[member]= 464s protects getter methods 464s protects #to_s 464s protects #inspect 464s protects #merge 464s protects #to_h 464s protects #== 464s protects #each 464s protects #each_pair 464s protects #select 464s protects #initialize_copy 464s copy 464s #dup 464s mutates only the copy 464s #clone 464s mutates only the copy 464s 464s Concurrent::MVar 464s behavior 464s it should behave like dereferenceable 464s defaults :dup_on_deref to false 464s calls #dup when the :dup_on_deref option is true 464s defaults :freeze_on_deref to false 464s calls #freeze when the :freeze_on_deref option is true 464s defaults :copy_on_deref to nil 464s calls the block when the :copy_on_deref option is passed a proc 464s calls the :copy block first followed by #dup followed by #freeze 464s does not call #dup when #dup_on_deref is set and the value is nil 464s does not call #freeze when #freeze_on_deref is set and the value is nil 464s does not call the #copy_on_deref block when the value is nil 464s supports dereference flags with observers 464s #initialize 464s accepts no initial value 464s accepts an empty initial value 464s accepts an initial value 464s accepts a nil initial value 464s #take 464s sets the MVar to empty 464s returns the value on a full MVar 464s waits for another thread to #put 464s returns TIMEOUT on timeout on an empty MVar 464s #borrow 464s /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 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:101 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 464s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 464s require at org/jruby/RubyKernel.java:1184 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 464s Concurrent at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/mvar_spec.rb:78 464s instance_exec at org/jruby/RubyBasicObject.java:2620 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 464s map at org/jruby/RubyArray.java:2803 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s map at org/jruby/RubyArray.java:2803 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 464s map at org/jruby/RubyArray.java:2803 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 464s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 464s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 464s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 464s
at /usr/bin/rspec:4 464s 464s /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 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:149 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 464s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 464s require at org/jruby/RubyKernel.java:1184 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 464s Concurrent at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/mvar_spec.rb:78 464s instance_exec at org/jruby/RubyBasicObject.java:2620 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 464s map at org/jruby/RubyArray.java:2803 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s map at org/jruby/RubyArray.java:2803 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 464s map at org/jruby/RubyArray.java:2803 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 464s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 464s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 464s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 464s
at /usr/bin/rspec:4 464s 464s /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 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:296 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 464s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 464s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 464s require at org/jruby/RubyKernel.java:1184 464s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 464s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 464s Concurrent at /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/mvar_spec.rb:78 464s instance_exec at org/jruby/RubyBasicObject.java:2620 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 464s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 464s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 464s map at org/jruby/RubyArray.java:2803 464s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s map at org/jruby/RubyArray.java:2803 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 464s map at org/jruby/RubyArray.java:2803 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 464s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 464s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 464s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 464s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 464s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 464s
at /usr/bin/rspec:4 464s 464s yields current value to the block and puts back value 464s puts back value even if an exception is raised 464s returns the returned value of the block 464s returns TIMEOUT on timeout on an empty MVar 464s #put 464s sets the MVar to be empty 464s sets a new value on an empty MVar 464s waits for another thread to #take 465s returns TIMEOUT on timeout on a full MVar 465s returns the value 465s #empty? 465s returns true on an empty MVar 465s returns false on a full MVar 465s #full? 465s returns false on an empty MVar 465s returns true on a full MVar 465s #modify 465s raises an exception when no block given 465s modifies a full MVar 465s returns the unmodified value 465s waits for another thread to #put 466s is atomic 466s returns TIMEOUT on timeout on an empty MVar 466s #try_put! 466s returns true an empty MVar 466s returns false on a full MVar 466s sets an empty MVar to be full 466s #try_take! 466s returns EMPTY an empty MVar 466s returns the value on a full MVar 466s sets a full MVar to be empty 466s #set! 466s sets an empty MVar to be full 466s sets a full MVar to be full 466s returns EMPTY on an empty MVar 466s returns the original value on a full MVar 466s #modify! 466s raises an exception when no block given 466s modifies a full MVar 466s modifies an empty MVar 466s can be used to set a full MVar to empty 466s can be used to set an empty MVar to empty 466s returns the unmodified value 466s spurious wake ups 466s #take 466s waits for another thread to #put 467s returns TIMEOUT on timeout on an empty MVar 467s #modify 467s waits for another thread to #put 468s returns TIMEOUT on timeout on an empty MVar 468s #put 468s waits for another thread to #take 468s returns TIMEOUT on timeout on a full MVar 468s 468s Concurrent::Options 468s .executor_from_options 468s returns the given :executor 468s returns the global io executor when :executor is :io 468s returns the global fast executor when :executor is :fast 468s returns an immediate executor when :executor is :immediate 468s raises an exception when :executor is an unrecognized symbol 468s 468s Concurrent::ProcessingActor 469s is expected to eq "ab" 469s 469s Concurrent::Promise 469s it should behave like ivar 469s it should behave like obligation 469s #state 469s is :pending when first created 469s is :fulfilled when the handler completes 469s is :rejected when the handler raises an exception 469s #value 469s returns nil when reaching the optional timeout value 469s returns immediately when timeout is zero 474s returns the value when fulfilled before timeout 474s returns nil when timeout reached 474s is nil when :pending 479s blocks the caller when :pending and timeout is nil 479s is nil when :rejected 479s is set to the return value of the block when :fulfilled 479s #reason 479s is nil when :pending 479s is nil when :fulfilled 479s is set to error object of the exception when :rejected 479s it should behave like dereferenceable 479s defaults :dup_on_deref to false 479s calls #dup when the :dup_on_deref option is true 479s defaults :freeze_on_deref to false 480s calls #freeze when the :freeze_on_deref option is true 480s defaults :copy_on_deref to nil 480s calls the block when the :copy_on_deref option is passed a proc 480s calls the :copy block first followed by #dup followed by #freeze 480s does not call #dup when #dup_on_deref is set and the value is nil 480s does not call #freeze when #freeze_on_deref is set and the value is nil 481s does not call the #copy_on_deref block when the value is nil 481s supports dereference flags with observers 481s it should behave like observable 481s #add_observer 481s adds an observer if called before first notification 481s adds an observer with :func if called before first notification 481s creates an observer from a block if called before first notification 481s raises an exception if not given an observer or a block 481s raises an exception when given both an observer and a block 481s #delete_observer 481s deletes the given observer if called before first notification 481s returns the removed observer if found in the observer set 481s returns the given observer even when not found in the observer set 481s #delete_observers 481s deletes all observers when called before first notification 481s returns self 481s #count_observers 481s returns zero for a new observable object 481s returns a count of registered observers if called before first notification 481s returns zero after #delete_observers has been called 481s first notification 481s calls the #update method on all observers without a specified :func 481s calls the appropriate function on all observers which specified a :func 481s calls the proc for all observers added as a block 482s does not notify any observers removed with #delete_observer 483s does not notify any observers after #delete_observers called 483s initialization 483s sets the state to incomplete 483s #set 483s sets the state to be fulfilled 483s sets the value 483s raises an exception if set more than once 483s returns self 483s fulfils when given a block which executes successfully 483s rejects when given a block which raises an exception 483s raises an exception when given a value and a block 483s raises an exception when given neither a value nor a block 483s #fail 483s sets the state to be rejected 483s sets the value to be nil 483s sets the reason to the given exception 483s raises an exception if set more than once 483s defaults the reason to a StandardError 483s returns self 483s #try_set 483s when unset 483s assigns the value 483s assigns the block result 483s returns true 483s when fulfilled 483s does not assign the value 483s does not assign the block result 483s returns false 483s when rejected 483s does not assign the value 483s does not assign the block result 483s has a nil value 483s returns false 483s it should behave like thread_arguments 483s passes an empty array when opts is not given 483s passes an empty array when opts is an empty hash 483s passes an empty array when there is no :args key 483s passes an empty array when the :args key has a nil value 483s passes a one-element array when the :args key has a non-array value 483s passes an array when when the :args key has an array value 483s passes the given array when the :args key has a complex array value 483s allows the given arguments array to be dereferenced 483s initializers 483s .fulfill 483s should return a Promise 483s should return a fulfilled Promise 483s should return a Promise with set value 483s .reject 483s should return a Promise 483s should return a rejected Promise 483s should return a Promise with set reason 483s .new 483s should return an unscheduled Promise 483s .execute 483s creates a new Promise 483s passes the block to the new Promise 483s calls #execute on the new Promise 483s #execute 483s unscheduled 484s sets the promise to :pending 484s posts the block given in construction 484s pending 484s sets the promise to :pending 484s does not post again 484s with children 484s when called on the root 485s should set all promises to :pending 485s when called on a child 486s should set all promises to :pending 486s when called on child after parent completes 486s sets state to :pending immediately 486s #then 486s returns a new promise when a block is passed 486s returns a new promise when a rescuer is passed 486s returns a new promise when a block and rescuer are passed 486s returns a new promise when a block, rescuer and executor are passed 486s supports setting the executor using a named parameter 486s should have block or rescuers 486s can be called more than once 486s unscheduled 486s returns a new promise 486s returns an unscheduled promise 486s pending 486s returns a new promise 486s returns a pending promise 486s fulfilled 486s returns a new Promise 486s notifies fulfillment to new child 486s rejected 486s returns a new Promise when :rejected 486s notifies rejection to new child 486s on_success 486s should have a block 486s returns a new promise 486s #rescue 486s returns a new promise 486s #flat_map 486s returns a promise 486s succeeds if both promises succeed 486s fails if the left promise fails 486s fails if the right promise fails 486s fails if the generating block fails 486s #zip 486s executes the returned Promise by default 486s executes the returned Promise when execute is true 486s does not execute the returned Promise when execute is false 486s allows setting executor for Promise chain 486s yields the results as an array 486s fails if one component fails 487s preserves ordering of the executed promises 487s .zip 487s executes the returned Promise by default 487s executes the returned Promise when execute is true 487s does not execute the returned Promise when execute is false 487s allows setting executor for Promise chain 487s yields the results as an array 487s fails if one component fails 487s preserves ordering of the executed promises 487s aggregators 487s .all? 487s returns a new Promise 487s does not execute the returned Promise 487s executes the #then condition when all components succeed 487s executes the #then condition when no promises are given 487s executes the #rescue handler if even one component fails 487s .any? 487s returns a new Promise 487s does not execute the returned Promise 487s executes the #then condition when any components succeed 487s executes the #then condition when no promises are given 487s executes the #rescue handler if all componenst fail 487s fulfillment 487s passes the result of each block to all its children 487s sets the promise value to the result if its block 487s sets the promise state to :fulfilled if the block completes 487s passes the last result through when a promise has no block 487s uses result as fulfillment value when a promise has no block 487s can manage long chain 487s #set 487s #can only be called on the root promise 487s triggers children 487s can be called with a block 487s #fail 487s can only be called on the root promise 487s rejects children 487s rejection 487s passes the reason to all its children 487s sets the promise value to the result if its block 487s sets the promise state to :rejected if the block completes 487s uses reason as rejection reason when a promise has no rescue callable 487s rejects on Exception 487s aliases 487s aliases #realized? for #fulfilled? 487s aliases #deref for #value 487s aliases #catch for #rescue 487s aliases #on_error for #rescue 487s 487s Concurrent::Promises 487s zip_futures_over 487s chain_resolvable 487s event 487s future 487s .future 487s executes 487s executes with args 487s .delay 487s is expected to eq 2 487s .schedule 487s scheduled execution 487s scheduled execution in graph 487s .event 487s is expected to equal true 487s .future without block 487s is expected to eq 0 487s .any_resolved 487s continues on first result 487s .any_fulfilled 487s continues on first result 487s treats a resolved Event as a fulfilled Future 487s treats a pending Event as a pending Future 487s .zip 487s waits for all results 487s when a future raises an error 487s raises a concurrent error 487s when deeply nested 487s raises the original error 487s .zip_events 487s waits for all and returns event 487s .rejected_future 487s raises the correct error when passed an unraised error 487s Future 487s has sync and async callbacks 487s wait supports setting timeout 487s wait! supports setting timeout 487s value supports setting timeout 487s value! supports setting timeout 487s reason supports setting timeout 487s result supports setting timeout 487s chains 487s chains with correct arguments 487s constructs promise like tree 488s allows graphs 488s resolves future when Exception raised 488s runs 488s can be risen when rejected 488s #flat 488s returns value of inner future 488s propagates rejection of inner future 488s it propagates rejection of the future which was suppose to provide inner future 488s rejects if inner value is not a future 488s accepts inner event 488s propagates requests for values to delayed futures 488s has shortcuts 488s ResolvableEvent 488s #wait 488s #resolve(raise_on_reassign = true) 488s #resolve(raise_on_reassign = false) 488s reservation 488s ResolvableFuture 488s #wait 488s #wait! 488s #value 488s #value! 488s #reason 488s result 488s reservation 488s atomic_resolution 488s interoperability 488s with erlang actor 488s with channel 488s value! 488s does not return spuriously with timeout 488s does not return spuriously without timeout 488s 488s Concurrent::ScheduledTask 488s behavior 488s it should behave like obligation 488s #state 488s is :pending when first created 488s is :fulfilled when the handler completes 488s is :rejected when the handler raises an exception 488s #value 488s returns nil when reaching the optional timeout value 488s returns immediately when timeout is zero 489s returns the value when fulfilled before timeout 489s returns nil when timeout reached 489s is nil when :pending 490s blocks the caller when :pending and timeout is nil 490s is nil when :rejected 490s is set to the return value of the block when :fulfilled 490s #reason 490s is nil when :pending 490s is nil when :fulfilled 490s is set to error object of the exception when :rejected 490s it should behave like dereferenceable 490s defaults :dup_on_deref to false 490s calls #dup when the :dup_on_deref option is true 490s defaults :freeze_on_deref to false 490s calls #freeze when the :freeze_on_deref option is true 490s defaults :copy_on_deref to nil 490s calls the block when the :copy_on_deref option is passed a proc 490s calls the :copy block first followed by #dup followed by #freeze 490s does not call #dup when #dup_on_deref is set and the value is nil 490s does not call #freeze when #freeze_on_deref is set and the value is nil 490s does not call the #copy_on_deref block when the value is nil 490s supports dereference flags with observers 490s it should behave like observable 490s #add_observer 490s adds an observer if called before first notification 490s adds an observer with :func if called before first notification 490s creates an observer from a block if called before first notification 490s raises an exception if not given an observer or a block 490s raises an exception when given both an observer and a block 490s #delete_observer 490s deletes the given observer if called before first notification 490s returns the removed observer if found in the observer set 490s returns the given observer even when not found in the observer set 490s #delete_observers 490s deletes all observers when called before first notification 490s returns self 490s #count_observers 490s returns zero for a new observable object 490s returns a count of registered observers if called before first notification 490s returns zero after #delete_observers has been called 490s first notification 490s calls the #update method on all observers without a specified :func 490s calls the appropriate function on all observers which specified a :func 491s calls the proc for all observers added as a block 492s does not notify any observers removed with #delete_observer 493s does not notify any observers after #delete_observers called 493s #initialize 493s accepts a number of seconds (from now) as the schedule time 493s raises an exception when seconds is less than zero 493s raises an exception when no block given 493s sets the initial state to :unscheduled 493s instance #execute 493s does nothing unless the state is :unscheduled 493s sets the sate to :pending 493s returns self 493s class #execute 493s creates a new ScheduledTask 493s passes the block to the new ScheduledTask 493s calls #execute on the new ScheduledTask 493s execution 493s passes :args from the options to the block 493s uses the :executor from the options 493s uses the :timer_set from the options 493s sets the state to :processing when the task is running 493s #cancel 493s returns false if the task has already been performed 493s returns false if the task is already in progress 494s cancels the task if it has not yet scheduled 494s cancels the task if it has not yet started 494s returns true on success 495s sets the reason to CancelledOperationError when cancelled 495s observation 495s returns true for an observer added while :unscheduled 495s returns true for an observer added while :pending 495s returns true for an observer added while :processing 495s notifies all observers on fulfillment 495s notifies all observers on rejection 495s 495s Concurrent::Set 495s .[] 495s when initializing with no arguments 495s is expected to be empty 495s when initializing with arguments 495s creates a set with the given objects 495s .new 495s when initializing with no arguments 495s is expected to be empty 495s when initializing with an enumerable object 495s creates a set with the contents of the enumerable object 495s when initializing with a block argument 495s creates a set with the contents of the enumerable object 495s concurrency 495s #add and #delete 495s force context switch 496s #each 496s 496s Concurrent::SettableStruct 496s it should behave like struct 496s definition 496s registers the class when given a class name 496s registers the class when given a class name which is defined in the ancestors 496s creates an anonymous class when given at least one member 496s raises an exception when given an invalid class name 496s /tmp/autopkgtest.n87TOz/build.LRu/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 496s defines a getter for each member 496s raises an exception when given no members 496s raise an exception when given an invalid member 496s evalues a given block against the new class 496s construction 496s sets all absent members to nil 496s sets all given members in order 496s raises an exception when extra members are given 496s properties 496s #length 496s returns the number of struct members 496s #members 496s returns the struct members as an array of symbols 496s returns a different object than the array passed at definition 496s #size 496s returns the number of struct members 496s #values 496s returns the values of the struct as an array in order 496s #values_at 496s returns the value at the given offset 496s returns the values at multiple given offsets 496s returns values at offsets in a given range 496s returns values for multiple ranges 496s returns values for ranges and offsets 496s accessors 496s #[member] 496s retrieves the value when given a valid symbol member 496s retrieves the value when given a valid string member 496s raises an exception when given a non-existent symbol member 496s raises an exception when given a non-existent string member 496s #[index] 496s retrieves the value when given a valid index 496s raises an exception when given an out-of-bound index 496s comparison 496s #== 496s returns true if other has same struct subclass and equal values 496s returns false if other has different struct subclass 496s returns false if other has different values 496s #!= 496s returns false if other has same struct subclass and equal values 496s returns true if other has different struct subclass 496s returns true if other has different values 496s enumeration 496s #each 496s yields the value of each struct member in order 496s returns an enumerator when no block is given 496s #each_pair 496s yields the name and value of each struct member in order 496s returns an enumerator when no block is given 496s #select 496s yields each value 496s returns an Array with the values from for which the block returns true 496s returns an enumerator when no block is given 496s conversion 496s #to_s 496s includes the name of the class when registered 496s includes the names of all members 496s includes all values 496s returns the same string as #inspect 496s #to_a 496s returns the to_a for this struct as an array 496s #to_h 496s returns a Hash containing the names and values in order 496s copy 496s #dup 496s shallowly duplicates all members along with the struct 496s discards frozen state of the struct 496s retains frozen state of members 497s discards singleton class 497s copies the singleton class of members 497s #clone 497s shallowly clones all members along with the struct 497s retains frozen state 497s copies the singleton class 497s copies the singleton class of members 497s it should behave like mergeable_struct 497s #merge 497s updates all members with the new values from a given hash 497s calls the given block for each key in `other` 497s retains the value for all members not without values in the given hash 497s raises an exception when given a hash with members not in the struct 497s returns a new object 497s definition 497s defines a setter for each member 497s #[member]= 497s sets the value when given a valid symbol member 497s sets the value when given a valid string member 497s raises an exception when given a non-existent symbol member 497s raises an exception when given a non-existent string member 497s raises an exception when given a symbol member that has already been set 497s raises an exception when given a string member that has already been set 497s #[index]= 497s sets the value when given a valid index 497s raises an exception when given an out-of-bound index 497s raises an exception when given an index that has already been set 497s synchronization 497s protects #values 497s protects #values_at 497s protects #[index] 497s protects #[member] 497s protects getter methods 497s protects #[index]= 497s protects #[member]= 497s protects getter methods 497s protects #to_s 497s protects #inspect 497s protects #to_h 497s protects #merge 497s protects #== 497s protects #each 497s protects #each_pair 497s protects #select 497s protects #initialize_copy 497s copy 497s #dup 497s retains settability of members 497s #clone 497s retains settability of members 497s 497s Concurrent::Synchronization 497s Concurrent::Synchronization::Object 497s does not ensure visibility when not needed 497s does ensure visibility when specified 497s does ensure visibility when specified in a parent 497s does ensure visibility once when specified in child again 497s it should behave like attr_volatile 497s older writes are always visible 497s Concurrent::Synchronization::LockableObject 497s final field always visible 497s #wait 497s puts the current thread to sleep 497s allows the sleeping thread to be killed 497s releases the lock on the current object 497s can be called from within a #synchronize block 497s #synchronize 497s allows only one thread to execute count 497s signaling 497s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 497s it should behave like attr_volatile 497s older writes are always visible 497s Concurrent::Synchronization::Volatile module 497s it should behave like attr_volatile 497s older writes are always visible 497s attr_atomic 497s is expected to be == b 497s 497s Concurrent::SynchronizedDelegator 497s wraps array 497s synchronizes access 497s synchronizes access with block 497s 497s Concurrent 497s Throttle 497s acquiring 497s #to_s 497s #on 497s capacity limited 497s 497s Concurrent::TimerTask 497s dereferenceable 497s it should behave like dereferenceable 498s defaults :dup_on_deref to false 498s calls #dup when the :dup_on_deref option is true 498s defaults :freeze_on_deref to false 498s calls #freeze when the :freeze_on_deref option is true 499s defaults :copy_on_deref to nil 499s calls the block when the :copy_on_deref option is passed a proc 499s calls the :copy block first followed by #dup followed by #freeze 499s does not call #dup when #dup_on_deref is set and the value is nil 499s does not call #freeze when #freeze_on_deref is set and the value is nil 499s does not call the #copy_on_deref block when the value is nil 500s supports dereference flags with observers 500s observable 500s it should behave like observable 500s #add_observer 500s adds an observer if called before first notification 500s adds an observer with :func if called before first notification 500s creates an observer from a block if called before first notification 500s raises an exception if not given an observer or a block 500s raises an exception when given both an observer and a block 500s #delete_observer 500s deletes the given observer if called before first notification 500s returns the removed observer if found in the observer set 500s returns the given observer even when not found in the observer set 500s #delete_observers 500s deletes all observers when called before first notification 500s returns self 500s #count_observers 500s returns zero for a new observable object 500s returns a count of registered observers if called before first notification 500s returns zero after #delete_observers has been called 500s first notification 500s calls the #update method on all observers without a specified :func 500s calls the appropriate function on all observers which specified a :func 500s calls the proc for all observers added as a block 501s does not notify any observers removed with #delete_observer 503s does not notify any observers after #delete_observers called 503s created with #new 503s #initialize 503s raises an exception if no block given 503s raises an exception if :execution_interval is not greater than zero 503s raises an exception if :execution_interval is not an integer 503s uses the default execution interval when no interval is given 503s uses the given execution interval 503s raises an exception if :interval_type is not a valid value 503s uses the default :interval_type when no type is given 503s uses the given interval type 503s #kill 503s returns true on success 503s #shutdown 503s returns true on success 503s arguments 503s raises an exception if no block given 503s TimeTask timeouts are now ignored as these were not able to be implemented correctly 503s #execution_interval is writeable 503s raises on invalid interval_type 503s TimeTask timeouts are now ignored as these were not able to be implemented correctly 503s #timeout_interval being written produces a warning 503s execution 503s runs the block immediately when the :run_now option is true 503s waits for :execution_interval seconds when the :run_now option is false 503s waits for :execution_interval seconds when the :run_now option is not given 503s passes a "self" reference to the block as the sole argument 503s uses the global executor by default 503s uses a custom executor when given 504s uses a fixed delay when set 504s uses a fixed rate when set 504s observation 504s notifies all observers on success 504s notifies all observers on error 504s 504s Concurrent::TVar 504s #initialize 504s accepts an initial value 504s #value 504s gets the value 504s #value= 504s sets the value 504s 504s #atomically 504s raises an exception when no block given 504s raises the same exception that was raised in Concurrent::atomically 504s retries on abort 504s commits writes if the transaction succeeds 504s undoes writes if the transaction is aborted 504s provides atomicity 504s nests 504s reflects transactional writes from within the same transaction 504s 504s #abort_transaction 504s raises an exception outside an #atomically block 504s 504s #leave_transaction 504s raises an exception outside an #atomically block 504s neither commits nor aborts a transaction 504s 504s #processor_count 504s retuns a positive integer 504s 504s #physical_processor_count 504s retuns a positive integer 504s 504s #cpu_quota 504s returns #compute_cpu_quota 504s returns nil if no quota is detected 504s returns nil if cgroups v2 sets no limit 504s returns a float if cgroups v2 sets a limit 504s returns nil if cgroups v1 sets no limit 504s returns nil if cgroups v1 and cpu.cfs_quota_us is -1 504s returns a float if cgroups v1 sets a limit 504s 504s #available_processor_count 504s returns #processor_count if #cpu_quota is nil 504s returns #processor_count if #cpu_quota is higher 504s returns #cpu_quota if #cpu_quota is lower than #processor_count 504s 504s #cpu_shares 504s returns a float when cgroups v2 sets a cpu.weight 504s returns a float if cgroups v1 sets a cpu.shares 504s 504s Finished in 3 minutes 58.5 seconds (files took 5.23 seconds to load) 504s 3009 examples, 0 failures, 17 pending 504s 505s autopkgtest [22:26:42]: test jruby: -----------------------] 506s autopkgtest [22:26:43]: test jruby: - - - - - - - - - - results - - - - - - - - - - 506s jruby PASS 506s autopkgtest [22:26:43]: @@@@@@@@@@@@@@@@@@@@ summary 506s ruby PASS 506s jruby PASS