0s autopkgtest [09:51:11]: starting date and time: 2024-04-11 09:51:11+0000 0s autopkgtest [09:51:11]: git checkout: 43bc6cdf gitlab-ci: do not include the salsa pipeline 0s autopkgtest [09:51:11]: host juju-7f2275-prod-proposed-migration-environment-4; command line: /home/ubuntu/autopkgtest/runner/autopkgtest --output-dir /tmp/autopkgtest-work.p2r0vu_w/out --timeout-copy=6000 --setup-commands 'dhclient || true; ln -s /dev/null /etc/systemd/system/bluetooth.service; printf "http_proxy=http://squid.internal:3128\nhttps_proxy=http://squid.internal:3128\nno_proxy=127.0.0.1,127.0.1.1,login.ubuntu.com,localhost,localdomain,novalocal,internal,archive.ubuntu.com,ports.ubuntu.com,security.ubuntu.com,ddebs.ubuntu.com,changelogs.ubuntu.com,launchpadlibrarian.net,launchpadcontent.net,launchpad.net,10.24.0.0/24,keystone.ps5.canonical.com,objectstorage.prodstack5.canonical.com\n" >> /etc/environment' --apt-pocket=proposed=src:gem2deb --apt-upgrade ruby-concurrent --timeout-short=300 --timeout-copy=20000 --timeout-build=20000 --env=ADT_TEST_TRIGGERS=gem2deb/2.2.3 -- lxd -r lxd-armhf-10.145.243.214 lxd-armhf-10.145.243.214:autopkgtest/ubuntu/noble/armhf 30s autopkgtest [09:51:41]: testbed dpkg architecture: armhf 32s autopkgtest [09:51:43]: testbed apt version: 2.7.14build2 32s autopkgtest [09:51:43]: @@@@@@@@@@@@@@@@@@@@ test bed setup 44s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 44s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [7108 B] 44s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [331 kB] 44s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [6428 B] 44s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [636 kB] 44s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf Packages [323 kB] 44s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf c-n-f Metadata [2492 B] 44s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf Packages [1368 B] 44s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf c-n-f Metadata [116 B] 44s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf Packages [637 kB] 44s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf c-n-f Metadata [7776 B] 45s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf Packages [1452 B] 45s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf c-n-f Metadata [116 B] 46s Fetched 2071 kB in 1s (2149 kB/s) 47s Reading package lists... 72s sh: 1: dhclient: not found 74s tee: /proc/self/fd/2: Permission denied 96s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 96s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 96s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 96s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 97s Reading package lists... 97s Reading package lists... 97s Building dependency tree... 97s Reading state information... 98s Calculating upgrade... 98s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 98s Reading package lists... 99s Building dependency tree... 99s Reading state information... 99s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 102s autopkgtest [09:52:53]: rebooting testbed after setup commands that affected boot 145s autopkgtest [09:53:36]: testbed running kernel: Linux 5.4.0-174-generic #193-Ubuntu SMP Thu Mar 7 15:13:37 UTC 2024 174s autopkgtest [09:54:05]: @@@@@@@@@@@@@@@@@@@@ apt-source ruby-concurrent 188s Get:1 http://ftpmaster.internal/ubuntu noble/universe ruby-concurrent 1.2.3-2build1 (dsc) [2342 B] 188s Get:2 http://ftpmaster.internal/ubuntu noble/universe ruby-concurrent 1.2.3-2build1 (tar) [1004 kB] 188s Get:3 http://ftpmaster.internal/ubuntu noble/universe ruby-concurrent 1.2.3-2build1 (diff) [5784 B] 188s gpgv: Signature made Tue Feb 20 05:25:39 2024 UTC 188s gpgv: using RSA key 8ED6C3F8BAC9DB7FC130A870F823A2729883C97C 188s gpgv: issuer "kanashiro@ubuntu.com" 188s gpgv: Can't check signature: No public key 188s dpkg-source: warning: cannot verify inline signature for ./ruby-concurrent_1.2.3-2build1.dsc: no acceptable signature found 188s autopkgtest [09:54:19]: testing package ruby-concurrent version 1.2.3-2build1 192s autopkgtest [09:54:23]: build not needed 194s autopkgtest [09:54:25]: test ruby: preparing testbed 203s Reading package lists... 204s Building dependency tree... 204s Reading state information... 204s Starting pkgProblemResolver with broken count: 0 204s Starting 2 pkgProblemResolver with broken count: 0 204s Done 205s The following additional packages will be installed: 205s gem2deb-test-runner libruby libruby3.2 rake ruby ruby-concurrent 205s ruby-concurrent-ext ruby-diff-lcs ruby-net-telnet ruby-rspec ruby-rspec-core 205s ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support ruby-rubygems 205s ruby-sdbm ruby-timecop ruby-webrick ruby-xmlrpc ruby3.2 rubygems-integration 205s Suggested packages: 205s ri ruby-dev bundler 205s Recommended packages: 205s zip fonts-lato libjs-jquery 205s The following NEW packages will be installed: 205s autopkgtest-satdep gem2deb-test-runner libruby libruby3.2 rake ruby 205s ruby-concurrent ruby-concurrent-ext ruby-diff-lcs ruby-net-telnet ruby-rspec 205s ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support 205s ruby-rubygems ruby-sdbm ruby-timecop ruby-webrick ruby-xmlrpc ruby3.2 205s rubygems-integration 205s 0 upgraded, 22 newly installed, 0 to remove and 0 not upgraded. 205s Need to get 6277 kB/6278 kB of archives. 205s After this operation, 28.8 MB of additional disk space will be used. 205s Get:1 /tmp/autopkgtest.mkkHsO/1-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [748 B] 205s Get:2 http://ftpmaster.internal/ubuntu noble/main armhf rubygems-integration all 1.18 [5336 B] 205s Get:3 http://ftpmaster.internal/ubuntu noble/main armhf ruby-net-telnet all 0.2.0-1 [13.3 kB] 205s Get:4 http://ftpmaster.internal/ubuntu noble/main armhf ruby-webrick all 1.8.1-1 [52.3 kB] 205s Get:5 http://ftpmaster.internal/ubuntu noble/main armhf ruby-xmlrpc all 0.3.2-2 [24.8 kB] 205s Get:6 http://ftpmaster.internal/ubuntu noble/main armhf libruby armhf 1:3.2~ubuntu1 [4694 B] 205s Get:7 http://ftpmaster.internal/ubuntu noble/main armhf ruby-sdbm armhf 1.0.0-5build4 [14.0 kB] 205s Get:8 http://ftpmaster.internal/ubuntu noble/main armhf libruby3.2 armhf 3.2.3-1build3 [5099 kB] 205s Get:9 http://ftpmaster.internal/ubuntu noble/main armhf ruby3.2 armhf 3.2.3-1build3 [50.6 kB] 205s Get:10 http://ftpmaster.internal/ubuntu noble/main armhf ruby-rubygems all 3.4.20-1 [238 kB] 205s Get:11 http://ftpmaster.internal/ubuntu noble/main armhf ruby armhf 1:3.2~ubuntu1 [3466 B] 205s Get:12 http://ftpmaster.internal/ubuntu noble/main armhf rake all 13.0.6-3 [61.6 kB] 205s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf gem2deb-test-runner armhf 2.2.3 [18.2 kB] 205s Get:14 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-concurrent all 1.2.3-2build1 [282 kB] 205s Get:15 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-concurrent-ext armhf 1.2.3-2build1 [8296 B] 205s Get:16 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-diff-lcs all 1.5.1-1 [22.8 kB] 205s Get:17 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 205s Get:18 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 206s Get:19 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 206s Get:20 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 206s Get:21 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 206s Get:22 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-timecop all 0.9.8-1 [10.6 kB] 206s Fetched 6277 kB in 1s (6906 kB/s) 206s Selecting previously unselected package rubygems-integration. 206s (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 ... 58472 files and directories currently installed.) 206s Preparing to unpack .../00-rubygems-integration_1.18_all.deb ... 206s Unpacking rubygems-integration (1.18) ... 206s Selecting previously unselected package ruby-net-telnet. 206s Preparing to unpack .../01-ruby-net-telnet_0.2.0-1_all.deb ... 206s Unpacking ruby-net-telnet (0.2.0-1) ... 206s Selecting previously unselected package ruby-webrick. 206s Preparing to unpack .../02-ruby-webrick_1.8.1-1_all.deb ... 206s Unpacking ruby-webrick (1.8.1-1) ... 206s Selecting previously unselected package ruby-xmlrpc. 206s Preparing to unpack .../03-ruby-xmlrpc_0.3.2-2_all.deb ... 206s Unpacking ruby-xmlrpc (0.3.2-2) ... 206s Selecting previously unselected package libruby:armhf. 206s Preparing to unpack .../04-libruby_1%3a3.2~ubuntu1_armhf.deb ... 206s Unpacking libruby:armhf (1:3.2~ubuntu1) ... 206s Selecting previously unselected package ruby-sdbm:armhf. 206s Preparing to unpack .../05-ruby-sdbm_1.0.0-5build4_armhf.deb ... 206s Unpacking ruby-sdbm:armhf (1.0.0-5build4) ... 206s Selecting previously unselected package libruby3.2:armhf. 206s Preparing to unpack .../06-libruby3.2_3.2.3-1build3_armhf.deb ... 206s Unpacking libruby3.2:armhf (3.2.3-1build3) ... 206s Selecting previously unselected package ruby3.2. 206s Preparing to unpack .../07-ruby3.2_3.2.3-1build3_armhf.deb ... 206s Unpacking ruby3.2 (3.2.3-1build3) ... 206s Selecting previously unselected package ruby-rubygems. 206s Preparing to unpack .../08-ruby-rubygems_3.4.20-1_all.deb ... 206s Unpacking ruby-rubygems (3.4.20-1) ... 207s Selecting previously unselected package ruby. 207s Preparing to unpack .../09-ruby_1%3a3.2~ubuntu1_armhf.deb ... 207s Unpacking ruby (1:3.2~ubuntu1) ... 207s Selecting previously unselected package rake. 207s Preparing to unpack .../10-rake_13.0.6-3_all.deb ... 207s Unpacking rake (13.0.6-3) ... 207s Selecting previously unselected package gem2deb-test-runner. 207s Preparing to unpack .../11-gem2deb-test-runner_2.2.3_armhf.deb ... 207s Unpacking gem2deb-test-runner (2.2.3) ... 207s Selecting previously unselected package ruby-concurrent. 207s Preparing to unpack .../12-ruby-concurrent_1.2.3-2build1_all.deb ... 207s Unpacking ruby-concurrent (1.2.3-2build1) ... 207s Selecting previously unselected package ruby-concurrent-ext. 207s Preparing to unpack .../13-ruby-concurrent-ext_1.2.3-2build1_armhf.deb ... 207s Unpacking ruby-concurrent-ext (1.2.3-2build1) ... 207s Selecting previously unselected package ruby-diff-lcs. 207s Preparing to unpack .../14-ruby-diff-lcs_1.5.1-1_all.deb ... 207s Unpacking ruby-diff-lcs (1.5.1-1) ... 207s Selecting previously unselected package ruby-rspec-support. 207s Preparing to unpack .../15-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 207s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 207s Selecting previously unselected package ruby-rspec-core. 207s Preparing to unpack .../16-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 207s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 207s Selecting previously unselected package ruby-rspec-expectations. 207s Preparing to unpack .../17-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 207s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 207s Selecting previously unselected package ruby-rspec-mocks. 207s Preparing to unpack .../18-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 207s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 207s Selecting previously unselected package ruby-rspec. 207s Preparing to unpack .../19-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 207s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 207s Selecting previously unselected package ruby-timecop. 207s Preparing to unpack .../20-ruby-timecop_0.9.8-1_all.deb ... 207s Unpacking ruby-timecop (0.9.8-1) ... 207s Selecting previously unselected package autopkgtest-satdep. 207s Preparing to unpack .../21-1-autopkgtest-satdep.deb ... 207s Unpacking autopkgtest-satdep (0) ... 207s Setting up rubygems-integration (1.18) ... 207s Setting up ruby-concurrent (1.2.3-2build1) ... 207s Setting up ruby-timecop (0.9.8-1) ... 207s Setting up ruby-net-telnet (0.2.0-1) ... 207s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 207s Setting up ruby-webrick (1.8.1-1) ... 207s Setting up ruby-xmlrpc (0.3.2-2) ... 207s Setting up ruby-rubygems (3.4.20-1) ... 207s Setting up rake (13.0.6-3) ... 207s Setting up libruby:armhf (1:3.2~ubuntu1) ... 207s Setting up ruby-sdbm:armhf (1.0.0-5build4) ... 207s Setting up libruby3.2:armhf (3.2.3-1build3) ... 207s Setting up ruby3.2 (3.2.3-1build3) ... 207s Setting up ruby (1:3.2~ubuntu1) ... 207s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 207s Setting up ruby-diff-lcs (1.5.1-1) ... 207s Setting up gem2deb-test-runner (2.2.3) ... 207s Setting up ruby-concurrent-ext (1.2.3-2build1) ... 207s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 207s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 207s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 207s Setting up autopkgtest-satdep (0) ... 207s Processing triggers for libc-bin (2.39-0ubuntu8) ... 207s Processing triggers for man-db (2.12.0-4build1) ... 224s (Reading database ... 62301 files and directories currently installed.) 224s Removing autopkgtest-satdep (0) ... 230s autopkgtest [09:55:01]: 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 230s autopkgtest [09:55:01]: test ruby: [----------------------- 233s 233s ┌──────────────────────────────────────────────────────────────────────────────┐ 233s │ Run tests for ruby3.2 from debian/ruby-tests.rake │ 233s └──────────────────────────────────────────────────────────────────────────────┘ 233s 233s RUBYLIB=. GEM_PATH= ruby3.2 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake 233s mv lib ./.gem2deb.lib 233s mv ext ./.gem2deb.ext 233s /usr/bin/ruby3.2 -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 233s Run options: exclude {:stress=>true} 233s 233s Randomized with seed 1 233s 233s Concurrent::IVar 233s #initialize 233s can set an initial value 233s does not have to set an initial value 233s can set an initial value with a block 233s does not set an initial value if you pass NULL 233s raises an exception if given both a value and a block 233s observation 233s notifies all observers on #set 233s deadlock avoidance 233s should notify observers outside mutex lock 233s should notify a new observer added after fulfillment outside lock 233s it should behave like ivar 233s initialization 233s sets the state to incomplete 233s it should behave like dereferenceable 233s does not call #freeze when #freeze_on_deref is set and the value is nil 233s defaults :copy_on_deref to nil 233s defaults :dup_on_deref to false 233s supports dereference flags with observers 233s calls #freeze when the :freeze_on_deref option is true 233s defaults :freeze_on_deref to false 233s does not call #dup when #dup_on_deref is set and the value is nil 233s calls #dup when the :dup_on_deref option is true 233s calls the block when the :copy_on_deref option is passed a proc 233s does not call the #copy_on_deref block when the value is nil 233s calls the :copy block first followed by #dup followed by #freeze 233s it should behave like obligation 233s #value 233s returns nil when reaching the optional timeout value 233s is nil when :pending 233s blocks the caller when :pending and timeout is nil 234s returns the value when fulfilled before timeout 234s is set to the return value of the block when :fulfilled 234s is nil when :rejected 234s returns nil when timeout reached 234s returns immediately when timeout is zero 234s #state 234s is :pending when first created 234s is :fulfilled when the handler completes 234s is :rejected when the handler raises an exception 234s #reason 234s is nil when :fulfilled 234s is set to error object of the exception when :rejected 234s is nil when :pending 234s it should behave like observable 234s #delete_observer 234s deletes the given observer if called before first notification 234s returns the given observer even when not found in the observer set 234s returns the removed observer if found in the observer set 234s #add_observer 234s raises an exception if not given an observer or a block 234s adds an observer if called before first notification 234s raises an exception when given both an observer and a block 234s creates an observer from a block if called before first notification 234s adds an observer with :func if called before first notification 234s first notification 235s does not notify any observers after #delete_observers called 235s calls the appropriate function on all observers which specified a :func 236s does not notify any observers removed with #delete_observer 236s calls the proc for all observers added as a block 236s calls the #update method on all observers without a specified :func 236s #count_observers 236s returns zero for a new observable object 236s returns a count of registered observers if called before first notification 236s returns zero after #delete_observers has been called 236s #delete_observers 236s deletes all observers when called before first notification 236s returns self 236s #set 236s raises an exception when given neither a value nor a block 236s raises an exception if set more than once 236s rejects when given a block which raises an exception 236s returns self 236s sets the state to be fulfilled 236s fulfils when given a block which executes successfully 236s raises an exception when given a value and a block 236s sets the value 236s #fail 236s sets the reason to the given exception 236s raises an exception if set more than once 236s sets the value to be nil 236s returns self 236s defaults the reason to a StandardError 236s sets the state to be rejected 236s #try_set 236s when unset 236s assigns the value 236s assigns the block result 236s returns true 236s when rejected 236s does not assign the block result 236s returns false 236s has a nil value 236s does not assign the value 236s when fulfilled 236s does not assign the value 236s returns false 236s does not assign the block result 236s 236s Concurrent::LazyRegister 236s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 236s 236s dataflow 236s #dataflow uses the global fast executor 236s #dataflow_with raises an exception when no executor given 236s raises an exception when no block given 236s accepts completed dependencies 236s doesn't raise exceptions from dependencies, unless called with ! 236s returns a Future 236s accepts zero or more dependencies 236s accepts uncompleted dependencies 236s #dataflow_with uses the given executor 236s raises an exception if any dependencies are not IVars 236s passes the values of dependencies into the block 236s if there is more than one 236s if there is just one 236s does not schedule the Future 236s if no dependencies are completed 236s if one dependency of two is completed 236s module function 236s can be called as Concurrent.dataflow and Concurrent.dataflow_with 236s counts already executed dependencies 236s if there is more than one 236s if there is just one 236s schedules the Future when all dependencies are available 236s if there is more than one 236s if there is just one 236s 236s Concurrent::MutableStruct 236s #[member]= 236s sets the value when given a valid string member 236s sets the value when given a valid symbol member 236s raises an exception when given a non-existent symbol member 236s raises an exception when given a non-existent string member 236s synchronization 236s protects #[member] 236s protects #values 236s protects #to_h 236s protects getter methods 236s protects #each_pair 236s protects getter methods 236s protects #inspect 236s protects #[member]= 236s protects #to_s 236s protects #values_at 236s protects #merge 236s protects #initialize_copy 236s protects #[index]= 236s protects #== 236s protects #each 236s protects #[index] 236s protects #select 236s definition 236s defines a setter for each member 236s copy 236s #clone 236s mutates only the copy 236s #dup 236s mutates only the copy 236s #[index]= 236s sets the value when given a valid index 236s raises an exception when given an out-of-bound index 236s it should behave like struct 236s properties 236s #members 236s returns a different object than the array passed at definition 236s returns the struct members as an array of symbols 236s #size 236s returns the number of struct members 236s #values 236s returns the values of the struct as an array in order 236s #values_at 236s returns values for ranges and offsets 236s returns the values at multiple given offsets 236s returns values at offsets in a given range 236s returns the value at the given offset 236s returns values for multiple ranges 236s #length 236s returns the number of struct members 236s comparison 236s #!= 236s returns false if other has same struct subclass and equal values 236s returns true if other has different values 236s returns true if other has different struct subclass 236s #== 236s returns true if other has same struct subclass and equal values 236s returns false if other has different struct subclass 236s returns false if other has different values 236s definition 236s registers the class when given a class name which is defined in the ancestors 236s raises an exception when given an invalid class name 236s raises an exception when given no members 236s raise an exception when given an invalid member 236s defines a getter for each member 236s registers the class when given a class name 236s evalues a given block against the new class 236s creates an anonymous class when given at least one member 236s conversion 236s #to_a 236s returns the to_a for this struct as an array 236s #to_s 236s returns the same string as #inspect 236s includes the name of the class when registered 236s includes the names of all members 236s includes all values 236s #to_h 236s returns a Hash containing the names and values in order 236s accessors 236s #[index] 236s retrieves the value when given a valid index 236s raises an exception when given an out-of-bound index 236s #[member] 236s retrieves the value when given a valid string member 236s raises an exception when given a non-existent string member 236s raises an exception when given a non-existent symbol member 236s retrieves the value when given a valid symbol member 236s enumeration 236s #select 236s yields each value 236s returns an enumerator when no block is given 236s returns an Array with the values from for which the block returns true 236s #each 236s returns an enumerator when no block is given 236s yields the value of each struct member in order 236s #each_pair 236s returns an enumerator when no block is given 236s yields the name and value of each struct member in order 236s construction 236s raises an exception when extra members are given 236s sets all absent members to nil 236s sets all given members in order 236s copy 236s #dup 236s discards singleton class 236s shallowly duplicates all members along with the struct 236s discards frozen state of the struct 236s retains frozen state of members 236s copies the singleton class of members 236s #clone 236s retains frozen state 236s copies the singleton class 236s copies the singleton class of members 236s shallowly clones all members along with the struct 236s it should behave like mergeable_struct 236s #merge 236s calls the given block for each key in `other` 236s raises an exception when given a hash with members not in the struct 236s returns a new object 236s retains the value for all members not without values in the given hash 236s updates all members with the new values from a given hash 236s 236s Concurrent 236s Cancellation 236s basic 236s is expected to be falsey 236s is expected to be truthy 236s #join 236s is expected to eq 2 236s is expected to be falsey 236s 236s #atomically 236s provides atomicity 236s raises an exception when no block given 236s reflects transactional writes from within the same transaction 236s undoes writes if the transaction is aborted 236s commits writes if the transaction succeeds 236s retries on abort 236s nests 236s raises the same exception that was raised in Concurrent::atomically 236s 236s Concurrent::Set 236s .[] 236s when initializing with arguments 236s creates a set with the given objects 236s when initializing with no arguments 236s is expected to be empty 236s .new 236s when initializing with no arguments 236s is expected to be empty 236s when initializing with an enumerable object 236s creates a set with the contents of the enumerable object 236s when initializing with a block argument 236s creates a set with the contents of the enumerable object 236s concurrency 236s #each 236s force context switch 237s #add and #delete 237s 237s Concurrent::Delay 237s #reconfigure 237s returns value of block used in reconfiguration 237s returns false when process completed? 237s #value 237s can be called twice 237s calls the block when #value is called 237s raises when called recursively 237s does not call the block before #value is called 237s only calls the block once no matter how often #value is called 237s behavior 237s it should behave like dereferenceable 238s calls the block when the :copy_on_deref option is passed a proc 238s defaults :copy_on_deref to nil 238s does not call #freeze when #freeze_on_deref is set and the value is nil 238s calls #dup when the :dup_on_deref option is true 238s does not call #dup when #dup_on_deref is set and the value is nil 238s defaults :dup_on_deref to false 238s supports dereference flags with observers 238s does not call the #copy_on_deref block when the value is nil 238s calls the :copy block first followed by #dup followed by #freeze 238s defaults :freeze_on_deref to false 238s calls #freeze when the :freeze_on_deref option is true 238s it should behave like obligation 238s #reason 238s is nil when :pending 238s is nil when :fulfilled 238s is set to error object of the exception when :rejected 238s #value 238s is nil when :rejected 238s is set to the return value of the block when :fulfilled 238s returns immediately when timeout is zero 238s blocks the caller when :pending and timeout is nil 238s returns nil when reaching the optional timeout value 238s returns nil when timeout reached 238s returns the value when fulfilled before timeout 238s is nil when :pending 238s #state 238s is :pending when first created 238s is :rejected when the handler raises an exception 238s is :fulfilled when the handler completes 238s #initialize 238s raises an exception when no block given 238s sets the state to :pending 238s 238s Concurrent::Promise 238s #rescue 238s returns a new promise 238s it should behave like thread_arguments 238s passes a one-element array when the :args key has a non-array value 238s passes an empty array when opts is not given 238s passes an empty array when the :args key has a nil value 238s passes an empty array when opts is an empty hash 238s allows the given arguments array to be dereferenced 238s passes the given array when the :args key has a complex array value 238s passes an array when when the :args key has an array value 238s passes an empty array when there is no :args key 238s aliases 238s aliases #realized? for #fulfilled? 238s aliases #catch for #rescue 238s aliases #deref for #value 238s aliases #on_error for #rescue 238s fulfillment 238s can manage long chain 238s sets the promise state to :fulfilled if the block completes 238s passes the result of each block to all its children 238s sets the promise value to the result if its block 238s uses result as fulfillment value when a promise has no block 238s passes the last result through when a promise has no block 238s #fail 238s can only be called on the root promise 238s rejects children 238s #set 238s triggers children 238s can be called with a block 238s #can only be called on the root promise 238s rejection 238s sets the promise value to the result if its block 238s passes the reason to all its children 238s rejects on Exception 238s sets the promise state to :rejected if the block completes 238s uses reason as rejection reason when a promise has no rescue callable 238s .zip 238s does not execute the returned Promise when execute is false 238s preserves ordering of the executed promises 238s executes the returned Promise by default 238s allows setting executor for Promise chain 238s fails if one component fails 238s executes the returned Promise when execute is true 238s yields the results as an array 238s aggregators 238s .any? 238s executes the #then condition when any components succeed 238s executes the #rescue handler if all componenst fail 238s does not execute the returned Promise 238s returns a new Promise 238s executes the #then condition when no promises are given 238s .all? 238s executes the #then condition when all components succeed 238s executes the #rescue handler if even one component fails 238s returns a new Promise 238s does not execute the returned Promise 238s executes the #then condition when no promises are given 238s initializers 238s .execute 238s passes the block to the new Promise 238s calls #execute on the new Promise 238s creates a new Promise 238s .fulfill 238s should return a Promise with set value 238s should return a fulfilled Promise 238s should return a Promise 238s .reject 238s should return a Promise with set reason 238s should return a Promise 238s should return a rejected Promise 238s .new 238s should return an unscheduled Promise 238s #then 238s should have block or rescuers 238s returns a new promise when a block and rescuer are passed 238s returns a new promise when a block is passed 238s returns a new promise when a rescuer is passed 238s can be called more than once 238s supports setting the executor using a named parameter 238s returns a new promise when a block, rescuer and executor are passed 238s fulfilled 238s returns a new Promise 238s notifies fulfillment to new child 238s rejected 238s returns a new Promise when :rejected 238s notifies rejection to new child 238s pending 238s returns a new promise 238s returns a pending promise 238s unscheduled 238s returns a new promise 238s returns an unscheduled promise 238s on_success 238s returns a new promise 238s should have a block 238s #execute 238s with children 238s when called on a child 239s should set all promises to :pending 239s when called on child after parent completes 239s sets state to :pending immediately 239s when called on the root 240s should set all promises to :pending 240s pending 240s does not post again 240s sets the promise to :pending 240s unscheduled 240s posts the block given in construction 241s sets the promise to :pending 241s #flat_map 241s returns a promise 241s fails if the left promise fails 241s fails if the right promise fails 241s fails if the generating block fails 241s succeeds if both promises succeed 241s #zip 241s allows setting executor for Promise chain 241s fails if one component fails 241s executes the returned Promise when execute is true 241s does not execute the returned Promise when execute is false 241s executes the returned Promise by default 241s preserves ordering of the executed promises 241s yields the results as an array 241s it should behave like ivar 241s #set 241s raises an exception if set more than once 241s returns self 241s raises an exception when given neither a value nor a block 241s raises an exception when given a value and a block 241s rejects when given a block which raises an exception 241s sets the state to be fulfilled 241s sets the value 241s fulfils when given a block which executes successfully 241s #try_set 241s when fulfilled 241s returns false 241s does not assign the value 241s does not assign the block result 241s when rejected 241s returns false 241s does not assign the block result 241s has a nil value 241s does not assign the value 241s when unset 241s returns true 241s assigns the value 241s assigns the block result 241s it should behave like observable 241s #add_observer 241s adds an observer with :func if called before first notification 241s raises an exception if not given an observer or a block 241s creates an observer from a block if called before first notification 241s adds an observer if called before first notification 241s raises an exception when given both an observer and a block 241s #count_observers 241s returns zero for a new observable object 241s returns a count of registered observers if called before first notification 241s returns zero after #delete_observers has been called 241s first notification 242s does not notify any observers removed with #delete_observer 243s does not notify any observers after #delete_observers called 243s calls the proc for all observers added as a block 243s calls the appropriate function on all observers which specified a :func 243s calls the #update method on all observers without a specified :func 243s #delete_observer 243s returns the given observer even when not found in the observer set 243s returns the removed observer if found in the observer set 243s deletes the given observer if called before first notification 243s #delete_observers 243s returns self 243s deletes all observers when called before first notification 243s initialization 243s sets the state to incomplete 243s #fail 243s sets the state to be rejected 243s sets the value to be nil 244s raises an exception if set more than once 244s defaults the reason to a StandardError 244s sets the reason to the given exception 244s returns self 244s it should behave like dereferenceable 244s calls the block when the :copy_on_deref option is passed a proc 244s defaults :copy_on_deref to nil 244s does not call #freeze when #freeze_on_deref is set and the value is nil 244s calls #dup when the :dup_on_deref option is true 244s supports dereference flags with observers 245s calls #freeze when the :freeze_on_deref option is true 245s calls the :copy block first followed by #dup followed by #freeze 245s defaults :dup_on_deref to false 245s defaults :freeze_on_deref to false 245s does not call #dup when #dup_on_deref is set and the value is nil 246s does not call the #copy_on_deref block when the value is nil 246s it should behave like obligation 246s #value 251s blocks the caller when :pending and timeout is nil 251s returns nil when reaching the optional timeout value 251s is set to the return value of the block when :fulfilled 251s is nil when :pending 251s returns nil when timeout reached 251s returns immediately when timeout is zero 251s is nil when :rejected 256s returns the value when fulfilled before timeout 256s #reason 256s is nil when :fulfilled 256s is nil when :pending 256s is set to error object of the exception when :rejected 256s #state 256s is :pending when first created 256s is :fulfilled when the handler completes 256s is :rejected when the handler raises an exception 256s 256s Concurrent::TVar 256s #value 256s gets the value 256s #initialize 256s accepts an initial value 256s #value= 256s sets the value 256s 256s Concurrent::Async 256s object creation 256s initializes synchronization 256s passes all args to the original constructor 256s delegates to the original constructor 256s passes a given block to the original constructor 256s #await 256s raises an error when calling a method that does not exist 256s raises an error when passing too few arguments 256s sets the reason when giving too many optional arguments 256s supports methods with blocks 256s sets the value on success 256s supports attribute accessors 256s returns a :fulfilled IVar 256s runs the future on the global executor 256s returns the existence of the method 256s raises an error when pasing too many arguments (arity >= 0) 256s sets the reason on failure 256s #validate_argc 256s raises an exception for too many args on a method with positive arity 256s raises an exception for too many args on a zero arity method 256s does not raise an exception for correct negative arity 256s raises an exception for too few args on a method with negative arity 256s raises an exception when the method is not defined 256s raises an exception for too few args on a method with positive arity 256s does not raise an exception for correct positive arity 256s does not raise an exception for correct zero arity 256s fork safety 256s does not hang when forked 256s locking 256s uses the same lock for both #async and #await 256s #async 256s sets the reason on failure 256s raises an error when calling a method that does not exist 256s supports methods with blocks 256s returns the existence of the method 256s raises an error when passing too few arguments 256s raises an error when pasing too many arguments (arity >= 0) 256s supports attribute accessors 256s runs the future on the global executor 256s returns a :pending IVar 256s sets the value on success 256s sets the reason when giving too many optional arguments 256s 256s Concurrent::MVar 256s #take 256s returns TIMEOUT on timeout on an empty MVar 256s waits for another thread to #put 256s returns the value on a full MVar 256s sets the MVar to empty 256s spurious wake ups 256s #put 257s returns TIMEOUT on timeout on a full MVar 257s waits for another thread to #take 257s #modify 258s waits for another thread to #put 258s returns TIMEOUT on timeout on an empty MVar 258s #take 259s waits for another thread to #put 259s returns TIMEOUT on timeout on an empty MVar 259s #empty? 259s returns false on a full MVar 259s returns true on an empty MVar 259s #set! 259s sets a full MVar to be full 259s returns EMPTY on an empty MVar 259s sets an empty MVar to be full 259s returns the original value on a full MVar 259s #modify! 259s raises an exception when no block given 259s modifies an empty MVar 259s returns the unmodified value 259s can be used to set an empty MVar to empty 259s can be used to set a full MVar to empty 259s modifies a full MVar 259s #initialize 259s accepts an initial value 259s accepts a nil initial value 259s accepts no initial value 259s accepts an empty initial value 259s #try_take! 259s returns EMPTY an empty MVar 259s returns the value on a full MVar 259s sets a full MVar to be empty 259s #borrow 259s returns TIMEOUT on timeout on an empty MVar 259s yields current value to the block and puts back value 259s returns the returned value of the block 259s puts back value even if an exception is raised 259s #put 259s returns the value 259s sets a new value on an empty MVar 259s waits for another thread to #take 259s sets the MVar to be empty 259s returns TIMEOUT on timeout on a full MVar 259s #full? 259s returns true on a full MVar 259s returns false on an empty MVar 259s #try_put! 259s returns false on a full MVar 259s returns true an empty MVar 259s sets an empty MVar to be full 259s #modify 260s waits for another thread to #put 260s returns TIMEOUT on timeout on an empty MVar 261s is atomic 261s raises an exception when no block given 261s modifies a full MVar 261s returns the unmodified value 261s behavior 261s it should behave like dereferenceable 261s calls the block when the :copy_on_deref option is passed a proc 261s defaults :copy_on_deref to nil 261s supports dereference flags with observers 261s does not call #freeze when #freeze_on_deref is set and the value is nil 261s defaults :dup_on_deref to false 261s does not call #dup when #dup_on_deref is set and the value is nil 261s calls the :copy block first followed by #dup followed by #freeze 261s defaults :freeze_on_deref to false 261s calls #freeze when the :freeze_on_deref option is true 261s does not call the #copy_on_deref block when the value is nil 261s calls #dup when the :dup_on_deref option is true 261s 261s configuration 261s global executors 261s creates a global fast executor 261s creates a global timer set 261s creates a global io executor 261s 261s Concurrent::TimerTask 261s execution 261s uses a custom executor when given 261s waits for :execution_interval seconds when the :run_now option is not given 261s uses a fixed rate when set 262s uses a fixed delay when set 262s passes a "self" reference to the block as the sole argument 262s uses the global executor by default 262s waits for :execution_interval seconds when the :run_now option is false 262s runs the block immediately when the :run_now option is true 262s arguments 262s TimeTask timeouts are now ignored as these were not able to be implemented correctly 262s #timeout_interval being written produces a warning 262s TimeTask timeouts are now ignored as these were not able to be implemented correctly 262s #execution_interval is writeable 262s raises an exception if no block given 262s raises on invalid interval_type 262s observation 262s notifies all observers on error 262s notifies all observers on success 262s dereferenceable 262s it should behave like dereferenceable 262s defaults :freeze_on_deref to false 263s defaults :copy_on_deref to nil 263s calls #freeze when the :freeze_on_deref option is true 263s does not call the #copy_on_deref block when the value is nil 263s does not call #freeze when #freeze_on_deref is set and the value is nil 263s does not call #dup when #dup_on_deref is set and the value is nil 263s calls the block when the :copy_on_deref option is passed a proc 264s defaults :dup_on_deref to false 264s calls the :copy block first followed by #dup followed by #freeze 264s calls #dup when the :dup_on_deref option is true 264s supports dereference flags with observers 264s created with #new 264s #kill 264s returns true on success 264s #shutdown 264s returns true on success 264s #initialize 264s uses the default execution interval when no interval is given 264s uses the given execution interval 264s raises an exception if :execution_interval is not greater than zero 264s uses the default :interval_type when no type is given 264s raises an exception if :execution_interval is not an integer 264s raises an exception if :interval_type is not a valid value 264s uses the given interval type 264s raises an exception if no block given 264s observable 264s it should behave like observable 264s #delete_observer 264s deletes the given observer if called before first notification 264s returns the given observer even when not found in the observer set 264s returns the removed observer if found in the observer set 264s #count_observers 264s returns zero after #delete_observers has been called 264s returns a count of registered observers if called before first notification 264s returns zero for a new observable object 264s #delete_observers 264s returns self 264s deletes all observers when called before first notification 264s first notification 265s calls the #update method on all observers without a specified :func 265s calls the appropriate function on all observers which specified a :func 265s calls the proc for all observers added as a block 266s does not notify any observers removed with #delete_observer 267s does not notify any observers after #delete_observers called 267s #add_observer 267s creates an observer from a block if called before first notification 267s raises an exception if not given an observer or a block 267s raises an exception when given both an observer and a block 267s adds an observer with :func if called before first notification 267s adds an observer if called before first notification 267s 267s Concurrent::Hash 267s .[] 267s when initializing with another hash as an argument 267s creates a hash with the results of calling #to_hash on the other array 267s creates a new hash 267s creates a hash with the same contents as the other hash 267s when initializing with an array of pairs 267s creates a hash using each pair as a (key, value) pair 267s when initializing with no arguments 267s is expected to be empty 267s when initializing with an even number of arguments 267s creates a hash using the odd position arguments as keys and even position arguments as values 267s .new 267s when initialized with a block 267s calls the block for non-existing keys 267s returns the results of calling the block for non-existing key 267s when initializing with no arguments 267s is expected to be empty 267s when initialized with a default object 267s uses the default object for non-existing keys 267s concurrency 268s is expected to be empty 268s 268s Concurrent::SettableStruct 268s it should behave like mergeable_struct 268s #merge 268s raises an exception when given a hash with members not in the struct 268s calls the given block for each key in `other` 268s retains the value for all members not without values in the given hash 268s updates all members with the new values from a given hash 268s returns a new object 268s definition 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s defines a setter for each member 268s #[index]= 268s raises an exception when given an out-of-bound index 268s raises an exception when given an index that has already been set 268s sets the value when given a valid index 268s it should behave like struct 268s construction 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s sets all absent members to nil 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s raises an exception when extra members are given 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s sets all given members in order 268s accessors 268s #[member] 268s raises an exception when given a non-existent string member 268s retrieves the value when given a valid string member 268s raises an exception when given a non-existent symbol member 268s retrieves the value when given a valid symbol member 268s #[index] 268s retrieves the value when given a valid index 268s raises an exception when given an out-of-bound index 268s definition 268s evalues a given block against the new class 268s raises an exception when given an invalid class name 268s raises an exception when given no members 268s creates an anonymous class when given at least one member 268s raise an exception when given an invalid member 268s registers the class when given a class name 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/settable_struct.rb:121: warning: method redefined; discarding old baz 268s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/synchronization/abstract_struct.rb:161: warning: previous definition of baz was here 268s defines a getter for each member 268s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 268s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 268s registers the class when given a class name which is defined in the ancestors 268s conversion 268s #to_h 268s returns a Hash containing the names and values in order 268s #to_a 268s returns the to_a for this struct as an array 268s #to_s 268s includes all values 268s returns the same string as #inspect 268s includes the name of the class when registered 268s includes the names of all members 268s copy 268s #clone 268s shallowly clones all members along with the struct 268s copies the singleton class 268s copies the singleton class of members 268s retains frozen state 268s #dup 268s shallowly duplicates all members along with the struct 268s retains frozen state of members 268s discards singleton class 268s discards frozen state of the struct 268s copies the singleton class of members 268s properties 268s #values_at 268s returns values at offsets in a given range 268s returns values for multiple ranges 268s returns the values at multiple given offsets 268s returns the value at the given offset 268s returns values for ranges and offsets 268s #size 268s returns the number of struct members 268s #members 268s returns the struct members as an array of symbols 268s returns a different object than the array passed at definition 268s #values 268s returns the values of the struct as an array in order 268s #length 268s returns the number of struct members 268s enumeration 268s #each_pair 268s returns an enumerator when no block is given 268s yields the name and value of each struct member in order 268s #select 268s yields each value 268s returns an Array with the values from for which the block returns true 268s returns an enumerator when no block is given 268s #each 268s yields the value of each struct member in order 268s returns an enumerator when no block is given 268s comparison 268s #!= 268s returns true if other has different values 268s returns true if other has different struct subclass 268s returns false if other has same struct subclass and equal values 268s #== 268s returns true if other has same struct subclass and equal values 268s returns false if other has different values 268s returns false if other has different struct subclass 268s #[member]= 268s raises an exception when given a string member that has already been set 268s sets the value when given a valid string member 268s raises an exception when given a non-existent string member 268s raises an exception when given a symbol member that has already been set 268s raises an exception when given a non-existent symbol member 268s sets the value when given a valid symbol member 268s synchronization 268s protects getter methods 268s protects #select 268s protects #each_pair 268s protects #inspect 268s protects #[index] 268s protects getter methods 268s protects #to_h 268s protects #initialize_copy 268s protects #[member]= 268s protects #each 268s protects #[index]= 268s protects #values 268s protects #== 268s protects #[member] 268s protects #values_at 268s protects #to_s 268s protects #merge 268s copy 268s #clone 268s retains settability of members 268s #dup 268s retains settability of members 268s 268s Concurrent::ImmutableStruct 268s it should behave like struct 268s accessors 268s #[member] 268s retrieves the value when given a valid string member 268s retrieves the value when given a valid symbol member 268s raises an exception when given a non-existent string member 268s raises an exception when given a non-existent symbol member 268s #[index] 268s retrieves the value when given a valid index 268s raises an exception when given an out-of-bound index 268s definition 268s evalues a given block against the new class 268s raise an exception when given an invalid member 268s defines a getter for each member 268s creates an anonymous class when given at least one member 268s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 268s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: previous definition of ValidClassName2 was here 268s registers the class when given a class name which is defined in the ancestors 268s raises an exception when given an invalid class name 268s raises an exception when given no members 268s registers the class when given a class name 268s conversion 268s #to_s 268s returns the same string as #inspect 268s includes the names of all members 268s includes the name of the class when registered 268s includes all values 268s #to_a 268s returns the to_a for this struct as an array 268s #to_h 268s returns a Hash containing the names and values in order 268s properties 268s #values_at 268s returns values for multiple ranges 268s returns the values at multiple given offsets 268s returns values for ranges and offsets 268s returns values at offsets in a given range 268s returns the value at the given offset 268s #members 268s returns the struct members as an array of symbols 268s returns a different object than the array passed at definition 268s #size 268s returns the number of struct members 268s #length 268s returns the number of struct members 268s #values 268s returns the values of the struct as an array in order 268s comparison 268s #!= 268s returns false if other has same struct subclass and equal values 268s returns true if other has different struct subclass 268s returns true if other has different values 268s #== 268s returns true if other has same struct subclass and equal values 268s returns false if other has different struct subclass 268s returns false if other has different values 268s copy 268s #dup 268s shallowly duplicates all members along with the struct 268s discards frozen state of the struct 268s retains frozen state of members 268s discards singleton class 268s copies the singleton class of members 268s #clone 268s copies the singleton class 268s retains frozen state 268s copies the singleton class of members 268s shallowly clones all members along with the struct 268s construction 268s raises an exception when extra members are given 268s sets all given members in order 268s sets all absent members to nil 268s enumeration 268s #each_pair 268s yields the name and value of each struct member in order 268s returns an enumerator when no block is given 268s #each 268s returns an enumerator when no block is given 268s yields the value of each struct member in order 268s #select 268s returns an enumerator when no block is given 268s yields each value 268s returns an Array with the values from for which the block returns true 268s it should behave like mergeable_struct 268s #merge 268s raises an exception when given a hash with members not in the struct 268s returns a new object 268s updates all members with the new values from a given hash 268s retains the value for all members not without values in the given hash 268s calls the given block for each key in `other` 268s 268s Concurrent::Array 268s concurrency 268s is expected to be empty 268s .new 268s when initializing with a size argument 268s creates an array with size elements set to nil 268s when initializing with a block argument 268s creates an array with size elements set to the default value 268s when initializing with a default value argument 268s creates an array with size elements set to the default value 268s when initializing with no arguments 268s is expected to be empty 268s when initializing with another array as an argument 268s creates an array with the results of calling #to_ary on the other array 268s creates an array with the same contents as the other array 268s creates a new array 268s .[] 268s when initializing with no arguments 268s is expected to be empty 268s when initializing with arguments 268s creates an array with the given objects 268s #slice 268s correctly initializes the monitor 268s 268s Concurrent::Channel 268s #next? 268s returns a just Maybe, true when there are multiple items 268s returns a nothing Maybe and false on failure 268s returns a just Maybe and true when there is one item 268s #take! 268s raises an exception on failure 268s takes the next item when not empty 268s #take? 268s returns a nothing Maybe on failure 268s returns a just Maybe on success 268s #next 268s returns , true when closed and last item 268s returns nil, false when closed and no items remain 268s returns , true when there are multiple items 268s returns nil, false when empty and closed 268s returns , true when there is one item 268s #take 268s returns nil on failure 268s takes the next item when not empty 268s #offer 268s returns true on success 268s rejects nil 268s rejects when the validator raises an exception 268s returns false on failure 268s rejects when the validator returns false 268s put? 268s returns a nothing Maybe on failure 268s rejects when the validator raises an exception 268s accepts nil 268s rejects when the validator returns false 268s returns a just Maybe on success 268s #poll? 268s returns a nothing Maybe immediately if no item is available 268s returns a just Maybe immediately if available 268s returns a nothing Maybe on failure 268s offer? 268s returns a just Maybe on success 268s accepts nil 268s rejects when the validator raises an exception 268s rejects when the validator returns false 268s returns a nothing Maybe on failure 268s offer! 268s returns true on success 268s rejects when the validator raises an exception 268s raises an exception on failure 268s rejects nil 268s rejects when the validator returns false 268s #poll! 268s raises an exception on failure 268s returns the next item immediately if available 268s raises an exception immediately if no item is available 268s #poll 268s returns nil on failure 268s returns nil immediately if no item is available 268s returns the next item immediately if available 268s .each 268s iterates until the channel is closed 268s raises and exception when no block is given 268s put! 268s raises an exception on failure 268s returns true on success 268s rejects when the validator raises an exception 268s rejects nil 268s rejects when the validator returns false 268s factories 268s is expected to receive new(10) 1 time 268s is expected to receive new(10) 1 time 268s goroutines 268s .go_via 268s raises an exception when no block is given 268s is expected to receive post(1, 2, 3) 1 time 268s .go 268s raises an exception when no block is given 268s is expected to receive post(1, 2, 3) 1 time 268s .go_loop 268s loops until the block returns false 268s raises an exception when no block is given 268s .go_loop_via 268s raises an exception when no block is given 268s loops until the block returns false 268s select 268s is expected to be truthy 268s raises an exception when no block is given 268s passes a selector to the block 268s #put 268s rejects when the validator returns false 268s rejects nil 268s rejects when the validator raises an exception 268s returns false on failure 268s returns true on success 268s initialization 268s raises an exception when the :buffer is invalid 268s raises an exception when :dropping given without :capacity 268s is :buffered when :capacity > 0 and no :buffer given 268s is :unbuffered when neither :buffer nore :capacity is given 268s raises an exception when :buffered given without :capacity 268s is :sliding when :sliding and :capacity > 0 268s raises an exception when :buffered and :capacity < 0 268s is :buffered when :buffered given 268s is :dropping when :dropping and :capacity > 0 268s raises an exception when :sliding given without :capacity 268s is :unbuffered when :buffered and capacity: 0 268s raises an exception when :sliding and :capacity < 1 268s raises an exception when both :unbuffered and :capacity are given 268s is :unbuffered when :unbuffered is given 268s uses the given buffer 268s raises an exception when :dropping and :capacity < 1 268s 268s Concurrent::Exchanger 268s class hierarchy 268s inherits from RubyExchanger 268s 268s Concurrent::ProcessingActor 268s is expected to eq "ab" 268s 268s Concurrent::Promises 268s zip_futures_over 268s .event 268s is expected to equal true 268s .zip_events 268s waits for all and returns event 268s Future 268s can be risen when rejected 268s has sync and async callbacks 268s chains with correct arguments 268s runs 268s value! supports setting timeout 268s result supports setting timeout 268s wait! supports setting timeout 268s chains 268s wait supports setting timeout 268s value supports setting timeout 268s constructs promise like tree 268s resolves future when Exception raised 268s allows graphs 268s reason supports setting timeout 268s #flat 268s it propagates rejection of the future which was suppose to provide inner future 268s propagates requests for values to delayed futures 268s rejects if inner value is not a future 268s accepts inner event 268s returns value of inner future 268s propagates rejection of inner future 268s has shortcuts 268s ResolvableEvent 268s #resolve(raise_on_reassign = true) 268s #wait 268s #resolve(raise_on_reassign = false) 268s reservation 268s .any_fulfilled 268s continues on first result 268s treats a resolved Event as a fulfilled Future 268s treats a pending Event as a pending Future 268s .rejected_future 269s raises the correct error when passed an unraised error 269s chain_resolvable 269s future 269s event 269s .future without block 269s is expected to eq 0 269s .zip 269s waits for all results 269s when a future raises an error 269s raises a concurrent error 269s when deeply nested 269s raises the original error 269s value! 269s does not return spuriously without timeout 269s does not return spuriously with timeout 269s .future 269s executes 269s executes with args 269s .any_resolved 269s continues on first result 269s .delay 269s is expected to eq 2 269s ResolvableFuture 269s #wait! 269s result 269s #wait 269s atomic_resolution 269s #value! 269s #value 269s reservation 269s #reason 269s interoperability 269s with erlang actor 269s with channel 269s with processing actor 269s .schedule 269s scheduled execution in graph 269s scheduled execution 269s 269s Concurrent::Atom 269s #compare_and_set 269s returns true if the current value matches 269s returns false if the current value does not match 269s rejects the new value if the current value does not match 269s returns false if the validator returns false 269s sets the new value if the current value matches 269s returns false if the validator raises an exception 269s rejects the new value if the validator returns false 269s rejects the new value if the validator raises an exception 269s #reset 269s returns the new value on success 269s returns the new value on success 269s returns the old value if the validator returns false 269s returns the old value if the validator raises an exception 269s sets the new value 269s #swap 269s rejects the new value if the validator returns false 269s rejects the new value if the validator raises an exception 269s reraises the exception from block 269s returns the new value on success 269s calls the block more than once if the value changes underneath 269s sets the new value to the result of the block 269s returns the old value if the validator returns false 269s raises an exception when no block is given 269s passes all arguments to the block 269s returns the old value if the validator raises an exception 269s passes the current value to the block 269s observable 269s behaves like observable 269s first notification 270s does not notify any observers removed with #delete_observer 270s calls the appropriate function on all observers which specified a :func 271s does not notify any observers after #delete_observers called 271s calls the proc for all observers added as a block 271s calls the #update method on all observers without a specified :func 271s #add_observer 271s creates an observer from a block if called before first notification 271s adds an observer with :func if called before first notification 271s adds an observer 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 returns the given observer even when not found in the observer set 271s returns the removed observer if found in the observer set 271s deletes the given observer if called before first notification 271s #count_observers 271s returns a count of registered observers if called before first notification 271s returns zero after #delete_observers has been called 271s returns zero for a new observable object 271s #delete_observers 271s deletes all observers when called before first notification 271s returns self 271s construction 271s sets the initial value to the given value 271s 271s Concurrent::Future 271s it should behave like thread_arguments 271s passes an empty array when there is no :args key 271s allows the given arguments array to be dereferenced 271s passes an array when when the :args key has an array value 271s passes the given array when the :args key has a complex array value 271s passes an empty array when opts is not given 271s passes a one-element array when the :args key has a non-array value 271s passes an empty array when opts is an empty hash 271s passes an empty array when the :args key has a nil value 271s class #execute 271s calls #execute on the new Future 271s creates a new Future 271s passes the block to the new Future 271s #initialize 271s raises an exception when no block given 271s sets the state to :unscheduled 271s uses the executor given with the :executor option 271s uses the global io executor by default 271s cancellation 271s #wait_or_cancel 271s returns true if the operation completes before timeout 271s cancels the task on timeout 271s #cancel 271s fails to cancel the task once processing has begun 271s fails to cancel the task once processing is complete 271s cancels a pending task 271s instance #execute 271s posts the block given on construction 271s returns self 271s does nothing unless the state is :unscheduled 271s sets the state to :pending 271s fulfillment 271s sets the state to :rejected when the handler raises an exception 271s sets the value to nil when the handler raises Exception 271s sets the value to nil when the handler raises an exception 271s sets the reason to the Exception instance when the handler raises Exception 271s sets the value to the result of the handler 271s passes all arguments to handler 271s sets the state to :processing while the task is executing 271s sets the state to :fulfilled when the block completes 271s aliases 272s aliases #deref for #value 272s aliases #realized? for #fulfilled? 272s it should behave like ivar 272s #try_set 272s when unset 272s assigns the value 272s returns true 272s assigns the block result 272s when fulfilled 272s does not assign the block result 272s does not assign the value 272s returns false 272s when rejected 272s does not assign the value 272s has a nil value 272s does not assign the block result 272s returns false 272s #fail 272s sets the state to be rejected 272s defaults the reason to a StandardError 272s sets the value to be nil 272s sets the reason to the given exception 272s raises an exception if set more than once 272s returns self 272s it should behave like obligation 272s #reason 272s is nil when :fulfilled 272s is set to error object of the exception when :rejected 272s is nil when :pending 272s #value 272s returns nil when timeout reached 272s is nil when :pending 272s is nil when :rejected 272s returns nil when reaching the optional timeout value 277s returns the value when fulfilled before timeout 282s blocks the caller when :pending and timeout is nil 282s is set to the return value of the block when :fulfilled 282s returns immediately when timeout is zero 282s #state 282s is :fulfilled when the handler completes 282s is :pending when first created 282s is :rejected when the handler raises an exception 282s it should behave like dereferenceable 282s calls #dup when the :dup_on_deref option is true 282s supports dereference flags with observers 282s defaults :copy_on_deref to nil 282s does not call the #copy_on_deref block when the value is nil 283s calls the :copy block first followed by #dup followed by #freeze 283s does not call #freeze when #freeze_on_deref is set and the value is nil 283s calls #freeze when the :freeze_on_deref option is true 283s calls the block when the :copy_on_deref option is passed a proc 283s defaults :freeze_on_deref to false 283s does not call #dup when #dup_on_deref is set and the value is nil 284s defaults :dup_on_deref to false 284s it should behave like observable 284s #delete_observers 284s returns self 284s deletes all observers when called before first notification 284s #add_observer 284s adds an observer with :func if called before first notification 284s raises an exception if not given an observer or a block 284s creates an observer from a block if called before first notification 284s raises an exception when given both an observer and a block 284s adds an observer if called before first notification 284s #count_observers 284s returns zero after #delete_observers has been called 284s returns zero for a new observable object 284s returns a count of registered observers if called before first notification 284s first notification 284s calls the appropriate function on all observers which specified a :func 285s does not notify any observers removed with #delete_observer 285s calls the proc for all observers added as a block 286s does not notify any observers after #delete_observers called 286s calls the #update method on all observers without a specified :func 286s #delete_observer 286s returns the removed observer if found in the observer set 286s deletes the given observer if called before first notification 286s returns the given observer even when not found in the observer set 286s #set 286s fulfils when given a block which executes successfully 286s raises an exception when given neither a value nor a block 286s sets the state to be fulfilled 286s raises an exception if set more than once 286s raises an exception when given a value and a block 286s sets the value 286s returns self 286s rejects when given a block which raises an exception 286s initialization 286s sets the state to incomplete 286s observation 286s notifies an observer added after fulfillment 286s does not notify existing observers when a new observer added after fulfillment 286s notifies all observers on fulfillment 286s does not notify existing observers when a new observer added after rejection 286s notifies an observer added after rejection 286s notifies all observers on rejection 286s deadlock avoidance 286s should notify observers outside mutex lock 286s should notify a new observer added after fulfillment outside lock 286s 286s #leave_transaction 286s neither commits nor aborts a transaction 286s raises an exception outside an #atomically block 286s 286s Concurrent::Actor 286s forbids Immediate executor 286s links atomically 286s links 286s dead letter routing 286s logs by deafault 286s messaging 286s is expected to eq 4 286s termination 286s terminates with all its children 286s spawning 286s terminates on failed initialization and raises with spawn! 286s terminates on failed initialization 286s terminates on failed message processing 286s Actor#spawn! 286s spawn 286s executor should be global 286s returns arg 286s #name 286s is expected to eq "ping" 286s #path 286s is expected to eq "/ping" 286s #reference 286s is expected to eq # 286s #parent 286s is expected to eq # 286s context_spawn_by_hash 286s executor should be global 286s returns arg 286s #reference 286s is expected to eq # 286s #path 286s is expected to eq "/ping" 286s #parent 286s is expected to eq # 286s #name 286s is expected to eq "ping" 286s context_spawn 286s executor should be global 286s returns arg 286s #reference 286s is expected to eq # 286s #parent 286s is expected to eq # 286s #path 286s is expected to eq "/ping" 286s #name 286s is expected to eq "ping" 286s spawn_by_hash 286s returns arg 286s executor should be global 286s #name 286s is expected to eq "ping" 286s #parent 286s is expected to eq # 286s #path 286s is expected to eq "/ping" 286s #reference 286s is expected to eq # 286s pausing 286s pauses on error and resets 286s pauses on error and resumes 286s pauses on error and restarts 286s envelope 286s is expected to eq # 286s pool 286s supports asks 286s message redirecting 286s is evaluated by child 286s children 286s has children set after a child is created 286s 286s monotonic_time 286s behavior 286s returns a Float when unit = :float_second 286s returns seconds as float 286s returns an Integer when unit = :millisecond 286s returns an Integer when unit = :nanosecond 286s returns an Integer when unit = :microsecond 287s raises ArgumentError on unknown units 287s returns a Float when unit = :float_microsecond 287s returns a Float when unit = :float_millisecond 287s returns an Integer when unit = :second 287s 287s #abort_transaction 287s raises an exception outside an #atomically block 287s 287s Concurrent 287s Throttle 287s capacity limited 287s acquiring 287s #to_s 287s #on 287s 287s Concurrent::Maybe 287s comparison 287s something is less than a bigger value 287s nothing is not greater than nothing 287s something is not equal to nothing 287s something is not equal to a different value 287s something is greater than a smaller value 287s nothing is equal to nothing 287s something is equal to the same value 287s nothing is not less than nothing 287s construction 287s hides Maybe.new 287s Maybe.nothing 287s creates a new Nothing Maybe 287s creates a new error object when given nothing 287s creates a new error object with the given string 287s uses the given Error object 287s Maybe.just 287s creates a new Just Maybe 287s Maybe.from 287s creates a Just Maybe on success 287s passes all arguments to the block 287s sets the reason to the error object on exception 287s creates a Nothing Maybe on exception 287s sets the value to the block result on success 287s raises an exception when no block is given 287s when just 287s #nothing returns NONE 287s #fulfilled? returns true 287s #nothing? returns false 287s #reason returns NONE 287s #rejected? returns false 287s #just? returns true 287s #value returns the value 287s #just returns the value 287s when nothing 287s #nothing returns the raised error 287s #rejected? returns true 287s #just returns NONE 287s #value returns NONE 287s #nothing? returns true 287s #reason returns the raised error 287s #just? returns false 287s #fulfilled? returns false 287s #or 287s returns the other when nothing 287s returns the value when something 287s 287s Concurrent::Options 287s .executor_from_options 287s raises an exception when :executor is an unrecognized symbol 287s returns the global io executor when :executor is :io 287s returns an immediate executor when :executor is :immediate 287s returns the global fast executor when :executor is :fast 287s returns the given :executor 287s 287s Concurrent::RubyExchanger 289s Good: 9998, Bad (timeout): 2, Ugly: 0 289s stress test 289s behaves like exchanger 289s #try_exchange 289s behaves like exchanger method with indefinite timeout 289s blocks indefinitely 289s receives the other value 289s can be reused 289s behaves like exchanger method with finite timeout 289s can be reused 289s receives the other value 289s blocks until timeout 289s behaves like exchanger method cross-thread interactions 290s allows multiple firsts to cancel if necessary 290s when first, waits for a second 290s #exchange 290s behaves like exchanger method with finite timeout 290s blocks until timeout 290s can be reused 290s receives the other value 290s behaves like exchanger method cross-thread interactions 290s allows multiple firsts to cancel if necessary 290s when first, waits for a second 290s behaves like exchanger method with indefinite timeout 290s receives the other value 290s can be reused 290s blocks indefinitely 290s #exchange! 290s behaves like exchanger method with indefinite timeout 290s blocks indefinitely 290s receives the other value 290s can be reused 290s behaves like exchanger method cross-thread interactions 291s allows multiple firsts to cancel if necessary 291s when first, waits for a second 291s behaves like exchanger method with finite timeout 291s blocks until timeout 291s receives the other value 291s can be reused 291s 291s Concurrent::ScheduledTask 291s #initialize 291s raises an exception when no block given 291s sets the initial state to :unscheduled 291s raises an exception when seconds is less than zero 291s accepts a number of seconds (from now) as the schedule time 291s behavior 291s it should behave like obligation 291s #reason 291s is set to error object of the exception when :rejected 291s is nil when :pending 291s is nil when :fulfilled 291s #value 291s is set to the return value of the block when :fulfilled 291s returns nil when timeout reached 291s returns nil when reaching the optional timeout value 292s blocks the caller when :pending and timeout is nil 292s returns immediately when timeout is zero 293s returns the value when fulfilled before timeout 293s is nil when :pending 293s is nil when :rejected 293s #state 293s is :fulfilled when the handler completes 293s is :pending when first created 293s is :rejected when the handler raises an exception 293s it should behave like dereferenceable 293s calls #dup when the :dup_on_deref option is true 293s calls #freeze when the :freeze_on_deref option is true 293s defaults :freeze_on_deref to false 293s defaults :dup_on_deref to false 293s calls the :copy block first followed by #dup followed by #freeze 293s calls the block when the :copy_on_deref option is passed a proc 293s supports dereference flags with observers 293s does not call the #copy_on_deref block when the value is nil 293s does not call #freeze when #freeze_on_deref is set and the value is nil 293s does not call #dup when #dup_on_deref is set and the value is nil 293s defaults :copy_on_deref to nil 293s it should behave like observable 293s first notification 295s does not notify any observers after #delete_observers called 295s calls the appropriate function on all observers which specified a :func 295s calls the proc for all observers added as a block 295s does not notify any observers removed with #delete_observer 296s calls the #update method on all observers without a specified :func 296s #count_observers 296s returns zero after #delete_observers has been called 296s returns a count of registered observers if called before first notification 296s returns zero for a new observable object 296s #add_observer 296s creates an observer from a block if called before first notification 296s raises an exception if not given an observer or a block 296s adds an observer with :func if called before first notification 296s adds an observer if called before first notification 296s raises an exception when given both an observer and a block 296s #delete_observers 296s deletes all observers when called before first notification 296s returns self 296s #delete_observer 296s returns the removed observer if found in the observer set 296s deletes the given observer if called before first notification 296s returns the given observer even when not found in the observer set 296s class #execute 296s passes the block to the new ScheduledTask 296s creates a new ScheduledTask 296s calls #execute on the new ScheduledTask 296s instance #execute 296s returns self 296s sets the sate to :pending 296s does nothing unless the state is :unscheduled 296s execution 296s passes :args from the options to the block 296s uses the :executor from the options 296s uses the :timer_set from the options 296s sets the state to :processing when the task is running 296s observation 296s notifies all observers on rejection 296s notifies all observers on fulfillment 296s returns true for an observer added while :pending 296s returns true for an observer added while :unscheduled 296s returns true for an observer added while :processing 296s #cancel 296s returns true on success 296s returns false if the task has already been performed 297s cancels the task if it has not yet scheduled 297s sets the reason to CancelledOperationError when cancelled 297s cancels the task if it has not yet started 298s returns false if the task is already in progress 298s 298s Concurrent::Synchronization 298s Concurrent::Synchronization::Object 298s does not ensure visibility when not needed 298s does ensure visibility when specified in a parent 298s does ensure visibility once when specified in child again 298s does ensure visibility when specified 298s it should behave like attr_volatile 300s older writes are always visible 300s Concurrent::Synchronization::Volatile module 300s it should behave like attr_volatile 300s older writes are always visible 300s Concurrent::Synchronization::LockableObject 300s final field always visible 300s #synchronize 300s allows only one thread to execute count 300s #wait 300s allows the sleeping thread to be killed 300s releases the lock on the current object 300s can be called from within a #synchronize block 300s puts the current thread to sleep 300s it should behave like attr_volatile 302s older writes are always visible 302s signaling 302s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 302s attr_atomic 302s is expected to be == b 302s 302s Concurrent::Map 302s #key? 302s is unfreezable 302s default_proc is called with the Concurrent::Map and the key after #dup 302s options validation 302s #delete_pair 302s #put_if_absent 302s collision resistance 302s concurrency 302s #values 302s default_proc is called with the Concurrent::Map and the key 302s #get_and_set 302s #size 302s #replace_if_exists 302s initial capacity options validation 302s #get_or_default 302s #each_key 302s #clear 302s retrieval 302s collision resistance with arrays 302s marshal dump does not work with default proc 302s #value? 302s #delete 302s default proc 302s #empty 302s #keys 302s marshal dump load 302s load factor options validation 302s updates dont block reads 302s #each_value 302s #inspect 302s falsy default proc 302s #key 302s #replace_pair 302s #dup,#clone 302s #compute 302s exception 302s common 302s with return 302s #compute_if_present 302s common 302s exception 302s with return 302s #fetch 302s common 302s falsy 302s with return 302s #merge_pair 302s exception 302s common 302s with return 302s #each 302s it should behave like collection_each 302s common 302s allows modification 302s pair iterator 302s when no block is given 302s returns an object which is enumerable 302s returns an enumerator 302s #each_pair 302s it should behave like collection_each 302s common 302s pair iterator 302s allows modification 302s when no block is given 302s returns an enumerator 302s returns an object which is enumerable 302s #compute_if_absent 302s atomicity 302s exception 302s works in default_proc 302s common 302s with return 302s #fetch_or_store 302s falsy 302s common 302s with return 302s 302s Concurrent::Agent 302s nested actions 302s occur in the order they ar post 302s work with immediate execution 302s initialization 302s sets #failed? to false 302s sets the initial error to nil 302s defaults the error mode to :continue when an error handler is given 302s defaults the error mode to :fail when no error handler is given 302s sets the error mode when given a valid value 302s sets the initial value 302s raises an error when given an invalid error mode 302s action processing 302s when validation raises an error the handler will be called 303s upon validation the new value will be set to the block return value 303s the given block will be passed any provided arguments 303s when validation raises an error the value will not change 303s the return value will be passed to the validator function 303s any recursive action dispatches will run after the value has been updated 303s when validation fails the handler will be called 303s when the action raises an error the validator will not be called 303s when the action raises an error the handler will be called 303s when validation returns false the value will not change 303s on success all observers will be notified 303s the given block will be passed the current value 303s when the action raises an error the value will not change 303s posting 303s with #send 303s returns false when #failed? 303s returns true when the job is post 303s posts to the global fast executor 303s does not wait for the action to process 303s with #send_off 303s does not wait for the action to process 303s returns true when the job is post 303s returns false when #failed? 303s posts to the global io executor 303s with #send! 303s returns true when the job is post 303s raises an error when #failed? 303s posts to the global fast executor 303s does not wait for the action to process 303s with #send_off! 303s does not wait for the action to process 303s posts to the global io executor 303s returns true when the job is post 303s raises an error when #failed? 303s with #send_via 303s returns true when the job is post 303s posts to the given executor 303s returns false when #failed? 303s with #<< 303s posts to the global io executor 303s returns self when #failed? 303s returns self when the job is post 303s does not wait for the action to process 303s with #send_via! 303s posts to the given executor 303s raises an error when #failed? 303s returns true when the job is post 303s with #post 303s posts to the global io executor 303s returns true when the job is post 303s does not wait for the action to process 303s returns false when #failed? 303s error handling 303s the agent will be passed to the handler 303s the exception will be passed to the handler 303s does not trigger observation 303s #restart 303s when #failed? 303s raises an error if the new value is not valid 303s does not trigger observation 303s sets #failed? to true 303s clears the error 303s does not clear the action queue when :clear_actions is false 303s resumes action processing if actions are enqueued 303s sets the new value 303s does not clear the action queue when :clear_actions is not given 303s removes all actions from the queue when :clear_actions is true 303s when not #failed? 303s raises an error 303s observable 303s behaves like observable 303s #delete_observer 303s deletes the given observer if called before first notification 303s returns the given observer even when not found in the observer set 303s returns the removed observer if found in the observer set 303s #count_observers 303s returns zero after #delete_observers has been called 303s returns zero for a new observable object 303s returns a count of registered observers if called before first notification 303s first notification 303s calls the appropriate function on all observers which specified a :func 304s does not notify any observers after #delete_observers called 304s calls the proc for all observers added as a block 305s does not notify any observers removed with #delete_observer 305s calls the #update method on all observers without a specified :func 305s #add_observer 305s raises an exception if not given an observer or a block 305s raises an exception when given both an observer and a block 305s adds an observer if called before first notification 305s adds an observer with :func if called before first notification 305s creates an observer from a block if called before first notification 305s #delete_observers 305s deletes all observers when called before first notification 305s returns self 305s waiting 305s with .await_for 305s returns true when all prior actions for all agents have processed 306s returns false on timeout 306s returns true when there are no pending actions 306s with #await_for 306s does not block on actions from other threads 306s returns true when there are no pending actions 308s returns false on timeout 308s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 308s returns true when all prior actions have processed 308s with #await_for! 308s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 308s does not block on actions from other threads 309s raises an error on timeout 309s returns true when there are no pending actions 310s returns true when all prior actions have processed 310s with #await 311s blocks indefinitely 312s returns true when all prior actions have processed 312s returns self when there are no pending actions 312s does not block on actions from other threads 312s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 312s with await_for! 313s raises an exception on timeout 313s returns true when all prior actions for all agents have processed 313s returns true when there are no pending actions 313s with .await 313s returns true when all prior actions on all agents have processed 313s with #wait 314s returns true when all prior actions have processed 315s blocks indefinitely when timeout is nil 315s does not block on actions from other threads 315s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 315s returns true when there are no pending actions and a timeout is given 316s returns false on timeout 316s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 316s returns true when there are no pending actions and timeout is nil 316s the await job 316s does not trigger the error mode 316s does not change the value 316s waits for nested actions 316s does not trigger observers 316s validation 316s rejects the new value when the validator returns false 316s sets the error when the error mode is :fail and the validator raises an error 316s sets the error when the error mode is :fail and the validator returns false 316s does not set an error when the error mode is :continue and the validator returns false 316s does not trigger observation when validation fails 316s does not set an error when the error mode is :continue and the validator raises an error 316s sets the new value when the validator returns true 316s rejects the new value when the validator raises an error 316s error mode 316s :continue 316s does not block further action processing 316s does not set an error when the action raises an error 316s sets #failed? to false 316s does not set an error when the validator raises an error 316s does not set an error when the validator returns false 316s :fail 317s blocks all further action processing until a restart 317s sets the error when the validator raises an error 317s sets #failed? to true 317s sets the error when the action raises an error 317s sets the error when the validator returns false 317s 317s Finished in 1 minute 23.23 seconds (files took 0.41892 seconds to load) 317s 1426 examples, 0 failures, 7 pending 317s 317s Randomized with seed 1 317s 317s mv ./.gem2deb.lib lib 317s mv ./.gem2deb.ext ext 317s autopkgtest [09:56:28]: test ruby: -----------------------] 321s ruby PASS 321s autopkgtest [09:56:32]: test ruby: - - - - - - - - - - results - - - - - - - - - - 325s autopkgtest [09:56:36]: test jruby: preparing testbed 370s autopkgtest [09:57:21]: testbed dpkg architecture: armhf 373s autopkgtest [09:57:24]: testbed apt version: 2.7.14build2 373s autopkgtest [09:57:24]: @@@@@@@@@@@@@@@@@@@@ test bed setup 382s Get:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease [117 kB] 382s Get:2 http://ftpmaster.internal/ubuntu noble-proposed/multiverse Sources [6428 B] 383s Get:3 http://ftpmaster.internal/ubuntu noble-proposed/universe Sources [636 kB] 384s Get:4 http://ftpmaster.internal/ubuntu noble-proposed/main Sources [331 kB] 384s Get:5 http://ftpmaster.internal/ubuntu noble-proposed/restricted Sources [7108 B] 384s Get:6 http://ftpmaster.internal/ubuntu noble-proposed/main armhf Packages [323 kB] 384s Get:7 http://ftpmaster.internal/ubuntu noble-proposed/main armhf c-n-f Metadata [2492 B] 384s Get:8 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf Packages [1368 B] 384s Get:9 http://ftpmaster.internal/ubuntu noble-proposed/restricted armhf c-n-f Metadata [116 B] 384s Get:10 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf Packages [637 kB] 384s Get:11 http://ftpmaster.internal/ubuntu noble-proposed/universe armhf c-n-f Metadata [7776 B] 384s Get:12 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf Packages [1452 B] 384s Get:13 http://ftpmaster.internal/ubuntu noble-proposed/multiverse armhf c-n-f Metadata [116 B] 386s Fetched 2071 kB in 2s (1028 kB/s) 386s Reading package lists... 399s sh: 1: dhclient: not found 401s tee: /proc/self/fd/2: Permission denied 423s Hit:1 http://ftpmaster.internal/ubuntu noble-proposed InRelease 423s Hit:2 http://ftpmaster.internal/ubuntu noble InRelease 423s Hit:3 http://ftpmaster.internal/ubuntu noble-updates InRelease 423s Hit:4 http://ftpmaster.internal/ubuntu noble-security InRelease 424s Reading package lists... 424s Reading package lists... 424s Building dependency tree... 424s Reading state information... 424s Calculating upgrade... 425s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 425s Reading package lists... 425s Building dependency tree... 425s Reading state information... 426s 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 428s autopkgtest [09:58:19]: rebooting testbed after setup commands that affected boot 520s Reading package lists... 520s Building dependency tree... 520s Reading state information... 521s Starting pkgProblemResolver with broken count: 0 521s Starting 2 pkgProblemResolver with broken count: 0 521s Done 522s The following additional packages will be installed: 522s ca-certificates-java default-jre-headless java-common jruby libasm-java 522s libbackport9-java libdirgra-java libfixposix4t64 libhawtjni-runtime-java 522s libheadius-options-java libinvokebinder-java libjansi-native-java 522s libjansi1-java libjcodings-java libjffi-java libjffi-jni libjitescript-java 522s libjline2-java libjnr-constants-java libjnr-enxio-java libjnr-ffi-java 522s libjnr-netdb-java libjnr-posix-java libjnr-unixsocket-java 522s libjnr-x86asm-java libjoda-time-java libjpeg-turbo8 libjpeg8 522s libjruby-joni-java libjzlib-java liblcms2-2 libpcsclite1 libruby libruby3.2 522s libsnakeyaml-engine-java openjdk-21-jre-headless rake ruby ruby-concurrent 522s ruby-concurrent-ext ruby-diff-lcs ruby-net-telnet ruby-rspec ruby-rspec-core 522s ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support ruby-rubygems 522s ruby-sdbm ruby-timecop ruby-webrick ruby-xmlrpc ruby3.2 rubygems-integration 522s Suggested packages: 522s default-jre libheadius-options-java-doc libinvokebinder-java-doc 522s libjnr-ffi-java-doc libjnr-netdb-java-doc libjnr-posix-java-doc 522s libjoda-convert-java liblcms2-utils pcscd libnss-mdns fonts-dejavu-extra 522s fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei 522s | fonts-wqy-zenhei fonts-indic ri ruby-dev bundler 522s Recommended packages: 522s fonts-lato libcups2t64 libfontconfig1 libfreetype6 libharfbuzz0b 522s libasound2t64 zip libjs-jquery 522s The following NEW packages will be installed: 522s autopkgtest-satdep ca-certificates-java default-jre-headless java-common 522s jruby libasm-java libbackport9-java libdirgra-java libfixposix4t64 522s libhawtjni-runtime-java libheadius-options-java libinvokebinder-java 522s libjansi-native-java libjansi1-java libjcodings-java libjffi-java 522s libjffi-jni libjitescript-java libjline2-java libjnr-constants-java 522s libjnr-enxio-java libjnr-ffi-java libjnr-netdb-java libjnr-posix-java 522s libjnr-unixsocket-java libjnr-x86asm-java libjoda-time-java libjpeg-turbo8 522s libjpeg8 libjruby-joni-java libjzlib-java liblcms2-2 libpcsclite1 libruby 522s libruby3.2 libsnakeyaml-engine-java openjdk-21-jre-headless rake ruby 522s ruby-concurrent ruby-concurrent-ext ruby-diff-lcs ruby-net-telnet ruby-rspec 522s ruby-rspec-core ruby-rspec-expectations ruby-rspec-mocks ruby-rspec-support 522s ruby-rubygems ruby-sdbm ruby-timecop ruby-webrick ruby-xmlrpc ruby3.2 522s rubygems-integration 522s 0 upgraded, 55 newly installed, 0 to remove and 0 not upgraded. 522s Need to get 85.6 MB/85.6 MB of archives. 522s After this operation, 252 MB of additional disk space will be used. 522s Get:1 /tmp/autopkgtest.mkkHsO/2-autopkgtest-satdep.deb autopkgtest-satdep armhf 0 [732 B] 522s Get:2 http://ftpmaster.internal/ubuntu noble/main armhf ca-certificates-java all 20240118 [11.6 kB] 523s Get:3 http://ftpmaster.internal/ubuntu noble/main armhf java-common all 0.75+exp1 [6798 B] 523s Get:4 http://ftpmaster.internal/ubuntu noble/main armhf liblcms2-2 armhf 2.14-2 [134 kB] 523s Get:5 http://ftpmaster.internal/ubuntu noble/main armhf libjpeg-turbo8 armhf 2.1.5-2ubuntu1 [123 kB] 523s Get:6 http://ftpmaster.internal/ubuntu noble/main armhf libjpeg8 armhf 8c-2ubuntu11 [2148 B] 523s Get:7 http://ftpmaster.internal/ubuntu noble/main armhf libpcsclite1 armhf 2.0.3-1build1 [21.2 kB] 523s Get:8 http://ftpmaster.internal/ubuntu noble/main armhf openjdk-21-jre-headless armhf 21.0.3~7ea-1build1 [39.7 MB] 524s Get:9 http://ftpmaster.internal/ubuntu noble/main armhf default-jre-headless armhf 2:1.21-75+exp1 [3094 B] 524s Get:10 http://ftpmaster.internal/ubuntu noble/universe armhf libasm-java all 9.6~us1-0ubuntu1 [386 kB] 524s Get:11 http://ftpmaster.internal/ubuntu noble/universe armhf libbackport9-java all 1.10-2 [13.2 kB] 524s Get:12 http://ftpmaster.internal/ubuntu noble/universe armhf libdirgra-java all 0.4-2 [21.6 kB] 524s Get:13 http://ftpmaster.internal/ubuntu noble/universe armhf libfixposix4t64 armhf 1:0.5.1-1+nmu1.1build1 [14.5 kB] 524s Get:14 http://ftpmaster.internal/ubuntu noble/universe armhf libheadius-options-java all 1.7-1 [18.2 kB] 524s Get:15 http://ftpmaster.internal/ubuntu noble/universe armhf libinvokebinder-java all 1.13-1 [51.7 kB] 524s Get:16 http://ftpmaster.internal/ubuntu noble/universe armhf libhawtjni-runtime-java all 1.18-1 [28.9 kB] 524s Get:17 http://ftpmaster.internal/ubuntu noble/universe armhf libjansi-native-java all 1.8-2 [24.1 kB] 524s Get:18 http://ftpmaster.internal/ubuntu noble/universe armhf libjansi1-java all 1.18-3ubuntu1 [56.0 kB] 524s Get:19 http://ftpmaster.internal/ubuntu noble/universe armhf libjcodings-java all 1.0.58-1 [1474 kB] 524s Get:20 http://ftpmaster.internal/ubuntu noble/universe armhf libjffi-jni armhf 1.3.13+ds-1 [24.9 kB] 524s Get:21 http://ftpmaster.internal/ubuntu noble/universe armhf libjffi-java all 1.3.13+ds-1 [112 kB] 524s Get:22 http://ftpmaster.internal/ubuntu noble/universe armhf libjitescript-java all 0.4.3-1 [24.4 kB] 524s Get:23 http://ftpmaster.internal/ubuntu noble/universe armhf libjline2-java all 2.14.6-5 [150 kB] 524s Get:24 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-constants-java all 0.10.4-2 [1397 kB] 524s Get:25 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-x86asm-java all 1.0.2-5.1 [207 kB] 524s Get:26 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-ffi-java all 2.2.15-2 [627 kB] 524s Get:27 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-enxio-java all 0.32.16-1 [33.7 kB] 524s Get:28 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-netdb-java all 1.1.6-1.1 [58.8 kB] 524s Get:29 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-posix-java all 3.1.18-1 [267 kB] 524s Get:30 http://ftpmaster.internal/ubuntu noble/universe armhf libjnr-unixsocket-java all 0.38.21-2 [46.9 kB] 524s Get:31 http://ftpmaster.internal/ubuntu noble/universe armhf libjoda-time-java all 2.10.14-1 [535 kB] 524s Get:32 http://ftpmaster.internal/ubuntu noble/universe armhf libjruby-joni-java all 2.2.1-1 [222 kB] 524s Get:33 http://ftpmaster.internal/ubuntu noble/universe armhf libjzlib-java all 1.1.3-3 [76.8 kB] 524s Get:34 http://ftpmaster.internal/ubuntu noble/universe armhf libsnakeyaml-engine-java all 2.7+ds-3 [258 kB] 524s Get:35 http://ftpmaster.internal/ubuntu noble/universe armhf jruby all 9.4.6.0+ds-1ubuntu3 [33.3 MB] 525s Get:36 http://ftpmaster.internal/ubuntu noble/main armhf rubygems-integration all 1.18 [5336 B] 525s Get:37 http://ftpmaster.internal/ubuntu noble/main armhf ruby3.2 armhf 3.2.3-1build3 [50.6 kB] 525s Get:38 http://ftpmaster.internal/ubuntu noble/main armhf ruby-rubygems all 3.4.20-1 [238 kB] 525s Get:39 http://ftpmaster.internal/ubuntu noble/main armhf ruby armhf 1:3.2~ubuntu1 [3466 B] 525s Get:40 http://ftpmaster.internal/ubuntu noble/main armhf rake all 13.0.6-3 [61.6 kB] 525s Get:41 http://ftpmaster.internal/ubuntu noble/main armhf ruby-net-telnet all 0.2.0-1 [13.3 kB] 525s Get:42 http://ftpmaster.internal/ubuntu noble/main armhf ruby-webrick all 1.8.1-1 [52.3 kB] 525s Get:43 http://ftpmaster.internal/ubuntu noble/main armhf ruby-xmlrpc all 0.3.2-2 [24.8 kB] 525s Get:44 http://ftpmaster.internal/ubuntu noble/main armhf ruby-sdbm armhf 1.0.0-5build4 [14.0 kB] 525s Get:45 http://ftpmaster.internal/ubuntu noble/main armhf libruby3.2 armhf 3.2.3-1build3 [5099 kB] 526s Get:46 http://ftpmaster.internal/ubuntu noble/main armhf libruby armhf 1:3.2~ubuntu1 [4694 B] 526s Get:47 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-concurrent all 1.2.3-2build1 [282 kB] 526s Get:48 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-concurrent-ext armhf 1.2.3-2build1 [8296 B] 526s Get:49 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-diff-lcs all 1.5.1-1 [22.8 kB] 526s Get:50 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-support all 3.13.0c0e0m0s1-2 [29.2 kB] 526s Get:51 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB] 526s Get:52 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [89.8 kB] 526s Get:53 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.0 kB] 526s Get:54 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-rspec all 3.13.0c0e0m0s1-2 [3500 B] 526s Get:55 http://ftpmaster.internal/ubuntu noble/universe armhf ruby-timecop all 0.9.8-1 [10.6 kB] 527s Fetched 85.6 MB in 4s (22.7 MB/s) 527s Selecting previously unselected package ca-certificates-java. 527s (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 ... 58472 files and directories currently installed.) 527s Preparing to unpack .../00-ca-certificates-java_20240118_all.deb ... 528s Unpacking ca-certificates-java (20240118) ... 528s Selecting previously unselected package java-common. 528s Preparing to unpack .../01-java-common_0.75+exp1_all.deb ... 528s Unpacking java-common (0.75+exp1) ... 528s Selecting previously unselected package liblcms2-2:armhf. 528s Preparing to unpack .../02-liblcms2-2_2.14-2_armhf.deb ... 528s Unpacking liblcms2-2:armhf (2.14-2) ... 528s Selecting previously unselected package libjpeg-turbo8:armhf. 528s Preparing to unpack .../03-libjpeg-turbo8_2.1.5-2ubuntu1_armhf.deb ... 528s Unpacking libjpeg-turbo8:armhf (2.1.5-2ubuntu1) ... 528s Selecting previously unselected package libjpeg8:armhf. 528s Preparing to unpack .../04-libjpeg8_8c-2ubuntu11_armhf.deb ... 528s Unpacking libjpeg8:armhf (8c-2ubuntu11) ... 528s Selecting previously unselected package libpcsclite1:armhf. 528s Preparing to unpack .../05-libpcsclite1_2.0.3-1build1_armhf.deb ... 528s Unpacking libpcsclite1:armhf (2.0.3-1build1) ... 528s Selecting previously unselected package openjdk-21-jre-headless:armhf. 528s Preparing to unpack .../06-openjdk-21-jre-headless_21.0.3~7ea-1build1_armhf.deb ... 528s Unpacking openjdk-21-jre-headless:armhf (21.0.3~7ea-1build1) ... 529s Selecting previously unselected package default-jre-headless. 529s Preparing to unpack .../07-default-jre-headless_2%3a1.21-75+exp1_armhf.deb ... 529s Unpacking default-jre-headless (2:1.21-75+exp1) ... 529s Selecting previously unselected package libasm-java. 529s Preparing to unpack .../08-libasm-java_9.6~us1-0ubuntu1_all.deb ... 529s Unpacking libasm-java (9.6~us1-0ubuntu1) ... 529s Selecting previously unselected package libbackport9-java. 529s Preparing to unpack .../09-libbackport9-java_1.10-2_all.deb ... 529s Unpacking libbackport9-java (1.10-2) ... 529s Selecting previously unselected package libdirgra-java. 529s Preparing to unpack .../10-libdirgra-java_0.4-2_all.deb ... 529s Unpacking libdirgra-java (0.4-2) ... 529s Selecting previously unselected package libfixposix4t64:armhf. 529s Preparing to unpack .../11-libfixposix4t64_1%3a0.5.1-1+nmu1.1build1_armhf.deb ... 529s Unpacking libfixposix4t64:armhf (1:0.5.1-1+nmu1.1build1) ... 529s Selecting previously unselected package libheadius-options-java. 529s Preparing to unpack .../12-libheadius-options-java_1.7-1_all.deb ... 529s Unpacking libheadius-options-java (1.7-1) ... 529s Selecting previously unselected package libinvokebinder-java. 529s Preparing to unpack .../13-libinvokebinder-java_1.13-1_all.deb ... 529s Unpacking libinvokebinder-java (1.13-1) ... 529s Selecting previously unselected package libhawtjni-runtime-java. 529s Preparing to unpack .../14-libhawtjni-runtime-java_1.18-1_all.deb ... 529s Unpacking libhawtjni-runtime-java (1.18-1) ... 529s Selecting previously unselected package libjansi-native-java. 529s Preparing to unpack .../15-libjansi-native-java_1.8-2_all.deb ... 529s Unpacking libjansi-native-java (1.8-2) ... 529s Selecting previously unselected package libjansi1-java. 529s Preparing to unpack .../16-libjansi1-java_1.18-3ubuntu1_all.deb ... 529s Unpacking libjansi1-java (1.18-3ubuntu1) ... 529s Selecting previously unselected package libjcodings-java. 529s Preparing to unpack .../17-libjcodings-java_1.0.58-1_all.deb ... 529s Unpacking libjcodings-java (1.0.58-1) ... 529s Selecting previously unselected package libjffi-jni:armhf. 529s Preparing to unpack .../18-libjffi-jni_1.3.13+ds-1_armhf.deb ... 529s Unpacking libjffi-jni:armhf (1.3.13+ds-1) ... 529s Selecting previously unselected package libjffi-java. 529s Preparing to unpack .../19-libjffi-java_1.3.13+ds-1_all.deb ... 529s Unpacking libjffi-java (1.3.13+ds-1) ... 529s Selecting previously unselected package libjitescript-java. 529s Preparing to unpack .../20-libjitescript-java_0.4.3-1_all.deb ... 529s Unpacking libjitescript-java (0.4.3-1) ... 529s Selecting previously unselected package libjline2-java. 529s Preparing to unpack .../21-libjline2-java_2.14.6-5_all.deb ... 529s Unpacking libjline2-java (2.14.6-5) ... 529s Selecting previously unselected package libjnr-constants-java. 529s Preparing to unpack .../22-libjnr-constants-java_0.10.4-2_all.deb ... 529s Unpacking libjnr-constants-java (0.10.4-2) ... 529s Selecting previously unselected package libjnr-x86asm-java. 529s Preparing to unpack .../23-libjnr-x86asm-java_1.0.2-5.1_all.deb ... 529s Unpacking libjnr-x86asm-java (1.0.2-5.1) ... 529s Selecting previously unselected package libjnr-ffi-java. 529s Preparing to unpack .../24-libjnr-ffi-java_2.2.15-2_all.deb ... 529s Unpacking libjnr-ffi-java (2.2.15-2) ... 529s Selecting previously unselected package libjnr-enxio-java. 529s Preparing to unpack .../25-libjnr-enxio-java_0.32.16-1_all.deb ... 529s Unpacking libjnr-enxio-java (0.32.16-1) ... 529s Selecting previously unselected package libjnr-netdb-java. 529s Preparing to unpack .../26-libjnr-netdb-java_1.1.6-1.1_all.deb ... 529s Unpacking libjnr-netdb-java (1.1.6-1.1) ... 529s Selecting previously unselected package libjnr-posix-java. 529s Preparing to unpack .../27-libjnr-posix-java_3.1.18-1_all.deb ... 529s Unpacking libjnr-posix-java (3.1.18-1) ... 529s Selecting previously unselected package libjnr-unixsocket-java. 529s Preparing to unpack .../28-libjnr-unixsocket-java_0.38.21-2_all.deb ... 529s Unpacking libjnr-unixsocket-java (0.38.21-2) ... 529s Selecting previously unselected package libjoda-time-java. 529s Preparing to unpack .../29-libjoda-time-java_2.10.14-1_all.deb ... 529s Unpacking libjoda-time-java (2.10.14-1) ... 530s Selecting previously unselected package libjruby-joni-java. 530s Preparing to unpack .../30-libjruby-joni-java_2.2.1-1_all.deb ... 530s Unpacking libjruby-joni-java (2.2.1-1) ... 530s Selecting previously unselected package libjzlib-java. 530s Preparing to unpack .../31-libjzlib-java_1.1.3-3_all.deb ... 530s Unpacking libjzlib-java (1.1.3-3) ... 530s Selecting previously unselected package libsnakeyaml-engine-java. 530s Preparing to unpack .../32-libsnakeyaml-engine-java_2.7+ds-3_all.deb ... 530s Unpacking libsnakeyaml-engine-java (2.7+ds-3) ... 530s Selecting previously unselected package jruby. 530s Preparing to unpack .../33-jruby_9.4.6.0+ds-1ubuntu3_all.deb ... 530s Unpacking jruby (9.4.6.0+ds-1ubuntu3) ... 530s Selecting previously unselected package rubygems-integration. 530s Preparing to unpack .../34-rubygems-integration_1.18_all.deb ... 530s Unpacking rubygems-integration (1.18) ... 530s Selecting previously unselected package ruby3.2. 530s Preparing to unpack .../35-ruby3.2_3.2.3-1build3_armhf.deb ... 530s Unpacking ruby3.2 (3.2.3-1build3) ... 530s Selecting previously unselected package ruby-rubygems. 530s Preparing to unpack .../36-ruby-rubygems_3.4.20-1_all.deb ... 530s Unpacking ruby-rubygems (3.4.20-1) ... 530s Selecting previously unselected package ruby. 530s Preparing to unpack .../37-ruby_1%3a3.2~ubuntu1_armhf.deb ... 530s Unpacking ruby (1:3.2~ubuntu1) ... 530s Selecting previously unselected package rake. 530s Preparing to unpack .../38-rake_13.0.6-3_all.deb ... 530s Unpacking rake (13.0.6-3) ... 530s Selecting previously unselected package ruby-net-telnet. 530s Preparing to unpack .../39-ruby-net-telnet_0.2.0-1_all.deb ... 530s Unpacking ruby-net-telnet (0.2.0-1) ... 530s Selecting previously unselected package ruby-webrick. 530s Preparing to unpack .../40-ruby-webrick_1.8.1-1_all.deb ... 530s Unpacking ruby-webrick (1.8.1-1) ... 530s Selecting previously unselected package ruby-xmlrpc. 530s Preparing to unpack .../41-ruby-xmlrpc_0.3.2-2_all.deb ... 530s Unpacking ruby-xmlrpc (0.3.2-2) ... 530s Selecting previously unselected package ruby-sdbm:armhf. 530s Preparing to unpack .../42-ruby-sdbm_1.0.0-5build4_armhf.deb ... 530s Unpacking ruby-sdbm:armhf (1.0.0-5build4) ... 530s Selecting previously unselected package libruby3.2:armhf. 530s Preparing to unpack .../43-libruby3.2_3.2.3-1build3_armhf.deb ... 530s Unpacking libruby3.2:armhf (3.2.3-1build3) ... 531s Selecting previously unselected package libruby:armhf. 531s Preparing to unpack .../44-libruby_1%3a3.2~ubuntu1_armhf.deb ... 531s Unpacking libruby:armhf (1:3.2~ubuntu1) ... 531s Selecting previously unselected package ruby-concurrent. 531s Preparing to unpack .../45-ruby-concurrent_1.2.3-2build1_all.deb ... 531s Unpacking ruby-concurrent (1.2.3-2build1) ... 531s Selecting previously unselected package ruby-concurrent-ext. 531s Preparing to unpack .../46-ruby-concurrent-ext_1.2.3-2build1_armhf.deb ... 531s Unpacking ruby-concurrent-ext (1.2.3-2build1) ... 531s Selecting previously unselected package ruby-diff-lcs. 531s Preparing to unpack .../47-ruby-diff-lcs_1.5.1-1_all.deb ... 531s Unpacking ruby-diff-lcs (1.5.1-1) ... 531s Selecting previously unselected package ruby-rspec-support. 531s Preparing to unpack .../48-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ... 531s Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ... 531s Selecting previously unselected package ruby-rspec-core. 531s Preparing to unpack .../49-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ... 531s Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ... 531s Selecting previously unselected package ruby-rspec-expectations. 531s Preparing to unpack .../50-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ... 531s Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 531s Selecting previously unselected package ruby-rspec-mocks. 531s Preparing to unpack .../51-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ... 531s Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 531s Selecting previously unselected package ruby-rspec. 531s Preparing to unpack .../52-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ... 531s Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ... 531s Selecting previously unselected package ruby-timecop. 531s Preparing to unpack .../53-ruby-timecop_0.9.8-1_all.deb ... 531s Unpacking ruby-timecop (0.9.8-1) ... 531s Selecting previously unselected package autopkgtest-satdep. 531s Preparing to unpack .../54-2-autopkgtest-satdep.deb ... 531s Unpacking autopkgtest-satdep (0) ... 531s Setting up liblcms2-2:armhf (2.14-2) ... 531s Setting up libfixposix4t64:armhf (1:0.5.1-1+nmu1.1build1) ... 531s Setting up java-common (0.75+exp1) ... 531s Setting up libasm-java (9.6~us1-0ubuntu1) ... 531s Setting up rubygems-integration (1.18) ... 531s Setting up libheadius-options-java (1.7-1) ... 531s Setting up ruby-concurrent (1.2.3-2build1) ... 531s Setting up libjnr-x86asm-java (1.0.2-5.1) ... 531s Setting up ruby-timecop (0.9.8-1) ... 531s Setting up libjzlib-java (1.1.3-3) ... 531s Setting up libbackport9-java (1.10-2) ... 531s Setting up libjitescript-java (0.4.3-1) ... 531s Setting up libsnakeyaml-engine-java (2.7+ds-3) ... 531s Setting up ruby-net-telnet (0.2.0-1) ... 531s Setting up libpcsclite1:armhf (2.0.3-1build1) ... 531s Setting up libjpeg-turbo8:armhf (2.1.5-2ubuntu1) ... 531s Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ... 531s Setting up libjoda-time-java (2.10.14-1) ... 531s Setting up libjcodings-java (1.0.58-1) ... 531s Setting up ruby-webrick (1.8.1-1) ... 531s Setting up libinvokebinder-java (1.13-1) ... 531s Setting up libjffi-jni:armhf (1.3.13+ds-1) ... 531s Setting up ca-certificates-java (20240118) ... 531s No JRE found. Skipping Java certificates setup. 531s Setting up ruby-xmlrpc (0.3.2-2) ... 531s Setting up libhawtjni-runtime-java (1.18-1) ... 531s Setting up libdirgra-java (0.4-2) ... 531s Setting up libjnr-constants-java (0.10.4-2) ... 531s Setting up libjpeg8:armhf (8c-2ubuntu11) ... 531s Setting up libjffi-java (1.3.13+ds-1) ... 531s Setting up openjdk-21-jre-headless:armhf (21.0.3~7ea-1build1) ... 531s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode 531s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode 531s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode 531s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode 531s update-alternatives: using /usr/lib/jvm/java-21-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode 531s Setting up libjruby-joni-java (2.2.1-1) ... 531s Setting up libjansi-native-java (1.8-2) ... 531s Setting up libjansi1-java (1.18-3ubuntu1) ... 531s Setting up libjline2-java (2.14.6-5) ... 531s Setting up libjnr-ffi-java (2.2.15-2) ... 531s Setting up libjnr-enxio-java (0.32.16-1) ... 531s Setting up libjnr-netdb-java (1.1.6-1.1) ... 531s Setting up libjnr-posix-java (3.1.18-1) ... 531s Setting up libjnr-unixsocket-java (0.38.21-2) ... 531s Setting up ruby-rubygems (3.4.20-1) ... 531s Setting up rake (13.0.6-3) ... 531s Setting up libruby:armhf (1:3.2~ubuntu1) ... 531s Setting up ruby-sdbm:armhf (1.0.0-5build4) ... 531s Setting up libruby3.2:armhf (3.2.3-1build3) ... 531s Setting up ruby3.2 (3.2.3-1build3) ... 531s Setting up ruby (1:3.2~ubuntu1) ... 531s Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ... 531s Setting up ruby-diff-lcs (1.5.1-1) ... 531s Setting up ruby-concurrent-ext (1.2.3-2build1) ... 531s Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ... 531s Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ... 531s Setting up ruby-rspec (3.13.0c0e0m0s1-2) ... 531s Processing triggers for libc-bin (2.39-0ubuntu8) ... 532s Processing triggers for man-db (2.12.0-4build1) ... 532s Processing triggers for ca-certificates-java (20240118) ... 533s Adding debian:ACCVRAIZ1.pem 533s Adding debian:AC_RAIZ_FNMT-RCM.pem 533s Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem 533s Adding debian:ANF_Secure_Server_Root_CA.pem 533s Adding debian:Actalis_Authentication_Root_CA.pem 533s Adding debian:AffirmTrust_Commercial.pem 533s Adding debian:AffirmTrust_Networking.pem 533s Adding debian:AffirmTrust_Premium.pem 533s Adding debian:AffirmTrust_Premium_ECC.pem 533s Adding debian:Amazon_Root_CA_1.pem 533s Adding debian:Amazon_Root_CA_2.pem 533s Adding debian:Amazon_Root_CA_3.pem 533s Adding debian:Amazon_Root_CA_4.pem 533s Adding debian:Atos_TrustedRoot_2011.pem 533s Adding debian:Atos_TrustedRoot_Root_CA_ECC_TLS_2021.pem 533s Adding debian:Atos_TrustedRoot_Root_CA_RSA_TLS_2021.pem 533s Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem 533s Adding debian:BJCA_Global_Root_CA1.pem 533s Adding debian:BJCA_Global_Root_CA2.pem 533s Adding debian:Baltimore_CyberTrust_Root.pem 533s Adding debian:Buypass_Class_2_Root_CA.pem 533s Adding debian:Buypass_Class_3_Root_CA.pem 533s Adding debian:CA_Disig_Root_R2.pem 533s Adding debian:CFCA_EV_ROOT.pem 533s Adding debian:COMODO_Certification_Authority.pem 533s Adding debian:COMODO_ECC_Certification_Authority.pem 533s Adding debian:COMODO_RSA_Certification_Authority.pem 533s Adding debian:Certainly_Root_E1.pem 534s Adding debian:Certainly_Root_R1.pem 534s Adding debian:Certigna.pem 534s Adding debian:Certigna_Root_CA.pem 534s Adding debian:Certum_EC-384_CA.pem 534s Adding debian:Certum_Trusted_Network_CA.pem 534s Adding debian:Certum_Trusted_Network_CA_2.pem 534s Adding debian:Certum_Trusted_Root_CA.pem 534s Adding debian:CommScope_Public_Trust_ECC_Root-01.pem 534s Adding debian:CommScope_Public_Trust_ECC_Root-02.pem 534s Adding debian:CommScope_Public_Trust_RSA_Root-01.pem 534s Adding debian:CommScope_Public_Trust_RSA_Root-02.pem 534s Adding debian:Comodo_AAA_Services_root.pem 534s Adding debian:D-TRUST_BR_Root_CA_1_2020.pem 534s Adding debian:D-TRUST_EV_Root_CA_1_2020.pem 534s Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem 534s Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem 534s Adding debian:DigiCert_Assured_ID_Root_CA.pem 534s Adding debian:DigiCert_Assured_ID_Root_G2.pem 534s Adding debian:DigiCert_Assured_ID_Root_G3.pem 534s Adding debian:DigiCert_Global_Root_CA.pem 534s Adding debian:DigiCert_Global_Root_G2.pem 534s Adding debian:DigiCert_Global_Root_G3.pem 534s Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem 534s Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem 534s Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem 534s Adding debian:DigiCert_Trusted_Root_G4.pem 534s Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem 534s Adding debian:Entrust_Root_Certification_Authority.pem 534s Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem 534s Adding debian:Entrust_Root_Certification_Authority_-_G2.pem 534s Adding debian:Entrust_Root_Certification_Authority_-_G4.pem 534s Adding debian:GDCA_TrustAUTH_R5_ROOT.pem 534s Adding debian:GLOBALTRUST_2020.pem 534s Adding debian:GTS_Root_R1.pem 534s Adding debian:GTS_Root_R2.pem 534s Adding debian:GTS_Root_R3.pem 534s Adding debian:GTS_Root_R4.pem 534s Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem 534s Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem 534s Adding debian:GlobalSign_Root_CA.pem 534s Adding debian:GlobalSign_Root_CA_-_R3.pem 534s Adding debian:GlobalSign_Root_CA_-_R6.pem 534s Adding debian:GlobalSign_Root_E46.pem 534s Adding debian:GlobalSign_Root_R46.pem 534s Adding debian:Go_Daddy_Class_2_CA.pem 534s Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem 534s Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem 534s Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem 534s Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem 534s Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem 534s Adding debian:HiPKI_Root_CA_-_G1.pem 534s Adding debian:Hongkong_Post_Root_CA_3.pem 534s Adding debian:ISRG_Root_X1.pem 534s Adding debian:ISRG_Root_X2.pem 534s Adding debian:IdenTrust_Commercial_Root_CA_1.pem 534s Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem 534s Adding debian:Izenpe.com.pem 534s Adding debian:Microsec_e-Szigno_Root_CA_2009.pem 534s Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem 534s Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem 534s Adding debian:NAVER_Global_Root_Certification_Authority.pem 534s Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem 534s Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem 534s Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem 534s Adding debian:QuoVadis_Root_CA_1_G3.pem 534s Adding debian:QuoVadis_Root_CA_2.pem 534s Adding debian:QuoVadis_Root_CA_2_G3.pem 534s Adding debian:QuoVadis_Root_CA_3.pem 534s Adding debian:QuoVadis_Root_CA_3_G3.pem 534s Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem 534s Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem 534s Adding debian:SSL.com_Root_Certification_Authority_ECC.pem 534s Adding debian:SSL.com_Root_Certification_Authority_RSA.pem 534s Adding debian:SSL.com_TLS_ECC_Root_CA_2022.pem 534s Adding debian:SSL.com_TLS_RSA_Root_CA_2022.pem 534s Adding debian:SZAFIR_ROOT_CA2.pem 534s Adding debian:Sectigo_Public_Server_Authentication_Root_E46.pem 534s Adding debian:Sectigo_Public_Server_Authentication_Root_R46.pem 534s Adding debian:SecureSign_RootCA11.pem 534s Adding debian:SecureTrust_CA.pem 534s Adding debian:Secure_Global_CA.pem 534s Adding debian:Security_Communication_ECC_RootCA1.pem 534s Adding debian:Security_Communication_RootCA2.pem 534s Adding debian:Security_Communication_RootCA3.pem 534s Adding debian:Security_Communication_Root_CA.pem 534s Adding debian:Starfield_Class_2_CA.pem 534s Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem 534s Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem 534s Adding debian:SwissSign_Gold_CA_-_G2.pem 534s Adding debian:SwissSign_Silver_CA_-_G2.pem 534s Adding debian:T-TeleSec_GlobalRoot_Class_2.pem 534s Adding debian:T-TeleSec_GlobalRoot_Class_3.pem 534s Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem 534s Adding debian:TWCA_Global_Root_CA.pem 534s Adding debian:TWCA_Root_Certification_Authority.pem 534s Adding debian:TeliaSonera_Root_CA_v1.pem 534s Adding debian:Telia_Root_CA_v2.pem 534s Adding debian:TrustAsia_Global_Root_CA_G3.pem 534s Adding debian:TrustAsia_Global_Root_CA_G4.pem 534s Adding debian:Trustwave_Global_Certification_Authority.pem 534s Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem 534s Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem 534s Adding debian:TunTrust_Root_CA.pem 534s Adding debian:UCA_Extended_Validation_Root.pem 534s Adding debian:UCA_Global_G2_Root.pem 534s Adding debian:USERTrust_ECC_Certification_Authority.pem 534s Adding debian:USERTrust_RSA_Certification_Authority.pem 534s Adding debian:XRamp_Global_CA_Root.pem 534s Adding debian:certSIGN_ROOT_CA.pem 534s Adding debian:certSIGN_Root_CA_G2.pem 534s Adding debian:e-Szigno_Root_CA_2017.pem 534s Adding debian:ePKI_Root_Certification_Authority.pem 534s Adding debian:emSign_ECC_Root_CA_-_C3.pem 534s Adding debian:emSign_ECC_Root_CA_-_G3.pem 534s Adding debian:emSign_Root_CA_-_C1.pem 534s Adding debian:emSign_Root_CA_-_G1.pem 534s Adding debian:vTrus_ECC_Root_CA.pem 534s Adding debian:vTrus_Root_CA.pem 534s done. 534s Setting up default-jre-headless (2:1.21-75+exp1) ... 534s Setting up jruby (9.4.6.0+ds-1ubuntu3) ... 534s Setting up autopkgtest-satdep (0) ... 555s (Reading database ... 64775 files and directories currently installed.) 555s Removing autopkgtest-satdep (0) ... 568s autopkgtest [10:00:39]: test jruby: [----------------------- 571s installing concurrent-ruby-1.2.3 gem into temporary GEM_HOME for jruby ... 571s installing concurrent-ruby-edge-0.7.0 gem into temporary GEM_HOME for jruby ... 571s installing diff-lcs-1.5.1 gem into temporary GEM_HOME for jruby ... 571s installing rspec-core-3.13.0 gem into temporary GEM_HOME for jruby ... 571s installing rspec-expectations-3.13.0 gem into temporary GEM_HOME for jruby ... 571s installing rspec-mocks-3.13.0 gem into temporary GEM_HOME for jruby ... 571s installing rspec-support-3.13.1 gem into temporary GEM_HOME for jruby ... 571s installing timecop-0.9.8 gem into temporary GEM_HOME for jruby ... 577s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb:13: warning: method redefined; discarding old to_int 577s /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb:13: warning: method redefined; discarding old to_f 577s /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.2.3/lib/concurrent-ruby/concurrent/options.rb require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/options.rb:6 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/options.rb:3 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/scheduled_task.rb:8 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/timer_set.rb:1 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executors.rb:20 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:25 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:17 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:7 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 577s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/actor_spec.rb:1 577s load at org/jruby/RubyKernel.java:1211 577s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 577s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 577s each at org/jruby/RubyArray.java:1983 577s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 577s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 577s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 577s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 577s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 577s
at /usr/bin/rspec:4 577s 577s /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.2.3/lib/concurrent-ruby/concurrent/executor/timer_set.rb require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/timer_set.rb:19 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executor/timer_set.rb:9 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/executors.rb:20 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor/core.rb:4 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:25 577s at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:17 577s
at /usr/share/rubygems-integration/all/gems/concurrent-ruby-edge-0.7.0/lib/concurrent-ruby-edge/concurrent/actor.rb:7 577s require at org/jruby/RubyKernel.java:1175 577s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:160 577s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/actor_spec.rb:1 577s load at org/jruby/RubyKernel.java:1211 577s load_file_handling_errors at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2138 577s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1638 577s each at org/jruby/RubyArray.java:1983 577s load_spec_files at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:1636 577s setup at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:102 577s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:86 577s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 577s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 577s
at /usr/bin/rspec:4 577s 581s /usr/share/jruby/lib/ruby/stdlib/date.rb:471: warning: previous definition of strptime was here 581s /usr/share/jruby/lib/ruby/stdlib/date.rb:490: warning: previous definition of parse was here 581s /usr/share/jruby/lib/ruby/stdlib/date.rb:737: warning: previous definition of parse was here 582s Run options: exclude {:stress=>true} 582s 582s Concurrent::Actor 582s /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:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:30 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 582s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 582s require at org/jruby/RubyKernel.java:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 582s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/spec_helper.rb:50 582s instance_exec at org/jruby/RubyBasicObject.java:2620 582s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 582s each at org/jruby/RubyArray.java:1983 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 582s reverse_each at org/jruby/RubyArray.java:2065 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 582s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 582s map at org/jruby/RubyArray.java:2805 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s map at org/jruby/RubyArray.java:2805 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 582s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 582s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 582s
at /usr/bin/rspec:4 582s 582s /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:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:53 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 582s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 582s require at org/jruby/RubyKernel.java:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 582s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/spec_helper.rb:50 582s instance_exec at org/jruby/RubyBasicObject.java:2620 582s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 582s each at org/jruby/RubyArray.java:1983 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 582s reverse_each at org/jruby/RubyArray.java:2065 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 582s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 582s map at org/jruby/RubyArray.java:2805 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s map at org/jruby/RubyArray.java:2805 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 582s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 582s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 582s
at /usr/bin/rspec:4 582s 582s forbids Immediate executor 582s /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:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:74 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 582s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 582s require at org/jruby/RubyKernel.java:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 582s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/spec_helper.rb:50 582s instance_exec at org/jruby/RubyBasicObject.java:2620 582s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 582s each at org/jruby/RubyArray.java:1983 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 582s reverse_each at org/jruby/RubyArray.java:2065 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 582s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 582s map at org/jruby/RubyArray.java:2805 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s map at org/jruby/RubyArray.java:2805 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 582s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 582s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 582s
at /usr/bin/rspec:4 582s 582s /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:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:101 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 582s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 582s require at org/jruby/RubyKernel.java:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 582s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/spec_helper.rb:50 582s instance_exec at org/jruby/RubyBasicObject.java:2620 582s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 582s each at org/jruby/RubyArray.java:1983 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 582s reverse_each at org/jruby/RubyArray.java:2065 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 582s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 582s map at org/jruby/RubyArray.java:2805 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s map at org/jruby/RubyArray.java:2805 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 582s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 582s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 582s
at /usr/bin/rspec:4 582s 582s /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:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:136 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:3 582s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:2 582s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/be.rb:1 582s require at org/jruby/RubyKernel.java:1175 582s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 582s be_truthy at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:311 582s
at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/spec_helper.rb:50 582s instance_exec at org/jruby/RubyBasicObject.java:2620 582s instance_exec at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:457 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:365 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:529 582s each at org/jruby/RubyArray.java:1983 582s run_owned_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:528 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:615 582s reverse_each at org/jruby/RubyArray.java:2065 582s run_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:614 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:484 582s run_before_example at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:505 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:261 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 582s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 582s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 582s map at org/jruby/RubyArray.java:2805 582s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s map at org/jruby/RubyArray.java:2805 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 582s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 582s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 582s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 582s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 582s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 582s
at /usr/bin/rspec:4 582s 582s links 582s links atomically 582s spawning 582s terminates on failed initialization 582s terminates on failed initialization and raises with spawn! 582s terminates on failed message processing 582s Actor#spawn! 582s spawn 582s executor should be global 583s returns arg 583s #path 583s is expected to eq "/ping" 583s #parent 583s is expected to eq # 583s #name 583s is expected to eq "ping" 583s #reference 583s is expected to eq # 583s context_spawn 583s executor should be global 583s returns arg 583s #path 583s is expected to eq "/ping" 583s #parent 583s is expected to eq # 583s #name 583s is expected to eq "ping" 583s #reference 583s is expected to eq # 583s spawn_by_hash 583s executor should be global 583s returns arg 583s #path 583s is expected to eq "/ping" 583s #parent 583s is expected to eq # 583s #name 583s is expected to eq "ping" 583s #reference 583s is expected to eq # 583s context_spawn_by_hash 583s executor should be global 583s returns arg 583s #path 583s is expected to eq "/ping" 583s #parent 583s is expected to eq # 583s #name 583s is expected to eq "ping" 583s #reference 583s is expected to eq # 583s messaging 583s is expected to eq 4 583s children 583s has children set after a child is created 583s envelope 583s /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:1175 583s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 583s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:125 583s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:3 583s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:2 583s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/has.rb:1 583s require at org/jruby/RubyKernel.java:1175 583s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 583s method_missing at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:964 583s method_missing at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:767 583s Actor at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/actor_spec.rb:136 583s instance_exec at org/jruby/RubyBasicObject.java:2620 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 583s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 583s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 583s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 583s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 583s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 583s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 583s map at org/jruby/RubyArray.java:2805 583s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 583s map at org/jruby/RubyArray.java:2805 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 583s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 583s map at org/jruby/RubyArray.java:2805 583s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 583s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 583s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 583s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 583s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 583s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 583s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 583s
at /usr/bin/rspec:4 583s 583s is expected to eq # 583s termination 583s terminates with all its children 583s dead letter routing 583s logs by deafault 583s message redirecting 583s is evaluated by child 583s pausing 583s pauses on error and resumes 583s pauses on error and resets 583s pauses on error and restarts 583s pool 583s supports asks 583s 583s Concurrent::Agent 583s initialization 583s sets the initial value 583s sets the initial error to nil 583s sets the error mode when given a valid value 583s defaults the error mode to :continue when an error handler is given 584s defaults the error mode to :fail when no error handler is given 584s raises an error when given an invalid error mode 584s sets #failed? to false 584s action processing 584s the given block will be passed the current value 584s the given block will be passed any provided arguments 584s the return value will be passed to the validator function 584s upon validation the new value will be set to the block return value 584s on success all observers will be notified 584s any recursive action dispatches will run after the value has been updated 584s when the action raises an error the value will not change 584s when the action raises an error the validator will not be called 584s when validation returns false the value will not change 584s when validation raises an error the value will not change 584s when the action raises an error the handler will be called 584s when validation fails the handler will be called 584s when validation raises an error the handler will be called 584s validation 584s sets the new value when the validator returns true 584s rejects the new value when the validator returns false 584s rejects the new value when the validator raises an error 584s sets the error when the error mode is :fail and the validator returns false 584s sets the error when the error mode is :fail and the validator raises an error 584s does not set an error when the error mode is :continue and the validator returns false 584s does not set an error when the error mode is :continue and the validator raises an error 584s does not trigger observation when validation fails 584s error handling 584s the agent will be passed to the handler 584s the exception will be passed to the handler 584s does not trigger observation 584s error mode 584s :continue 584s does not set an error when the validator returns false 584s does not set an error when the validator raises an error 584s does not set an error when the action raises an error 584s does not block further action processing 584s sets #failed? to false 584s :fail 584s sets the error when the validator returns false 584s sets the error when the validator raises an error 584s sets the error when the action raises an error 584s blocks all further action processing until a restart 584s sets #failed? to true 584s nested actions 584s occur in the order they ar post 584s work with immediate execution 584s posting 584s with #send 584s returns true when the job is post 584s returns false when #failed? 584s posts to the global fast executor 584s does not wait for the action to process 584s with #send! 584s returns true when the job is post 584s raises an error when #failed? 584s posts to the global fast executor 584s does not wait for the action to process 584s with #send_off 584s returns true when the job is post 584s returns false when #failed? 584s posts to the global io executor 584s does not wait for the action to process 584s with #send_off! 584s returns true when the job is post 584s raises an error when #failed? 584s posts to the global io executor 584s does not wait for the action to process 584s with #send_via 584s returns true when the job is post 584s returns false when #failed? 584s posts to the given executor 584s with #send_via! 584s returns true when the job is post 584s raises an error when #failed? 584s posts to the given executor 584s with #post 584s returns true when the job is post 584s returns false when #failed? 584s posts to the global io executor 584s does not wait for the action to process 584s with #<< 584s returns self when the job is post 584s returns self when #failed? 584s posts to the global io executor 584s does not wait for the action to process 584s #restart 584s when #failed? 584s raises an error if the new value is not valid 584s sets the new value 584s clears the error 584s sets #failed? to true 585s removes all actions from the queue when :clear_actions is true 585s does not clear the action queue when :clear_actions is false 585s does not clear the action queue when :clear_actions is not given 585s resumes action processing if actions are enqueued 585s does not trigger observation 585s when not #failed? 585s raises an error 585s waiting 585s the await job 585s does not change the value 585s does not trigger the error mode 585s does not trigger observers 585s waits for nested actions 585s with #await 585s returns self when there are no pending actions 586s does not block on actions from other threads 587s blocks indefinitely 588s returns true when all prior actions have processed 588s blocks forever if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 588s with #await_for 588s returns true when there are no pending actions 588s does not block on actions from other threads 589s returns true when all prior actions have processed 590s returns false on timeout 590s returns false if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 590s with #await_for! 590s returns true when there are no pending actions 590s does not block on actions from other threads 591s returns true when all prior actions have processed 592s raises an error on timeout 592s raises an error if restarted with :clear_actions true (PENDING: the timing is nearly impossible) 592s with #wait 592s returns true when there are no pending actions and timeout is nil 592s returns true when there are no pending actions and a timeout is given 592s does not block on actions from other threads 593s blocks indefinitely when timeout is nil 593s blocks forever when timeout is nil and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 594s returns true when all prior actions have processed 595s returns false on timeout 595s returns false when timeout is given and restarted with :clear_actions true (PENDING: the timing is nearly impossible) 595s with .await 595s returns true when all prior actions on all agents have processed 595s with .await_for 595s returns true when there are no pending actions 595s returns true when all prior actions for all agents have processed 596s returns false on timeout 596s with await_for! 596s returns true when there are no pending actions 596s returns true when all prior actions for all agents have processed 597s raises an exception on timeout 597s observable 597s behaves like observable 597s #add_observer 597s adds an observer if called before first notification 597s adds an observer with :func if called before first notification 597s creates an observer from a block if called before first notification 597s raises an exception if not given an observer or a block 597s raises an exception when given both an observer and a block 597s #delete_observer 597s deletes the given observer if called before first notification 597s returns the removed observer if found in the observer set 597s returns the given observer even when not found in the observer set 597s #delete_observers 597s deletes all observers when called before first notification 597s returns self 597s #count_observers 597s returns zero for a new observable object 597s returns a count of registered observers if called before first notification 597s returns zero after #delete_observers has been called 597s first notification 597s calls the #update method on all observers without a specified :func 597s calls the appropriate function on all observers which specified a :func 597s calls the proc for all observers added as a block 598s does not notify any observers removed with #delete_observer 599s does not notify any observers after #delete_observers called 599s 599s Concurrent::Array 599s .[] 599s when initializing with no arguments 599s is expected to be empty 599s when initializing with arguments 599s creates an array with the given objects 599s .new 599s when initializing with no arguments 599s is expected to be empty 599s when initializing with a size argument 599s creates an array with size elements set to nil 599s when initializing with a default value argument 599s creates an array with size elements set to the default value 599s when initializing with a block argument 599s creates an array with size elements set to the default value 599s when initializing with another array as an argument 599s creates a new array 599s creates an array with the same contents as the other array 599s creates an array with the results of calling #to_ary on the other array 599s concurrency 599s is expected to be empty 599s #slice 599s correctly initializes the monitor 599s 599s Concurrent::Async 599s object creation 599s delegates to the original constructor 599s passes all args to the original constructor 599s passes a given block to the original constructor 599s initializes synchronization 599s #validate_argc 599s raises an exception when the method is not defined 599s raises an exception for too many args on a zero arity method 599s does not raise an exception for correct zero arity 599s raises an exception for too many args on a method with positive arity 599s raises an exception for too few args on a method with positive arity 599s does not raise an exception for correct positive arity 599s raises an exception for too few args on a method with negative arity 599s does not raise an exception for correct negative arity 599s #async 599s raises an error when calling a method that does not exist 599s raises an error when passing too few arguments 599s raises an error when pasing too many arguments (arity >= 0) 599s returns the existence of the method 599s returns a :pending IVar 599s runs the future on the global executor 599s sets the value on success 599s sets the reason on failure 599s sets the reason when giving too many optional arguments 599s supports attribute accessors 599s supports methods with blocks 599s #await 599s raises an error when calling a method that does not exist 599s raises an error when passing too few arguments 599s raises an error when pasing too many arguments (arity >= 0) 599s returns the existence of the method 599s returns a :fulfilled IVar 599s runs the future on the global executor 599s sets the value on success 599s sets the reason on failure 599s sets the reason when giving too many optional arguments 599s supports attribute accessors 599s supports methods with blocks 599s locking 599s uses the same lock for both #async and #await 599s fork safety 599s does not hang when forked (PENDING: Platform does not support fork) 599s 599s Concurrent::Atom 599s construction 599s sets the initial value to the given value 599s #compare_and_set 599s sets the new value if the current value matches 599s returns true if the current value matches 599s rejects the new value if the current value does not match 599s returns false if the current value does not match 599s rejects the new value if the validator returns false 599s rejects the new value if the validator raises an exception 599s returns false if the validator returns false 599s returns false if the validator raises an exception 599s #swap 599s raises an exception when no block is given 599s passes the current value to the block 599s passes all arguments to the block 599s sets the new value to the result of the block 599s rejects the new value if the validator returns false 600s rejects the new value if the validator raises an exception 600s returns the new value on success 600s returns the old value if the validator returns false 600s returns the old value if the validator raises an exception 600s calls the block more than once if the value changes underneath 600s reraises the exception from block 600s #reset 600s sets the new value 600s returns the new value on success 600s returns the new value on success 600s returns the old value if the validator returns false 600s returns the old value if the validator raises an exception 600s observable 600s behaves like observable 600s #add_observer 600s adds an observer if called before first notification 600s adds an observer with :func if called before first notification 600s creates an observer from a block if called before first notification 600s raises an exception if not given an observer or a block 600s raises an exception when given both an observer and a block 600s #delete_observer 600s deletes the given observer if called before first notification 600s returns the removed observer if found in the observer set 600s returns the given observer even when not found in the observer set 600s #delete_observers 600s deletes all observers when called before first notification 600s returns self 600s #count_observers 600s returns zero for a new observable object 600s returns a count of registered observers if called before first notification 600s returns zero after #delete_observers has been called 600s first notification 600s calls the #update method on all observers without a specified :func 600s calls the appropriate function on all observers which specified a :func 600s calls the proc for all observers added as a block 601s does not notify any observers removed with #delete_observer 602s does not notify any observers after #delete_observers called 602s 602s Concurrent::MutexAtomicBoolean 602s it should behave like atomic_boolean 602s construction 602s sets the initial value 602s defaults the initial value to false 602s evaluates the truthiness of a true value 602s evaluates the truthiness of a false value 602s #value 602s returns the current value 602s #value= 602s sets the #value to the given `Boolean` 602s returns the new value 602s evaluates the truthiness of a true value 602s evaluates the truthiness of a false value 602s #true? 602s is expected to equal true 602s is expected to equal false 602s #false? 602s is expected to equal false 602s is expected to equal true 602s #make_true 602s makes a false value true and returns true 602s keeps a true value true and returns false 602s #make_false 602s makes a true value false and returns true 602s keeps a false value false and returns false 602s instance methods 602s value is synchronized 602s value= is synchronized 602s true? is synchronized 602s false? is synchronized 602s make_true is synchronized 602s make_false is synchronized 602s 602s Concurrent::JavaAtomicBoolean 602s it should behave like atomic_boolean 602s construction 602s sets the initial value 602s defaults the initial value to false 602s evaluates the truthiness of a true value 602s evaluates the truthiness of a false value 602s #value 602s returns the current value 602s #value= 602s sets the #value to the given `Boolean` 602s returns the new value 602s evaluates the truthiness of a true value 602s evaluates the truthiness of a false value 602s #true? 602s is expected to equal true 602s is expected to equal false 602s #false? 602s is expected to equal false 602s is expected to equal true 602s #make_true 602s makes a false value true and returns true 602s keeps a true value true and returns false 602s #make_false 602s makes a true value false and returns true 602s keeps a false value false and returns false 602s 602s Concurrent::AtomicBoolean 602s does not load the C extension 602s inherits from JavaAtomicBoolean 602s #to_s and #inspect 602s includes the value 602s 602s Concurrent::MutexAtomicFixnum 602s it should behave like atomic_fixnum 602s construction 602s sets the initial value 602s defaults the initial value to zero 602s raises an exception if the initial value is not a Fixnum 602s #value 602s returns the current value 602s #value= 602s sets the #value to the given `Fixnum` 602s returns the new value 602s raises and exception if the value is not a `Fixnum` 602s #increment 602s increases the value by one when no argument is given 602s returns the new value when no argument is given 602s increases the value by the given argument 602s returns the new value the given argument 602s is aliased as #up 602s #decrement 602s decreases the value by one when no argument is given 602s returns the new value when no argument is given 602s decreases the value by the given argument 602s returns the new value the given argument 602s is aliased as #down 602s #compare_and_set 602s returns false if the value is not found 602s returns true if the value is found 602s sets if the value is found 602s does not set if the value is not found 602s #update 602s passes the current value to the block 602s atomically sets the value to the return value from the block 602s returns the new value 602s construction 602s raises an exception if the initial value is too big 602s raises an exception if the initial value is too small 602s instance methods 602s value is synchronized 602s value= is synchronized 602s increment is synchronized 602s decrement is synchronized 602s compare_and_set is synchronized 602s 602s Concurrent::JavaAtomicFixnum 602s it should behave like atomic_fixnum 602s construction 602s sets the initial value 602s defaults the initial value to zero 602s raises an exception if the initial value is not a Fixnum 602s #value 602s returns the current value 602s #value= 602s sets the #value to the given `Fixnum` 602s returns the new value 602s raises and exception if the value is not a `Fixnum` 602s #increment 602s increases the value by one when no argument is given 602s returns the new value when no argument is given 602s increases the value by the given argument 602s returns the new value the given argument 602s is aliased as #up 602s #decrement 602s decreases the value by one when no argument is given 602s returns the new value when no argument is given 602s decreases the value by the given argument 602s returns the new value the given argument 602s is aliased as #down 602s #compare_and_set 602s returns false if the value is not found 602s returns true if the value is found 602s sets if the value is found 602s does not set if the value is not found 602s #update 602s passes the current value to the block 602s atomically sets the value to the return value from the block 602s returns the new value 602s 602s Concurrent::AtomicFixnum 602s does not load the C extension 602s inherits from JavaAtomicFixnum 602s #to_s and #inspect 602s includes the value 602s 602s Concurrent::AtomicMarkableReference 602s .initialize 602s constructs the object 602s has sane defaults 602s #set 602s sets the value and mark 602s #try_update! 602s updates the value and mark 602s raises ConcurrentUpdateError when attempting to set inside of block 602s #try_update 602s updates the value and mark 602s returns nil when attempting to set inside of block 602s #update 602s updates the value and mark 602s retries until update succeeds 602s #compare_and_set 602s when objects have the same identity 602s sets the value and mark 602s when objects have the different identity 602s it does not set the value or mark 602s when comparing Numeric objects 602s Non-idepotent Float 602s sets the value and mark 602s BigNum 602s sets the value and mark 602s Rational 602s sets the value and mark 602s Rational 602s is successful 602s 602s Concurrent::AtomicReference 602s it should behave like atomic_reference 602s test_construct 602s test_value 602s test_update 602s test_try_update 602s test_try_update_bang 602s test_swap 602s test_try_update_fails 602s test_try_update_bang_fails 602s test_update_retries 602s test_numeric_cas 602s #to_s and #inspect 602s includes the value 602s 602s Concurrent::MutexAtomicReference 602s it should behave like atomic_reference 602s test_construct 602s test_value 602s test_update 602s test_try_update 602s test_try_update_bang 602s test_swap 602s test_try_update_fails 602s test_try_update_bang_fails 602s test_update_retries 602s test_numeric_cas 602s 602s Concurrent::JavaAtomicReference 602s it should behave like atomic_reference 602s test_construct 602s test_value 602s test_update 602s test_try_update 602s test_try_update_bang 602s test_swap 602s test_try_update_fails 602s test_try_update_bang_fails 602s test_update_retries 602s test_numeric_cas 602s 602s Concurrent::AtomicReference 602s does not load the C extension 602s inherits from JavaAtomicReference 602s 602s Concurrent::MutexCountDownLatch 602s it should behave like count_down_latch 602s #initialize 602s raises an exception if the initial count is less than zero 602s raises an exception if the initial count is not an integer 602s defaults the count to 1 602s #count 602s should be the value passed to the constructor 602s should be decreased after every count down 602s should not go below zero 602s #wait 602s blocks indefinitely, and is kill-able 602s blocks indefinitely with timeout, and is kill-able 602s count set to zero 602s should return true immediately 602s should return true immediately with timeout 602s non zero count 602s should block thread until counter is set to zero 602s should block until counter is set to zero with timeout 603s should block until timeout and return false when counter is not set to zero 603s spurious wake ups 603s should resist to spurious wake ups without timeout 603s should resist to spurious wake ups with timeout 603s 603s Concurrent::JavaCountDownLatch 603s it should behave like count_down_latch 603s #initialize 603s raises an exception if the initial count is less than zero 603s raises an exception if the initial count is not an integer 603s defaults the count to 1 603s #count 603s should be the value passed to the constructor 603s should be decreased after every count down 603s should not go below zero 603s #wait 603s blocks indefinitely, and is kill-able 603s blocks indefinitely with timeout, and is kill-able 603s count set to zero 603s should return true immediately 603s should return true immediately with timeout 603s non zero count 603s should block thread until counter is set to zero 604s should block until counter is set to zero with timeout 604s should block until timeout and return false when counter is not set to zero 604s 604s Concurrent::CountDownLatch 604s inherits from JavaCountDownLatch 604s 604s Concurrent::CyclicBarrier 604s #initialize 604s raises an exception if the initial count is less than 1 604s raises an exception if the initial count is not an integer 604s #parties 604s should be the value passed to the constructor 604s #number_waiting 604s without any waiting thread 604s should be equal to zero 604s with waiting threads 604s should be equal to the waiting threads count 604s #broken? 604s should not be broken when created 604s should not be broken when reset is called without waiting thread 604s reset 604s should release all waiting threads 604s #wait 604s without timeout 604s should block the thread 604s should release all threads when their number matches the desired one 604s returns true when released 604s executes the block once 604s can be reused 604s return false if barrier has been reset 604s with timeout 604s timeout not expiring 604s should block the thread 604s should release all threads when their number matches the desired one 604s returns true when released 604s timeout expiring 605s returns false 605s breaks the barrier and release all other threads 605s breaks the barrier and release all other threads 2 605s does not execute the block on timeout 605s #broken barrier 605s should not accept new threads 605s can be reset 605s spurious wake ups 605s should resist to spurious wake ups without timeout 606s should resist to spurious wake ups with timeout 606s 606s Concurrent::Event 606s #initialize 606s sets the state to unset 606s #set? 606s returns true when the event has been set 606s returns false if the event is unset 606s #set 606s triggers the event 606s sets the state to set 606s #try? 606s triggers the event if not already set 606s returns true if not previously set 606s returns false if previously set 606s #reset 606s does not change the state of an unset event 606s does not trigger an unset event 606s returns true when called on an unset event 606s sets the state of a set event to unset 606s returns true when called on a set event 606s #wait 606s returns immediately when the event has been set 606s returns true once the event is set 606s blocks indefinitely when the timer is nil 606s blocks indefinitely 606s stops waiting when the timer expires 607s returns false when the timer expires 607s triggers multiple waiting threads 607s behaves appropriately if wait begins while #set is processing 607s spurious wake ups 608s should resist to spurious wake ups without timeout 608s should resist spurious wake ups with timeout 608s 608s Concurrent::FiberLocalVar 608s #initialize 608s can set an initial value 608s sets nil as a default initial value 608s sets the same initial value for all fibers 608s can set a block to be called to get the initial value 608s when attempting to set both an initial value and a block 608s is expected to raise ArgumentError 608s #value 608s returns the current value 608s returns the value after modification 608s when using a block to initialize the value 608s calls the block to initialize the value 608s sets the block return value as the current value 608s calls the block to initialize the value for each fiber 608s #value= 608s sets a new value 608s returns the new value 608s does not modify the initial value for other fibers 608s does not modify the value for other fibers 608s 608s Concurrent::FiberLocalVar 608s uses FiberLocalVar if Mutex is per Fiber 608s 608s Concurrent::ReadWriteLock 608s #write_locked? 608s returns true when the write lock is held 608s returns false when the write lock is not held 608s returns false when the write lock is not held but there are readers 608s #has_waiters? 608s returns false when no locks are held 608s returns false when there are readers but no writers 608s returns true when the write lock is held and there are waiting readers 608s returns true when the write lock is held and there are waiting writers 608s #with_read_lock 608s acquires the lock 608s returns the value of the block operation 608s releases the lock 608s raises an exception if no block is given 608s raises an exception if maximum lock limit is exceeded 608s releases the lock when an exception is raised 608s #with_write_lock 608s acquires the lock 608s returns the value of the block operation 608s releases the lock 608s raises an exception if no block is given 608s raises an exception if maximum lock limit is exceeded 608s releases the lock when an exception is raised 608s #acquire_read_lock 608s increments the lock count 609s waits for a running writer to finish 609s does not wait for any running readers 609s raises an exception if maximum lock limit is exceeded 609s returns true if the lock is acquired 609s #release_read_lock 609s decrements the counter 609s unblocks waiting writers 609s returns true if the lock is released 609s returns true if the lock was never set 609s #acquire_write_lock 609s increments the lock count 609s waits for a running writer to finish 609s waits for a running reader to finish 609s raises an exception if maximum lock limit is exceeded 609s returns true if the lock is acquired 609s #release_write_lock 609s decrements the counter 609s unblocks waiting readers 609s unblocks waiting writers 609s returns true if the lock is released 609s returns true if the lock was never set 609s 609s Concurrent::ReentrantReadWriteLock 610s can survive a torture test 610s read lock 610s allows other read locks to be acquired at the same time 610s can be acquired more than once 610s can be acquired while holding a write lock 610s can be upgraded to a write lock 610s can be upgraded to a write lock when read lock acquired more than once 610s cannot be released when not held 610s cannot be released more times than it was taken 610s wakes up waiting writers when the last read lock is released 610s write lock 610s cannot be acquired when another thread holds a write lock 610s cannot be acquired when another thread holds a read lock 610s can be acquired more than once 610s can be acquired while holding a read lock 610s can be downgraded to a read lock 610s cannot be released when not held 610s cannot be released more times than it was taken 610s wakes up waiting readers when the write lock is released 610s wakes up waiting writers when the write lock is released 610s #with_read_lock 610s acquires read block before yielding, then releases it 610s releases read lock if an exception is raised in block 610s #with_write_lock 610s acquires write block before yielding, then releases it 610s releases write lock if an exception is raised in block 610s #try_read_lock 610s returns false immediately if read lock cannot be obtained 610s acquires read lock and returns true if it can do so without blocking 610s can acquire a read lock if a read lock is already held 610s can acquire a read lock if a write lock is already held 610s #try_write_lock 610s returns false immediately if write lock cannot be obtained 610s acquires write lock and returns true if it can do so without blocking 610s can acquire a write lock if a read lock is already held 610s can acquire a write lock if a write lock is already held 610s 610s Concurrent::ReentrantReadWriteLock 610s can acquire locks in separate fibers 610s 610s Concurrent::MutexSemaphore 610s it should behave like semaphore 610s #initialize 610s raises an exception if the initial count is not an integer 610s when initializing with 0 610s is expected not to equal nil 610s when initializing with -1 610s is expected to eq 0 610s #acquire 610s without block 610s permits available 610s should return nil immediately 610s not enough permits available 610s should block thread until permits are available 610s when acquiring negative permits 610s raises ArgumentError 610s with block 610s permits available 610s should acquire permits, run the block, release permits, and return block return value 610s if the block raises, the permit is still released 610s not enough permits available 610s should block thread until permits are available 610s when acquiring negative permits 610s raises ArgumentError 610s #drain_permits 610s drains all available permits 610s drains nothing in no permits are available 610s #try_acquire 610s without block 610s without timeout 610s acquires immediately if permits are available 610s returns false immediately in no permits are available 610s when trying to acquire negative permits 610s is expected to raise ArgumentError 610s with timeout 610s acquires immediately if permits are available 611s acquires when permits are available within timeout 611s returns false on timeout 611s with block 611s without timeout 611s acquires immediately if permits are available and returns block return value 611s releases permit if block raises 611s returns false immediately in no permits are available 611s when trying to acquire negative permits 611s is expected not to change `semaphore.available_permits` 611s with timeout 611s acquires immediately if permits are available, and returns block return value 611s releases permits if block raises 611s acquires when permits are available within timeout, and returns block return value 611s returns false on timeout 611s #reduce_permits 611s raises ArgumentError if reducing by negative number 611s reduces permits below zero 611s reduces permits 611s reduces zero permits 611s #release 611s increases the number of available permits by one 611s when a number of permits is specified 611s increases the number of available permits by the specified value 611s when permits is set to negative number 611s is expected to raise ArgumentError 611s 611s Concurrent::JavaSemaphore 611s it should behave like semaphore 611s #initialize 611s raises an exception if the initial count is not an integer 611s when initializing with 0 611s is expected not to equal nil 611s when initializing with -1 611s is expected to eq 0 611s #acquire 611s without block 611s permits available 611s should return nil immediately 611s not enough permits available 612s should block thread until permits are available 612s when acquiring negative permits 612s raises ArgumentError 612s with block 612s permits available 612s should acquire permits, run the block, release permits, and return block return value 612s if the block raises, the permit is still released 612s not enough permits available 612s should block thread until permits are available 612s when acquiring negative permits 612s raises ArgumentError 612s #drain_permits 612s drains all available permits 612s drains nothing in no permits are available 612s #try_acquire 612s without block 612s without timeout 612s acquires immediately if permits are available 612s returns false immediately in no permits are available 612s when trying to acquire negative permits 612s is expected to raise ArgumentError 612s with timeout 612s acquires immediately if permits are available 612s acquires when permits are available within timeout 612s returns false on timeout 612s with block 612s without timeout 612s acquires immediately if permits are available and returns block return value 612s releases permit if block raises 612s returns false immediately in no permits are available 612s when trying to acquire negative permits 612s is expected not to change `semaphore.available_permits` 612s with timeout 612s acquires immediately if permits are available, and returns block return value 612s releases permits if block raises 612s acquires when permits are available within timeout, and returns block return value 612s returns false on timeout 612s #reduce_permits 612s raises ArgumentError if reducing by negative number 612s reduces permits below zero 612s reduces permits 612s reduces zero permits 612s #release 612s increases the number of available permits by one 612s when a number of permits is specified 612s increases the number of available permits by the specified value 612s when permits is set to negative number 612s is expected to raise ArgumentError 612s 612s Concurrent::Semaphore 612s inherits from JavaSemaphore 612s 612s Concurrent::ThreadLocalVar 612s #initialize 612s can set an initial value 612s sets nil as a default initial value 612s sets the same initial value for all threads 612s can set a block to be called to get the initial value 612s when attempting to set both an initial value and a block 612s is expected to raise ArgumentError 612s #value 612s returns the current value 612s returns the value after modification 612s when using a block to initialize the value 612s calls the block to initialize the value 612s sets the block return value as the current value 612s calls the block to initialize the value for each thread 612s #value= 612s sets a new value 612s returns the new value 612s does not modify the initial value for other threads 612s does not modify the value for other threads 612s 612s Concurrent 612s Cancellation 612s basic 612s is expected to be falsey 612s is expected to be truthy 612s is expected to be falsey 612s is expected to eq 2 612s #join 612s 612s Concurrent::Channel::Buffer::Base 612s is expected to eq 0 612s is expected to be blocking 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected to raise NotImplementedError 612s is expected not to be closed 612s is expected to be closed 612s 612s Concurrent::Channel::Buffer::Buffered 612s is expected to be blocking 612s behaves like channel_buffered_buffer 612s behaves like channel_buffer 612s is expected to respond to #blocking? 612s #capacity 612s is expected to be >= 0 612s #size 612s returns zero upon initialization 612s #empty? 613s returns true when empty 613s #full? 613s returns false when not full 613s #put 613s does not enqueue the item when closed 613s returns false when closed 613s #offer 613s returns true on success 613s does not enqueue the item when closed 613s returns false immediately when closed 613s #take 613s returns Concurrent::NULL when closed 613s #next 613s returns Concurrent::NULL, false when closed 613s #poll 613s returns the next item immediately if available 613s returns Concurrent::NULL immediately if no item is available 613s returns Concurrent::NULL when closed 613s #close 613s sets #closed? to false 613s returns true when not previously closed 613s returns false when already closed 613s #closed? 613s returns true when new 613s returns false after #close 613s #initialize 613s raises an exception if size <= 0 613s #capacity 613s returns the maximum capacity of the buffer 613s #size 613s is 0 when first created 613s returns the number of items in the buffer 613s is 0 when there are taking threads but no putting threads 613s #empty? 613s returns true when empty 613s #put 613s enqueues the item when size > 0, not full, and not closed 613s returns true when the item is put 613s #offer 613s enqueues the item immediately when not full and not closed 613s #take 613s returns the first item when not empty 613s blocks until not empty 613s returns Concurrent::NULL when closed and empty 613s #next 613s blocks until not empty 613s returns , true when there is only one item and not closed 613s returns , true when there are multiple items 613s returns , true when closed and last item 613s returns Concurrent::NULL, false when closed and no items remain 613s #full? 613s returns true when at max capacity 613s #put 613s blocks when at capacity until a thread is ready to take 613s #offer 613s returns false immediately when full 613s 613s Concurrent::Channel::Buffer::Dropping 613s is expected not to be blocking 613s behaves like channel_buffered_buffer 613s behaves like channel_buffer 613s is expected to respond to #blocking? 613s #capacity 613s is expected to be >= 0 613s #size 613s returns zero upon initialization 613s #empty? 613s returns true when empty 613s #full? 613s returns false when not full 613s #put 613s does not enqueue the item when closed 613s returns false when closed 613s #offer 614s returns true on success 614s does not enqueue the item when closed 614s returns false immediately when closed 614s #take 614s returns Concurrent::NULL when closed 614s #next 614s returns Concurrent::NULL, false when closed 614s #poll 614s returns the next item immediately if available 614s returns Concurrent::NULL immediately if no item is available 614s returns Concurrent::NULL when closed 614s #close 614s sets #closed? to false 614s returns true when not previously closed 614s returns false when already closed 614s #closed? 614s returns true when new 614s returns false after #close 614s #initialize 614s raises an exception if size <= 0 614s #capacity 614s returns the maximum capacity of the buffer 614s #size 614s is 0 when first created 614s returns the number of items in the buffer 614s is 0 when there are taking threads but no putting threads 614s #empty? 614s returns true when empty 614s #put 614s enqueues the item when size > 0, not full, and not closed 614s returns true when the item is put 614s #offer 614s enqueues the item immediately when not full and not closed 614s #take 614s returns the first item when not empty 614s blocks until not empty 614s returns Concurrent::NULL when closed and empty 614s #next 614s blocks until not empty 614s returns , true when there is only one item and not closed 614s returns , true when there are multiple items 614s returns , true when closed and last item 614s returns Concurrent::NULL, false when closed and no items remain 614s #put 614s does not block when full 614s drops the last value when full 614s #offer 614s returns true immediately when full 614s drops the last value when full 614s 614s Concurrent::Channel::Buffer::Sliding 614s is expected not to be blocking 614s behaves like channel_buffered_buffer 614s behaves like channel_buffer 614s is expected to respond to #blocking? 614s #capacity 614s is expected to be >= 0 614s #size 614s returns zero upon initialization 614s #empty? 614s returns true when empty 614s #full? 614s returns false when not full 614s #put 614s does not enqueue the item when closed 614s returns false when closed 614s #offer 614s returns true on success 614s does not enqueue the item when closed 614s returns false immediately when closed 614s #take 614s returns Concurrent::NULL when closed 614s #next 614s returns Concurrent::NULL, false when closed 614s #poll 614s returns the next item immediately if available 614s returns Concurrent::NULL immediately if no item is available 614s returns Concurrent::NULL when closed 614s #close 614s sets #closed? to false 614s returns true when not previously closed 614s returns false when already closed 614s #closed? 614s returns true when new 614s returns false after #close 614s #initialize 614s raises an exception if size <= 0 614s #capacity 614s returns the maximum capacity of the buffer 614s #size 614s is 0 when first created 614s returns the number of items in the buffer 615s is 0 when there are taking threads but no putting threads 615s #empty? 615s returns true when empty 615s #put 615s enqueues the item when size > 0, not full, and not closed 615s returns true when the item is put 615s #offer 615s enqueues the item immediately when not full and not closed 615s #take 615s returns the first item when not empty 615s blocks until not empty 615s returns Concurrent::NULL when closed and empty 615s #next 615s blocks until not empty 615s returns , true when there is only one item and not closed 615s returns , true when there are multiple items 615s returns , true when closed and last item 615s returns Concurrent::NULL, false when closed and no items remain 615s #put 615s does not block when full 615s drops the first value when full 615s #offer 615s returns true immediately when full 615s drops the first value when full 615s 615s Concurrent::Channel::Buffer::Ticker 615s behaves like channel_timing_buffer 615s is expected to be blocking 615s #capacity 615s is expected to eq 1 615s #size 615s is expected to eq 0 615s #empty? 615s is expected not to be empty 615s #full? 615s is expected to be full 615s #put 615s is expected to equal false 615s #offer 615s is expected to equal false 615s #take 615s blocks when the timer is not ready 616s returns a Tick 616s triggers after the specified time interval 616s returns Concurrent::NULL when closed 616s #poll 616s returns Concurrent::NULL when the timer is not ready 616s returns a Tick 616s returns Concurrent::NULL when closed 616s triggers after the specified time interval 616s #next 616s blocks when the timer is not ready 616s returns a Tick when open 616s returns Concurrent::NULL, false when closed 617s triggers after the specified time interval 617s #close 617s sets #closed? to false 617s returns true when not previously closed 617s returns false when already closed 617s #closed? 617s returns true when new 617s returns false after #close 617s #take 617s triggers until closed 617s returns Concurrent::NULL when closed after trigger 617s #poll 617s triggers until closed 617s #next 618s triggers until closed 618s returns true for more while open 618s returns false for more once closed 618s 618s Concurrent::Channel::Buffer::Timer 618s behaves like channel_timing_buffer 618s is expected to be blocking 618s #capacity 618s is expected to eq 1 618s #size 618s is expected to eq 0 618s #empty? 618s is expected not to be empty 618s #full? 618s is expected to be full 618s #put 618s is expected to equal false 618s #offer 618s is expected to equal false 618s #take 618s blocks when the timer is not ready 618s returns a Tick 618s triggers after the specified time interval 618s returns Concurrent::NULL when closed 618s #poll 618s returns Concurrent::NULL when the timer is not ready 618s returns a Tick 618s returns Concurrent::NULL when closed 619s triggers after the specified time interval 619s #next 619s blocks when the timer is not ready 619s returns a Tick when open 619s returns Concurrent::NULL, false when closed 619s triggers after the specified time interval 619s #close 619s sets #closed? to false 619s returns true when not previously closed 619s returns false when already closed 619s #closed? 619s returns true when new 619s returns false after #close 619s #take 619s closes automatically on first take 619s #poll 619s closes automatically on first take 619s #next 619s closes automatically on first take 619s returns false for more 619s 619s Concurrent::Channel::Buffer::Unbuffered 619s is expected to be blocking 619s is expected to eq 1 619s behaves like channel_buffer 619s is expected to respond to #blocking? 619s #capacity 619s is expected to be >= 0 619s #size 619s returns zero upon initialization 619s #empty? 619s returns true when empty 619s #full? 619s returns false when not full 619s #put 619s does not enqueue the item when closed 619s returns false when closed 619s #offer 620s returns true on success 620s does not enqueue the item when closed 620s returns false immediately when closed 620s #take 620s returns Concurrent::NULL when closed 620s #next 620s returns Concurrent::NULL, false when closed 620s #poll 620s returns the next item immediately if available 620s returns Concurrent::NULL immediately if no item is available 620s returns Concurrent::NULL when closed 620s #close 620s sets #closed? to false 620s returns true when not previously closed 620s returns false when already closed 620s #closed? 620s returns true when new 620s returns false after #close 620s #size 620s is 0 when first created 620s is 1 when a putting thread is waiting 620s is 0 when there are taking threads but no putting threads 620s #empty? 620s is true when there are no putting threads 621s is false when there are waiting putting threads 621s #full? 621s is false when there are no putting threads 621s is false when there are waiting putting threads 621s #put 621s does not enqueue the item when closed 621s returns false when closed 621s blocks until a thread is ready to take 621s delivers when closed after put starts 621s #offer 621s returns false immediately when a put in in progress 622s gives the item to a waiting taker and returns true 622s #take 622s returns false immediately when a put in in progress 622s gives the item to a waiting taker and returns true 622s #next 622s blocks when no putting and returns , true when one arrives 623s returns , true when there are multiple putting 623s returns , true when closed and last item 623s returns Concurrent::NULL, false when closed and no items remain 623s 623s channel integration tests 623s A Tour of Go 623s channels.rb 623s buffered-channels.rb 623s range-and-close.rb 623s select.rb 623s default-selection.rb (PENDING: flaky) 623s Go By Example 624s channels.rb 624s channel-buffering.rb 625s channel-synchronization.rb 625s channel-directions.rb 627s select.rb 630s timeouts.rb 631s non-blocking-channel-operations.rb 631s closing-channels.rb 631s range-over-channels.rb 633s timers.rb 635s ticker.rb 638s worker-pools.rb 640s rate-limiting.rb 640s 640s Concurrent::Channel::Tick 640s initializes to current time when no argument given 640s initializes to the given monotonic time 640s #utc returns a Time object in UTC 640s #epoch returns the UTC time as epoch seconds 640s #to_s formats as a time 640s comparison 640s correctly compares to a Numeric (monotonic) 640s correctly compares to a Time 640s correctly compares to a Tick 640s 640s Concurrent::Channel 640s initialization 640s raises an exception when the :buffer is invalid 640s is :unbuffered when neither :buffer nore :capacity is given 640s is :unbuffered when :unbuffered is given 640s is :unbuffered when :buffered and capacity: 0 640s raises an exception when both :unbuffered and :capacity are given 640s is :buffered when :capacity > 0 and no :buffer given 640s is :buffered when :buffered given 640s raises an exception when :buffered given without :capacity 640s raises an exception when :buffered and :capacity < 0 640s is :dropping when :dropping and :capacity > 0 640s raises an exception when :dropping given without :capacity 640s raises an exception when :dropping and :capacity < 1 640s is :sliding when :sliding and :capacity > 0 640s raises an exception when :sliding given without :capacity 640s raises an exception when :sliding and :capacity < 1 640s uses the given buffer 640s factories 640s is expected to receive new(10) 1 time 640s is expected to receive new(10) 1 time 640s #put 640s returns true on success 640s returns false on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s rejects nil 640s put! 640s returns true on success 640s raises an exception on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s rejects nil 640s put? 640s returns a just Maybe on success 640s returns a nothing Maybe on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s accepts nil 640s #offer 640s returns true on success 640s returns false on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s rejects nil 640s offer! 640s returns true on success 640s raises an exception on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s rejects nil 640s offer? 640s returns a just Maybe on success 640s returns a nothing Maybe on failure 640s rejects when the validator returns false 640s rejects when the validator raises an exception 640s accepts nil 640s #take 640s takes the next item when not empty 640s returns nil on failure 640s #take! 640s takes the next item when not empty 640s raises an exception on failure 640s #take? 640s returns a just Maybe on success 640s returns a nothing Maybe on failure 640s #next 640s returns , true when there is one item 640s returns , true when there are multiple items 640s returns nil, false when empty and closed 640s returns , true when closed and last item 640s returns nil, false when closed and no items remain 640s #next? 640s returns a just Maybe and true when there is one item 640s returns a just Maybe, true when there are multiple items 640s returns a nothing Maybe and false on failure 640s #poll 640s returns the next item immediately if available 640s returns nil immediately if no item is available 640s returns nil on failure 640s #poll! 640s returns the next item immediately if available 640s raises an exception immediately if no item is available 640s raises an exception on failure 640s #poll? 641s returns a just Maybe immediately if available 641s returns a nothing Maybe immediately if no item is available 641s returns a nothing Maybe on failure 641s .each 641s raises and exception when no block is given 641s iterates until the channel is closed 641s goroutines 641s .go 641s raises an exception when no block is given 641s is expected to receive post(1, 2, 3) 1 time 641s .go_via 641s raises an exception when no block is given 641s is expected to receive post(1, 2, 3) 1 time 641s .go_loop 641s raises an exception when no block is given 641s loops until the block returns false 641s .go_loop_via 641s raises an exception when no block is given 641s loops until the block returns false 641s select 641s raises an exception when no block is given 641s passes a selector to the block 641s is expected to be truthy 641s 641s Concurrent::Collection::CopyOnNotifyObserverSet 641s behaves like an observer set 641s #add_observer 641s with arguments 641s should return the observer 641s with a block 641s should return the observer based on a block 641s #notify_observers 641s should return the observer set 641s with a single observer 641s should update a registered observer without arguments 641s should update a registered observer with arguments 641s should notify an observer using the chosen method 641s should notify an observer once using the last added method 641s should notify an observer from a block 641s can be called many times 641s with many observers 641s should notify all observer using the chosen method 641s with a block 641s calls the block once for every observer 641s passes the block return value to the update method 641s accepts blocks returning a single value 641s accepts block return values that include arrays 641s raises an exception if given both arguments and a block 641s #count_observers 641s should be zero after initialization 641s should be 1 after the first observer is added 641s should be 1 if the same observer is added many times 641s should be equal to the number of unique observers 641s #delete_observer 641s should not notify a deleted observer 641s can delete a non added observer 641s should return the observer 641s #delete_observers 641s should remove all observers 641s should return the observer set 641s #notify_and_delete_observers 641s should notify all observers 641s should clear observers 641s can be called many times without any other notification 641s should return the observer set 641s 641s Concurrent::Collection::CopyOnWriteObserverSet 641s behaves like an observer set 641s #add_observer 641s with arguments 641s should return the observer 641s with a block 641s should return the observer based on a block 641s #notify_observers 641s should return the observer set 641s with a single observer 641s should update a registered observer without arguments 641s should update a registered observer with arguments 641s should notify an observer using the chosen method 641s should notify an observer once using the last added method 641s should notify an observer from a block 641s can be called many times 641s with many observers 641s should notify all observer using the chosen method 641s with a block 641s calls the block once for every observer 641s passes the block return value to the update method 641s accepts blocks returning a single value 641s accepts block return values that include arrays 641s raises an exception if given both arguments and a block 641s #count_observers 641s should be zero after initialization 641s should be 1 after the first observer is added 641s should be 1 if the same observer is added many times 641s should be equal to the number of unique observers 641s #delete_observer 641s should not notify a deleted observer 641s can delete a non added observer 641s should return the observer 641s #delete_observers 641s should remove all observers 641s should return the observer set 641s #notify_and_delete_observers 641s should notify all observers 641s should clear observers 641s can be called many times without any other notification 641s should return the observer set 641s 641s Concurrent::Collection::RubyNonConcurrentPriorityQueue 641s it should behave like priority_queue 641s #initialize 641s sorts from high to low when :order is :max 641s sorts from high to low when :order is :high 641s sorts from low to high when :order is :min 641s sorts from low to high when :order is :low 641s sorts from high to low by default 641s #clear 641s removes all items from a populated queue 641s has no effect on an empty queue 641s is expected to be truthy 641s #delete 641s deletes the requested item when found 641s deletes the requested item when it is the first element 641s deletes the requested item when it is the last element 641s deletes multiple matching items when present 641s returns true when found 641s returns false when not found 641s returns false when called on an empty queue 641s deletes the requested item when it is "smaller" than the last element 641s #empty? 641s returns true for an empty queue 641s returns false for a populated queue 641s #include? 641s returns true if the item is found 641s returns false if the item is not found 641s returns false when the queue is empty 641s is aliased as #has_priority? 641s #length 641s returns the length of a populated queue 641s returns zero when the queue is empty 641s is aliased as #size 641s #peek 641s returns the item at the head of the queue 641s does not remove the item from the queue 641s returns nil when the queue is empty 641s #pop 641s returns the item at the head of the queue 641s removes the item from the queue 641s returns nil when the queue is empty 641s returns nil when called multiple times while empty 641s is aliased as #deq 641s is aliased as #shift 641s #push 641s raises an exception when attempting to enqueue nil 641s adds the item to the queue 641s sorts the new item in priority order 641s arbitrarily orders equal items with respect to each other 641s is expected to be truthy 641s is aliased as << 641s is aliased as enq 641s .from_list 641s creates an empty queue from an empty list 641s creates a sorted, populated queue from an Array 641s creates a sorted, populated queue from a Hash 641s 641s Concurrent::Collection::JavaNonConcurrentPriorityQueue 641s it should behave like priority_queue 641s #initialize 641s sorts from high to low when :order is :max 641s sorts from high to low when :order is :high 641s sorts from low to high when :order is :min 641s sorts from low to high when :order is :low 641s sorts from high to low by default 641s #clear 641s removes all items from a populated queue 641s has no effect on an empty queue 641s is expected to be truthy 641s #delete 641s deletes the requested item when found 641s deletes the requested item when it is the first element 641s deletes the requested item when it is the last element 641s deletes multiple matching items when present 641s returns true when found 641s returns false when not found 641s returns false when called on an empty queue 641s deletes the requested item when it is "smaller" than the last element 641s #empty? 641s returns true for an empty queue 641s returns false for a populated queue 641s #include? 641s returns true if the item is found 641s returns false if the item is not found 641s returns false when the queue is empty 641s is aliased as #has_priority? 641s #length 641s returns the length of a populated queue 641s returns zero when the queue is empty 641s is aliased as #size 641s #peek 641s returns the item at the head of the queue 641s does not remove the item from the queue 641s returns nil when the queue is empty 641s #pop 641s returns the item at the head of the queue 641s removes the item from the queue 641s returns nil when the queue is empty 641s returns nil when called multiple times while empty 641s is aliased as #deq 641s is aliased as #shift 641s #push 641s raises an exception when attempting to enqueue nil 641s adds the item to the queue 641s sorts the new item in priority order 641s arbitrarily orders equal items with respect to each other 641s is expected to be truthy 641s is aliased as << 641s is aliased as enq 641s .from_list 641s creates an empty queue from an empty list 641s creates a sorted, populated queue from an Array 641s creates a sorted, populated queue from a Hash 641s 641s Concurrent::Collection::NonConcurrentPriorityQueue 641s inherits from JavaNonConcurrentPriorityQueue 641s 641s Concurrent::Concern::Obligation 641s unscheduled 641s it should behave like incomplete 641s should be not completed 641s should be incomplete 641s #value 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s #value! 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s #no_error! 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s pending 641s it should behave like incomplete 641s should be not completed 641s should be incomplete 641s #value 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s #value! 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s #no_error! 641s should return immediately if timeout is zero 641s should block on the event if timeout is not set 641s should block on the event if timeout is not zero 641s fulfilled 641s should be completed 641s should be not incomplete 641s #value 641s should return immediately if timeout is zero 641s should return immediately if timeout is not set 641s should return immediately if timeout is not zero 641s #value! 641s should return immediately if timeout is zero 641s should return immediately if timeout is not set 641s should return immediately if timeout is not zero 641s #no_error! 641s should return immediately if timeout is zero 641s should return immediately if timeout is not set 641s should return immediately if timeout is not zero 641s rejected 641s should be completed 641s should be not incomplete 641s #value 641s should return immediately if timeout is zero 641s should return immediately if timeout is not set 642s should return immediately if timeout is not zero 642s #value! 642s should return immediately if timeout is zero 642s should return immediately if timeout is not set 642s should return immediately if timeout is not zero 642s #no_error! 642s should return immediately if timeout is zero 642s should return immediately if timeout is not set 642s should return immediately if timeout is not zero 642s #compare_and_set_state 642s unexpected state 642s should return false if state is not the expected one 642s should not change the state if current is not the expected one 642s expected state 642s should return true if state is the expected one 642s should not change the state if current is not the expected one 642s #if_state 642s should raise without block 642s should return false if state is not expected 642s should the block value if state is expected 642s should execute the block within the mutex 642s #get_arguments_from 642s returns an empty array when opts is not given 642s returns an empty array when opts is an empty hash 642s returns an empty array when there is no :args key 642s returns an empty array when the :args key has a nil value 642s returns a one-element array when the :args key has a non-array value 642s returns an array when when the :args key has an array value 642s returns the given array when the :args key has a complex array value 642s 642s Concurrent::Concern::Observable 642s does not initialize set by by default 642s uses the given observer set 642s delegates #add_observer 642s delegates #with_observer 642s delegates #delete_observer 642s delegates #delete_observers 642s delegates #count_observers 642s 642s configuration 642s global executors 642s creates a global timer set 642s creates a global fast executor 642s creates a global io executor 642s 642s dataflow 642s raises an exception when no block given 642s #dataflow uses the global fast executor 642s #dataflow_with uses the given executor 642s #dataflow_with raises an exception when no executor given 642s accepts zero or more dependencies 642s accepts uncompleted dependencies 642s accepts completed dependencies 642s raises an exception if any dependencies are not IVars 642s doesn't raise exceptions from dependencies, unless called with ! 642s returns a Future 642s does not schedule the Future 642s if no dependencies are completed 642s if one dependency of two is completed 642s schedules the Future when all dependencies are available 642s if there is just one 642s if there is more than one 642s counts already executed dependencies 642s if there is just one 642s if there is more than one 642s passes the values of dependencies into the block 642s if there is just one 642s if there is more than one 642s module function 642s can be called as Concurrent.dataflow and Concurrent.dataflow_with 642s 642s Concurrent::Delay 642s behavior 642s it should behave like dereferenceable 642s defaults :dup_on_deref to false 642s calls #dup when the :dup_on_deref option is true 642s defaults :freeze_on_deref to false 642s calls #freeze when the :freeze_on_deref option is true 642s defaults :copy_on_deref to nil 642s calls the block when the :copy_on_deref option is passed a proc 642s calls the :copy block first followed by #dup followed by #freeze 642s does not call #dup when #dup_on_deref is set and the value is nil 642s does not call #freeze when #freeze_on_deref is set and the value is nil 642s does not call the #copy_on_deref block when the value is nil 642s supports dereference flags with observers 642s it should behave like obligation 642s #state 642s is :pending when first created 642s is :fulfilled when the handler completes 642s is :rejected when the handler raises an exception 642s #value 642s returns nil when reaching the optional timeout value 642s returns immediately when timeout is zero 642s returns the value when fulfilled before timeout 642s returns nil when timeout reached 642s is nil when :pending 642s blocks the caller when :pending and timeout is nil 642s is nil when :rejected 642s is set to the return value of the block when :fulfilled 642s #reason 642s is nil when :pending 642s is nil when :fulfilled 642s is set to error object of the exception when :rejected 642s #initialize 642s sets the state to :pending 642s raises an exception when no block given 642s #reconfigure 642s returns value of block used in reconfiguration 642s returns false when process completed? 642s #value 642s does not call the block before #value is called 642s calls the block when #value is called 642s only calls the block once no matter how often #value is called 642s raises when called recursively 642s can be called twice 642s 642s Concurrent 642s Promises::Channel 642s #capacity 642s #to_s 642s #(try_)push(_op) 642s #(try_)pop(_op) 642s #(try_)pop(_op)_matching 642s #(try_)select(_op) 642s exchanging 642s integration 642s 642s Concurrent 642s ErlangActor 642s on thread 642s is expected to eq [:bad_message, -1] 642s behaves like erlang actor 642s run to termination 642s run to termination with arguments 642s #receive 642s pid has name 642s receives message 642s receives message with matchers 642s spawn(link: true) 642s termination 642s monitoring 642s (de)monitor 643s demonitor 643s demonitor should leave the down message in the inbox if it's already there 643s notifications 1 643s notifications 2 643s linking 643s links 643s unlinks 643s link dead 643s link dead when trapping 643s exit/1 when linked 643s 1 643s 2 643s 3 643s 4 643s 5 643s 6 643s 7 643s 8 643s 9 643s exit/2 when linked 643s 1 643s 2 643s 3 643s 4 643s 5 643s 6 643s 7 643s 8 643s 9 643s 10 643s 11 643s 12 643s 13 643s asking 643s replies 643s timing out (PENDING: flaky on truffleruby and jruby) 643s rejects on no reply 643s on pool 643s receives message repeatedly with keep 643s class defined 643s behaves like erlang actor 643s run to termination 643s run to termination with arguments 643s #receive 643s pid has name 643s receives message 643s receives message with matchers 643s spawn(link: true) 643s termination 643s monitoring 643s (de)monitor 643s demonitor 643s demonitor should leave the down message in the inbox if it's already there 643s notifications 1 643s notifications 2 643s linking 643s links 643s unlinks 643s link dead 644s link dead when trapping 644s exit/1 when linked 644s 1 644s 2 644s 3 644s 4 644s 5 644s 6 644s 7 644s 8 644s 9 644s exit/2 when linked 644s 1 644s 2 644s 3 644s 4 644s 5 644s 6 644s 7 644s 8 644s 9 644s 10 644s 11 644s 12 644s 13 644s asking 644s replies 644s timing out (PENDING: flaky on truffleruby and jruby) 644s rejects on no reply 644s 644s Concurrent::Edge::LockFreeLinkedSet 644s .new 644s when passed default val 644s uses the val arg as data for each node 644s #add 644s appends to the linked set 644s in a multi-threaded environment 644s adds the items to the set 644s #<< 644s appends to the linked set and returns self 644s returns self regardless of whether it was logically added 644s #contains? 644s when checking if set includes a value 644s returns true if a value exists 644s compares object using Object#hash 644s returns false for values not in the set 644s when set is empty 644s does not break 644s when set is long 644s does not break 644s in a multi-threaded environment 645s correctly check that the set contains the item 645s #remove 645s when item is inside of set 645s the item is no longer visible to the user 645s allows for the item to be added despite being physically present 645s in a multi-threaded environment 645s adds the items to the set 645s does not recognize the existence of the item when removed 645s when item is not inside of set 645s does not remove to value 645s the set remains intact 645s when the set is empty 645s remove does not break 645s when the set is large 645s remove successfully removes the node 645s 645s Concurrent::RubyExchanger 645s behaves like exchanger 645s #exchange 645s behaves like exchanger method with indefinite timeout 645s blocks indefinitely 645s receives the other value 645s can be reused 645s behaves like exchanger method with finite timeout 645s blocks until timeout 645s receives the other value 645s can be reused 645s behaves like exchanger method cross-thread interactions 645s when first, waits for a second 645s allows multiple firsts to cancel if necessary 645s #exchange! 645s behaves like exchanger method with indefinite timeout 645s blocks indefinitely 645s receives the other value 645s can be reused 645s behaves like exchanger method with finite timeout 646s blocks until timeout 646s receives the other value 646s can be reused 646s behaves like exchanger method cross-thread interactions 646s when first, waits for a second 646s allows multiple firsts to cancel if necessary 646s #try_exchange 646s behaves like exchanger method with indefinite timeout 646s blocks indefinitely 646s receives the other value 646s can be reused 646s behaves like exchanger method with finite timeout 646s blocks until timeout 646s receives the other value 646s can be reused 646s behaves like exchanger method cross-thread interactions 646s when first, waits for a second 647s allows multiple firsts to cancel if necessary 647s 647s Concurrent::JavaExchanger 647s behaves like exchanger 647s #exchange 647s behaves like exchanger method with indefinite timeout 647s blocks indefinitely 647s receives the other value 647s can be reused 647s behaves like exchanger method with finite timeout 647s blocks until timeout 647s receives the other value 647s can be reused 647s behaves like exchanger method cross-thread interactions 647s when first, waits for a second 647s allows multiple firsts to cancel if necessary 647s #exchange! 647s behaves like exchanger method with indefinite timeout 647s blocks indefinitely 647s receives the other value 647s can be reused 647s behaves like exchanger method with finite timeout 647s blocks until timeout 647s receives the other value 647s can be reused 647s behaves like exchanger method cross-thread interactions 648s when first, waits for a second 648s allows multiple firsts to cancel if necessary 648s #try_exchange 648s behaves like exchanger method with indefinite timeout 648s blocks indefinitely 648s receives the other value 648s can be reused 648s behaves like exchanger method with finite timeout 648s blocks until timeout 648s receives the other value 648s can be reused 648s behaves like exchanger method cross-thread interactions 648s when first, waits for a second 649s allows multiple firsts to cancel if necessary 649s 649s Concurrent::Exchanger 649s class hierarchy 649s inherits from JavaExchanger 649s 649s Concurrent::CachedThreadPool 649s it should behave like thread_pool 649s it should behave like executor_service 649s it should behave like global_thread_pool 649s #post 649s raises an exception if no block is given 649s returns true when the block is added to the queue 649s calls the block with the given arguments 649s aliases #<< 649s #post 650s rejects the block while shutting down 650s rejects the block once shutdown 650s auto terminate 654s does not stop shutdown 654s #running? 654s returns true when the thread pool is running 655s returns false when the thread pool is shutting down 655s returns false when the thread pool is shutdown 655s returns false when the thread pool is killed 655s #shutdown 655s stops accepting new tasks 655s allows in-progress tasks to complete 656s allows pending tasks to complete 656s #shutdown followed by #wait_for_termination 656s allows in-progress tasks to complete 656s allows pending tasks to complete 656s stops accepting/running new tasks 656s #kill 656s stops accepting new tasks 656s rejects all pending tasks 656s #wait_for_termination 656s immediately returns true when no operations are pending 656s returns true after shutdown has complete 657s returns true when shutdown successfully completes before timeout 657s returns false when shutdown fails to complete before timeout 658s waits forever when no timeout value is given 658s #auto_terminate? 658s returns true by default 658s returns true when :enable_at_exit_handler is true 658s returns false when :enable_at_exit_handler is false 658s #length 658s returns zero on creation 658s returns zero once shut down 658s #scheduled_task_count 658s returns zero on creation 658s returns the approximate number of tasks that have been post thus far 658s returns the approximate number of tasks that were post 658s #completed_task_count 658s returns zero on creation 658s #shutdown 659s allows threads to exit normally 659s #initialize 659s sets :max_length to DEFAULT_MAX_POOL_SIZE 659s sets :min_length to DEFAULT_MIN_POOL_SIZE 659s sets :idletime to DEFAULT_THREAD_IDLETIMEOUT 659s sets :max_queue to DEFAULT_MAX_QUEUE_SIZE 659s #min_length 659s returns zero on creation 659s returns zero while running 659s returns zero once shutdown 659s #max_length 659s returns :max_length on creation 659s returns :max_length while running 659s returns :max_length once shutdown 659s #largest_length 659s returns zero on creation 659s returns a non-zero number once tasks have been received 659s returns a non-zero number after shutdown if tasks have been received 659s #idletime 659s returns the thread idletime 659s runtime-specific implementation 659s #initialize 659s sets :fallback_policy correctly 659s defaults :fallback_policy to :abort 659s raises an exception if given an invalid :fallback_policy 659s stress 660s is expected to be <= 200 660s is expected to be <= 4 660s 660s Concurrent::FixedThreadPool 660s it should behave like thread_pool 660s it should behave like executor_service 660s it should behave like global_thread_pool 660s #post 660s raises an exception if no block is given 660s returns true when the block is added to the queue 660s calls the block with the given arguments 660s aliases #<< 660s #post 661s rejects the block while shutting down 662s rejects the block once shutdown 662s auto terminate 666s does not stop shutdown 666s #running? 666s returns true when the thread pool is running 667s returns false when the thread pool is shutting down 667s returns false when the thread pool is shutdown 667s returns false when the thread pool is killed 667s #shutdown 667s stops accepting new tasks 667s allows in-progress tasks to complete 668s allows pending tasks to complete 668s #shutdown followed by #wait_for_termination 668s allows in-progress tasks to complete 668s allows pending tasks to complete 668s stops accepting/running new tasks 668s #kill 668s stops accepting new tasks 668s rejects all pending tasks 668s #wait_for_termination 668s immediately returns true when no operations are pending 668s returns true after shutdown has complete 669s returns true when shutdown successfully completes before timeout 669s returns false when shutdown fails to complete before timeout 670s waits forever when no timeout value is given 670s #auto_terminate? 670s returns true by default 670s returns true when :enable_at_exit_handler is true 670s returns false when :enable_at_exit_handler is false 670s #length 670s returns zero on creation 670s returns zero once shut down 670s #scheduled_task_count 670s returns zero on creation 670s returns the approximate number of tasks that have been post thus far 670s returns the approximate number of tasks that were post 670s #completed_task_count 670s returns zero on creation 670s #shutdown 671s allows threads to exit normally 671s #initialize default values 671s defaults :min_length correctly 671s defaults :max_length correctly 671s defaults :fallback_policy to :abort 671s defaults :idletime correctly 671s defaults default :max_queue to zero 671s #initialize explicit values 671s raises an exception when the pool length is less than one 671s sets explicit :max_queue correctly 671s correctly sets valid :fallback_policy 671s correctly sets valid :idletime 671s raises an exception if given an invalid :fallback_policy 671s #min_length 671s returns :num_threads on creation 671s returns :num_threads while running 671s returns :num_threads once shutdown 671s #max_length 671s returns :num_threads on creation 671s returns :num_threads while running 671s returns :num_threads once shutdown 671s #length 671s returns :num_threads while running 671s #largest_length 671s returns zero on creation 671s returns :num_threads while running 671s returns :num_threads once shutdown 671s #kill 671s attempts to kill all in-progress tasks 671s worker creation and caching 671s never creates more than :num_threads threads 671s fallback policy 672s raises an error when overflow on abort 673s discards when fallback_policy is :discard 673s uses the calling thread for overflow under caller_runs 673s runtime-specific implementation 673s sets :fallback_policy correctly 673s 673s Concurrent::ImmediateExecutor 673s it should behave like executor_service 673s it should behave like global_thread_pool 673s #post 673s raises an exception if no block is given 673s returns true when the block is added to the queue 673s calls the block with the given arguments 673s aliases #<< 673s #post 674s rejects the block while shutting down 674s rejects the block once shutdown 674s auto terminate 680s does not stop shutdown 680s #running? 680s returns true when the thread pool is running 681s returns false when the thread pool is shutting down 681s returns false when the thread pool is shutdown 681s returns false when the thread pool is killed 681s #shutdown 681s stops accepting new tasks 681s allows in-progress tasks to complete 682s allows pending tasks to complete 682s #shutdown followed by #wait_for_termination 682s allows in-progress tasks to complete 682s allows pending tasks to complete 683s stops accepting/running new tasks 683s #kill 683s stops accepting new tasks 684s rejects all pending tasks 684s #wait_for_termination 684s immediately returns true when no operations are pending 684s returns true after shutdown has complete 685s returns true when shutdown successfully completes before timeout 685s returns false when shutdown fails to complete before timeout 686s waits forever when no timeout value is given 686s 686s Concurrent::IndirectImmediateExecutor 686s runs its tasks synchronously 686s runs the task on a separate thread 686s it should behave like executor_service 686s it should behave like global_thread_pool 686s #post 686s raises an exception if no block is given 686s returns true when the block is added to the queue 686s calls the block with the given arguments 686s aliases #<< 686s #post 687s rejects the block while shutting down 687s rejects the block once shutdown 687s auto terminate 695s does not stop shutdown 695s #running? 695s returns true when the thread pool is running 695s returns false when the thread pool is shutting down 695s returns false when the thread pool is shutdown 695s returns false when the thread pool is killed 695s #shutdown 696s stops accepting new tasks 696s allows in-progress tasks to complete 696s allows pending tasks to complete 696s #shutdown followed by #wait_for_termination 697s allows in-progress tasks to complete 697s allows pending tasks to complete 697s stops accepting/running new tasks 697s #kill 697s stops accepting new tasks 699s rejects all pending tasks 699s #wait_for_termination 699s immediately returns true when no operations are pending 699s returns true after shutdown has complete 700s returns true when shutdown successfully completes before timeout 700s returns false when shutdown fails to complete before timeout 700s waits forever when no timeout value is given 700s 700s Concurrent::JavaSingleThreadExecutor 700s it should behave like executor_service 700s it should behave like global_thread_pool 700s #post 700s raises an exception if no block is given 700s returns true when the block is added to the queue 700s calls the block with the given arguments 700s aliases #<< 700s #post 701s rejects the block while shutting down 702s rejects the block once shutdown 702s auto terminate 710s does not stop shutdown 710s #running? 710s returns true when the thread pool is running 710s returns false when the thread pool is shutting down 710s returns false when the thread pool is shutdown 710s returns false when the thread pool is killed 710s #shutdown 710s stops accepting new tasks 711s allows in-progress tasks to complete 711s allows pending tasks to complete 711s #shutdown followed by #wait_for_termination 711s allows in-progress tasks to complete 712s allows pending tasks to complete 712s stops accepting/running new tasks 712s #kill 712s stops accepting new tasks 712s rejects all pending tasks 712s #wait_for_termination 712s immediately returns true when no operations are pending 712s returns true after shutdown has complete 713s returns true when shutdown successfully completes before timeout 713s returns false when shutdown fails to complete before timeout 713s waits forever when no timeout value is given 713s 713s Concurrent::JavaThreadPoolExecutor 713s it should behave like thread_pool 713s it should behave like executor_service 713s it should behave like global_thread_pool 713s #post 713s raises an exception if no block is given 713s returns true when the block is added to the queue 713s calls the block with the given arguments 713s aliases #<< 713s #post 714s rejects the block while shutting down 715s rejects the block once shutdown 715s auto terminate 724s does not stop shutdown 724s #running? 724s returns true when the thread pool is running 724s returns false when the thread pool is shutting down 724s returns false when the thread pool is shutdown 724s returns false when the thread pool is killed 724s #shutdown 724s stops accepting new tasks 724s allows in-progress tasks to complete 724s allows pending tasks to complete 724s #shutdown followed by #wait_for_termination 724s allows in-progress tasks to complete 724s allows pending tasks to complete 724s stops accepting/running new tasks 724s #kill 725s stops accepting new tasks 725s rejects all pending tasks 725s #wait_for_termination 725s immediately returns true when no operations are pending 725s returns true after shutdown has complete 726s returns true when shutdown successfully completes before timeout 726s returns false when shutdown fails to complete before timeout 726s waits forever when no timeout value is given 726s #auto_terminate? 726s returns true by default 726s returns true when :enable_at_exit_handler is true 726s returns false when :enable_at_exit_handler is false 726s #length 726s returns zero on creation 727s returns zero once shut down 727s #scheduled_task_count 727s returns zero on creation 727s returns the approximate number of tasks that have been post thus far 727s returns the approximate number of tasks that were post 727s #completed_task_count 727s returns zero on creation 727s #shutdown 728s allows threads to exit normally 728s it should behave like thread_pool_executor 728s #initialize defaults 728s defaults :min_length to DEFAULT_MIN_POOL_SIZE 728s defaults :max_length to DEFAULT_MAX_POOL_SIZE 728s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 728s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 728s defaults :fallback_policy to :abort 728s defaults :name to nil 728s #initialize explicit values 728s sets :min_threads 728s sets :max_threads 728s sets :idletime 728s doesn't allow max_threads < min_threads 728s accepts all valid fallback policies 728s raises an exception if :max_threads is less than zero 728s raises an exception if :min_threads is less than zero 728s raises an exception if :max_threads greater than the max allowable 728s raises an exception if :max_threads is less than :min_threads 728s raises an exception if given an invalid :fallback_policy 728s sets :name 728s #max_queue 728s returns the set value on creation 728s returns the set value when running 728s returns the set value after stopping 728s #synchronous 728s cannot be set unless `max_queue` is zero 728s executes fallback policy once max_threads has been reached 728s #queue_length 728s returns zero on creation 728s returns zero when there are no enqueued tasks 728s returns the size of the queue when tasks are enqueued 728s returns zero when stopped 728s can never be greater than :max_queue 728s #remaining_capacity 728s returns -1 when :max_queue is set to zero 728s returns :max_length on creation 728s returns :max_length when stopped 728s #active_count 728s returns the number of threads that are actively executing tasks. 728s #fallback_policy 728s :abort 728s #post raises an error when the queue is at capacity 728s #<< raises an error when the queue is at capacity 728s #post raises an error when the executor is shutting down 728s #<< raises an error when the executor is shutting down 729s a #post task is never executed when the queue is at capacity 729s a #<< task is never executed when the queue is at capacity 729s :discard 729s a #post task is never executed when the queue is at capacity 729s a #<< task is never executed when the queue is at capacity 729s a #post task is never executed when the executor is shutting down 729s a #<< task is never executed when the executor is shutting down 729s #post returns false when the executor is shutting down 729s :caller_runs 729s #post does not create any new threads when the queue is at capacity 729s native console only tested on i386, x86_64, powerpc64, aarch64, s390x 729s #<< executes the task on the current thread when the queue is at capacity 729s #post executes the task on the current thread when the queue is at capacity 730s #post executes the task on the current thread when the executor is shutting down 730s #<< executes the task on the current thread when the executor is shutting down 730s #post does not block other jobs running on the worker threads 730s prune 730s is a no-op, pruning is handled by the JVM 730s #overload_policy 730s :abort maps to AbortPolicy 730s :discard maps to DiscardPolicy 730s :caller_runs maps to CallerRunsPolicy 730s 730s Concurrent::RubySingleThreadExecutor 730s it should behave like executor_service 730s it should behave like global_thread_pool 730s #post 730s raises an exception if no block is given 730s returns true when the block is added to the queue 730s calls the block with the given arguments 730s aliases #<< 730s #post 731s rejects the block while shutting down 731s rejects the block once shutdown 731s auto terminate 737s does not stop shutdown 737s #running? 737s returns true when the thread pool is running 738s returns false when the thread pool is shutting down 738s returns false when the thread pool is shutdown 738s returns false when the thread pool is killed 738s #shutdown 738s stops accepting new tasks 738s allows in-progress tasks to complete 739s allows pending tasks to complete 739s #shutdown followed by #wait_for_termination 739s allows in-progress tasks to complete 739s allows pending tasks to complete 739s stops accepting/running new tasks 739s #kill 740s stops accepting new tasks 740s rejects all pending tasks 740s #wait_for_termination 740s immediately returns true when no operations are pending 740s returns true after shutdown has complete 741s returns true when shutdown successfully completes before timeout 741s returns false when shutdown fails to complete before timeout 741s waits forever when no timeout value is given 741s 741s Concurrent::RubyThreadPoolExecutor 741s it should behave like thread_pool 741s it should behave like executor_service 741s it should behave like global_thread_pool 741s #post 741s raises an exception if no block is given 741s returns true when the block is added to the queue 741s calls the block with the given arguments 741s aliases #<< 741s #post 742s rejects the block while shutting down 742s rejects the block once shutdown 742s auto terminate 748s does not stop shutdown 748s #running? 748s returns true when the thread pool is running 749s returns false when the thread pool is shutting down 749s returns false when the thread pool is shutdown 749s returns false when the thread pool is killed 749s #shutdown 749s stops accepting new tasks 749s allows in-progress tasks to complete 749s allows pending tasks to complete 749s #shutdown followed by #wait_for_termination 749s allows in-progress tasks to complete 749s allows pending tasks to complete 750s stops accepting/running new tasks 750s #kill 750s stops accepting new tasks 750s rejects all pending tasks 750s #wait_for_termination 750s immediately returns true when no operations are pending 750s returns true after shutdown has complete 751s returns true when shutdown successfully completes before timeout 751s returns false when shutdown fails to complete before timeout 751s waits forever when no timeout value is given 751s #auto_terminate? 751s returns true by default 751s returns true when :enable_at_exit_handler is true 751s returns false when :enable_at_exit_handler is false 751s #length 751s returns zero on creation 751s returns zero once shut down 751s #scheduled_task_count 751s returns zero on creation 751s returns the approximate number of tasks that have been post thus far 752s returns the approximate number of tasks that were post 752s #completed_task_count 752s returns zero on creation 752s #shutdown 753s allows threads to exit normally 753s it should behave like thread_pool_executor 753s #initialize defaults 753s defaults :min_length to DEFAULT_MIN_POOL_SIZE 753s defaults :max_length to DEFAULT_MAX_POOL_SIZE 753s defaults :idletime to DEFAULT_THREAD_IDLETIMEOUT 753s defaults :max_queue to DEFAULT_MAX_QUEUE_SIZE 753s defaults :fallback_policy to :abort 753s defaults :name to nil 753s #initialize explicit values 753s sets :min_threads 753s sets :max_threads 753s sets :idletime 753s doesn't allow max_threads < min_threads 753s accepts all valid fallback policies 753s raises an exception if :max_threads is less than zero 753s raises an exception if :min_threads is less than zero 753s raises an exception if :max_threads greater than the max allowable 753s raises an exception if :max_threads is less than :min_threads 753s raises an exception if given an invalid :fallback_policy 753s sets :name 753s #max_queue 753s returns the set value on creation 753s returns the set value when running 753s returns the set value after stopping 753s #synchronous 753s cannot be set unless `max_queue` is zero 753s executes fallback policy once max_threads has been reached 753s #queue_length 753s returns zero on creation 753s returns zero when there are no enqueued tasks 753s returns the size of the queue when tasks are enqueued 753s returns zero when stopped 753s can never be greater than :max_queue 753s #remaining_capacity 753s returns -1 when :max_queue is set to zero 753s returns :max_length on creation 753s returns :max_length when stopped 753s #active_count 753s returns the number of threads that are actively executing tasks. 753s #fallback_policy 753s :abort 753s #post raises an error when the queue is at capacity 753s #<< raises an error when the queue is at capacity 753s #post raises an error when the executor is shutting down 753s #<< raises an error when the executor is shutting down 753s a #post task is never executed when the queue is at capacity 753s a #<< task is never executed when the queue is at capacity 753s :discard 753s a #post task is never executed when the queue is at capacity 753s a #<< task is never executed when the queue is at capacity 753s a #post task is never executed when the executor is shutting down 753s a #<< task is never executed when the executor is shutting down 753s #post returns false when the executor is shutting down 753s :caller_runs 753s #post does not create any new threads when the queue is at capacity 753s #<< executes the task on the current thread when the queue is at capacity 753s #post executes the task on the current thread when the queue is at capacity 753s #post executes the task on the current thread when the executor is shutting down 753s #<< executes the task on the current thread when the executor is shutting down 753s #post does not block other jobs running on the worker threads 753s #remaining_capacity 753s returns :max_length when no tasks are enqueued 753s returns the remaining capacity when tasks are enqueued 753s threads naming 753s without pool name 753s sets counted name 753s with pool name 753s sets counted name 753s 753s Concurrent::SafeTaskExecutor 753s #execute 753s happy execution 753s should return success 753s should return task value 753s should return a nil reason 753s passes all arguments to #execute to the task 753s protectes #execute with a mutex 753s failing execution 753s should return false success 753s should return a nil value 753s should return the reason 753s rescues Exception when :rescue_exception is true 753s rescues StandardError when :rescue_exception is false 753s rescues StandardError by default 753s 753s Concurrent::SerializedExecutionDelegator 753s it should behave like executor_service 753s it should behave like global_thread_pool 753s #post 753s raises an exception if no block is given 753s returns true when the block is added to the queue 753s calls the block with the given arguments 753s aliases #<< 753s #post 755s rejects the block while shutting down 755s rejects the block once shutdown 755s auto terminate 760s does not stop shutdown 760s #running? 760s returns true when the thread pool is running 760s returns false when the thread pool is shutting down 760s returns false when the thread pool is shutdown 760s returns false when the thread pool is killed 760s #shutdown 761s stops accepting new tasks 761s allows in-progress tasks to complete 761s allows pending tasks to complete 761s #shutdown followed by #wait_for_termination 761s allows in-progress tasks to complete 762s allows pending tasks to complete 762s stops accepting/running new tasks 762s #kill 762s stops accepting new tasks 763s rejects all pending tasks 763s #wait_for_termination 763s immediately returns true when no operations are pending 763s returns true after shutdown has complete 764s returns true when shutdown successfully completes before timeout 764s returns false when shutdown fails to complete before timeout 765s waits forever when no timeout value is given 765s 765s Concurrent::SimpleExecutorService 765s it should behave like executor_service 765s it should behave like global_thread_pool 765s #post 765s raises an exception if no block is given 765s returns true when the block is added to the queue 765s calls the block with the given arguments 765s aliases #<< 765s #post 766s rejects the block while shutting down 766s rejects the block once shutdown 766s auto terminate 771s does not stop shutdown 771s #running? 771s returns true when the thread pool is running 771s returns false when the thread pool is shutting down 771s returns false when the thread pool is shutdown 771s returns false when the thread pool is killed 771s #shutdown 772s stops accepting new tasks 772s allows in-progress tasks to complete 772s allows pending tasks to complete 772s #shutdown followed by #wait_for_termination 772s allows in-progress tasks to complete 772s allows pending tasks to complete 772s stops accepting/running new tasks 772s #kill 772s stops accepting new tasks 773s rejects all pending tasks 773s #wait_for_termination 773s immediately returns true when no operations are pending 773s returns true after shutdown has complete 773s returns true when shutdown successfully completes before timeout 773s returns false when shutdown fails to complete before timeout 774s waits forever when no timeout value is given 774s #post 774s creates a new thread for a call without arguments 774s executes a call without arguments 774s creates a new thread for a call with arguments 774s executes a call with one argument 774s executes a call with multiple arguments 774s aliases #<< 774s SimpleExecutorService.post 774s creates a new thread for a call without arguments 774s executes a call without arguments 774s creates a new thread for a call with arguments 774s executes a call with one argument 774s executes a call with multiple arguments 774s aliases #<< 774s 774s Concurrent::SingleThreadExecutor 774s inherits from JavaSingleThreadExecutor 774s 774s Concurrent::ThreadPoolExecutor 774s inherits from JavaThreadPoolExecutor 774s 774s Concurrent::TimerSet 774s construction 774s uses the executor given at construction 774s uses the global io executor be default 774s #post 774s raises an exception when given a task with a delay less than zero 774s raises an exception when no block given 774s immediately posts a task when the delay is zero 774s execution 774s executes a given task when given an interval in seconds 774s returns an IVar when posting a task 774s executes a given task when given an interval in seconds, even if longer tasks have been scheduled 774s passes all arguments to the task on execution 775s does not execute tasks early 775s executes all tasks scheduled for the same time 775s executes tasks with different times in schedule order 775s executes tasks with different times in schedule time 775s continues to execute new tasks even after the queue is emptied 776s safely handles an executor raising RejectedExecutionError 776s resolution 776s sets the IVar value on success when delay is zero 776s sets the IVar value on success when given a delay 776s sets the IVar reason on failure when delay is zero 776s sets the IVar reason on failure when given a delay 776s task cancellation 776s fails to cancel the task once processing has begun 776s fails to cancel the task once processing is complete 776s cancels a pending task 776s returns false when not running 776s task rescheduling 776s raises an exception when given an invalid time 776s does not change the current schedule when given an invalid time 776s reschdules a pending and unpost task when given a valid time 776s returns false once the task has been post to the executor 776s returns false once the task is processing 776s returns false once the task has is complete 776s returns false when not running 776s task resetting 776s calls #reschedule with the original delay 776s termination 776s cancels all pending tasks on #shutdown 776s cancels all pending tasks on #kill 776s stops the monitor thread on #shutdown 776s kills the monitor thread on #kill 776s rejects tasks once shutdown 776s rejects tasks once killed 776s #wait_for_termination returns true if shutdown completes before timeout 777s #wait_for_termination returns false on timeout 777s state 777s is running? when first created 777s is running? after tasks have been post 777s is shutdown? after shutdown completes 777s is shutdown? after being killed 777s 777s Concurrent::WrappingExecutor 777s is expected to be a kind of Concurrent::WrappingExecutor 777s is expected to respond to #post 777s is expected to respond to #can_overflow? 777s is expected to respond to #serialized? 777s #post 777s with passthrough wrapper 777s is expected to equal # 777s with wrapper modifying args 777s is expected to equal # 777s with wrapper modifying task 777s is expected to equal # 777s 777s Concurrent::Future 777s it should behave like ivar 777s it should behave like obligation 777s #state 777s is :pending when first created 777s is :fulfilled when the handler completes 777s is :rejected when the handler raises an exception 777s #value 777s returns nil when reaching the optional timeout value 777s returns immediately when timeout is zero 782s returns the value when fulfilled before timeout 782s returns nil when timeout reached 782s is nil when :pending 787s blocks the caller when :pending and timeout is nil 787s is nil when :rejected 787s is set to the return value of the block when :fulfilled 787s #reason 787s is nil when :pending 787s is nil when :fulfilled 787s is set to error object of the exception when :rejected 787s it should behave like dereferenceable 787s defaults :dup_on_deref to false 787s calls #dup when the :dup_on_deref option is true 787s defaults :freeze_on_deref to false 788s calls #freeze when the :freeze_on_deref option is true 788s defaults :copy_on_deref to nil 788s calls the block when the :copy_on_deref option is passed a proc 788s calls the :copy block first followed by #dup followed by #freeze 788s does not call #dup when #dup_on_deref is set and the value is nil 789s does not call #freeze when #freeze_on_deref is set and the value is nil 789s does not call the #copy_on_deref block when the value is nil 789s supports dereference flags with observers 789s it should behave like observable 789s #add_observer 789s adds an observer if called before first notification 789s adds an observer with :func if called before first notification 789s creates an observer from a block if called before first notification 789s raises an exception if not given an observer or a block 789s raises an exception when given both an observer and a block 789s #delete_observer 789s deletes the given observer if called before first notification 789s returns the removed observer if found in the observer set 789s returns the given observer even when not found in the observer set 789s #delete_observers 789s deletes all observers when called before first notification 789s returns self 789s #count_observers 789s returns zero for a new observable object 789s returns a count of registered observers if called before first notification 789s returns zero after #delete_observers has been called 789s first notification 789s calls the #update method on all observers without a specified :func 789s calls the appropriate function on all observers which specified a :func 789s calls the proc for all observers added as a block 790s does not notify any observers removed with #delete_observer 791s does not notify any observers after #delete_observers called 791s initialization 791s sets the state to incomplete 791s #set 791s sets the state to be fulfilled 791s sets the value 791s raises an exception if set more than once 791s returns self 791s fulfils when given a block which executes successfully 791s rejects when given a block which raises an exception 791s raises an exception when given a value and a block 791s raises an exception when given neither a value nor a block 791s #fail 791s sets the state to be rejected 791s sets the value to be nil 791s sets the reason to the given exception 791s raises an exception if set more than once 791s defaults the reason to a StandardError 791s returns self 791s #try_set 791s when unset 791s assigns the value 791s assigns the block result 791s returns true 791s when fulfilled 791s does not assign the value 792s does not assign the block result 792s returns false 792s when rejected 792s does not assign the value 792s does not assign the block result 792s has a nil value 792s returns false 792s it should behave like thread_arguments 792s passes an empty array when opts is not given 792s passes an empty array when opts is an empty hash 792s passes an empty array when there is no :args key 792s passes an empty array when the :args key has a nil value 792s passes a one-element array when the :args key has a non-array value 792s passes an array when when the :args key has an array value 792s passes the given array when the :args key has a complex array value 792s allows the given arguments array to be dereferenced 792s #initialize 792s sets the state to :unscheduled 792s raises an exception when no block given 792s uses the executor given with the :executor option 792s uses the global io executor by default 792s instance #execute 792s does nothing unless the state is :unscheduled 792s posts the block given on construction 792s sets the state to :pending 792s returns self 792s class #execute 792s creates a new Future 792s passes the block to the new Future 792s calls #execute on the new Future 792s fulfillment 792s sets the state to :processing while the task is executing 792s passes all arguments to handler 792s sets the value to the result of the handler 792s sets the state to :fulfilled when the block completes 792s sets the value to nil when the handler raises an exception 792s sets the value to nil when the handler raises Exception 792s sets the reason to the Exception instance when the handler raises Exception 792s sets the state to :rejected when the handler raises an exception 792s aliases 792s aliases #realized? for #fulfilled? 792s aliases #deref for #value 792s cancellation 792s #cancel 792s fails to cancel the task once processing has begun 792s fails to cancel the task once processing is complete 792s cancels a pending task 792s #wait_or_cancel 792s returns true if the operation completes before timeout 792s cancels the task on timeout 792s observation 792s notifies all observers on fulfillment 792s notifies all observers on rejection 792s notifies an observer added after fulfillment 792s notifies an observer added after rejection 792s does not notify existing observers when a new observer added after fulfillment 792s does not notify existing observers when a new observer added after rejection 792s deadlock avoidance 792s should notify observers outside mutex lock 792s should notify a new observer added after fulfillment outside lock 792s 792s Concurrent::Hash 792s .[] 792s when initializing with no arguments 792s is expected to be empty 792s when initializing with an even number of arguments 792s creates a hash using the odd position arguments as keys and even position arguments as values 792s when initializing with an array of pairs 792s creates a hash using each pair as a (key, value) pair 792s when initializing with another hash as an argument 792s creates a new hash 792s creates a hash with the same contents as the other hash 792s creates a hash with the results of calling #to_hash on the other array 792s .new 792s when initializing with no arguments 792s is expected to be empty 792s when initialized with a default object 792s uses the default object for non-existing keys 792s when initialized with a block 792s calls the block for non-existing keys 792s returns the results of calling the block for non-existing key 792s concurrency 792s is expected to be empty 792s 792s Concurrent::ImmutableStruct 792s it should behave like struct 792s definition 792s registers the class when given a class name 792s registers the class when given a class name which is defined in the ancestors 792s creates an anonymous class when given at least one member 792s raises an exception when given an invalid class name 792s defines a getter for each member 792s raises an exception when given no members 792s raise an exception when given an invalid member 792s evalues a given block against the new class 792s construction 792s sets all absent members to nil 792s sets all given members in order 792s raises an exception when extra members are given 792s properties 792s #length 792s returns the number of struct members 792s #members 792s returns the struct members as an array of symbols 792s returns a different object than the array passed at definition 792s #size 792s returns the number of struct members 792s #values 792s returns the values of the struct as an array in order 792s #values_at 792s returns the value at the given offset 792s returns the values at multiple given offsets 792s returns values at offsets in a given range 792s returns values for multiple ranges 792s returns values for ranges and offsets 792s accessors 792s #[member] 792s retrieves the value when given a valid symbol member 792s retrieves the value when given a valid string member 792s raises an exception when given a non-existent symbol member 792s raises an exception when given a non-existent string member 792s #[index] 792s retrieves the value when given a valid index 792s raises an exception when given an out-of-bound index 792s comparison 792s #== 792s returns true if other has same struct subclass and equal values 792s returns false if other has different struct subclass 792s returns false if other has different values 792s #!= 792s returns false if other has same struct subclass and equal values 792s returns true if other has different struct subclass 792s returns true if other has different values 792s enumeration 792s #each 792s yields the value of each struct member in order 792s returns an enumerator when no block is given 792s #each_pair 792s yields the name and value of each struct member in order 792s returns an enumerator when no block is given 792s #select 792s yields each value 792s returns an Array with the values from for which the block returns true 792s returns an enumerator when no block is given 792s conversion 792s #to_s 792s includes the name of the class when registered 792s includes the names of all members 792s includes all values 792s returns the same string as #inspect 792s #to_a 792s returns the to_a for this struct as an array 792s #to_h 792s returns a Hash containing the names and values in order 792s copy 792s #dup 792s shallowly duplicates all members along with the struct 792s discards frozen state of the struct 792s retains frozen state of members 792s discards singleton class 792s copies the singleton class of members 792s #clone 792s shallowly clones all members along with the struct 792s retains frozen state 792s copies the singleton class 792s copies the singleton class of members 792s it should behave like mergeable_struct 792s #merge 792s updates all members with the new values from a given hash 792s calls the given block for each key in `other` 792s retains the value for all members not without values in the given hash 792s raises an exception when given a hash with members not in the struct 792s returns a new object 792s 792s Concurrent::IVar 792s it should behave like ivar 792s it should behave like obligation 792s #state 792s is :pending when first created 792s is :fulfilled when the handler completes 792s is :rejected when the handler raises an exception 792s #value 792s returns nil when reaching the optional timeout value 792s returns immediately when timeout is zero 793s returns the value when fulfilled before timeout 793s returns nil when timeout reached 793s is nil when :pending 793s blocks the caller when :pending and timeout is nil 793s is nil when :rejected 793s is set to the return value of the block when :fulfilled 793s #reason 793s is nil when :pending 793s is nil when :fulfilled 793s is set to error object of the exception when :rejected 793s it should behave like dereferenceable 793s defaults :dup_on_deref to false 793s calls #dup when the :dup_on_deref option is true 793s defaults :freeze_on_deref to false 793s calls #freeze when the :freeze_on_deref option is true 793s defaults :copy_on_deref to nil 793s calls the block when the :copy_on_deref option is passed a proc 793s calls the :copy block first followed by #dup followed by #freeze 793s does not call #dup when #dup_on_deref is set and the value is nil 793s does not call #freeze when #freeze_on_deref is set and the value is nil 793s does not call the #copy_on_deref block when the value is nil 793s supports dereference flags with observers 793s it should behave like observable 793s #add_observer 793s adds an observer if called before first notification 793s adds an observer with :func if called before first notification 793s creates an observer from a block if called before first notification 793s raises an exception if not given an observer or a block 793s raises an exception when given both an observer and a block 793s #delete_observer 793s deletes the given observer if called before first notification 793s returns the removed observer if found in the observer set 793s returns the given observer even when not found in the observer set 793s #delete_observers 793s deletes all observers when called before first notification 793s returns self 793s #count_observers 793s returns zero for a new observable object 793s returns a count of registered observers if called before first notification 793s returns zero after #delete_observers has been called 793s first notification 793s calls the #update method on all observers without a specified :func 793s calls the appropriate function on all observers which specified a :func 793s calls the proc for all observers added as a block 794s does not notify any observers removed with #delete_observer 795s does not notify any observers after #delete_observers called 795s initialization 795s sets the state to incomplete 795s #set 795s sets the state to be fulfilled 795s sets the value 795s raises an exception if set more than once 795s returns self 795s fulfils when given a block which executes successfully 795s rejects when given a block which raises an exception 795s raises an exception when given a value and a block 795s raises an exception when given neither a value nor a block 795s #fail 795s sets the state to be rejected 795s sets the value to be nil 795s sets the reason to the given exception 795s raises an exception if set more than once 795s defaults the reason to a StandardError 795s returns self 795s #try_set 795s when unset 795s assigns the value 795s assigns the block result 795s returns true 795s when fulfilled 795s does not assign the value 795s does not assign the block result 795s returns false 795s when rejected 795s does not assign the value 795s does not assign the block result 795s has a nil value 795s returns false 795s #initialize 795s does not have to set an initial value 795s does not set an initial value if you pass NULL 795s can set an initial value 795s can set an initial value with a block 795s raises an exception if given both a value and a block 795s observation 795s notifies all observers on #set 795s deadlock avoidance 795s should notify observers outside mutex lock 795s should notify a new observer added after fulfillment outside lock 795s 795s Concurrent::LazyRegister 795s example at ./spec/concurrent/lazy_register_spec.rb:6 (PENDING: Not yet implemented) 795s 795s Concurrent::Map 795s default_proc is called with the Concurrent::Map and the key 795s default_proc is called with the Concurrent::Map and the key after #dup 795s concurrency 795s retrieval 795s #put_if_absent 795s updates dont block reads 795s collision resistance 805s collision resistance with arrays 805s #replace_pair 805s #replace_if_exists 805s #get_and_set 805s #key 805s #key? 805s #value? 805s #delete 805s #delete_pair 805s default proc 805s falsy default proc 805s #clear 805s #keys 805s #values 805s #each_key 805s #each_value 805s #empty 805s options validation 805s initial capacity options validation 805s load factor options validation 805s #size 805s #get_or_default 805s #dup,#clone 805s is unfreezable 805s marshal dump load 805s marshal dump does not work with default proc 805s #inspect 805s #compute_if_absent 805s works in default_proc 805s common 805s with return 805s exception 806s atomicity 806s #compute_if_present 806s common 806s with return 806s exception 806s #compute 806s common 806s with return 806s exception 806s #merge_pair 806s common 806s with return 806s exception 806s #fetch 806s common 806s falsy 806s with return 806s #fetch_or_store 806s common 806s falsy 806s with return 806s #each_pair 806s it should behave like collection_each 806s common 806s pair iterator 806s allows modification 806s when no block is given 806s returns an enumerator 806s returns an object which is enumerable 806s #each 806s it should behave like collection_each 806s common 806s pair iterator 806s allows modification 806s when no block is given 806s returns an enumerator 806s returns an object which is enumerable 806s 806s Concurrent::Maybe 806s construction 806s hides Maybe.new 806s Maybe.from 806s raises an exception when no block is given 806s passes all arguments to the block 806s creates a Just Maybe on success 806s sets the value to the block result on success 806s creates a Nothing Maybe on exception 806s sets the reason to the error object on exception 806s Maybe.just 806s creates a new Just Maybe 806s Maybe.nothing 806s creates a new Nothing Maybe 806s uses the given Error object 806s creates a new error object with the given string 806s creates a new error object when given nothing 806s when just 806s #just? returns true 806s #fulfilled? returns true 806s #nothing? returns false 806s #rejected? returns false 806s #just returns the value 806s #value returns the value 806s #nothing returns NONE 806s #reason returns NONE 806s when nothing 806s #just? returns false 806s #fulfilled? returns false 806s #nothing? returns true 806s #rejected? returns true 806s #just returns NONE 806s #value returns NONE 806s #nothing returns the raised error 806s #reason returns the raised error 806s comparison 806s something is not equal to nothing 806s nothing is equal to nothing 806s something is equal to the same value 806s something is not equal to a different value 806s something is greater than a smaller value 806s something is less than a bigger value 806s nothing is not less than nothing 806s nothing is not greater than nothing 806s #or 806s returns the value when something 806s returns the other when nothing 806s 806s monotonic_time 806s behavior 806s returns seconds as float 806s returns a Float when unit = :float_second 806s returns a Float when unit = :float_millisecond 806s returns a Float when unit = :float_microsecond 806s returns an Integer when unit = :second 806s returns an Integer when unit = :millisecond 806s returns an Integer when unit = :microsecond 806s returns an Integer when unit = :nanosecond 806s raises ArgumentError on unknown units 806s 806s Concurrent::MutableStruct 806s it should behave like struct 806s definition 806s registers the class when given a class name 806s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 806s registers the class when given a class name which is defined in the ancestors 806s creates an anonymous class when given at least one member 806s raises an exception when given an invalid class name 806s defines a getter for each member 806s raises an exception when given no members 806s raise an exception when given an invalid member 806s evalues a given block against the new class 806s construction 806s sets all absent members to nil 806s sets all given members in order 806s raises an exception when extra members are given 806s properties 806s #length 806s returns the number of struct members 806s #members 806s returns the struct members as an array of symbols 806s returns a different object than the array passed at definition 806s #size 806s returns the number of struct members 806s #values 806s returns the values of the struct as an array in order 806s #values_at 806s returns the value at the given offset 806s returns the values at multiple given offsets 806s returns values at offsets in a given range 806s returns values for multiple ranges 806s returns values for ranges and offsets 806s accessors 806s #[member] 806s retrieves the value when given a valid symbol member 806s retrieves the value when given a valid string member 806s raises an exception when given a non-existent symbol member 806s raises an exception when given a non-existent string member 806s #[index] 806s retrieves the value when given a valid index 806s raises an exception when given an out-of-bound index 806s comparison 806s #== 806s returns true if other has same struct subclass and equal values 806s returns false if other has different struct subclass 806s returns false if other has different values 806s #!= 806s returns false if other has same struct subclass and equal values 806s returns true if other has different struct subclass 806s returns true if other has different values 806s enumeration 806s #each 806s yields the value of each struct member in order 806s returns an enumerator when no block is given 806s #each_pair 806s yields the name and value of each struct member in order 806s returns an enumerator when no block is given 806s #select 806s yields each value 806s returns an Array with the values from for which the block returns true 806s returns an enumerator when no block is given 806s conversion 806s #to_s 806s includes the name of the class when registered 806s includes the names of all members 806s includes all values 806s returns the same string as #inspect 806s #to_a 806s returns the to_a for this struct as an array 806s #to_h 806s returns a Hash containing the names and values in order 806s copy 806s #dup 806s shallowly duplicates all members along with the struct 806s discards frozen state of the struct 806s retains frozen state of members 806s discards singleton class 806s copies the singleton class of members 806s #clone 806s shallowly clones all members along with the struct 806s retains frozen state 806s copies the singleton class 806s copies the singleton class of members 806s it should behave like mergeable_struct 806s #merge 806s updates all members with the new values from a given hash 806s calls the given block for each key in `other` 806s retains the value for all members not without values in the given hash 806s raises an exception when given a hash with members not in the struct 806s returns a new object 806s definition 806s defines a setter for each member 806s #[member]= 806s sets the value when given a valid symbol member 806s sets the value when given a valid string member 806s raises an exception when given a non-existent symbol member 806s raises an exception when given a non-existent string member 806s #[index]= 806s sets the value when given a valid index 806s raises an exception when given an out-of-bound index 806s synchronization 806s protects #values 806s protects #values_at 806s protects #[index] 806s protects #[member] 806s protects getter methods 806s protects #[index]= 806s protects #[member]= 806s protects getter methods 806s protects #to_s 806s protects #inspect 806s protects #merge 806s protects #to_h 806s protects #== 806s protects #each 806s protects #each_pair 806s protects #select 806s protects #initialize_copy 806s copy 806s #dup 806s mutates only the copy 806s #clone 806s mutates only the copy 806s 806s Concurrent::MVar 806s behavior 806s it should behave like dereferenceable 806s defaults :dup_on_deref to false 806s calls #dup when the :dup_on_deref option is true 806s defaults :freeze_on_deref to false 806s calls #freeze when the :freeze_on_deref option is true 806s defaults :copy_on_deref to nil 806s calls the block when the :copy_on_deref option is passed a proc 806s calls the :copy block first followed by #dup followed by #freeze 806s does not call #dup when #dup_on_deref is set and the value is nil 806s does not call #freeze when #freeze_on_deref is set and the value is nil 806s does not call the #copy_on_deref block when the value is nil 806s supports dereference flags with observers 806s #initialize 806s accepts no initial value 806s accepts an empty initial value 806s accepts an initial value 806s accepts a nil initial value 806s #take 806s sets the MVar to empty 806s returns the value on a full MVar 807s waits for another thread to #put 807s returns TIMEOUT on timeout on an empty MVar 807s #borrow 807s /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:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:101 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 807s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 807s require at org/jruby/RubyKernel.java:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 807s Concurrent at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/mvar_spec.rb:78 807s instance_exec at org/jruby/RubyBasicObject.java:2620 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 807s map at org/jruby/RubyArray.java:2805 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s map at org/jruby/RubyArray.java:2805 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 807s map at org/jruby/RubyArray.java:2805 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 807s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 807s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 807s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 807s
at /usr/bin/rspec:4 807s 807s /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:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:149 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 807s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 807s require at org/jruby/RubyKernel.java:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 807s Concurrent at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/mvar_spec.rb:78 807s instance_exec at org/jruby/RubyBasicObject.java:2620 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 807s map at org/jruby/RubyArray.java:2805 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s map at org/jruby/RubyArray.java:2805 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 807s map at org/jruby/RubyArray.java:2805 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 807s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 807s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 807s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 807s
at /usr/bin/rspec:4 807s 807s yields current value to the block and puts back value 807s puts back value even if an exception is raised 807s returns the returned value of the block 807s /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:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:296 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:7 807s at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:6 807s
at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers/built_in/yield.rb:5 807s require at org/jruby/RubyKernel.java:1175 807s require at /usr/share/jruby/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:85 807s yield_with_args at /usr/share/rubygems-integration/all/gems/rspec-expectations-3.13.0/lib/rspec/matchers.rb:920 807s Concurrent at /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/mvar_spec.rb:78 807s instance_exec at org/jruby/RubyBasicObject.java:2620 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:263 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s run_around_example_hooks_for at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:624 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/hooks.rb:486 807s with_around_example_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:468 807s with_around_and_singleton_context_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:511 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example.rb:259 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:646 807s map at org/jruby/RubyArray.java:2805 807s run_examples at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:651 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:607 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s map at org/jruby/RubyArray.java:2805 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/example_group.rb:608 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:121 807s map at org/jruby/RubyArray.java:2805 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:145 807s with_suite_hooks at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/configuration.rb:2091 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:116 807s report at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/reporter.rb:74 807s run_specs at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:115 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:89 807s run at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:71 807s invoke at /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib/rspec/core/runner.rb:45 807s
at /usr/bin/rspec:4 807s 807s returns TIMEOUT on timeout on an empty MVar 807s #put 807s sets the MVar to be empty 807s sets a new value on an empty MVar 807s waits for another thread to #take 807s returns TIMEOUT on timeout on a full MVar 807s returns the value 807s #empty? 807s returns true on an empty MVar 807s returns false on a full MVar 807s #full? 807s returns false on an empty MVar 807s returns true on a full MVar 807s #modify 807s raises an exception when no block given 807s modifies a full MVar 807s returns the unmodified value 807s waits for another thread to #put 808s is atomic 808s returns TIMEOUT on timeout on an empty MVar 808s #try_put! 808s returns true an empty MVar 808s returns false on a full MVar 808s sets an empty MVar to be full 808s #try_take! 808s returns EMPTY an empty MVar 808s returns the value on a full MVar 808s sets a full MVar to be empty 808s #set! 808s sets an empty MVar to be full 808s sets a full MVar to be full 808s returns EMPTY on an empty MVar 808s returns the original value on a full MVar 808s #modify! 808s raises an exception when no block given 808s modifies a full MVar 808s modifies an empty MVar 808s can be used to set a full MVar to empty 808s can be used to set an empty MVar to empty 808s returns the unmodified value 808s spurious wake ups 808s #take 809s waits for another thread to #put 809s returns TIMEOUT on timeout on an empty MVar 809s #modify 810s waits for another thread to #put 810s returns TIMEOUT on timeout on an empty MVar 810s #put 811s waits for another thread to #take 811s returns TIMEOUT on timeout on a full MVar 811s 811s Concurrent::Options 811s .executor_from_options 811s returns the given :executor 811s returns the global io executor when :executor is :io 811s returns the global fast executor when :executor is :fast 811s returns an immediate executor when :executor is :immediate 811s raises an exception when :executor is an unrecognized symbol 811s 811s Concurrent::ProcessingActor 811s is expected to eq "ab" 811s 811s Concurrent::Promise 811s it should behave like ivar 811s it should behave like obligation 811s #state 811s is :pending when first created 811s is :fulfilled when the handler completes 811s is :rejected when the handler raises an exception 811s #value 811s returns nil when reaching the optional timeout value 811s returns immediately when timeout is zero 816s returns the value when fulfilled before timeout 816s returns nil when timeout reached 816s is nil when :pending 821s blocks the caller when :pending and timeout is nil 821s is nil when :rejected 821s is set to the return value of the block when :fulfilled 821s #reason 821s is nil when :pending 821s is nil when :fulfilled 821s is set to error object of the exception when :rejected 821s it should behave like dereferenceable 821s defaults :dup_on_deref to false 822s calls #dup when the :dup_on_deref option is true 822s defaults :freeze_on_deref to false 822s calls #freeze when the :freeze_on_deref option is true 822s defaults :copy_on_deref to nil 823s calls the block when the :copy_on_deref option is passed a proc 823s calls the :copy block first followed by #dup followed by #freeze 823s does not call #dup when #dup_on_deref is set and the value is nil 823s does not call #freeze when #freeze_on_deref is set and the value is nil 823s does not call the #copy_on_deref block when the value is nil 823s supports dereference flags with observers 823s it should behave like observable 823s #add_observer 823s adds an observer if called before first notification 823s adds an observer with :func if called before first notification 823s creates an observer from a block if called before first notification 823s raises an exception if not given an observer or a block 823s raises an exception when given both an observer and a block 823s #delete_observer 823s deletes the given observer if called before first notification 823s returns the removed observer if found in the observer set 823s returns the given observer even when not found in the observer set 823s #delete_observers 823s deletes all observers when called before first notification 823s returns self 823s #count_observers 823s returns zero for a new observable object 823s returns a count of registered observers if called before first notification 823s returns zero after #delete_observers has been called 823s first notification 823s calls the #update method on all observers without a specified :func 824s calls the appropriate function on all observers which specified a :func 824s calls the proc for all observers added as a block 825s does not notify any observers removed with #delete_observer 826s does not notify any observers after #delete_observers called 826s initialization 826s sets the state to incomplete 826s #set 826s sets the state to be fulfilled 826s sets the value 826s raises an exception if set more than once 826s returns self 826s fulfils when given a block which executes successfully 826s rejects when given a block which raises an exception 826s raises an exception when given a value and a block 826s raises an exception when given neither a value nor a block 826s #fail 826s sets the state to be rejected 826s sets the value to be nil 826s sets the reason to the given exception 826s raises an exception if set more than once 826s defaults the reason to a StandardError 826s returns self 826s #try_set 826s when unset 826s assigns the value 826s assigns the block result 826s returns true 826s when fulfilled 826s does not assign the value 826s does not assign the block result 826s returns false 826s when rejected 826s does not assign the value 826s does not assign the block result 826s has a nil value 826s returns false 826s it should behave like thread_arguments 826s passes an empty array when opts is not given 826s passes an empty array when opts is an empty hash 826s passes an empty array when there is no :args key 826s passes an empty array when the :args key has a nil value 826s passes a one-element array when the :args key has a non-array value 826s passes an array when when the :args key has an array value 826s passes the given array when the :args key has a complex array value 826s allows the given arguments array to be dereferenced 826s initializers 826s .fulfill 826s should return a Promise 826s should return a fulfilled Promise 826s should return a Promise with set value 826s .reject 826s should return a Promise 826s should return a rejected Promise 826s should return a Promise with set reason 826s .new 826s should return an unscheduled Promise 826s .execute 826s creates a new Promise 826s passes the block to the new Promise 826s calls #execute on the new Promise 826s #execute 826s unscheduled 827s sets the promise to :pending 827s posts the block given in construction 827s pending 827s sets the promise to :pending 827s does not post again 827s with children 827s when called on the root 828s should set all promises to :pending 828s when called on a child 829s should set all promises to :pending 829s when called on child after parent completes 829s sets state to :pending immediately 829s #then 829s returns a new promise when a block is passed 829s returns a new promise when a rescuer is passed 829s returns a new promise when a block and rescuer are passed 829s returns a new promise when a block, rescuer and executor are passed 829s supports setting the executor using a named parameter 829s should have block or rescuers 829s can be called more than once 829s unscheduled 829s returns a new promise 829s returns an unscheduled promise 829s pending 829s returns a new promise 829s returns a pending promise 829s fulfilled 829s returns a new Promise 829s notifies fulfillment to new child 829s rejected 829s returns a new Promise when :rejected 829s notifies rejection to new child 829s on_success 829s should have a block 829s returns a new promise 829s #rescue 829s returns a new promise 829s #flat_map 829s returns a promise 829s succeeds if both promises succeed 829s fails if the left promise fails 829s fails if the right promise fails 829s fails if the generating block fails 829s #zip 829s executes the returned Promise by default 829s executes the returned Promise when execute is true 829s does not execute the returned Promise when execute is false 829s allows setting executor for Promise chain 829s yields the results as an array 829s fails if one component fails 829s preserves ordering of the executed promises 829s .zip 829s executes the returned Promise by default 829s executes the returned Promise when execute is true 829s does not execute the returned Promise when execute is false 829s allows setting executor for Promise chain 829s yields the results as an array 829s fails if one component fails 830s preserves ordering of the executed promises 830s aggregators 830s .all? 830s returns a new Promise 830s does not execute the returned Promise 830s executes the #then condition when all components succeed 830s executes the #then condition when no promises are given 830s executes the #rescue handler if even one component fails 830s .any? 830s returns a new Promise 830s does not execute the returned Promise 830s executes the #then condition when any components succeed 830s executes the #then condition when no promises are given 830s executes the #rescue handler if all componenst fail 830s fulfillment 830s passes the result of each block to all its children 830s sets the promise value to the result if its block 830s sets the promise state to :fulfilled if the block completes 830s passes the last result through when a promise has no block 830s uses result as fulfillment value when a promise has no block 830s can manage long chain 830s #set 830s #can only be called on the root promise 830s triggers children 830s can be called with a block 830s #fail 830s can only be called on the root promise 830s rejects children 830s rejection 830s passes the reason to all its children 830s sets the promise value to the result if its block 830s sets the promise state to :rejected if the block completes 830s uses reason as rejection reason when a promise has no rescue callable 830s rejects on Exception 830s aliases 830s aliases #realized? for #fulfilled? 830s aliases #deref for #value 830s aliases #catch for #rescue 830s aliases #on_error for #rescue 830s 830s Concurrent::Promises 830s zip_futures_over 830s chain_resolvable 830s event 830s future 830s .future 830s executes 830s executes with args 830s .delay 830s is expected to eq 2 830s .schedule 830s scheduled execution 830s scheduled execution in graph 830s .event 830s is expected to equal true 830s .future without block 830s is expected to eq 0 830s .any_resolved 830s continues on first result 830s .any_fulfilled 830s continues on first result 830s treats a resolved Event as a fulfilled Future 830s treats a pending Event as a pending Future 830s .zip 830s waits for all results 830s when a future raises an error 830s raises a concurrent error 830s when deeply nested 830s raises the original error 830s .zip_events 830s waits for all and returns event 830s .rejected_future 830s raises the correct error when passed an unraised error 830s Future 830s has sync and async callbacks 830s wait supports setting timeout 830s wait! supports setting timeout 830s value supports setting timeout 830s value! supports setting timeout 830s reason supports setting timeout 830s result supports setting timeout 830s chains 830s chains with correct arguments 830s constructs promise like tree 830s allows graphs 831s resolves future when Exception raised 831s runs 831s can be risen when rejected 831s #flat 831s returns value of inner future 831s propagates rejection of inner future 831s it propagates rejection of the future which was suppose to provide inner future 831s rejects if inner value is not a future 831s accepts inner event 831s propagates requests for values to delayed futures 831s has shortcuts 831s ResolvableEvent 831s #wait 831s #resolve(raise_on_reassign = true) 831s #resolve(raise_on_reassign = false) 831s reservation 831s ResolvableFuture 831s #wait 831s #wait! 831s #value 831s #value! 831s #reason 831s result 831s reservation 831s atomic_resolution 831s interoperability 831s with erlang actor 831s with channel 831s value! 831s does not return spuriously with timeout 831s does not return spuriously without timeout 831s 831s Concurrent::ScheduledTask 831s behavior 831s it should behave like obligation 831s #state 831s is :pending when first created 831s is :fulfilled when the handler completes 831s is :rejected when the handler raises an exception 831s #value 831s returns nil when reaching the optional timeout value 831s returns immediately when timeout is zero 832s returns the value when fulfilled before timeout 832s returns nil when timeout reached 832s is nil when :pending 833s blocks the caller when :pending and timeout is nil 833s is nil when :rejected 833s is set to the return value of the block when :fulfilled 833s #reason 833s is nil when :pending 833s is nil when :fulfilled 833s is set to error object of the exception when :rejected 833s it should behave like dereferenceable 833s defaults :dup_on_deref to false 833s calls #dup when the :dup_on_deref option is true 833s defaults :freeze_on_deref to false 833s calls #freeze when the :freeze_on_deref option is true 833s defaults :copy_on_deref to nil 833s calls the block when the :copy_on_deref option is passed a proc 833s calls the :copy block first followed by #dup followed by #freeze 833s does not call #dup when #dup_on_deref is set and the value is nil 833s does not call #freeze when #freeze_on_deref is set and the value is nil 833s does not call the #copy_on_deref block when the value is nil 833s supports dereference flags with observers 833s it should behave like observable 833s #add_observer 833s adds an observer if called before first notification 833s adds an observer with :func if called before first notification 833s creates an observer from a block if called before first notification 833s raises an exception if not given an observer or a block 833s raises an exception when given both an observer and a block 833s #delete_observer 833s deletes the given observer if called before first notification 833s returns the removed observer if found in the observer set 833s returns the given observer even when not found in the observer set 833s #delete_observers 833s deletes all observers when called before first notification 833s returns self 833s #count_observers 833s returns zero for a new observable object 833s returns a count of registered observers if called before first notification 833s returns zero after #delete_observers has been called 833s first notification 833s calls the #update method on all observers without a specified :func 833s calls the appropriate function on all observers which specified a :func 834s calls the proc for all observers added as a block 835s does not notify any observers removed with #delete_observer 836s does not notify any observers after #delete_observers called 836s #initialize 836s accepts a number of seconds (from now) as the schedule time 836s raises an exception when seconds is less than zero 836s raises an exception when no block given 836s sets the initial state to :unscheduled 836s instance #execute 836s does nothing unless the state is :unscheduled 836s sets the sate to :pending 836s returns self 836s class #execute 836s creates a new ScheduledTask 836s passes the block to the new ScheduledTask 836s calls #execute on the new ScheduledTask 836s execution 836s passes :args from the options to the block 836s uses the :executor from the options 836s uses the :timer_set from the options 836s sets the state to :processing when the task is running 836s #cancel 836s returns false if the task has already been performed 837s returns false if the task is already in progress 837s cancels the task if it has not yet scheduled 837s cancels the task if it has not yet started 838s returns true on success 838s sets the reason to CancelledOperationError when cancelled 838s observation 838s returns true for an observer added while :unscheduled 838s returns true for an observer added while :pending 838s returns true for an observer added while :processing 838s notifies all observers on fulfillment 838s notifies all observers on rejection 838s 838s Concurrent::Set 838s .[] 838s when initializing with no arguments 838s is expected to be empty 838s when initializing with arguments 838s creates a set with the given objects 838s .new 838s when initializing with no arguments 838s is expected to be empty 838s when initializing with an enumerable object 838s creates a set with the contents of the enumerable object 838s when initializing with a block argument 838s creates a set with the contents of the enumerable object 838s concurrency 838s #add and #delete 838s force context switch 841s #each 841s 841s Concurrent::SettableStruct 841s it should behave like struct 841s definition 841s registers the class when given a class name 841s /tmp/autopkgtest.mkkHsO/build.jJj/src/spec/concurrent/struct_shared.rb:15: warning: already initialized constant ValidClassName2 841s registers the class when given a class name which is defined in the ancestors 841s creates an anonymous class when given at least one member 841s raises an exception when given an invalid class name 841s defines a getter for each member 841s raises an exception when given no members 841s raise an exception when given an invalid member 841s evalues a given block against the new class 841s construction 841s sets all absent members to nil 841s sets all given members in order 841s raises an exception when extra members are given 841s properties 841s #length 841s returns the number of struct members 841s #members 841s returns the struct members as an array of symbols 841s returns a different object than the array passed at definition 841s #size 841s returns the number of struct members 841s #values 841s returns the values of the struct as an array in order 841s #values_at 841s returns the value at the given offset 841s returns the values at multiple given offsets 841s returns values at offsets in a given range 841s returns values for multiple ranges 841s returns values for ranges and offsets 841s accessors 841s #[member] 841s retrieves the value when given a valid symbol member 841s retrieves the value when given a valid string member 841s raises an exception when given a non-existent symbol member 841s raises an exception when given a non-existent string member 841s #[index] 841s retrieves the value when given a valid index 841s raises an exception when given an out-of-bound index 841s comparison 841s #== 841s returns true if other has same struct subclass and equal values 841s returns false if other has different struct subclass 841s returns false if other has different values 841s #!= 841s returns false if other has same struct subclass and equal values 841s returns true if other has different struct subclass 841s returns true if other has different values 841s enumeration 841s #each 841s yields the value of each struct member in order 841s returns an enumerator when no block is given 841s #each_pair 841s yields the name and value of each struct member in order 841s returns an enumerator when no block is given 841s #select 841s yields each value 841s returns an Array with the values from for which the block returns true 841s returns an enumerator when no block is given 841s conversion 841s #to_s 841s includes the name of the class when registered 841s includes the names of all members 841s includes all values 841s returns the same string as #inspect 841s #to_a 841s returns the to_a for this struct as an array 841s #to_h 841s returns a Hash containing the names and values in order 841s copy 841s #dup 841s shallowly duplicates all members along with the struct 841s discards frozen state of the struct 841s retains frozen state of members 841s discards singleton class 841s copies the singleton class of members 841s #clone 841s shallowly clones all members along with the struct 841s retains frozen state 841s copies the singleton class 841s copies the singleton class of members 841s it should behave like mergeable_struct 841s #merge 841s updates all members with the new values from a given hash 841s calls the given block for each key in `other` 841s retains the value for all members not without values in the given hash 841s raises an exception when given a hash with members not in the struct 841s returns a new object 841s definition 841s defines a setter for each member 841s #[member]= 841s sets the value when given a valid symbol member 841s sets the value when given a valid string member 841s raises an exception when given a non-existent symbol member 841s raises an exception when given a non-existent string member 841s raises an exception when given a symbol member that has already been set 841s raises an exception when given a string member that has already been set 841s #[index]= 841s sets the value when given a valid index 841s raises an exception when given an out-of-bound index 841s raises an exception when given an index that has already been set 841s synchronization 841s protects #values 841s protects #values_at 841s protects #[index] 841s protects #[member] 841s protects getter methods 841s protects #[index]= 841s protects #[member]= 841s protects getter methods 841s protects #to_s 841s protects #inspect 841s protects #to_h 841s protects #merge 841s protects #== 841s protects #each 841s protects #each_pair 841s protects #select 841s protects #initialize_copy 841s copy 841s #dup 841s retains settability of members 841s #clone 841s retains settability of members 841s 841s Concurrent::Synchronization 841s Concurrent::Synchronization::Object 841s does not ensure visibility when not needed 841s does ensure visibility when specified 841s does ensure visibility when specified in a parent 841s does ensure visibility once when specified in child again 841s it should behave like attr_volatile 841s older writes are always visible 841s Concurrent::Synchronization::LockableObject 841s final field always visible 841s #wait 841s puts the current thread to sleep 842s allows the sleeping thread to be killed 842s releases the lock on the current object 842s can be called from within a #synchronize block 842s #synchronize 842s allows only one thread to execute count 842s signaling 842s for now pending, tested pretty well by Event (PENDING: Not yet implemented) 842s it should behave like attr_volatile 842s older writes are always visible 842s Concurrent::Synchronization::Volatile module 842s it should behave like attr_volatile 842s older writes are always visible 842s attr_atomic 842s is expected to be == b 842s 842s Concurrent::SynchronizedDelegator 842s wraps array 842s synchronizes access 842s synchronizes access with block 842s 842s Concurrent 842s Throttle 842s acquiring 842s #to_s 842s #on 842s capacity limited 842s 842s Concurrent::TimerTask 842s dereferenceable 842s it should behave like dereferenceable 843s defaults :dup_on_deref to false 843s calls #dup when the :dup_on_deref option is true 843s defaults :freeze_on_deref to false 843s calls #freeze when the :freeze_on_deref option is true 844s defaults :copy_on_deref to nil 844s calls the block when the :copy_on_deref option is passed a proc 844s calls the :copy block first followed by #dup followed by #freeze 844s does not call #dup when #dup_on_deref is set and the value is nil 844s does not call #freeze when #freeze_on_deref is set and the value is nil 844s does not call the #copy_on_deref block when the value is nil 844s supports dereference flags with observers 844s observable 844s it should behave like observable 844s #add_observer 844s adds an observer if called before first notification 844s adds an observer with :func if called before first notification 845s creates an observer from a block if called before first notification 845s raises an exception if not given an observer or a block 845s raises an exception when given both an observer and a block 845s #delete_observer 845s deletes the given observer if called before first notification 845s returns the removed observer if found in the observer set 845s returns the given observer even when not found in the observer set 845s #delete_observers 845s deletes all observers when called before first notification 845s returns self 845s #count_observers 845s returns zero for a new observable object 845s returns a count of registered observers if called before first notification 845s returns zero after #delete_observers has been called 845s first notification 845s calls the #update method on all observers without a specified :func 845s calls the appropriate function on all observers which specified a :func 845s calls the proc for all observers added as a block 846s does not notify any observers removed with #delete_observer 848s does not notify any observers after #delete_observers called 848s created with #new 848s #initialize 848s raises an exception if no block given 848s raises an exception if :execution_interval is not greater than zero 848s raises an exception if :execution_interval is not an integer 848s uses the default execution interval when no interval is given 848s uses the given execution interval 848s raises an exception if :interval_type is not a valid value 848s uses the default :interval_type when no type is given 848s uses the given interval type 848s #kill 848s returns true on success 848s #shutdown 848s returns true on success 848s arguments 848s raises an exception if no block given 848s #execution_interval is writeable 848s TimeTask timeouts are now ignored as these were not able to be implemented correctly 848s raises on invalid interval_type 848s TimeTask timeouts are now ignored as these were not able to be implemented correctly 848s #timeout_interval being written produces a warning 848s execution 848s runs the block immediately when the :run_now option is true 848s waits for :execution_interval seconds when the :run_now option is false 848s waits for :execution_interval seconds when the :run_now option is not given 848s passes a "self" reference to the block as the sole argument 848s uses the global executor by default 848s uses a custom executor when given 849s uses a fixed delay when set 849s uses a fixed rate when set 849s observation 849s notifies all observers on success 849s notifies all observers on error 849s 849s Concurrent::TVar 849s #initialize 849s accepts an initial value 849s #value 849s gets the value 849s #value= 849s sets the value 849s 849s #atomically 849s raises an exception when no block given 849s raises the same exception that was raised in Concurrent::atomically 849s retries on abort 849s commits writes if the transaction succeeds 849s undoes writes if the transaction is aborted 849s provides atomicity 849s nests 849s reflects transactional writes from within the same transaction 849s 849s #abort_transaction 849s raises an exception outside an #atomically block 849s 849s #leave_transaction 849s raises an exception outside an #atomically block 849s neither commits nor aborts a transaction 849s 849s #processor_count 849s retuns a positive integer 849s 849s #physical_processor_count 849s retuns a positive integer 849s 849s Finished in 4 minutes 27 seconds (files took 6.47 seconds to load) 849s 2937 examples, 0 failures, 11 pending 849s 850s autopkgtest [10:05:21]: test jruby: -----------------------] 855s jruby PASS 855s autopkgtest [10:05:26]: test jruby: - - - - - - - - - - results - - - - - - - - - - 860s autopkgtest [10:05:31]: @@@@@@@@@@@@@@@@@@@@ summary 860s ruby PASS 860s jruby PASS