Wed Dec 18 20:10:04 UTC 2024  I: starting to build ruby-excon/trixie/amd64 on jenkins on '2024-12-18 20:09'
Wed Dec 18 20:10:04 UTC 2024  I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_2/27024/console.log
Wed Dec 18 20:10:04 UTC 2024  I: Downloading source for trixie/ruby-excon=0.112.0-3
--2024-12-18 20:10:05--  http://deb.debian.org/debian/pool/main/r/ruby-excon/ruby-excon_0.112.0-3.dsc
Connecting to 46.16.76.132:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 1608 (1.6K) [text/prs.lines.tag]
Saving to: ‘ruby-excon_0.112.0-3.dsc’

     0K .                                                     100%  228M=0s

2024-12-18 20:10:05 (228 MB/s) - ‘ruby-excon_0.112.0-3.dsc’ saved [1608/1608]

Wed Dec 18 20:10:05 UTC 2024  I: ruby-excon_0.112.0-3.dsc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: ruby-excon
Binary: ruby-excon
Architecture: all
Version: 0.112.0-3
Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
Uploaders: Pirate Praveen <praveen@debian.org>, Utkarsh Gupta <utkarsh@debian.org>
Homepage: https://github.com/excon/excon
Standards-Version: 4.7.0
Vcs-Browser: https://salsa.debian.org/ruby-team/ruby-excon
Vcs-Git: https://salsa.debian.org/ruby-team/ruby-excon.git
Testsuite: autopkgtest-pkg-ruby
Build-Depends: debhelper-compat (= 13), gem2deb (>= 1), rake, ruby-activesupport, ruby-chronic, ruby-delorean, ruby-eventmachine, ruby-open4, ruby-rspec, ruby-shindo, ruby-sinatra, ruby-webrick (>= 1.7~), unicorn, puma, ruby-sinatra-contrib
Package-List:
 ruby-excon deb ruby optional arch=all
Checksums-Sha1:
 4d0dd456c65e4bbbb9063724c92b4fab4f76659a 239915 ruby-excon_0.112.0.orig.tar.gz
 80e47237273a5d099b8cf2dc6a7a085da7688686 6336 ruby-excon_0.112.0-3.debian.tar.xz
Checksums-Sha256:
 f13b61b32f2d4400511f3abe9dc5639b136640218593ca967f1d679b0d6bc0cb 239915 ruby-excon_0.112.0.orig.tar.gz
 d00c7ab6eecde29f00eb6787e1c75bfef7c0a9523a636821772d9d1ce0ab83e6 6336 ruby-excon_0.112.0-3.debian.tar.xz
Files:
 be677df5d74d8fa74f71e17db997e7bf 239915 ruby-excon_0.112.0.orig.tar.gz
 c8ea75f7ae4800878fceeaa0981f9611 6336 ruby-excon_0.112.0-3.debian.tar.xz

-----BEGIN PGP SIGNATURE-----

iHUEARYKAB0WIQSEz/3CFSD4gwbsKdFSaZq2P58rwwUCZ18SdAAKCRBSaZq2P58r
w8R9AP0VbMl+xeStsXj9rbgTcwEIBQQwaIsxOY15JTXBOnSIZQEA6KqGgD/0sjzt
y6T2N/7fnZp9RyexSgdrTbyN+HlFzA8=
=FwfN
-----END PGP SIGNATURE-----
Wed Dec 18 20:10:05 UTC 2024  I: Checking whether the package is not for us
Wed Dec 18 20:10:05 UTC 2024  I: Starting 1st build on remote node ionos5-amd64.debian.net.
Wed Dec 18 20:10:05 UTC 2024  I: Preparing to do remote build '1' on ionos5-amd64.debian.net.
Wed Dec 18 20:12:29 UTC 2024  I: Deleting $TMPDIR on ionos5-amd64.debian.net.
I: pbuilder: network access will be disabled during build
I: Current time: Tue Jan 20 14:33:07 -12 2026
I: pbuilder-time-stamp: 1768962787
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz]
I: copying local configuration
W: --override-config is not set; not updating apt.conf Read the manpage for details.
I: mounting /proc filesystem
I: mounting /sys filesystem
I: creating /{dev,run}/shm
I: mounting /dev/pts filesystem
I: redirecting /dev/ptmx to /dev/pts/ptmx
I: policy-rc.d already exists
I: Copying source file
I: copying [ruby-excon_0.112.0-3.dsc]
I: copying [./ruby-excon_0.112.0.orig.tar.gz]
I: copying [./ruby-excon_0.112.0-3.debian.tar.xz]
I: Extracting source
gpgv: Signature made Sun Dec 15 17:31:32 2024 
gpgv:                using EDDSA key 84CFFDC21520F88306EC29D152699AB63F9F2BC3
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./ruby-excon_0.112.0-3.dsc: no acceptable signature found
dpkg-source: info: extracting ruby-excon in ruby-excon-0.112.0
dpkg-source: info: unpacking ruby-excon_0.112.0.orig.tar.gz
dpkg-source: info: unpacking ruby-excon_0.112.0-3.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 00_disable-local-port-reuse-tests.patch
dpkg-source: info: applying 01_use_ca-certificates.patch
dpkg-source: info: applying 03_remove_rubygems_bundler_add_requires_from_gemspec.patch
dpkg-source: info: applying 0004-test-rackups-fallback-to-using-Rack-if-Rackup-is-not.patch
dpkg-source: info: applying 0005-no-internet-access.patch
I: Not using root during the build.
I: Installing the build-deps
I: user script /srv/workspace/pbuilder/1284455/tmp/hooks/D02_print_environment starting
I: set
  BUILDDIR='/build/reproducible-path'
  BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other'
  BUILDUSERNAME='pbuilder1'
  BUILD_ARCH='amd64'
  DEBIAN_FRONTEND='noninteractive'
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 '
  DISTRIBUTION='trixie'
  HOME='/root'
  HOST_ARCH='amd64'
  IFS=' 	
  '
  INVOCATION_ID='ae04f6100b694711840214efbfde0227'
  LANG='C'
  LANGUAGE='en_US:en'
  LC_ALL='C'
  MAIL='/var/mail/root'
  OPTIND='1'
  PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games'
  PBCURRENTCOMMANDLINEOPERATION='build'
  PBUILDER_OPERATION='build'
  PBUILDER_PKGDATADIR='/usr/share/pbuilder'
  PBUILDER_PKGLIBDIR='/usr/lib/pbuilder'
  PBUILDER_SYSCONFDIR='/etc'
  PPID='1284455'
  PS1='# '
  PS2='> '
  PS4='+ '
  PWD='/'
  SHELL='/bin/bash'
  SHLVL='2'
  SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.DavtLlUs/pbuilderrc_x2B3 --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.DavtLlUs/b1 --logfile b1/build.log ruby-excon_0.112.0-3.dsc'
  SUDO_GID='110'
  SUDO_UID='105'
  SUDO_USER='jenkins'
  TERM='unknown'
  TZ='/usr/share/zoneinfo/Etc/GMT+12'
  USER='root'
  _='/usr/bin/systemd-run'
  http_proxy='http://213.165.73.152:3128'
I: uname -a
  Linux ionos5-amd64 6.11.5+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.11.5-1~bpo12+1 (2024-11-11) x86_64 GNU/Linux
I: ls -l /bin
  lrwxrwxrwx 1 root root 7 Nov 22  2024 /bin -> usr/bin
I: user script /srv/workspace/pbuilder/1284455/tmp/hooks/D02_print_environment finished
 -> Attempting to satisfy build-dependencies
 -> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
Version: 0.invalid.0
Architecture: amd64
Maintainer: Debian Pbuilder Team <pbuilder-maint@lists.alioth.debian.org>
Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder
 This package was created automatically by pbuilder to satisfy the
 build-dependencies of the package being currently built.
