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