Depends: debhelper-compat (= 13), gem2deb (>= 1), rake, ruby-activesupport, ruby-chronic, ruby-delorean, ruby-eventmachine, ruby-open4, ruby-rspec, ruby-shindo, ruby-sinatra, ruby-webrick (>= 1.7~), unicorn, puma, ruby-sinatra-contrib
dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Selecting previously unselected package pbuilder-satisfydepends-dummy.
(Reading database ... 19959 files and directories currently installed.)
Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ...
Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ...
dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested:
 pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however:
  Package debhelper-compat is not installed.
 pbuilder-satisfydepends-dummy depends on gem2deb (>= 1); however:
  Package gem2deb is not installed.
 pbuilder-satisfydepends-dummy depends on rake; however:
  Package rake is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-activesupport; however:
  Package ruby-activesupport is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-chronic; however:
  Package ruby-chronic is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-delorean; however:
  Package ruby-delorean is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-eventmachine; however:
  Package ruby-eventmachine is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-open4; however:
  Package ruby-open4 is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-rspec; however:
  Package ruby-rspec is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-shindo; however:
  Package ruby-shindo is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-sinatra; however:
  Package ruby-sinatra is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-webrick (>= 1.7~); however:
  Package ruby-webrick is not installed.
 pbuilder-satisfydepends-dummy depends on unicorn; however:
  Package unicorn is not installed.
 pbuilder-satisfydepends-dummy depends on puma; however:
  Package puma is not installed.
 pbuilder-satisfydepends-dummy depends on ruby-sinatra-contrib; however:
  Package ruby-sinatra-contrib is not installed.

Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ...
Reading package lists...
Building dependency tree...
Reading state information...
Initializing package states...
Writing extended state information...
Building tag database...
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0)
The following NEW packages will be installed:
  autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} devscripts{a} dh-autoreconf{a} dh-strip-nondeterminism{a} dirmngr{a} dwz{a} file{a} gem2deb{a} gem2deb-test-runner{a} gettext{a} gettext-base{a} gnupg{a} gnupg-l10n{a} gpg{a} gpg-agent{a} gpgconf{a} gpgsm{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libassuan9{a} libb-hooks-op-check-perl{a} libclass-method-modifiers-perl{a} libclass-xsaccessor-perl{a} libclone-perl{a} libcom-err2{a} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libedit2{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libfile-dirlist-perl{a} libfile-homedir-perl{a} libfile-listing-perl{a} libfile-stripnondeterminism-perl{a} libfile-touch-perl{a} libfile-which-perl{a} libgmp-dev{a} libgmpxx4ldbl{a} libgssapi-krb5-2{a} libhtml-parser-perl{a} libhtml-tagset-perl{a} libhtml-tree-perl{a} libhttp-cookies-perl{a} libhttp-date-perl{a} libhttp-message-perl{a} libhttp-negotiate-perl{a} libicu72{a} libimport-into-perl{a} libio-html-perl{a} libio-pty-perl{a} libio-socket-ssl-perl{a} libipc-run-perl{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libksba8{a} libldap-2.5-0{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libncurses6{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libnsl2{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.1t64{a} libsasl2-2{a} libsasl2-modules-db{a} libsub-quote-perl{a} libtimedate-perl{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} liburi-perl{a} libwww-perl{a} libwww-robotrules-perl{a} libxml2{a} libyaml-0-2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} patchutils{a} perl-openssl-defaults{a} pinentry-curses{a} po-debconf{a} puma{a} python3{a} python3-minimal{a} python3.12{a} python3.12-minimal{a} rake{a} readline-common{a} ruby{a} ruby-activesupport{a} ruby-all-dev{a} ruby-chronic{a} ruby-concurrent{a} ruby-delorean{a} ruby-diff-lcs{a} ruby-eventmachine{a} ruby-formatador{a} ruby-i18n{a} ruby-kgio{a} ruby-multi-json{a} ruby-mustermann{a} ruby-net-telnet{a} ruby-nio4r{a} ruby-numerizer{a} ruby-open4{a} ruby-rack{a} ruby-rack-protection{a} ruby-raindrops{a} ruby-rspec{a} ruby-rspec-core{a} ruby-rspec-expectations{a} ruby-rspec-mocks{a} ruby-rspec-support{a} ruby-ruby2-keywords{a} ruby-rubygems{a} ruby-sdbm{a} ruby-shindo{a} ruby-sinatra{a} ruby-sinatra-contrib{a} ruby-tilt{a} ruby-tzinfo{a} ruby-webrick{a} ruby-xmlrpc{a} ruby-zeitwerk{a} ruby3.1{a} ruby3.1-dev{a} rubygems-integration{a} sensible-utils{a} tzdata{a} unicorn{a} wdiff{a} 
The following packages are RECOMMENDED but will NOT be installed:
  apt-file curl dctrl-tools debian-keyring dput dput-ng dupload equivs fonts-lato gnupg-utils gpg-wks-client krb5-locales libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgit-wrapper-perl libgitlab-api-v4-perl libgpm2 libhtml-form-perl libhtml-format-perl libhttp-daemon-perl libio-compress-brotli-perl libjs-jquery libjson-perl libldap-common liblist-compare-perl libltdl-dev libmail-sendmail-perl libmailtools-perl libnamespace-clean-perl libsasl2-modules libsoap-lite-perl libstring-shellquote-perl libxstring-perl licensecheck lintian lynx pristine-tar python3-apt python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-oj ruby3.1-doc strace unzip wget zip 
0 packages upgraded, 160 newly installed, 0 to remove and 0 not upgraded.
Need to get 45.9 MB of archives. After unpacking 171 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian trixie/main amd64 libpython3.12-minimal amd64 3.12.8-3 [817 kB]
Get: 2 http://deb.debian.org/debian trixie/main amd64 libexpat1 amd64 2.6.4-1 [106 kB]
Get: 3 http://deb.debian.org/debian trixie/main amd64 python3.12-minimal amd64 3.12.8-3 [2162 kB]
Get: 4 http://deb.debian.org/debian trixie/main amd64 python3-minimal amd64 3.12.6-1 [26.7 kB]
Get: 5 http://deb.debian.org/debian trixie/main amd64 media-types all 10.1.0 [26.9 kB]
Get: 6 http://deb.debian.org/debian trixie/main amd64 netbase all 6.4 [12.8 kB]
Get: 7 http://deb.debian.org/debian trixie/main amd64 tzdata all 2024b-4 [256 kB]
Get: 8 http://deb.debian.org/debian trixie/main amd64 libkrb5support0 amd64 1.21.3-3 [32.5 kB]
Get: 9 http://deb.debian.org/debian trixie/main amd64 libcom-err2 amd64 1.47.2~rc1-2 [23.8 kB]
Get: 10 http://deb.debian.org/debian trixie/main amd64 libk5crypto3 amd64 1.21.3-3 [79.9 kB]
Get: 11 http://deb.debian.org/debian trixie/main amd64 libkeyutils1 amd64 1.6.3-4 [9092 B]
Get: 12 http://deb.debian.org/debian trixie/main amd64 libkrb5-3 amd64 1.21.3-3 [324 kB]
Get: 13 http://deb.debian.org/debian trixie/main amd64 libgssapi-krb5-2 amd64 1.21.3-3 [136 kB]
Get: 14 http://deb.debian.org/debian trixie/main amd64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB]
Get: 15 http://deb.debian.org/debian trixie/main amd64 libtirpc3t64 amd64 1.3.4+ds-1.3+b1 [83.1 kB]
Get: 16 http://deb.debian.org/debian trixie/main amd64 libnsl2 amd64 1.3.0-3+b3 [40.6 kB]
Get: 17 http://deb.debian.org/debian trixie/main amd64 readline-common all 8.2-6 [69.4 kB]
Get: 18 http://deb.debian.org/debian trixie/main amd64 libreadline8t64 amd64 8.2-6 [169 kB]
Get: 19 http://deb.debian.org/debian trixie/main amd64 libpython3.12-stdlib amd64 3.12.8-3 [1969 kB]
Get: 20 http://deb.debian.org/debian trixie/main amd64 python3.12 amd64 3.12.8-3 [677 kB]
Get: 21 http://deb.debian.org/debian trixie/main amd64 libpython3-stdlib amd64 3.12.6-1 [9692 B]
Get: 22 http://deb.debian.org/debian trixie/main amd64 python3 amd64 3.12.6-1 [27.8 kB]
Get: 23 http://deb.debian.org/debian trixie/main amd64 sensible-utils all 0.0.24 [24.8 kB]
Get: 24 http://deb.debian.org/debian trixie/main amd64 openssl amd64 3.3.2-2 [1382 kB]
Get: 25 http://deb.debian.org/debian trixie/main amd64 ca-certificates all 20240203 [158 kB]
Get: 26 http://deb.debian.org/debian trixie/main amd64 libmagic-mgc amd64 1:5.45-3+b1 [314 kB]
Get: 27 http://deb.debian.org/debian trixie/main amd64 libmagic1t64 amd64 1:5.45-3+b1 [108 kB]
Get: 28 http://deb.debian.org/debian trixie/main amd64 file amd64 1:5.45-3+b1 [43.3 kB]
Get: 29 http://deb.debian.org/debian trixie/main amd64 gettext-base amd64 0.22.5-2 [200 kB]
Get: 30 http://deb.debian.org/debian trixie/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB]
Get: 31 http://deb.debian.org/debian trixie/main amd64 groff-base amd64 1.23.0-6 [1184 kB]
Get: 32 http://deb.debian.org/debian trixie/main amd64 bsdextrautils amd64 2.40.2-12 [92.0 kB]
Get: 33 http://deb.debian.org/debian trixie/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB]
Get: 34 http://deb.debian.org/debian trixie/main amd64 man-db amd64 2.13.0-1 [1420 kB]
Get: 35 http://deb.debian.org/debian trixie/main amd64 m4 amd64 1.4.19-4 [287 kB]
Get: 36 http://deb.debian.org/debian trixie/main amd64 autoconf all 2.72-3 [493 kB]
Get: 37 http://deb.debian.org/debian trixie/main amd64 autotools-dev all 20220109.1 [51.6 kB]
Get: 38 http://deb.debian.org/debian trixie/main amd64 automake all 1:1.16.5-1.3 [823 kB]
Get: 39 http://deb.debian.org/debian trixie/main amd64 autopoint all 0.22.5-2 [723 kB]
Get: 40 http://deb.debian.org/debian trixie/main amd64 libdebhelper-perl all 13.20 [89.7 kB]
Get: 41 http://deb.debian.org/debian trixie/main amd64 libtool all 2.4.7-8 [517 kB]
Get: 42 http://deb.debian.org/debian trixie/main amd64 dh-autoreconf all 20 [17.1 kB]
Get: 43 http://deb.debian.org/debian trixie/main amd64 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 44 http://deb.debian.org/debian trixie/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB]
Get: 45 http://deb.debian.org/debian trixie/main amd64 dh-strip-nondeterminism all 1.14.0-1 [8448 B]
Get: 46 http://deb.debian.org/debian trixie/main amd64 libelf1t64 amd64 0.192-4 [189 kB]
Get: 47 http://deb.debian.org/debian trixie/main amd64 dwz amd64 0.15-1+b1 [110 kB]
Get: 48 http://deb.debian.org/debian trixie/main amd64 libicu72 amd64 72.1-5+b1 [9423 kB]
Get: 49 http://deb.debian.org/debian trixie/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2+b1 [699 kB]
Get: 50 http://deb.debian.org/debian trixie/main amd64 gettext amd64 0.22.5-2 [1601 kB]
Get: 51 http://deb.debian.org/debian trixie/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 52 http://deb.debian.org/debian trixie/main amd64 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 53 http://deb.debian.org/debian trixie/main amd64 debhelper all 13.20 [915 kB]
Get: 54 http://deb.debian.org/debian trixie/main amd64 libassuan9 amd64 3.0.1-2 [60.6 kB]
Get: 55 http://deb.debian.org/debian trixie/main amd64 gpgconf amd64 2.2.45-2 [120 kB]
Get: 56 http://deb.debian.org/debian trixie/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB]
Get: 57 http://deb.debian.org/debian trixie/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-8 [19.6 kB]
Get: 58 http://deb.debian.org/debian trixie/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-8 [57.3 kB]
Get: 59 http://deb.debian.org/debian trixie/main amd64 libldap-2.5-0 amd64 2.5.18+dfsg-3+b1 [188 kB]
Get: 60 http://deb.debian.org/debian trixie/main amd64 libnpth0t64 amd64 1.6-3.1+b1 [18.2 kB]
Get: 61 http://deb.debian.org/debian trixie/main amd64 dirmngr amd64 2.2.45-2 [368 kB]
Get: 62 http://deb.debian.org/debian trixie/main amd64 gnupg-l10n all 2.2.45-2 [705 kB]
Get: 63 http://deb.debian.org/debian trixie/main amd64 gpg amd64 2.2.45-2 [531 kB]
Get: 64 http://deb.debian.org/debian trixie/main amd64 pinentry-curses amd64 1.2.1-4+b1 [79.7 kB]
Get: 65 http://deb.debian.org/debian trixie/main amd64 gpg-agent amd64 2.2.45-2 [251 kB]
Get: 66 http://deb.debian.org/debian trixie/main amd64 gpgsm amd64 2.2.45-2 [255 kB]
Get: 67 http://deb.debian.org/debian trixie/main amd64 gnupg all 2.2.45-2 [376 kB]
Get: 68 http://deb.debian.org/debian trixie/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B]
Get: 69 http://deb.debian.org/debian trixie/main amd64 libfile-which-perl all 1.27-2 [15.1 kB]
Get: 70 http://deb.debian.org/debian trixie/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB]
Get: 71 http://deb.debian.org/debian trixie/main amd64 libfile-touch-perl all 0.12-2 [8816 B]
Get: 72 http://deb.debian.org/debian trixie/main amd64 libio-pty-perl amd64 1:1.20-1+b2 [34.3 kB]
Get: 73 http://deb.debian.org/debian trixie/main amd64 libipc-run-perl all 20231003.0-2 [101 kB]
Get: 74 http://deb.debian.org/debian trixie/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB]
Get: 75 http://deb.debian.org/debian trixie/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b4 [36.1 kB]
Get: 76 http://deb.debian.org/debian trixie/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB]
Get: 77 http://deb.debian.org/debian trixie/main amd64 libdynaloader-functions-perl all 0.004-1 [12.1 kB]
Get: 78 http://deb.debian.org/debian trixie/main amd64 libdevel-callchecker-perl amd64 0.009-1+b1 [16.2 kB]
Get: 79 http://deb.debian.org/debian trixie/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB]
Get: 80 http://deb.debian.org/debian trixie/main amd64 libmodule-runtime-perl all 0.016-2 [19.6 kB]
Get: 81 http://deb.debian.org/debian trixie/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB]
Get: 82 http://deb.debian.org/debian trixie/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB]
Get: 83 http://deb.debian.org/debian trixie/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB]
Get: 84 http://deb.debian.org/debian trixie/main amd64 libmoo-perl all 2.005005-1 [58.0 kB]
Get: 85 http://deb.debian.org/debian trixie/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB]
Get: 86 http://deb.debian.org/debian trixie/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB]
Get: 87 http://deb.debian.org/debian trixie/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB]
Get: 88 http://deb.debian.org/debian trixie/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB]
Get: 89 http://deb.debian.org/debian trixie/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB]
Get: 90 http://deb.debian.org/debian trixie/main amd64 liburi-perl all 5.30-1 [105 kB]
Get: 91 http://deb.debian.org/debian trixie/main amd64 libhtml-parser-perl amd64 3.83-1+b1 [99.7 kB]
Get: 92 http://deb.debian.org/debian trixie/main amd64 libhtml-tree-perl all 5.07-3 [211 kB]
Get: 93 http://deb.debian.org/debian trixie/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB]
Get: 94 http://deb.debian.org/debian trixie/main amd64 libio-html-perl all 1.004-3 [16.2 kB]
Get: 95 http://deb.debian.org/debian trixie/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB]
Get: 96 http://deb.debian.org/debian trixie/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB]
Get: 97 http://deb.debian.org/debian trixie/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB]
Get: 98 http://deb.debian.org/debian trixie/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB]
Get: 99 http://deb.debian.org/debian trixie/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B]
Get: 100 http://deb.debian.org/debian trixie/main amd64 libnet-ssleay-perl amd64 1.94-2 [339 kB]
Get: 101 http://deb.debian.org/debian trixie/main amd64 libio-socket-ssl-perl all 2.089-1 [223 kB]
Get: 102 http://deb.debian.org/debian trixie/main amd64 libnet-http-perl all 6.23-1 [23.9 kB]
Get: 103 http://deb.debian.org/debian trixie/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB]
Get: 104 http://deb.debian.org/debian trixie/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB]
Get: 105 http://deb.debian.org/debian trixie/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB]
Get: 106 http://deb.debian.org/debian trixie/main amd64 libwww-perl all 6.77-1 [183 kB]
Get: 107 http://deb.debian.org/debian trixie/main amd64 patchutils amd64 0.4.2-1 [77.5 kB]
Get: 108 http://deb.debian.org/debian trixie/main amd64 wdiff amd64 1.2.2-6 [119 kB]
Get: 109 http://deb.debian.org/debian trixie/main amd64 devscripts all 2.24.7 [1081 kB]
Get: 110 http://deb.debian.org/debian trixie/main amd64 rubygems-integration all 1.18 [6704 B]
Get: 111 http://deb.debian.org/debian trixie/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB]
Get: 112 http://deb.debian.org/debian trixie/main amd64 ruby-webrick all 1.8.1-1 [51.4 kB]
Get: 113 http://deb.debian.org/debian trixie/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB]
Get: 114 http://deb.debian.org/debian trixie/main amd64 libruby amd64 1:3.1+nmu1 [4664 B]
Get: 115 http://deb.debian.org/debian trixie/main amd64 ruby-sdbm amd64 1.0.0-5+b5 [15.6 kB]
Get: 116 http://deb.debian.org/debian trixie/main amd64 libedit2 amd64 3.1-20240808-1 [93.9 kB]
Get: 117 http://deb.debian.org/debian trixie/main amd64 libncurses6 amd64 6.5-2+b1 [105 kB]
Get: 118 http://deb.debian.org/debian trixie/main amd64 libyaml-0-2 amd64 0.2.5-1+b2 [52.7 kB]
Get: 119 http://deb.debian.org/debian trixie/main amd64 libruby3.1t64 amd64 3.1.2-8.4 [5411 kB]
Get: 120 http://deb.debian.org/debian trixie/main amd64 ruby3.1 amd64 3.1.2-8.4 [664 kB]
Get: 121 http://deb.debian.org/debian trixie/main amd64 ruby-rubygems all 3.4.20-1 [309 kB]
Get: 122 http://deb.debian.org/debian trixie/main amd64 ruby amd64 1:3.1+nmu1 [5584 B]
Get: 123 http://deb.debian.org/debian trixie/main amd64 rake all 13.2.1-1 [65.2 kB]
Get: 124 http://deb.debian.org/debian trixie/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB]
Get: 125 http://deb.debian.org/debian trixie/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-3 [329 kB]
Get: 126 http://deb.debian.org/debian trixie/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-3 [642 kB]
Get: 127 http://deb.debian.org/debian trixie/main amd64 ruby3.1-dev amd64 3.1.2-8.4 [1002 kB]
Get: 128 http://deb.debian.org/debian trixie/main amd64 ruby-all-dev amd64 1:3.1+nmu1 [5672 B]
Get: 129 http://deb.debian.org/debian trixie/main amd64 gem2deb amd64 2.2.5 [48.0 kB]
Get: 130 http://deb.debian.org/debian trixie/main amd64 ruby-nio4r amd64 2.7.3-1 [114 kB]
Get: 131 http://deb.debian.org/debian trixie/main amd64 puma amd64 6.4.3-1 [191 kB]
Get: 132 http://deb.debian.org/debian trixie/main amd64 ruby-concurrent all 1.2.3-4 [290 kB]
Get: 133 http://deb.debian.org/debian trixie/main amd64 ruby-i18n all 1.14.5-1 [41.4 kB]
Get: 134 http://deb.debian.org/debian trixie/main amd64 ruby-tzinfo all 2.0.6-1 [66.7 kB]
Get: 135 http://deb.debian.org/debian trixie/main amd64 ruby-zeitwerk all 2.6.8-1 [43.0 kB]
Get: 136 http://deb.debian.org/debian trixie/main amd64 ruby-activesupport all 2:6.1.7.3+dfsg-4 [202 kB]
Get: 137 http://deb.debian.org/debian trixie/main amd64 ruby-numerizer all 0.2.0-2 [4552 B]
Get: 138 http://deb.debian.org/debian trixie/main amd64 ruby-chronic all 0.10.5-3 [28.8 kB]
Get: 139 http://deb.debian.org/debian trixie/main amd64 ruby-delorean all 2.1.0-2.1 [5612 B]
Get: 140 http://deb.debian.org/debian trixie/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB]
Get: 141 http://deb.debian.org/debian trixie/main amd64 ruby-eventmachine amd64 1.3~pre20220315-df4ab006-5 [154 kB]
Get: 142 http://deb.debian.org/debian trixie/main amd64 ruby-formatador all 1.1.0-1 [9304 B]
Get: 143 http://deb.debian.org/debian trixie/main amd64 ruby-kgio amd64 2.11.2-2+b6 [29.4 kB]
Get: 144 http://deb.debian.org/debian trixie/main amd64 ruby-multi-json all 1.14.1-2 [20.4 kB]
Get: 145 http://deb.debian.org/debian trixie/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B]
Get: 146 http://deb.debian.org/debian trixie/main amd64 ruby-mustermann all 3.0.0-2 [37.7 kB]
Get: 147 http://deb.debian.org/debian trixie/main amd64 ruby-open4 all 1.3.4-3 [14.5 kB]
Get: 148 http://deb.debian.org/debian trixie/main amd64 ruby-rack all 2.2.7-1.1 [132 kB]
Get: 149 http://deb.debian.org/debian trixie/main amd64 ruby-rack-protection all 3.2.0-1 [42.8 kB]
Get: 150 http://deb.debian.org/debian trixie/main amd64 ruby-raindrops amd64 0.20.0-1+b3 [29.5 kB]
Get: 151 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB]
Get: 152 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB]
Get: 153 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB]
Get: 154 http://deb.debian.org/debian trixie/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB]
Get: 155 http://deb.debian.org/debian trixie/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B]
Get: 156 http://deb.debian.org/debian trixie/main amd64 ruby-shindo all 0.3.10-2 [12.0 kB]
Get: 157 http://deb.debian.org/debian trixie/main amd64 ruby-tilt all 2.0.11-2 [28.1 kB]
Get: 158 http://deb.debian.org/debian trixie/main amd64 ruby-sinatra all 3.2.0-1 [121 kB]
Get: 159 http://deb.debian.org/debian trixie/main amd64 ruby-sinatra-contrib all 3.2.0-1 [53.8 kB]
Get: 160 http://deb.debian.org/debian trixie/main amd64 unicorn amd64 6.1.0-3 [97.4 kB]
Fetched 45.9 MB in 1s (80.7 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpython3.12-minimal:amd64.
(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 ... 19959 files and directories currently installed.)
Preparing to unpack .../libpython3.12-minimal_3.12.8-3_amd64.deb ...
Unpacking libpython3.12-minimal:amd64 (3.12.8-3) ...
Selecting previously unselected package libexpat1:amd64.
Preparing to unpack .../libexpat1_2.6.4-1_amd64.deb ...
Unpacking libexpat1:amd64 (2.6.4-1) ...
Selecting previously unselected package python3.12-minimal.
Preparing to unpack .../python3.12-minimal_3.12.8-3_amd64.deb ...
Unpacking python3.12-minimal (3.12.8-3) ...
Setting up libpython3.12-minimal:amd64 (3.12.8-3) ...
Setting up libexpat1:amd64 (2.6.4-1) ...
Setting up python3.12-minimal (3.12.8-3) ...
Selecting previously unselected package python3-minimal.
(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 ... 20279 files and directories currently installed.)
Preparing to unpack .../00-python3-minimal_3.12.6-1_amd64.deb ...
Unpacking python3-minimal (3.12.6-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../01-media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package netbase.
Preparing to unpack .../02-netbase_6.4_all.deb ...
Unpacking netbase (6.4) ...
Selecting previously unselected package tzdata.
Preparing to unpack .../03-tzdata_2024b-4_all.deb ...
Unpacking tzdata (2024b-4) ...
Selecting previously unselected package libkrb5support0:amd64.
Preparing to unpack .../04-libkrb5support0_1.21.3-3_amd64.deb ...
Unpacking libkrb5support0:amd64 (1.21.3-3) ...
Selecting previously unselected package libcom-err2:amd64.
Preparing to unpack .../05-libcom-err2_1.47.2~rc1-2_amd64.deb ...
Unpacking libcom-err2:amd64 (1.47.2~rc1-2) ...
Selecting previously unselected package libk5crypto3:amd64.
Preparing to unpack .../06-libk5crypto3_1.21.3-3_amd64.deb ...
Unpacking libk5crypto3:amd64 (1.21.3-3) ...
Selecting previously unselected package libkeyutils1:amd64.
Preparing to unpack .../07-libkeyutils1_1.6.3-4_amd64.deb ...
Unpacking libkeyutils1:amd64 (1.6.3-4) ...
Selecting previously unselected package libkrb5-3:amd64.
Preparing to unpack .../08-libkrb5-3_1.21.3-3_amd64.deb ...
Unpacking libkrb5-3:amd64 (1.21.3-3) ...
Selecting previously unselected package libgssapi-krb5-2:amd64.
Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_amd64.deb ...
Unpacking libgssapi-krb5-2:amd64 (1.21.3-3) ...
Selecting previously unselected package libtirpc-common.
Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ...
Unpacking libtirpc-common (1.3.4+ds-1.3) ...
Selecting previously unselected package libtirpc3t64:amd64.
Preparing to unpack .../11-libtirpc3t64_1.3.4+ds-1.3+b1_amd64.deb ...
Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3 to /lib/x86_64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64'
Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3.0.0 to /lib/x86_64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64'
Unpacking libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ...
Selecting previously unselected package libnsl2:amd64.
Preparing to unpack .../12-libnsl2_1.3.0-3+b3_amd64.deb ...
Unpacking libnsl2:amd64 (1.3.0-3+b3) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../13-readline-common_8.2-6_all.deb ...
Unpacking readline-common (8.2-6) ...
Selecting previously unselected package libreadline8t64:amd64.
Preparing to unpack .../14-libreadline8t64_8.2-6_amd64.deb ...
Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64'
Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64'
Unpacking libreadline8t64:amd64 (8.2-6) ...
Selecting previously unselected package libpython3.12-stdlib:amd64.
Preparing to unpack .../15-libpython3.12-stdlib_3.12.8-3_amd64.deb ...
Unpacking libpython3.12-stdlib:amd64 (3.12.8-3) ...
Selecting previously unselected package python3.12.
Preparing to unpack .../16-python3.12_3.12.8-3_amd64.deb ...
Unpacking python3.12 (3.12.8-3) ...
Selecting previously unselected package libpython3-stdlib:amd64.
Preparing to unpack .../17-libpython3-stdlib_3.12.6-1_amd64.deb ...
Unpacking libpython3-stdlib:amd64 (3.12.6-1) ...
Setting up python3-minimal (3.12.6-1) ...
Selecting previously unselected package python3.
(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 ... 21342 files and directories currently installed.)
Preparing to unpack .../000-python3_3.12.6-1_amd64.deb ...
Unpacking python3 (3.12.6-1) ...
Selecting previously unselected package sensible-utils.
Preparing to unpack .../001-sensible-utils_0.0.24_all.deb ...
Unpacking sensible-utils (0.0.24) ...
Selecting previously unselected package openssl.
Preparing to unpack .../002-openssl_3.3.2-2_amd64.deb ...
Unpacking openssl (3.3.2-2) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../003-ca-certificates_20240203_all.deb ...
Unpacking ca-certificates (20240203) ...
Selecting previously unselected package libmagic-mgc.
Preparing to unpack .../004-libmagic-mgc_1%3a5.45-3+b1_amd64.deb ...
Unpacking libmagic-mgc (1:5.45-3+b1) ...
Selecting previously unselected package libmagic1t64:amd64.
Preparing to unpack .../005-libmagic1t64_1%3a5.45-3+b1_amd64.deb ...
Unpacking libmagic1t64:amd64 (1:5.45-3+b1) ...
Selecting previously unselected package file.
Preparing to unpack .../006-file_1%3a5.45-3+b1_amd64.deb ...
Unpacking file (1:5.45-3+b1) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../007-gettext-base_0.22.5-2_amd64.deb ...
Unpacking gettext-base (0.22.5-2) ...
Selecting previously unselected package libuchardet0:amd64.
Preparing to unpack .../008-libuchardet0_0.0.8-1+b2_amd64.deb ...
Unpacking libuchardet0:amd64 (0.0.8-1+b2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../009-groff-base_1.23.0-6_amd64.deb ...
Unpacking groff-base (1.23.0-6) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../010-bsdextrautils_2.40.2-12_amd64.deb ...
Unpacking bsdextrautils (2.40.2-12) ...
Selecting previously unselected package libpipeline1:amd64.
Preparing to unpack .../011-libpipeline1_1.5.8-1_amd64.deb ...
Unpacking libpipeline1:amd64 (1.5.8-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../012-man-db_2.13.0-1_amd64.deb ...
Unpacking man-db (2.13.0-1) ...
Selecting previously unselected package m4.
Preparing to unpack .../013-m4_1.4.19-4_amd64.deb ...
Unpacking m4 (1.4.19-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../014-autoconf_2.72-3_all.deb ...
Unpacking autoconf (2.72-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../015-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../016-automake_1%3a1.16.5-1.3_all.deb ...
Unpacking automake (1:1.16.5-1.3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../017-autopoint_0.22.5-2_all.deb ...
Unpacking autopoint (0.22.5-2) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../018-libdebhelper-perl_13.20_all.deb ...
Unpacking libdebhelper-perl (13.20) ...
Selecting previously unselected package libtool.
Preparing to unpack .../019-libtool_2.4.7-8_all.deb ...
Unpacking libtool (2.4.7-8) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../020-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libarchive-zip-perl.
Preparing to unpack .../021-libarchive-zip-perl_1.68-1_all.deb ...
Unpacking libarchive-zip-perl (1.68-1) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../022-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../023-dh-strip-nondeterminism_1.14.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.0-1) ...
Selecting previously unselected package libelf1t64:amd64.
Preparing to unpack .../024-libelf1t64_0.192-4_amd64.deb ...
Unpacking libelf1t64:amd64 (0.192-4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../025-dwz_0.15-1+b1_amd64.deb ...
Unpacking dwz (0.15-1+b1) ...
Selecting previously unselected package libicu72:amd64.
Preparing to unpack .../026-libicu72_72.1-5+b1_amd64.deb ...
Unpacking libicu72:amd64 (72.1-5+b1) ...
Selecting previously unselected package libxml2:amd64.
Preparing to unpack .../027-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_amd64.deb ...
Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../028-gettext_0.22.5-2_amd64.deb ...
Unpacking gettext (0.22.5-2) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../029-intltool-debian_0.35.0+20060710.6_all.deb ...
Unpacking intltool-debian (0.35.0+20060710.6) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../030-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../031-debhelper_13.20_all.deb ...
Unpacking debhelper (13.20) ...
Selecting previously unselected package libassuan9:amd64.
Preparing to unpack .../032-libassuan9_3.0.1-2_amd64.deb ...
Unpacking libassuan9:amd64 (3.0.1-2) ...
Selecting previously unselected package gpgconf.
Preparing to unpack .../033-gpgconf_2.2.45-2_amd64.deb ...
Unpacking gpgconf (2.2.45-2) ...
Selecting previously unselected package libksba8:amd64.
Preparing to unpack .../034-libksba8_1.6.7-2+b1_amd64.deb ...
Unpacking libksba8:amd64 (1.6.7-2+b1) ...
Selecting previously unselected package libsasl2-modules-db:amd64.
Preparing to unpack .../035-libsasl2-modules-db_2.1.28+dfsg1-8_amd64.deb ...
Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-8) ...
Selecting previously unselected package libsasl2-2:amd64.
Preparing to unpack .../036-libsasl2-2_2.1.28+dfsg1-8_amd64.deb ...
Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-8) ...
Selecting previously unselected package libldap-2.5-0:amd64.
Preparing to unpack .../037-libldap-2.5-0_2.5.18+dfsg-3+b1_amd64.deb ...
Unpacking libldap-2.5-0:amd64 (2.5.18+dfsg-3+b1) ...
Selecting previously unselected package libnpth0t64:amd64.
Preparing to unpack .../038-libnpth0t64_1.6-3.1+b1_amd64.deb ...
Unpacking libnpth0t64:amd64 (1.6-3.1+b1) ...
Selecting previously unselected package dirmngr.
Preparing to unpack .../039-dirmngr_2.2.45-2_amd64.deb ...
Unpacking dirmngr (2.2.45-2) ...
Selecting previously unselected package gnupg-l10n.
Preparing to unpack .../040-gnupg-l10n_2.2.45-2_all.deb ...
Unpacking gnupg-l10n (2.2.45-2) ...
Selecting previously unselected package gpg.
Preparing to unpack .../041-gpg_2.2.45-2_amd64.deb ...
Unpacking gpg (2.2.45-2) ...
Selecting previously unselected package pinentry-curses.
Preparing to unpack .../042-pinentry-curses_1.2.1-4+b1_amd64.deb ...
Unpacking pinentry-curses (1.2.1-4+b1) ...
Selecting previously unselected package gpg-agent.
Preparing to unpack .../043-gpg-agent_2.2.45-2_amd64.deb ...
Unpacking gpg-agent (2.2.45-2) ...
Selecting previously unselected package gpgsm.
Preparing to unpack .../044-gpgsm_2.2.45-2_amd64.deb ...
Unpacking gpgsm (2.2.45-2) ...
Selecting previously unselected package gnupg.
Preparing to unpack .../045-gnupg_2.2.45-2_all.deb ...
Unpacking gnupg (2.2.45-2) ...
Selecting previously unselected package libfile-dirlist-perl.
Preparing to unpack .../046-libfile-dirlist-perl_0.05-3_all.deb ...
Unpacking libfile-dirlist-perl (0.05-3) ...
Selecting previously unselected package libfile-which-perl.
Preparing to unpack .../047-libfile-which-perl_1.27-2_all.deb ...
Unpacking libfile-which-perl (1.27-2) ...
Selecting previously unselected package libfile-homedir-perl.
Preparing to unpack .../048-libfile-homedir-perl_1.006-2_all.deb ...
Unpacking libfile-homedir-perl (1.006-2) ...
Selecting previously unselected package libfile-touch-perl.
Preparing to unpack .../049-libfile-touch-perl_0.12-2_all.deb ...
Unpacking libfile-touch-perl (0.12-2) ...
Selecting previously unselected package libio-pty-perl.
Preparing to unpack .../050-libio-pty-perl_1%3a1.20-1+b2_amd64.deb ...
Unpacking libio-pty-perl (1:1.20-1+b2) ...
Selecting previously unselected package libipc-run-perl.
Preparing to unpack .../051-libipc-run-perl_20231003.0-2_all.deb ...
Unpacking libipc-run-perl (20231003.0-2) ...
Selecting previously unselected package libclass-method-modifiers-perl.
Preparing to unpack .../052-libclass-method-modifiers-perl_2.15-1_all.deb ...
Unpacking libclass-method-modifiers-perl (2.15-1) ...
Selecting previously unselected package libclass-xsaccessor-perl.
Preparing to unpack .../053-libclass-xsaccessor-perl_1.19-4+b4_amd64.deb ...
Unpacking libclass-xsaccessor-perl (1.19-4+b4) ...
Selecting previously unselected package libb-hooks-op-check-perl:amd64.
Preparing to unpack .../054-libb-hooks-op-check-perl_0.22-3+b2_amd64.deb ...
Unpacking libb-hooks-op-check-perl:amd64 (0.22-3+b2) ...
Selecting previously unselected package libdynaloader-functions-perl.
Preparing to unpack .../055-libdynaloader-functions-perl_0.004-1_all.deb ...
Unpacking libdynaloader-functions-perl (0.004-1) ...
Selecting previously unselected package libdevel-callchecker-perl:amd64.
Preparing to unpack .../056-libdevel-callchecker-perl_0.009-1+b1_amd64.deb ...
Unpacking libdevel-callchecker-perl:amd64 (0.009-1+b1) ...
Selecting previously unselected package libparams-classify-perl:amd64.
Preparing to unpack .../057-libparams-classify-perl_0.015-2+b4_amd64.deb ...
Unpacking libparams-classify-perl:amd64 (0.015-2+b4) ...
Selecting previously unselected package libmodule-runtime-perl.
Preparing to unpack .../058-libmodule-runtime-perl_0.016-2_all.deb ...
Unpacking libmodule-runtime-perl (0.016-2) ...
Selecting previously unselected package libimport-into-perl.
Preparing to unpack .../059-libimport-into-perl_1.002005-2_all.deb ...
Unpacking libimport-into-perl (1.002005-2) ...
Selecting previously unselected package librole-tiny-perl.
Preparing to unpack .../060-librole-tiny-perl_2.002004-1_all.deb ...
Unpacking librole-tiny-perl (2.002004-1) ...
Selecting previously unselected package libsub-quote-perl.
Preparing to unpack .../061-libsub-quote-perl_2.006008-1_all.deb ...
Unpacking libsub-quote-perl (2.006008-1) ...
Selecting previously unselected package libmoo-perl.
Preparing to unpack .../062-libmoo-perl_2.005005-1_all.deb ...
Unpacking libmoo-perl (2.005005-1) ...
Selecting previously unselected package libencode-locale-perl.
Preparing to unpack .../063-libencode-locale-perl_1.05-3_all.deb ...
Unpacking libencode-locale-perl (1.05-3) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../064-libtimedate-perl_2.3300-2_all.deb ...
Unpacking libtimedate-perl (2.3300-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../065-libhttp-date-perl_6.06-1_all.deb ...
Unpacking libhttp-date-perl (6.06-1) ...
Selecting previously unselected package libfile-listing-perl.
Preparing to unpack .../066-libfile-listing-perl_6.16-1_all.deb ...
Unpacking libfile-listing-perl (6.16-1) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../067-libhtml-tagset-perl_3.24-1_all.deb ...
Unpacking libhtml-tagset-perl (3.24-1) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../068-liburi-perl_5.30-1_all.deb ...
Unpacking liburi-perl (5.30-1) ...
Selecting previously unselected package libhtml-parser-perl:amd64.
Preparing to unpack .../069-libhtml-parser-perl_3.83-1+b1_amd64.deb ...
Unpacking libhtml-parser-perl:amd64 (3.83-1+b1) ...
Selecting previously unselected package libhtml-tree-perl.
Preparing to unpack .../070-libhtml-tree-perl_5.07-3_all.deb ...
Unpacking libhtml-tree-perl (5.07-3) ...
Selecting previously unselected package libclone-perl:amd64.
Preparing to unpack .../071-libclone-perl_0.47-1+b1_amd64.deb ...
Unpacking libclone-perl:amd64 (0.47-1+b1) ...
Selecting previously unselected package libio-html-perl.
Preparing to unpack .../072-libio-html-perl_1.004-3_all.deb ...
Unpacking libio-html-perl (1.004-3) ...
Selecting previously unselected package liblwp-mediatypes-perl.
Preparing to unpack .../073-liblwp-mediatypes-perl_6.04-2_all.deb ...
Unpacking liblwp-mediatypes-perl (6.04-2) ...
Selecting previously unselected package libhttp-message-perl.
Preparing to unpack .../074-libhttp-message-perl_7.00-2_all.deb ...
Unpacking libhttp-message-perl (7.00-2) ...
Selecting previously unselected package libhttp-cookies-perl.
Preparing to unpack .../075-libhttp-cookies-perl_6.11-1_all.deb ...
Unpacking libhttp-cookies-perl (6.11-1) ...
Selecting previously unselected package libhttp-negotiate-perl.
Preparing to unpack .../076-libhttp-negotiate-perl_6.01-2_all.deb ...
Unpacking libhttp-negotiate-perl (6.01-2) ...
Selecting previously unselected package perl-openssl-defaults:amd64.
Preparing to unpack .../077-perl-openssl-defaults_7+b2_amd64.deb ...
Unpacking perl-openssl-defaults:amd64 (7+b2) ...
Selecting previously unselected package libnet-ssleay-perl:amd64.
Preparing to unpack .../078-libnet-ssleay-perl_1.94-2_amd64.deb ...
Unpacking libnet-ssleay-perl:amd64 (1.94-2) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../079-libio-socket-ssl-perl_2.089-1_all.deb ...
Unpacking libio-socket-ssl-perl (2.089-1) ...
Selecting previously unselected package libnet-http-perl.
Preparing to unpack .../080-libnet-http-perl_6.23-1_all.deb ...
Unpacking libnet-http-perl (6.23-1) ...
Selecting previously unselected package liblwp-protocol-https-perl.
Preparing to unpack .../081-liblwp-protocol-https-perl_6.14-1_all.deb ...
Unpacking liblwp-protocol-https-perl (6.14-1) ...
Selecting previously unselected package libtry-tiny-perl.
Preparing to unpack .../082-libtry-tiny-perl_0.32-1_all.deb ...
Unpacking libtry-tiny-perl (0.32-1) ...
Selecting previously unselected package libwww-robotrules-perl.
Preparing to unpack .../083-libwww-robotrules-perl_6.02-1_all.deb ...
Unpacking libwww-robotrules-perl (6.02-1) ...
Selecting previously unselected package libwww-perl.
Preparing to unpack .../084-libwww-perl_6.77-1_all.deb ...
Unpacking libwww-perl (6.77-1) ...
Selecting previously unselected package patchutils.
Preparing to unpack .../085-patchutils_0.4.2-1_amd64.deb ...
Unpacking patchutils (0.4.2-1) ...
Selecting previously unselected package wdiff.
Preparing to unpack .../086-wdiff_1.2.2-6_amd64.deb ...
Unpacking wdiff (1.2.2-6) ...
Selecting previously unselected package devscripts.
Preparing to unpack .../087-devscripts_2.24.7_all.deb ...
Unpacking devscripts (2.24.7) ...
Selecting previously unselected package rubygems-integration.
Preparing to unpack .../088-rubygems-integration_1.18_all.deb ...
Unpacking rubygems-integration (1.18) ...
Selecting previously unselected package ruby-net-telnet.
Preparing to unpack .../089-ruby-net-telnet_0.2.0-1_all.deb ...
Unpacking ruby-net-telnet (0.2.0-1) ...
Selecting previously unselected package ruby-webrick.
Preparing to unpack .../090-ruby-webrick_1.8.1-1_all.deb ...
Unpacking ruby-webrick (1.8.1-1) ...
Selecting previously unselected package ruby-xmlrpc.
Preparing to unpack .../091-ruby-xmlrpc_0.3.3-2_all.deb ...
Unpacking ruby-xmlrpc (0.3.3-2) ...
Selecting previously unselected package libruby:amd64.
Preparing to unpack .../092-libruby_1%3a3.1+nmu1_amd64.deb ...
Unpacking libruby:amd64 (1:3.1+nmu1) ...
Selecting previously unselected package ruby-sdbm:amd64.
Preparing to unpack .../093-ruby-sdbm_1.0.0-5+b5_amd64.deb ...
Unpacking ruby-sdbm:amd64 (1.0.0-5+b5) ...
Selecting previously unselected package libedit2:amd64.
Preparing to unpack .../094-libedit2_3.1-20240808-1_amd64.deb ...
Unpacking libedit2:amd64 (3.1-20240808-1) ...
Selecting previously unselected package libncurses6:amd64.
Preparing to unpack .../095-libncurses6_6.5-2+b1_amd64.deb ...
Unpacking libncurses6:amd64 (6.5-2+b1) ...
Selecting previously unselected package libyaml-0-2:amd64.
Preparing to unpack .../096-libyaml-0-2_0.2.5-1+b2_amd64.deb ...
Unpacking libyaml-0-2:amd64 (0.2.5-1+b2) ...
Selecting previously unselected package libruby3.1t64:amd64.
Preparing to unpack .../097-libruby3.1t64_3.1.2-8.4_amd64.deb ...
Unpacking libruby3.1t64:amd64 (3.1.2-8.4) ...
Selecting previously unselected package ruby3.1.
Preparing to unpack .../098-ruby3.1_3.1.2-8.4_amd64.deb ...
Unpacking ruby3.1 (3.1.2-8.4) ...
Selecting previously unselected package ruby-rubygems.
Preparing to unpack .../099-ruby-rubygems_3.4.20-1_all.deb ...
Unpacking ruby-rubygems (3.4.20-1) ...
Selecting previously unselected package ruby.
Preparing to unpack .../100-ruby_1%3a3.1+nmu1_amd64.deb ...
Unpacking ruby (1:3.1+nmu1) ...
Selecting previously unselected package rake.
Preparing to unpack .../101-rake_13.2.1-1_all.deb ...
Unpacking rake (13.2.1-1) ...
Selecting previously unselected package gem2deb-test-runner.
Preparing to unpack .../102-gem2deb-test-runner_2.2.5_amd64.deb ...
Unpacking gem2deb-test-runner (2.2.5) ...
Selecting previously unselected package libgmpxx4ldbl:amd64.
Preparing to unpack .../103-libgmpxx4ldbl_2%3a6.3.0+dfsg-3_amd64.deb ...
Unpacking libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ...
Selecting previously unselected package libgmp-dev:amd64.
Preparing to unpack .../104-libgmp-dev_2%3a6.3.0+dfsg-3_amd64.deb ...
Unpacking libgmp-dev:amd64 (2:6.3.0+dfsg-3) ...
Selecting previously unselected package ruby3.1-dev:amd64.
Preparing to unpack .../105-ruby3.1-dev_3.1.2-8.4_amd64.deb ...
Unpacking ruby3.1-dev:amd64 (3.1.2-8.4) ...
Selecting previously unselected package ruby-all-dev:amd64.
Preparing to unpack .../106-ruby-all-dev_1%3a3.1+nmu1_amd64.deb ...
Unpacking ruby-all-dev:amd64 (1:3.1+nmu1) ...
Selecting previously unselected package gem2deb.
Preparing to unpack .../107-gem2deb_2.2.5_amd64.deb ...
Unpacking gem2deb (2.2.5) ...
Selecting previously unselected package ruby-nio4r.
Preparing to unpack .../108-ruby-nio4r_2.7.3-1_amd64.deb ...
Unpacking ruby-nio4r (2.7.3-1) ...
Selecting previously unselected package puma.
Preparing to unpack .../109-puma_6.4.3-1_amd64.deb ...
Unpacking puma (6.4.3-1) ...
Selecting previously unselected package ruby-concurrent.
Preparing to unpack .../110-ruby-concurrent_1.2.3-4_all.deb ...
Unpacking ruby-concurrent (1.2.3-4) ...
Selecting previously unselected package ruby-i18n.
Preparing to unpack .../111-ruby-i18n_1.14.5-1_all.deb ...
Unpacking ruby-i18n (1.14.5-1) ...
Selecting previously unselected package ruby-tzinfo.
Preparing to unpack .../112-ruby-tzinfo_2.0.6-1_all.deb ...
Unpacking ruby-tzinfo (2.0.6-1) ...
Selecting previously unselected package ruby-zeitwerk.
Preparing to unpack .../113-ruby-zeitwerk_2.6.8-1_all.deb ...
Unpacking ruby-zeitwerk (2.6.8-1) ...
Selecting previously unselected package ruby-activesupport.
Preparing to unpack .../114-ruby-activesupport_2%3a6.1.7.3+dfsg-4_all.deb ...
Unpacking ruby-activesupport (2:6.1.7.3+dfsg-4) ...
Selecting previously unselected package ruby-numerizer.
Preparing to unpack .../115-ruby-numerizer_0.2.0-2_all.deb ...
Unpacking ruby-numerizer (0.2.0-2) ...
Selecting previously unselected package ruby-chronic.
Preparing to unpack .../116-ruby-chronic_0.10.5-3_all.deb ...
Unpacking ruby-chronic (0.10.5-3) ...
Selecting previously unselected package ruby-delorean.
Preparing to unpack .../117-ruby-delorean_2.1.0-2.1_all.deb ...
Unpacking ruby-delorean (2.1.0-2.1) ...
Selecting previously unselected package ruby-diff-lcs.
Preparing to unpack .../118-ruby-diff-lcs_1.5.1-1_all.deb ...
Unpacking ruby-diff-lcs (1.5.1-1) ...
Selecting previously unselected package ruby-eventmachine:amd64.
Preparing to unpack .../119-ruby-eventmachine_1.3~pre20220315-df4ab006-5_amd64.deb ...
Unpacking ruby-eventmachine:amd64 (1.3~pre20220315-df4ab006-5) ...
Selecting previously unselected package ruby-formatador.
Preparing to unpack .../120-ruby-formatador_1.1.0-1_all.deb ...
Unpacking ruby-formatador (1.1.0-1) ...
Selecting previously unselected package ruby-kgio.
Preparing to unpack .../121-ruby-kgio_2.11.2-2+b6_amd64.deb ...
Unpacking ruby-kgio (2.11.2-2+b6) ...
Selecting previously unselected package ruby-multi-json.
Preparing to unpack .../122-ruby-multi-json_1.14.1-2_all.deb ...
Unpacking ruby-multi-json (1.14.1-2) ...
Selecting previously unselected package ruby-ruby2-keywords.
Preparing to unpack .../123-ruby-ruby2-keywords_0.0.5-1_all.deb ...
Unpacking ruby-ruby2-keywords (0.0.5-1) ...
Selecting previously unselected package ruby-mustermann.
Preparing to unpack .../124-ruby-mustermann_3.0.0-2_all.deb ...
Unpacking ruby-mustermann (3.0.0-2) ...
Selecting previously unselected package ruby-open4.
Preparing to unpack .../125-ruby-open4_1.3.4-3_all.deb ...
Unpacking ruby-open4 (1.3.4-3) ...
Selecting previously unselected package ruby-rack.
Preparing to unpack .../126-ruby-rack_2.2.7-1.1_all.deb ...
Unpacking ruby-rack (2.2.7-1.1) ...
Selecting previously unselected package ruby-rack-protection.
Preparing to unpack .../127-ruby-rack-protection_3.2.0-1_all.deb ...
Unpacking ruby-rack-protection (3.2.0-1) ...
Selecting previously unselected package ruby-raindrops.
Preparing to unpack .../128-ruby-raindrops_0.20.0-1+b3_amd64.deb ...
Unpacking ruby-raindrops (0.20.0-1+b3) ...
Selecting previously unselected package ruby-rspec-support.
Preparing to unpack .../129-ruby-rspec-support_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec-support (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-rspec-core.
Preparing to unpack .../130-ruby-rspec-core_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec-core (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-rspec-expectations.
Preparing to unpack .../131-ruby-rspec-expectations_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec-expectations (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-rspec-mocks.
Preparing to unpack .../132-ruby-rspec-mocks_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec-mocks (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-rspec.
Preparing to unpack .../133-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-shindo.
Preparing to unpack .../134-ruby-shindo_0.3.10-2_all.deb ...
Unpacking ruby-shindo (0.3.10-2) ...
Selecting previously unselected package ruby-tilt.
Preparing to unpack .../135-ruby-tilt_2.0.11-2_all.deb ...
Unpacking ruby-tilt (2.0.11-2) ...
Selecting previously unselected package ruby-sinatra.
Preparing to unpack .../136-ruby-sinatra_3.2.0-1_all.deb ...
Unpacking ruby-sinatra (3.2.0-1) ...
Selecting previously unselected package ruby-sinatra-contrib.
Preparing to unpack .../137-ruby-sinatra-contrib_3.2.0-1_all.deb ...
Unpacking ruby-sinatra-contrib (3.2.0-1) ...
Selecting previously unselected package unicorn.
Preparing to unpack .../138-unicorn_6.1.0-3_amd64.deb ...
Unpacking unicorn (6.1.0-3) ...
Setting up libksba8:amd64 (1.6.7-2+b1) ...
Setting up media-types (10.1.0) ...
Setting up libpipeline1:amd64 (1.5.8-1) ...
Setting up wdiff (1.2.2-6) ...
Setting up libfile-which-perl (1.27-2) ...
Setting up libnpth0t64:amd64 (1.6-3.1+b1) ...
Setting up libkeyutils1:amd64 (1.6.3-4) ...
Setting up ruby-ruby2-keywords (0.0.5-1) ...
Setting up libicu72:amd64 (72.1-5+b1) ...
Setting up ruby-mustermann (3.0.0-2) ...
Setting up bsdextrautils (2.40.2-12) ...
Setting up ruby-open4 (1.3.4-3) ...
Setting up libdynaloader-functions-perl (0.004-1) ...
Setting up libclass-method-modifiers-perl (2.15-1) ...
Setting up libio-pty-perl (1:1.20-1+b2) ...
Setting up libmagic-mgc (1:5.45-3+b1) ...
Setting up libclone-perl:amd64 (0.47-1+b1) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libyaml-0-2:amd64 (0.2.5-1+b2) ...
Setting up libtirpc-common (1.3.4+ds-1.3) ...
Setting up libhtml-tagset-perl (3.24-1) ...
Setting up libdebhelper-perl (13.20) ...
Setting up libedit2:amd64 (3.1-20240808-1) ...
Setting up liblwp-mediatypes-perl (6.04-2) ...
Setting up libmagic1t64:amd64 (1:5.45-3+b1) ...
Setting up libtry-tiny-perl (0.32-1) ...
Setting up perl-openssl-defaults:amd64 (7+b2) ...
Setting up gettext-base (0.22.5-2) ...
Setting up m4 (1.4.19-4) ...
Setting up libencode-locale-perl (1.05-3) ...
Setting up libcom-err2:amd64 (1.47.2~rc1-2) ...
Setting up file (1:5.45-3+b1) ...
Setting up ruby-concurrent (1.2.3-4) ...
Setting up libelf1t64:amd64 (0.192-4) ...
Setting up libkrb5support0:amd64 (1.21.3-3) ...
Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-8) ...
Setting up tzdata (2024b-4) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Jan 21 02:34:03 UTC 2026.
Universal Time is now:  Wed Jan 21 02:34:03 UTC 2026.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up autotools-dev (20220109.1) ...
Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ...
Setting up gnupg-l10n (2.2.45-2) ...
Setting up libncurses6:amd64 (6.5-2+b1) ...
Setting up ruby-net-telnet (0.2.0-1) ...
Setting up libio-html-perl (1.004-3) ...
Setting up autopoint (0.22.5-2) ...
Setting up libb-hooks-op-check-perl:amd64 (0.22-3+b2) ...
Setting up ruby-i18n (1.14.5-1) ...
Setting up libipc-run-perl (20231003.0-2) ...
Setting up libk5crypto3:amd64 (1.21.3-3) ...
Setting up libsasl2-2:amd64 (2.1.28+dfsg1-8) ...
Setting up autoconf (2.72-3) ...
Setting up ruby-rspec-support (3.13.0c0e0m0s1-2) ...
Setting up libtimedate-perl (2.3300-2) ...
Setting up ruby-webrick (1.8.1-1) ...
Setting up dwz (0.15-1+b1) ...
Setting up sensible-utils (0.0.24) ...
Setting up libuchardet0:amd64 (0.0.8-1+b2) ...
Setting up libassuan9:amd64 (3.0.1-2) ...
Setting up librole-tiny-perl (2.002004-1) ...
Setting up netbase (6.4) ...
Setting up libsub-quote-perl (2.006008-1) ...
Setting up libclass-xsaccessor-perl (1.19-4+b4) ...
Setting up libkrb5-3:amd64 (1.21.3-3) ...
Setting up libfile-dirlist-perl (0.05-3) ...
Setting up libfile-homedir-perl (1.006-2) ...
Setting up openssl (3.3.2-2) ...
Setting up readline-common (8.2-6) ...
Setting up ruby-xmlrpc (0.3.3-2) ...
Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Setting up ruby-zeitwerk (2.6.8-1) ...
Setting up liburi-perl (5.30-1) ...
Setting up libfile-touch-perl (0.12-2) ...
Setting up libnet-ssleay-perl:amd64 (1.94-2) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up pinentry-curses (1.2.1-4+b1) ...
Setting up libfile-stripnondeterminism-perl (1.14.0-1) ...
Setting up libhttp-date-perl (6.06-1) ...
Setting up gettext (0.22.5-2) ...
Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ...
Setting up libfile-listing-perl (6.16-1) ...
Setting up libtool (2.4.7-8) ...
Setting up ruby-tzinfo (2.0.6-1) ...
Setting up libnet-http-perl (6.23-1) ...
Setting up libdevel-callchecker-perl:amd64 (0.009-1+b1) ...
Setting up libldap-2.5-0:amd64 (2.5.18+dfsg-3+b1) ...
Setting up intltool-debian (0.35.0+20060710.6) ...
Setting up dh-autoreconf (20) ...
Setting up patchutils (0.4.2-1) ...
Setting up ca-certificates (20240203) ...
Updating certificates in /etc/ssl/certs...
146 added, 0 removed; done.
Setting up libgssapi-krb5-2:amd64 (1.21.3-3) ...
Setting up libreadline8t64:amd64 (8.2-6) ...
Setting up dh-strip-nondeterminism (1.14.0-1) ...
Setting up libwww-robotrules-perl (6.02-1) ...
Setting up groff-base (1.23.0-6) ...
Setting up libhtml-parser-perl:amd64 (3.83-1+b1) ...
Setting up gpgconf (2.2.45-2) ...
Setting up libio-socket-ssl-perl (2.089-1) ...
Setting up gpg (2.2.45-2) ...
Setting up libhttp-message-perl (7.00-2) ...
Setting up libhttp-negotiate-perl (6.01-2) ...
Setting up gpg-agent (2.2.45-2) ...
Setting up libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ...
Setting up libhttp-cookies-perl (6.11-1) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up libhtml-tree-perl (5.07-3) ...
Setting up libparams-classify-perl:amd64 (0.015-2+b4) ...
Setting up gpgsm (2.2.45-2) ...
Setting up rubygems-integration (1.18) ...
Setting up man-db (2.13.0-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up dirmngr (2.2.45-2) ...
Setting up libmodule-runtime-perl (0.016-2) ...
Setting up libnsl2:amd64 (1.3.0-3+b3) ...
Setting up gnupg (2.2.45-2) ...
Setting up libpython3.12-stdlib:amd64 (3.12.8-3) ...
Setting up libimport-into-perl (1.002005-2) ...
Setting up libmoo-perl (2.005005-1) ...
Setting up python3.12 (3.12.8-3) ...
Setting up debhelper (13.20) ...
Setting up libpython3-stdlib:amd64 (3.12.6-1) ...
Setting up python3 (3.12.6-1) ...
Setting up rake (13.2.1-1) ...
Setting up liblwp-protocol-https-perl (6.14-1) ...
Setting up libruby:amd64 (1:3.1+nmu1) ...
Setting up libwww-perl (6.77-1) ...
Setting up ruby-rubygems (3.4.20-1) ...
Setting up devscripts (2.24.7) ...
Setting up ruby-sdbm:amd64 (1.0.0-5+b5) ...
Setting up libruby3.1t64:amd64 (3.1.2-8.4) ...
Setting up ruby3.1 (3.1.2-8.4) ...
Setting up ruby3.1-dev:amd64 (3.1.2-8.4) ...
Setting up ruby-eventmachine:amd64 (1.3~pre20220315-df4ab006-5) ...
Setting up ruby-raindrops (0.20.0-1+b3) ...
Setting up ruby-all-dev:amd64 (1:3.1+nmu1) ...
Setting up ruby (1:3.1+nmu1) ...
Setting up ruby-nio4r (2.7.3-1) ...
Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ...
Setting up ruby-tilt (2.0.11-2) ...
Setting up ruby-numerizer (0.2.0-2) ...
Setting up ruby-kgio (2.11.2-2+b6) ...
Setting up ruby-diff-lcs (1.5.1-1) ...
Setting up puma (6.4.3-1) ...
Setting up ruby-multi-json (1.14.1-2) ...
Setting up ruby-rack (2.2.7-1.1) ...
Setting up ruby-chronic (0.10.5-3) ...
Setting up ruby-activesupport (2:6.1.7.3+dfsg-4) ...
Setting up gem2deb-test-runner (2.2.5) ...
Setting up ruby-formatador (1.1.0-1) ...
Setting up unicorn (6.1.0-3) ...
Setting up ruby-rspec-expectations (3.13.0c0e0m0s1-2) ...
Setting up ruby-rspec-mocks (3.13.0c0e0m0s1-2) ...
Setting up ruby-shindo (0.3.10-2) ...
Setting up gem2deb (2.2.5) ...
Setting up ruby-rack-protection (3.2.0-1) ...
Setting up ruby-delorean (2.1.0-2.1) ...
Setting up ruby-rspec (3.13.0c0e0m0s1-2) ...
Setting up ruby-sinatra (3.2.0-1) ...
Setting up ruby-sinatra-contrib (3.2.0-1) ...
Processing triggers for libc-bin (2.40-4) ...
Processing triggers for ca-certificates (20240203) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Writing extended state information...
Building tag database...
 -> Finished parsing the build-deps
I: Building the package
I: Running cd /build/reproducible-path/ruby-excon-0.112.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S  > ../ruby-excon_0.112.0-3_source.changes
dpkg-buildpackage: info: source package ruby-excon
dpkg-buildpackage: info: source version 0.112.0-3
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Cédric Boutillier <boutil@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
 debian/rules clean
dh clean --buildsystem=ruby --with ruby
   dh_auto_clean -O--buildsystem=ruby
	dh_ruby --clean
   dh_autoreconf_clean -O--buildsystem=ruby
   dh_clean -O--buildsystem=ruby
 debian/rules binary
dh binary --buildsystem=ruby --with ruby
   dh_update_autotools_config -O--buildsystem=ruby
   dh_autoreconf -O--buildsystem=ruby
   dh_auto_configure -O--buildsystem=ruby
	dh_ruby --configure
   dh_auto_build -O--buildsystem=ruby
	dh_ruby --build
   dh_auto_test -O--buildsystem=ruby
	dh_ruby --test
   create-stamp debian/debhelper-build-stamp
   dh_testroot -O--buildsystem=ruby
   dh_prep -O--buildsystem=ruby
   dh_auto_install --destdir=debian/ruby-excon/ -O--buildsystem=ruby
	dh_ruby --install /build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon

┌──────────────────────────────────────────────────────────────────────────────┐
│ ruby-excon: Installing files and building extensions for ruby3.1             │
└──────────────────────────────────────────────────────────────────────────────┘

/usr/bin/ruby3.1 -S gem build --config-file /dev/null --verbose /tmp/d20260120-1314807-q9rchc/gemspec
Failed to load /dev/null because it doesn't contain valid YAML hash
WARNING:  open-ended dependency on rspec (>= 3.5.0, development) is not recommended
  if rspec is semantically versioned, use:
    add_development_dependency 'rspec', '~> 3.5', '>= 3.5.0'
WARNING:  open-ended dependency on activesupport (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on delorean (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on eventmachine (>= 1.0.4, development) is not recommended
  if eventmachine is semantically versioned, use:
    add_development_dependency 'eventmachine', '~> 1.0', '>= 1.0.4'
WARNING:  open-ended dependency on open4 (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on rake (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on shindo (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on sinatra (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on sinatra-contrib (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on json (>= 1.8.5, development) is not recommended
  if json is semantically versioned, use:
    add_development_dependency 'json', '~> 1.8', '>= 1.8.5'
WARNING:  open-ended dependency on puma (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  open-ended dependency on webrick (>= 0, development) is not recommended
  use a bounded requirement, such as '~> x.y'
WARNING:  See https://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: excon
  Version: 0.112.0
  File: excon-0.112.0.gem
/usr/bin/ruby3.1 -S gem install --config-file /dev/null --verbose --local --verbose --no-document --ignore-dependencies --install-dir debian/ruby-excon/usr/share/rubygems-integration/all /tmp/d20260120-1314807-q9rchc/excon-0.112.0.gem
Failed to load /dev/null because it doesn't contain valid YAML hash
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/data/cacert.pem
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/connection.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/constants.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/error.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/extensions/uri.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/headers.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/instrumentors/logging_instrumentor.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/instrumentors/standard_instrumentor.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/base.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/capture_cookies.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/decompress.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/escape_path.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/expects.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/idempotent.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/instrumentor.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/mock.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/redirect_follower.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/middlewares/response_parser.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/pretty_printer.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/response.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/socket.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/ssl_socket.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/test/plugin/server/exec.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/test/plugin/server/puma.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/test/plugin/server/unicorn.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/test/plugin/server/webrick.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/test/server.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/unix_socket.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/utils.rb
/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all/gems/excon-0.112.0/lib/excon/version.rb
Successfully installed excon-0.112.0
1 gem installed
cd debian/ruby-excon/usr/share/rubygems-integration/all
rm -rf bin
rm -rf build_info
rm -rf cache
rm -rf doc
rm -rf extensions
rmdir plugins
cd gems/excon-0.112.0
rm -f 
chmod 644 lib/excon/connection.rb lib/excon/constants.rb lib/excon/error.rb lib/excon/extensions/uri.rb lib/excon/headers.rb lib/excon/instrumentors/logging_instrumentor.rb lib/excon/instrumentors/standard_instrumentor.rb lib/excon/middlewares/base.rb lib/excon/middlewares/capture_cookies.rb lib/excon/middlewares/decompress.rb lib/excon/middlewares/escape_path.rb lib/excon/middlewares/expects.rb lib/excon/middlewares/idempotent.rb lib/excon/middlewares/instrumentor.rb lib/excon/middlewares/mock.rb lib/excon/middlewares/redirect_follower.rb lib/excon/middlewares/response_parser.rb lib/excon/pretty_printer.rb lib/excon/response.rb lib/excon/socket.rb lib/excon/ssl_socket.rb lib/excon/test/plugin/server/exec.rb lib/excon/test/plugin/server/puma.rb lib/excon/test/plugin/server/unicorn.rb lib/excon/test/plugin/server/webrick.rb lib/excon/test/server.rb lib/excon/unix_socket.rb lib/excon/utils.rb lib/excon/version.rb lib/excon.rb
find lib/ -type d -empty -delete
cd -
cd -
/usr/bin/ruby3.1 /usr/bin/gem2deb-test-runner

┌──────────────────────────────────────────────────────────────────────────────┐
│ Checking Rubygems dependency resolution on ruby3.1                           │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-excon-0.112.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -e gem\ \"excon\"

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby3.1 from debian/ruby-tests.rake                            │
└──────────────────────────────────────────────────────────────────────────────┘

RUBYLIB=. GEM_PATH=/build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon/usr/share/rubygems-integration/all:/build/reproducible-path/ruby-excon-0.112.0/debian/.debhelper/generated/_source/home/.local/share/gem/ruby/3.1.0:/var/lib/gems/3.1.0:/usr/local/lib/ruby/gems/3.1.0:/usr/lib/ruby/gems/3.1.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.1.0:/usr/share/rubygems-integration/3.1.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.1.0 ruby3.1 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake
sh: 1: git: not found
/usr/bin/ruby3.1 -S shindo
  
  Excon bad server interaction
    header splitting
      prevents key splitting + raises Excon::Error::InvalidHeaderKey
      prevents value splitting + raises Excon::Error::InvalidHeaderValue
    bad server: causes EOFError
      with no content length and no chunking
        without a block
          response.body + returns "hello"
        with a block
          body from chunks + returns "hello"
    eof server: causes EOFError
      request + raises Excon::Error::Socket
  
  Excon basics
    + returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
    explicit uri passed to connection
      GET /content-length/100 + returns 200
  
  Excon streaming basics
    http
      + returns true
      simple blocking request on streaming endpoint + returns ["Hellostreamyworld", "response time ok"]
      simple blocking request on streaming endpoint with fixed length + returns ["Hellostreamyworld", "response time ok"]
      simple request with response_block on streaming endpoint + returns [["Hello", "streamy", "world"], "response times ok"]
      simple request with response_block on streaming endpoint with fixed length + returns [["Hello", "streamy", "world"], "response times ok"]
    https
      Address already in use - bind(2) for nil port 9292 (Errno::EADDRINUSE)
        /build/reproducible-path/ruby-excon-0.112.0/tests/test_helper.rb:420:in `initialize'
        /build/reproducible-path/ruby-excon-0.112.0/tests/test_helper.rb:420:in `new'
        /build/reproducible-path/ruby-excon-0.112.0/tests/test_helper.rb:420:in `with_ssl_streaming'
        /build/reproducible-path/ruby-excon-0.112.0/tests/basic_tests.rb:34:in `block (2 levels) in <top (required)>'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:79:in `instance_eval'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:79:in `tests'
        /build/reproducible-path/ruby-excon-0.112.0/tests/basic_tests.rb:33:in `block in <top (required)>'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:79:in `instance_eval'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:79:in `tests'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:38:in `initialize'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:13:in `new'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo.rb:13:in `tests'
        /build/reproducible-path/ruby-excon-0.112.0/tests/basic_tests.rb:26:in `<top (required)>'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo/bin.rb:61:in `load'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo/bin.rb:61:in `block (2 levels) in run_in_thread'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo/bin.rb:58:in `each'
        /usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo/bin.rb:58:in `block in run_in_thread'
  
  Excon basics (Basic Auth Pass)
    + returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
    with frozen args + returns 200
    with user/pass on request + returns 200
    with user/pass on connection and request + returns 200
  
  Excon basics (Basic Auth Fail)
    response.status for correct user, no password + returns 401
    response.status for correct user, wrong password + returns 401
    response.status for wrong user, correct password + returns 401
  
  Excon basics (ssl)
    + returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200

[2026-01-20 14:34:44] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:44] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:45] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:45] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'
  
  Excon basics verify_hostname (ssl)
    + returns true
    response.status + returns 200
  
  Excon ssl verify peer (ssl)
    + returns true
    response.status + returns 200
+ returns true
    response.status + returns 200
+ returns true
    response.status + returns 200
  
  Excon ssl verify peer (ssl cert store)
    + returns true
    response.status + returns 200
  
  Excon basics (ssl file) (focus)
    GET /content-length/100 + raises Excon::Error::Socket
+ returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200

[2026-01-20 14:34:51] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:51] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:55] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:55] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:55] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:55] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'
  
  Excon basics (ssl chain) (focus)
    GET /content-length/100 + raises Excon::Error::Socket
+ returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200

[2026-01-20 14:34:59] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:34:59] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:35:03] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:35:03] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'
  
  Excon basics (ssl file paths) (focus)
    GET /content-length/100 + raises Excon::Error::Socket
+ returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200

[2026-01-20 14:35:07] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:35:07] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'
  
  Excon basics (ssl string) (focus)
    + returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
+ Time.parse(response.headers['Date']).is_a?(Time)
+ !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip + returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200

[2026-01-20 14:35:12] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'

[2026-01-20 14:35:12] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.1.0/openssl/buffering.rb:332:in `eof?'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/httpserver.rb:82:in `run'
	/usr/share/rubygems-integration/all/gems/webrick-1.8.1/lib/webrick/server.rb:310:in `block in start_thread'
  
  Excon basics (Unix socket)
    + returns true
    nonblock => true, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
# Time.parse(response.headers['Date']).is_a?(Time)
# !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip # returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => true, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
# Time.parse(response.headers['Date']).is_a?(Time)
# !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip # returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => true
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
# Time.parse(response.headers['Date']).is_a?(Time)
# !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip # returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
+ returns true
    nonblock => false, persistent => false
      method and path defaults
        request().body + returns "GET /"
        request(:headers => {'host' => '127.0.0.1'}) + returns "GET /"
        request(:method => :get).body + returns "GET /"
        request(:path => '/').body + returns "GET /"
        request(:method => :get, :path => '/').body + returns "GET /"
      GET /content-length/100
        response.status + returns 200
        response[:status] + returns 200
        response.headers['Content-Length'] + returns "100"
        response.headers['Content-Type'] + returns "text/html;charset=utf-8"
# Time.parse(response.headers['Date']).is_a?(Time)
# !!(response.headers['Server'] =~ /^WEBrick/)
        response.headers['Custom'] + returns "Foo: bar"
        response.remote_ip # returns "127.0.0.1"
        response.body + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        deprecated block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
        response_block usage + returns ["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 0, 100]
      POST /body-sink
        response.body + returns "5000000"
        empty body + returns "0"
      POST /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      PUT /echo
        with file + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n"
        without request_block + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        request_block usage + returns "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        with multi-byte strings
          + properly concatenates request+headers and body
      should succeed with tcp_nodelay + returns 200
    explicit uri passed to connection
      GET /content-length/100 + returns 200
    http Host header is empty
      GET /headers + returns ""
  
  Excon basics (reusable local port) (localportreuse)
    has a local port + returns true
    local port can be re-bound # returns "xxxxxxxxxx"
  
  Excon Connection
    #socket connects, sets data[:remote_ip] + returns "127.0.0.1"
    persistent connections
      + successful uninterrupted request
      + resets connection after interrupt
      + fork safety
    inspect redaction
      + authorization/proxy-authorization headers concealed for user & pass
      + password param concealed for user & pass
      + password param not mutated for user & pass
      + proxy password param concealed for proxy: user & pass
      + proxy password param not mutated for proxy: user & pass
      + authorization/proxy-authorization headers concealed for email & pass
      + password param concealed for email & pass
      + password param not mutated for email & pass
      + proxy password param concealed for proxy: email & pass
      + proxy password param not mutated for proxy: email & pass
      + authorization/proxy-authorization headers concealed for user no pass
      + authorization/proxy-authorization headers concealed for pass no user
      + password param concealed for pass no user
      + password param not mutated for pass no user
      + proxy password param concealed for proxy: pass no user
      + proxy password param not mutated for proxy: pass no user
  
  HTTPStatusError request/response debugging
    Excon::Error knows about pertinent errors
    new returns an Error + returns true
    new raises errors for bad URIs + returns true
    new raises errors for bad paths + returns true
    can raise standard error and catch standard error + returns true
    can raise legacy errors and catch legacy errors + returns true
    can raise standard error and catch legacy errors + returns true
    can raise with status_error() and catch with standard error + returns true
    can raise with  status_error() and catch with legacy error + returns true
    can raise with legacy status_error() and catch with legacy + returns true
    can raise with legacy status_error() and catch with standard + returns true
    message does not include response or response info + returns true
    message includes only request info + returns true
    message includes only response info + returns true
    message include request and response info + returns true
  
  Excon response header support
    Excon::Headers storage
      stores and retrieves as received + returns "expected"
      enumerates keys as received
        contains Exact-Case + returns true
        contains Another-Fixture + returns true
      supports case-insensitive access + returns "expected"
      but still returns nil for missing keys + returns nil
      Hash methods that should support case-insensitive access
        #assoc + returns ["exact-case", "expected"]
        #delete
          with just a key + returns "yes"
          with a proc + returns "called with notpresent"
        #fetch
          when present + returns "expected"
          with a default value + returns "default"
          with a default proc + returns "got missing"
        #has_key?
          when present + returns true
          when absent + returns false
        #values_at
          all present + returns ["expected", "another"]
          some missing + returns ["expected", nil]
    Response#get_header
      with variable header capitalization
        response.get_header("mixedcase-header") + returns "MixedCase"
        response.get_header("uppercase-header") + returns "UPPERCASE"
        response.get_header("lowercase-header") + returns "lowercase"
      when provided key capitalization varies
        response.get_header("MIXEDCASE-HEADER") + returns "MixedCase"
        response.get_header("MiXeDcAsE-hEaDeR") + returns "MixedCase"
      when header is unavailable
        response.get_header("missing") + returns nil
  
  logging instrumentor
    connection logger + returns true
    connection logger with query as hash + returns true
  
  Excon middleware
    succeeds without defining valid_parameter_keys
  
  Excon support for middlewares that return canned responses
    does not mutate the canned response body + returns "canned"
    yields non-mutated body to response_block + returns "canned"
  
  Excon redirecting with cookie preserved
    second request will send cookies set by the first + returns "ok"
    second request will send multiple cookies set by the first + returns "ok"
    runs normally when there are no cookies set + returns "ok"
  
  Excon Decompress Middleware
    gzip
      response body decompressed + returns "hello world"
      server sent content-encoding + returns "gzip"
      removes processed encoding from header + returns ""
      empty response body + returns ""
    deflate
      response body decompressed + returns "hello world"
      server sent content-encoding + returns "deflate"
      removes processed encoding from header + returns ""
    deflate-raw
      response body decompressed + returns "hello world"
      server sent content-encoding + returns "deflate"
      removes processed encoding from header + returns ""
    with pre-encoding
      server sent content-encoding + returns "other, gzip"
      processed encoding removed from header + returns "other"
      response body decompressed + returns "hello world"
    with post-encoding
      server sent content-encoding + returns "gzip, other"
      unprocessed since last applied is unknown + returns "gzip, other"
      response body still compressed + returns "hello world"
    with a :response_block
      server sent content-encoding + returns "gzip"
      unprocessed since :response_block was used + returns "gzip"
      :response_block passed unprocessed data + returns "hello world"
    adds Accept-Encoding if needed
      without a :response_block + returns "deflate, gzip"
      with a :response_block + returns nil
  
  Excon Decompress Middleware
    encoded uri passed to connection
      GET /echo%20dirty + returns 200
    unencoded uri passed to connection
      GET /echo dirty + returns 200
  
  Excon request idempotencey
    Non-idempotent call with an erroring socket + raises Excon::Error::Socket
    Idempotent request with socket erroring first 3 times + returns 200
    Idempotent request with socket erroring first 5 times + raises Excon::Error::Socket
    Lowered retry limit with socket erroring first time + returns 200
    Lowered retry limit with socket erroring first 3 times + raises Excon::Error::Socket
    Raised retry limit with socket erroring first 5 times + returns 200
    Raised retry limit with socket erroring first 9 times + raises Excon::Error::Socket
    Retry limit in constructor with socket erroring first 5 times + returns 200
    Retry limit and sleep in constructor with socket erroring first 2 times + returns 200
    Retry limit and sleep in constructor with socket erroring first 2 times + raises Excon::Error::Socket
    Idempotent request with custom error first 3 times + returns 200
    Idempotent request with custom error first 5 times + raises RuntimeError
    Overriding default retry_errors + raises Excon::Error::Socket
    request_block rewound + returns true
    response_block rewound + returns true
  
  Excon instrumentation
    basic notification + returns ["excon.request", "excon.response"]
    captures scheme, host, port, and path + returns [:host, :path, :port, :scheme]
    params in request overwrite those in constructor + returns "/cheezburger"
    notify on retry + returns 3
    notify on error + raises Excon::Error::Socket
+ returns true
    filtering + raises Excon::Error::Socket
+ returns ["excon.request", "excon.error"]
    more filtering + raises Excon::Error::Socket
+ returns ["excon.retry", "excon.retry", "excon.retry"]
    indicates duration + returns true
    standard instrumentor
      success + raises Excon::Error::Socket
+ returns ["excon.request", "excon.retry", "excon.retry", "excon.retry", "excon.error"]
      authorization header REDACT
        + raises Excon::Error::Socket
        + does not appear in response
        + does not mutate Authorization value
      password REDACT
        + raises Excon::Error::Socket
        + does not appear in response
        + does not mutate password value
      proxy password REDACT
        + raises Excon::Error::Socket
        + does not appear in response
        + does not mutate password value
    use our own instrumentor + raises Excon::Error::Socket
+ returns ["excon.request", "excon.retry", "excon.retry", "excon.retry", "excon.error"]
    always passes the block + returns ["excon.request", "excon.response"]
    does not generate events when not provided + returns 0
    allows setting the prefix + raises Excon::Error::Socket
+ returns ["gug.request", "gug.retry", "gug.retry", "gug.retry", "gug.error"]
    allows setting the prefix when not idempotent + raises Excon::Error::Socket
+ returns ["gug.request", "gug.error"]
    works unmocked + returns ["excon.request", "excon.response"]
  
  Excon stubs
    missing stub + raises Excon::Error::StubNotFound
    stub({}) + raises ArgumentError
    stub({}, {}) {} + raises ArgumentError
    stub({:method => :get}, {:body => 'body', :status => 200})
      response.body + returns "body"
      response.headers + returns {}
      response.status + returns 200
      response_block yields body + returns "body"
      response.body empty with response_block + returns ""
    stub({:path => %r{/tests/(S+)}}, {:body => $1, :status => 200})
      response.body + returns "test"
      response.headers + returns {}
      response.status + returns 200
    stub({:body => 'body', :method => :get}) {|params| {:body => params[:body], :headers => params[:headers], :status => 200}}
      response.body + returns "body"
      response.headers + returns {"Accept"=>"*/*", "Host"=>"127.0.0.1:9292", "User-Agent"=>"excon/0.112.0"}
      response.status + returns 200
      response_block yields body + returns "body"
      response.body empty with response_block + returns ""
    stub({:body => File.open(...), :method => :get}, { :status => 200 })
      response.status + returns 200
    invalid stub response + raises Excon::Error::InvalidStub
    mismatched stub + raises Excon::Error::StubNotFound
    allow mismatched stub + returns 200
    stub({}, {:body => 'x' * (Excon::DEFAULT_CHUNK_SIZE + 1)})
      + response_block yields body
      response.body empty with response_block + returns ""
    stub({:url => 'https://user:pass@foo.bar.com:9999/baz?quux=true'}, {:status => 200})
      + get(:expects => 200)
    stub({}, {:status => 404, :body => 'Not Found'}
      request(:expects => 200, :method => :get, :path => '/') + raises Excon::Error::NotFound
      Expects exception should contain response object + returns Excon::Response
+ request(:expects => 200, :method => :get, :path => '/') with block does not invoke the block since it raises an error
    stub_for({})
      stub_for({}) + returns [{}, {}]
    unstub({})
      unstub({}) + returns [{}, {}]
      request(:method => :get) + raises Excon::Error::StubNotFound
    unstub({path: %r{/path}})
      unstub({path: %r{/path}}) + returns [{:path=>/\/path/, :captures=>{:headers=>{}}}, {}]
    unstub non-existent stub
      unstub({}) + returns nil
    global stubs
      get on a different thread + returns "2"
      get on main thread + returns "2"
    thread-local stubs
      get on a different thread + returns "2"
      get on main thread + returns "1"
  
  Excon redirector support
    request(:method => :get, :path => '/old').body + returns "new"
  
  Excon redirector support with redirect loop
    request(:method => :get, :path => '/old') + raises Excon::Error::TooManyRedirects
  
  Excon redirect support for relative Location headers
    request(:method => :get, :path => '/old').body + returns "new"
  
  Excon redirect support for relative Location headers with dot segments
    request(:method => :get, :path => '/foo/baz/').body + returns "/foo/bar/"
  
  Excon redirecting post request
    request not have content-length and body + returns "ok"
  
  Pipelined Requests
    with default :persistent => true
      + connection is persistent
    with default :persistent => false
      + connection is persistent per call to #requests
  
  Excon proxy support
    proxy configuration
      no proxy
        connection.data[:proxy] + returns nil
      empty proxy
        connection.data[:proxy] + returns nil
      with fully-specified proxy: https://myproxy.net:8080
        connection.data[:proxy][:host] + returns "myproxy.net"
        connection.data[:proxy][:port] + returns 8080
        connection.data[:proxy][:scheme] + returns "https"
      with fully-specified Unix socket proxy: unix:///
        connection.data[:proxy][:host] + returns nil
        connection.data[:proxy][:port] + returns nil
        connection.data[:proxy][:scheme] + returns "unix"
        connection.data[:proxy][:path] + returns "/tmp/myproxy.sock"
      with complete proxy config from the environment
        lowercase
          an http connection
            connection.data[:proxy][:host] + returns "myproxy"
            connection.data[:proxy][:port] + returns 8080
            connection.data[:proxy][:scheme] + returns "http"
            with disable_proxy set
              connection.data[:proxy] + returns nil
          an https connection
            connection.data[:proxy][:host] + returns "mysecureproxy"
            connection.data[:proxy][:port] + returns 8081
            connection.data[:proxy][:scheme] + returns "http"
            with disable_proxy set
              connection.data[:proxy] + returns nil
          http proxy from the environment overrides config
            connection.data[:proxy][:host] + returns "myproxy"
            connection.data[:proxy][:port] + returns 8080
          an http connection in no_proxy
            connection.data[:proxy] + returns nil
          an http connection not completely matching no_proxy
            connection.data[:proxy][:host] + returns "myproxy"
          an http connection with subdomain in no_proxy
            connection.data[:proxy] + returns nil
        uppercase
          an http connection
            connection.data[:proxy][:host] + returns "myproxy"
            connection.data[:proxy][:port] + returns 8080
            connection.data[:proxy][:scheme] + returns "http"
            with disable_proxy set
              connection.data[:proxy] + returns nil
          an https connection
            connection.data[:proxy][:host] + returns "mysecureproxy"
            connection.data[:proxy][:port] + returns 8081
            connection.data[:proxy][:scheme] + returns "http"
            with disable_proxy set
              connection.data[:proxy] + returns nil
          http proxy from the environment overrides config
            connection.data[:proxy][:host] + returns "myproxy"
            connection.data[:proxy][:port] + returns 8080
          an http connection in no_proxy
            connection.data[:proxy] + returns nil
          an http connection not completely matching no_proxy
            connection.data[:proxy][:host] + returns "myproxy"
          an http connection with subdomain in no_proxy
            connection.data[:proxy] + returns nil
      with only http_proxy config from the environment
        an https connection
          connection.data[:proxy][:host] + returns "myproxy"
          connection.data[:proxy][:port] + returns 8080
          connection.data[:proxy][:scheme] + returns "http"
      with a unix socket proxy config from the environment
        an https connection
          connection.data[:proxy][:host] + returns nil
          connection.data[:proxy][:port] + returns nil
          connection.data[:proxy][:scheme] + returns "unix"
          connection.data[:proxy][:path] + returns "/tmp/myproxy.sock"
    http proxying: http://foo.com:8080
      response.status + returns 200
      sent Request URI + returns "http://foo.com:8080/bar?alpha=kappa"
      sent Sent-Host header + returns "foo.com:8080"
      sent Proxy-Connection header + returns "Keep-Alive"
      response.body (proxied content) + returns "proxied content"
    http proxying: http://user:pass@foo.com:8080
      response.status + returns 200
      sent Request URI + returns "http://foo.com:8080/bar?alpha=kappa"
      sent Host header + returns "foo.com:8080"
      sent Proxy-Connection header + returns "Keep-Alive"
      response.body (proxied content) + returns "proxied content"
    http proxying over unix socket: http://foo.com:8080
      response.status + returns 200
      sent Sent-Host header + returns "foo.com:8080"
      sent Proxy-Connection header + returns "Keep-Alive"
      response.body (proxied content) + returns "proxied content"
  
  Excon query string variants
    :query => {:foo => 'bar'}
      query string sent + returns "foo=bar"
    :query => {:foo => nil}
      query string sent + returns "foo"
    :query => {:foo => 'bar', :me => nil}
      + query string sent includes 'foo=bar'
      + query string sent includes 'me'
    :query => {:foo => 'bar', :me => 'too'}
      + query string sent includes 'foo=bar'
      + query string sent includes 'me=too'
    :query => {'foo[]' => ['bar', 'baz'], :me => 'too'}
      + query string sent includes 'foo%5B%5D=bar'
      + query string sent includes 'foo%5B%5D=baz'
      + query string sent includes 'me=too'
    :query => {'foo%=#' => 'bar%=#'}
      query string sent + returns "foo%25%3D%23=bar%25%3D%23"
    :query => {'foo%=#' => nil}
      query string sent + returns "foo%25%3D%23"
  
  Excon request methods
    empty headers sent
      + Excon.post
    header order
      host is the first sent header by default + returns "host: localhost:9292"
  
  Excon request methods
    one-offs
      Excon.get + returns "GET"
      Excon.post + returns "POST"
      Excon.delete + returns "DELETE"
    with a connection object
      connection.get + returns "GET"
      connection.post + returns "POST"
      connection.delete + returns "DELETE"
      not modifies path argument + returns "path"
  
  Request Tests
    persistent connections
      with default :persistent => true, 127.0.0.1:9292
        + uses a persistent connection
        + :persistent => false resets connection
      with default :persistent => false, 127.0.0.1:9292
        + does not use a persistent connection
        + :persistent => true enables persistence
      with default :persistent => true, [::1]:9293
        + uses a persistent connection
        + :persistent => false resets connection
      with default :persistent => false, [::1]:9293
        + does not use a persistent connection
        + :persistent => true enables persistence
  
  Excon Response Parsing
    responses with chunked transfer-encoding
      simple response + returns "hello world"
      with :response_block
        simple response + returns [["hello ", nil, nil], ["world", nil, nil]]
        simple response has empty body + returns ""
        with expected response status + returns [["hello ", nil, nil], ["world", nil, nil]]
        with unexpected response status + returns "hello world"
      merges trailers into headers + returns "one, two, three, four, five, six"
      removes 'chunked' from Transfer-Encoding + returns nil
    responses with content-length
      simple response + returns "hello world"
      with :response_block
        simple response + returns [["hello", 6, 11], [" worl", 1, 11], ["d", 0, 11]]
        simple response has empty body + returns ""
        with expected response status + returns [["hello", 6, 11], [" worl", 1, 11], ["d", 0, 11]]
        with unexpected response status + returns "hello world"
    responses with unknown length
      simple response + returns "hello world"
      with :response_block
        simple response + returns [["hello", nil, nil], [" worl", nil, nil], ["d", nil, nil]]
        simple response has empty body + returns ""
        with expected response status + returns [["hello", nil, nil], [" worl", nil, nil], ["d", nil, nil]]
        with unexpected response status + returns "hello world"
    cookies
      parses cookies into array + returns ["one, two", "three, four"]
    header continuation
      proper continuation + returns "one, two, three, four, five, six"
      malformed header + raises Excon::Error::Socket
      malformed header continuation + raises Excon::Error::Socket
    status line parsing
      proper status code + returns 404
      proper reason phrase + returns "Not Found"
  
  socket
    chunk_size: 
      read_nonblock
        readline nonblock is efficient
          + returns ["one\n", 1, [8, "EOF"]]
        readline nonblock works sequentially
          + returns [["one\n", "two\n"], 1, [8, "EOF"]]
        readline nonblock can handle partial reads
          + returns [["one\n", "two\n"], 2, [5, "EAGAIN", 3, "EOF"]]
        readline nonblock before read
          + returns [["one\n", "two\n"], 2, [8, "EOF"]]
        read_nonblock does not EOF early
          + returns [["one", "two"], 2, [3, "EAGAIN", 3, "EOF"]]
    chunk_size: 512
      read_nonblock
        readline nonblock is efficient
          + returns ["one\n", 1, [8, "EOF"]]
        readline nonblock works sequentially
          + returns [["one\n", "two\n"], 1, [8, "EOF"]]
        readline nonblock can handle partial reads
          + returns [["one\n", "two\n"], 2, [5, "EAGAIN", 3, "EOF"]]
        readline nonblock before read
          + returns [["one\n", "two\n"], 2, [8, "EOF"]]
        read_nonblock does not EOF early
          + returns [["one", "two"], 2, [3, "EAGAIN", 3, "EOF"]]
  
  Excon thread safety
    thread_safe_sockets configuration
      thread_safe_sockets default + returns true
      with thread_safe_sockets set false + returns false
+ long_thread
+ short_thread
  
  read should timeout
    nonblock => false hits read_timeout + raises Excon::Error::Timeout
    nonblock => true hits read_timeout + raises Excon::Error::Timeout
  
  Excon::Utils
    #connection_uri
      using UNIX scheme + returns "unix:///tmp/some.sock"
      using HTTP scheme
        with default port + returns "http://foo.com:80"
        without default port + returns "http://foo.com"
    #request_uri
      using UNIX scheme
        without query + returns "unix:///tmp/some.sock/some/path"
        with query + returns "unix:///tmp/some.sock/some/path?bar=that&foo=this"
      using HTTP scheme
        without query + returns "http://foo.com:80/some/path"
        with query + returns "http://foo.com:80/some/path?bar=that&foo=this"
    #escape_uri + returns "/hello%20excon"
    #unescape_uri + returns "/hello excon"
    #unescape_form + returns "message=We love excon!"
    #split_header_value + returns ["value"]
    #split_header_value + returns ["value1", "value2"]
    #split_header_value + returns ["text/html;q=0.5", "application/json; version=1"]
    #split_header_value + returns ["foo/bar;key=\"A,B,C\""]
    #split_header_value + returns []
  
  1 errored, 13 pending and 1452 succeeded in 60.83323784386829 seconds
  
rake aborted!
Command failed with status (1): [/usr/bin/ruby3.1 -S shindo]
/usr/share/rubygems-integration/all/gems/shindo-0.3.10/lib/shindo/rake.rb:10:in `block in initialize'
/usr/share/rubygems-integration/all/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
Tasks: TOP => default => tests
(See full trace by running task with --trace)
ERROR: Test "ruby3.1" failed. Exiting.
dh_auto_install: error: dh_ruby --install /build/reproducible-path/ruby-excon-0.112.0/debian/ruby-excon returned exit code 1
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
I: copying local configuration
E: Failed autobuilding of package
I: unmounting dev/ptmx filesystem
I: unmounting dev/pts filesystem
I: unmounting dev/shm filesystem
I: unmounting proc filesystem
I: unmounting sys filesystem
I: cleaning the build env 
I: removing directory /srv/workspace/pbuilder/1284455 and its subdirectories
Wed Dec 18 20:12:30 UTC 2024  W: No second build log, what happened?