Fri Feb 28 09:29:33 UTC 2025  I: starting to build ruby-excon/unstable/amd64 on jenkins on '2025-02-28 09:29'
Fri Feb 28 09:29:33 UTC 2025  I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_27/47934/console.log
Fri Feb 28 09:29:33 UTC 2025  I: Downloading source for unstable/ruby-excon=0.112.0-4
--2025-02-28 09:29:33--  http://deb.debian.org/debian/pool/main/r/ruby-excon/ruby-excon_0.112.0-4.dsc
Connecting to 46.16.76.132:3128... connected.
Proxy request sent, awaiting response... 200 OK
Length: 2078 (2.0K) [text/prs.lines.tag]
Saving to: ‘ruby-excon_0.112.0-4.dsc’

     0K ..                                                    100%  303M=0s

2025-02-28 09:29:33 (303 MB/s) - ‘ruby-excon_0.112.0-4.dsc’ saved [2078/2078]

Fri Feb 28 09:29:33 UTC 2025  I: ruby-excon_0.112.0-4.dsc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 3.0 (quilt)
Source: ruby-excon
Binary: ruby-excon
Architecture: all
Version: 0.112.0-4
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-rackup, ruby-rspec, ruby-shindo, ruby-sinatra (>= 4.1.1-5), ruby-webrick (>= 1.7~), unicorn, puma, ruby-sinatra-contrib (>= 4.1.1-5)
Package-List:
 ruby-excon deb ruby optional arch=all
Checksums-Sha1:
 4d0dd456c65e4bbbb9063724c92b4fab4f76659a 239915 ruby-excon_0.112.0.orig.tar.gz
 37a4f680c1cfc50202210659348e21077e977fb2 6416 ruby-excon_0.112.0-4.debian.tar.xz
Checksums-Sha256:
 f13b61b32f2d4400511f3abe9dc5639b136640218593ca967f1d679b0d6bc0cb 239915 ruby-excon_0.112.0.orig.tar.gz
 e333acb73355f527d8802773c787ae703e203bbeb67e2ec38d5de92a0bbb14ff 6416 ruby-excon_0.112.0-4.debian.tar.xz
Files:
 be677df5d74d8fa74f71e17db997e7bf 239915 ruby-excon_0.112.0.orig.tar.gz
 da62431f179cb70a0056beac1dab7090 6416 ruby-excon_0.112.0-4.debian.tar.xz

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

iQGzBAEBCgAdFiEEcd3Fxr6GmkZB13n+x+ob4VdN7V0FAmec5qkACgkQx+ob4VdN
7V0Xtgv+IdwPq9nkhASMJzYTRhi/iMIxOni5u9GnFuhLIyaQ7O8xRTvG43rSEDbY
9raJLT4h8GonzvWVzZuJ4VdRi0lFlXll/CbQHnUH9gHy5xZ7rJpV1NXb9gvcTpHF
SoKqsL9VUUl0+1JswiJF36yw8CuLALDRWHgIyYBPPkQrF1zxSmRtA4BAQjqFkTkX
+WIklIeRXFrfnpLo/Um1xva3OKdMYqxeAyGIsypl59PkzwfdJiIhwksAMm5bSWWf
WWFbBZxSPjkW6nSgnNyE1g+OMZURHWNFFaQp/E/h50gGK8+XvmtZjSurZ2pcHc5a
Gt/w4DTBOXfYI4BCk8/ALPU0I4ENQKiKnN8JU/InglZLpGN6SDM+WARIGmEVFwoT
jmeB0gv80dHL5CBkMy8PI4UHkgWkKGKzXuadO4oL1TK/qeLWTQiyt/fOtBNWAZ7R
q4K8fTxG0qinpkiuLyviQSWdiH8Zsf9OjTTo2ParBCDJdLQjlyJrV1H1MFPC6o3D
ib2VZP5M
=+vW6
-----END PGP SIGNATURE-----
Fri Feb 28 09:29:33 UTC 2025  I: Checking whether the package is not for us
Fri Feb 28 09:29:33 UTC 2025  I: Starting 1st build on remote node ionos11-amd64.debian.net.
Fri Feb 28 09:29:33 UTC 2025  I: Preparing to do remote build '1' on ionos11-amd64.debian.net.
Fri Feb 28 09:36:44 UTC 2025  I: Deleting $TMPDIR on ionos11-amd64.debian.net.
I: pbuilder: network access will be disabled during build
I: Current time: Thu Feb 27 21:29:35 -12 2025
I: pbuilder-time-stamp: 1740734975
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/unstable-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-4.dsc]
I: copying [./ruby-excon_0.112.0.orig.tar.gz]
I: copying [./ruby-excon_0.112.0-4.debian.tar.xz]
I: Extracting source
dpkg-source: warning: cannot verify inline signature for ./ruby-excon_0.112.0-4.dsc: unsupported subcommand
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-4.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/265266/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=20 '
  DISTRIBUTION='unstable'
  HOME='/root'
  HOST_ARCH='amd64'
  IFS=' 	
  '
  INVOCATION_ID='95edeeb0dad04327b79e7cc0f3c1939c'
  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='265266'
  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.FdSiZyKC/pbuilderrc_mqKi --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/b1 --logfile b1/build.log ruby-excon_0.112.0-4.dsc'
  SUDO_GID='111'
  SUDO_UID='106'
  SUDO_USER='jenkins'
  TERM='unknown'
  TZ='/usr/share/zoneinfo/Etc/GMT+12'
  USER='root'
  _='/usr/bin/systemd-run'
  http_proxy='http://46.16.76.132:3128'
I: uname -a
  Linux ionos11-amd64 6.1.0-31-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.128-1 (2025-02-07) x86_64 GNU/Linux
I: ls -l /bin
  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
I: user script /srv/workspace/pbuilder/265266/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-rackup, ruby-rspec, ruby-shindo, ruby-sinatra (>= 4.1.1-5), ruby-webrick (>= 1.7~), unicorn, puma, ruby-sinatra-contrib (>= 4.1.1-5)
dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Selecting previously unselected package pbuilder-satisfydepends-dummy.
(Reading database ... 19779 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-rackup; however:
  Package ruby-rackup 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 (>= 4.1.1-5); 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 (>= 4.1.1-5); 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} gpgv{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} libdebhelper-perl{a} libdevel-callchecker-perl{a} libdynaloader-functions-perl{a} libelf1t64{a} libencode-locale-perl{a} libexpat1{a} libffi8{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} libgcrypt20{a} libgmp-dev{a} libgmpxx4ldbl{a} libgnutls30t64{a} libgpg-error0{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} libidn2-0{a} libimport-into-perl{a} libio-html-perl{a} libio-pty-perl{a} libio-socket-ssl-perl{a} libipc-run-perl{a} libksba8{a} libldap2{a} liblwp-mediatypes-perl{a} liblwp-protocol-https-perl{a} libmagic-mgc{a} libmagic1t64{a} libmodule-runtime-perl{a} libmoo-perl{a} libnet-http-perl{a} libnet-ssleay-perl{a} libnpth0t64{a} libp11-kit0{a} libparams-classify-perl{a} libpipeline1{a} libpython3-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} librole-tiny-perl{a} libruby{a} libruby3.3{a} libsasl2-2{a} libsasl2-modules-db{a} libsub-quote-perl{a} libtasn1-6{a} libtimedate-perl{a} libtool{a} libtry-tiny-perl{a} libuchardet0{a} libunistring5{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.13{a} python3.13-minimal{a} rake{a} readline-common{a} ruby{a} ruby-activesupport{a} ruby-all-dev{a} ruby-base64{a} ruby-chronic{a} ruby-concurrent{a} ruby-delorean{a} ruby-did-you-mean{a} ruby-diff-lcs{a} ruby-eventmachine{a} ruby-formatador{a} ruby-i18n{a} ruby-kgio{a} ruby-minitest{a} ruby-multi-json{a} ruby-mustermann{a} ruby-net-telnet{a} ruby-nio4r{a} ruby-numerizer{a} ruby-open4{a} ruby-power-assert{a} ruby-rack{a} ruby-rack-protection{a} ruby-rack-session{a} ruby-rackup{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-shindo{a} ruby-sinatra{a} ruby-sinatra-contrib{a} ruby-test-unit{a} ruby-tilt{a} ruby-tzinfo{a} ruby-webrick{a} ruby-xmlrpc{a} ruby-zeitwerk{a} ruby3.3{a} ruby3.3-dev{a} rubygems-integration{a} sensible-utils{a} sopv-gpgv{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 libarchive-cpio-perl libdata-dump-perl libdistro-info-perl libgit-wrapper-perl libgitlab-api-v4-perl libgpg-error-l10n 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 lzip pristine-tar python3-apt python3-argcomplete python3-debian python3-magic python3-requests python3-unidiff python3-xdg ruby-oj ruby-sdbm ruby3.3-doc strace unzip wget zip 
0 packages upgraded, 165 newly installed, 0 to remove and 0 not upgraded.
Need to get 50.4 MB of archives. After unpacking 184 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.2-1 [859 kB]
Get: 2 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.6.4-1 [106 kB]
Get: 3 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.2-1 [2205 kB]
Get: 4 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.13.2-1 [27.1 kB]
Get: 5 http://deb.debian.org/debian unstable/main amd64 media-types all 12.0.0 [28.9 kB]
Get: 6 http://deb.debian.org/debian unstable/main amd64 netbase all 6.4 [12.8 kB]
Get: 7 http://deb.debian.org/debian unstable/main amd64 tzdata all 2025a-2 [259 kB]
Get: 8 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.4.7-1 [23.9 kB]
Get: 9 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.2-6 [69.4 kB]
Get: 10 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.2-6 [169 kB]
Get: 11 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.2-1 [1979 kB]
Get: 12 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.2-1 [745 kB]
Get: 13 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.13.2-1 [10.0 kB]
Get: 14 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.13.2-1 [28.1 kB]
Get: 15 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.24 [24.8 kB]
Get: 16 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.4.1-1 [1427 kB]
Get: 17 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20241223 [164 kB]
Get: 18 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.45-3+b1 [314 kB]
Get: 19 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.45-3+b1 [108 kB]
Get: 20 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.45-3+b1 [43.3 kB]
Get: 21 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.1-1 [243 kB]
Get: 22 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB]
Get: 23 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-7 [1185 kB]
Get: 24 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.40.4-5 [92.4 kB]
Get: 25 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB]
Get: 26 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.0-1 [1420 kB]
Get: 27 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.19-5 [294 kB]
Get: 28 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3 [493 kB]
Get: 29 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20220109.1 [51.6 kB]
Get: 30 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.17-3 [862 kB]
Get: 31 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.1-1 [770 kB]
Get: 32 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.24.1 [90.9 kB]
Get: 33 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-3 [539 kB]
Get: 34 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 20 [17.1 kB]
Get: 35 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB]
Get: 36 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.14.1-2 [19.7 kB]
Get: 37 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.14.1-2 [8620 B]
Get: 38 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.192-4 [189 kB]
Get: 39 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.15-1+b1 [110 kB]
Get: 40 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-1 [476 kB]
Get: 41 http://deb.debian.org/debian unstable/main amd64 libicu72 amd64 72.1-6 [9421 kB]
Get: 42 http://deb.debian.org/debian unstable/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2+b2 [699 kB]
Get: 43 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.1-1 [1680 kB]
Get: 44 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 45 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB]
Get: 46 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.24.1 [920 kB]
Get: 47 http://deb.debian.org/debian unstable/main amd64 libgpg-error0 amd64 1.51-3 [82.2 kB]
Get: 48 http://deb.debian.org/debian unstable/main amd64 libassuan9 amd64 3.0.1-2 [60.6 kB]
Get: 49 http://deb.debian.org/debian unstable/main amd64 libgcrypt20 amd64 1.11.0-7 [843 kB]
Get: 50 http://deb.debian.org/debian unstable/main amd64 gpgconf amd64 2.2.46-2 [121 kB]
Get: 51 http://deb.debian.org/debian unstable/main amd64 libidn2-0 amd64 2.3.7-2+b1 [129 kB]
Get: 52 http://deb.debian.org/debian unstable/main amd64 libp11-kit0 amd64 0.25.5-3 [425 kB]
Get: 53 http://deb.debian.org/debian unstable/main amd64 libtasn1-6 amd64 4.20.0-2 [49.9 kB]
Get: 54 http://deb.debian.org/debian unstable/main amd64 libgnutls30t64 amd64 3.8.9-2 [1464 kB]
Get: 55 http://deb.debian.org/debian unstable/main amd64 libksba8 amd64 1.6.7-2+b1 [136 kB]
Get: 56 http://deb.debian.org/debian unstable/main amd64 libsasl2-modules-db amd64 2.1.28+dfsg1-8+b1 [19.9 kB]
Get: 57 http://deb.debian.org/debian unstable/main amd64 libsasl2-2 amd64 2.1.28+dfsg1-8+b1 [57.6 kB]
Get: 58 http://deb.debian.org/debian unstable/main amd64 libldap2 amd64 2.6.9+dfsg-1 [192 kB]
Get: 59 http://deb.debian.org/debian unstable/main amd64 libnpth0t64 amd64 1.8-2 [22.9 kB]
Get: 60 http://deb.debian.org/debian unstable/main amd64 dirmngr amd64 2.2.46-2 [369 kB]
Get: 61 http://deb.debian.org/debian unstable/main amd64 gnupg-l10n all 2.2.46-2 [702 kB]
Get: 62 http://deb.debian.org/debian unstable/main amd64 gpg amd64 2.2.46-2 [532 kB]
Get: 63 http://deb.debian.org/debian unstable/main amd64 pinentry-curses amd64 1.3.1-2 [86.4 kB]
Get: 64 http://deb.debian.org/debian unstable/main amd64 gpg-agent amd64 2.2.46-2 [251 kB]
Get: 65 http://deb.debian.org/debian unstable/main amd64 gpgsm amd64 2.2.46-2 [255 kB]
Get: 66 http://deb.debian.org/debian unstable/main amd64 gnupg all 2.2.46-2 [376 kB]
Get: 67 http://deb.debian.org/debian unstable/main amd64 gpgv amd64 2.2.46-2 [220 kB]
Get: 68 http://deb.debian.org/debian unstable/main amd64 sopv-gpgv all 0.1.1-1 [10.7 kB]
Get: 69 http://deb.debian.org/debian unstable/main amd64 libfile-dirlist-perl all 0.05-3 [7600 B]
Get: 70 http://deb.debian.org/debian unstable/main amd64 libfile-which-perl all 1.27-2 [15.1 kB]
Get: 71 http://deb.debian.org/debian unstable/main amd64 libfile-homedir-perl all 1.006-2 [42.4 kB]
Get: 72 http://deb.debian.org/debian unstable/main amd64 libfile-touch-perl all 0.12-2 [8816 B]
Get: 73 http://deb.debian.org/debian unstable/main amd64 libio-pty-perl amd64 1:1.20-1+b3 [34.3 kB]
Get: 74 http://deb.debian.org/debian unstable/main amd64 libipc-run-perl all 20231003.0-2 [101 kB]
Get: 75 http://deb.debian.org/debian unstable/main amd64 libclass-method-modifiers-perl all 2.15-1 [18.0 kB]
Get: 76 http://deb.debian.org/debian unstable/main amd64 libclass-xsaccessor-perl amd64 1.19-4+b5 [36.1 kB]
Get: 77 http://deb.debian.org/debian unstable/main amd64 libb-hooks-op-check-perl amd64 0.22-3+b2 [10.6 kB]
Get: 78 http://deb.debian.org/debian unstable/main amd64 libdynaloader-functions-perl all 0.004-1 [12.1 kB]
Get: 79 http://deb.debian.org/debian unstable/main amd64 libdevel-callchecker-perl amd64 0.009-1+b1 [16.2 kB]
Get: 80 http://deb.debian.org/debian unstable/main amd64 libparams-classify-perl amd64 0.015-2+b4 [22.5 kB]
Get: 81 http://deb.debian.org/debian unstable/main amd64 libmodule-runtime-perl all 0.016-2 [19.6 kB]
Get: 82 http://deb.debian.org/debian unstable/main amd64 libimport-into-perl all 1.002005-2 [11.3 kB]
Get: 83 http://deb.debian.org/debian unstable/main amd64 librole-tiny-perl all 2.002004-1 [21.4 kB]
Get: 84 http://deb.debian.org/debian unstable/main amd64 libsub-quote-perl all 2.006008-1 [21.8 kB]
Get: 85 http://deb.debian.org/debian unstable/main amd64 libmoo-perl all 2.005005-1 [58.0 kB]
Get: 86 http://deb.debian.org/debian unstable/main amd64 libencode-locale-perl all 1.05-3 [12.9 kB]
Get: 87 http://deb.debian.org/debian unstable/main amd64 libtimedate-perl all 2.3300-2 [39.3 kB]
Get: 88 http://deb.debian.org/debian unstable/main amd64 libhttp-date-perl all 6.06-1 [10.7 kB]
Get: 89 http://deb.debian.org/debian unstable/main amd64 libfile-listing-perl all 6.16-1 [12.4 kB]
Get: 90 http://deb.debian.org/debian unstable/main amd64 libhtml-tagset-perl all 3.24-1 [14.7 kB]
Get: 91 http://deb.debian.org/debian unstable/main amd64 liburi-perl all 5.30-1 [105 kB]
Get: 92 http://deb.debian.org/debian unstable/main amd64 libhtml-parser-perl amd64 3.83-1+b2 [99.7 kB]
Get: 93 http://deb.debian.org/debian unstable/main amd64 libhtml-tree-perl all 5.07-3 [211 kB]
Get: 94 http://deb.debian.org/debian unstable/main amd64 libclone-perl amd64 0.47-1+b1 [13.9 kB]
Get: 95 http://deb.debian.org/debian unstable/main amd64 libio-html-perl all 1.004-3 [16.2 kB]
Get: 96 http://deb.debian.org/debian unstable/main amd64 liblwp-mediatypes-perl all 6.04-2 [20.2 kB]
Get: 97 http://deb.debian.org/debian unstable/main amd64 libhttp-message-perl all 7.00-2 [79.8 kB]
Get: 98 http://deb.debian.org/debian unstable/main amd64 libhttp-cookies-perl all 6.11-1 [19.1 kB]
Get: 99 http://deb.debian.org/debian unstable/main amd64 libhttp-negotiate-perl all 6.01-2 [13.1 kB]
Get: 100 http://deb.debian.org/debian unstable/main amd64 perl-openssl-defaults amd64 7+b2 [6724 B]
Get: 101 http://deb.debian.org/debian unstable/main amd64 libnet-ssleay-perl amd64 1.94-3 [339 kB]
Get: 102 http://deb.debian.org/debian unstable/main amd64 libio-socket-ssl-perl all 2.089-1 [223 kB]
Get: 103 http://deb.debian.org/debian unstable/main amd64 libnet-http-perl all 6.23-1 [23.9 kB]
Get: 104 http://deb.debian.org/debian unstable/main amd64 liblwp-protocol-https-perl all 6.14-1 [10.8 kB]
Get: 105 http://deb.debian.org/debian unstable/main amd64 libtry-tiny-perl all 0.32-1 [22.9 kB]
Get: 106 http://deb.debian.org/debian unstable/main amd64 libwww-robotrules-perl all 6.02-1 [12.9 kB]
Get: 107 http://deb.debian.org/debian unstable/main amd64 libwww-perl all 6.77-1 [183 kB]
Get: 108 http://deb.debian.org/debian unstable/main amd64 patchutils amd64 0.4.2-1 [77.5 kB]
Get: 109 http://deb.debian.org/debian unstable/main amd64 wdiff amd64 1.2.2-7 [122 kB]
Get: 110 http://deb.debian.org/debian unstable/main amd64 devscripts all 2.25.5 [1058 kB]
Get: 111 http://deb.debian.org/debian unstable/main amd64 rubygems-integration all 1.19 [5488 B]
Get: 112 http://deb.debian.org/debian unstable/main amd64 ruby-did-you-mean all 1.6.3-2 [20.9 kB]
Get: 113 http://deb.debian.org/debian unstable/main amd64 ruby-minitest all 5.25.4-2 [66.2 kB]
Get: 114 http://deb.debian.org/debian unstable/main amd64 ruby-net-telnet all 0.2.0-1 [13.1 kB]
Get: 115 http://deb.debian.org/debian unstable/main amd64 ruby-power-assert all 2.0.3-1 [11.8 kB]
Get: 116 http://deb.debian.org/debian unstable/main amd64 ruby-test-unit all 3.6.2-1 [79.1 kB]
Get: 117 http://deb.debian.org/debian unstable/main amd64 ruby-webrick all 1.8.1-1 [51.4 kB]
Get: 118 http://deb.debian.org/debian unstable/main amd64 ruby-xmlrpc all 0.3.3-2 [24.4 kB]
Get: 119 http://deb.debian.org/debian unstable/main amd64 libyaml-0-2 amd64 0.2.5-2 [52.5 kB]
Get: 120 http://deb.debian.org/debian unstable/main amd64 libruby3.3 amd64 3.3.7-1 [6274 kB]
Get: 121 http://deb.debian.org/debian unstable/main amd64 ruby3.3 amd64 3.3.7-1 [827 kB]
Get: 122 http://deb.debian.org/debian unstable/main amd64 libruby amd64 1:3.3+b1 [5440 B]
Get: 123 http://deb.debian.org/debian unstable/main amd64 ruby-rubygems all 3.6.3-1 [406 kB]
Get: 124 http://deb.debian.org/debian unstable/main amd64 ruby amd64 1:3.3+b1 [6560 B]
Get: 125 http://deb.debian.org/debian unstable/main amd64 rake all 13.2.1-1 [65.2 kB]
Get: 126 http://deb.debian.org/debian unstable/main amd64 gem2deb-test-runner amd64 2.2.5 [17.9 kB]
Get: 127 http://deb.debian.org/debian unstable/main amd64 libgmpxx4ldbl amd64 2:6.3.0+dfsg-3 [329 kB]
Get: 128 http://deb.debian.org/debian unstable/main amd64 libgmp-dev amd64 2:6.3.0+dfsg-3 [642 kB]
Get: 129 http://deb.debian.org/debian unstable/main amd64 ruby3.3-dev amd64 3.3.7-1 [1038 kB]
Get: 130 http://deb.debian.org/debian unstable/main amd64 ruby-all-dev amd64 1:3.3+b1 [6496 B]
Get: 131 http://deb.debian.org/debian unstable/main amd64 gem2deb amd64 2.2.5 [48.0 kB]
Get: 132 http://deb.debian.org/debian unstable/main amd64 ruby-nio4r amd64 2.7.3-1+b2 [114 kB]
Get: 133 http://deb.debian.org/debian unstable/main amd64 puma amd64 6.6.0-2+b1 [189 kB]
Get: 134 http://deb.debian.org/debian unstable/main amd64 ruby-concurrent all 1.3.4-1 [291 kB]
Get: 135 http://deb.debian.org/debian unstable/main amd64 ruby-i18n all 1.14.5-1 [41.4 kB]
Get: 136 http://deb.debian.org/debian unstable/main amd64 ruby-tzinfo all 2.0.6-1 [66.7 kB]
Get: 137 http://deb.debian.org/debian unstable/main amd64 ruby-zeitwerk all 2.6.8-1 [43.0 kB]
Get: 138 http://deb.debian.org/debian unstable/main amd64 ruby-activesupport all 2:6.1.7.3+dfsg-13 [203 kB]
Get: 139 http://deb.debian.org/debian unstable/main amd64 ruby-base64 all 0.2.0-2 [7116 B]
Get: 140 http://deb.debian.org/debian unstable/main amd64 ruby-numerizer all 0.2.0-2 [4552 B]
Get: 141 http://deb.debian.org/debian unstable/main amd64 ruby-chronic all 0.10.5-3 [28.8 kB]
Get: 142 http://deb.debian.org/debian unstable/main amd64 ruby-delorean all 2.1.0-2.1 [5612 B]
Get: 143 http://deb.debian.org/debian unstable/main amd64 ruby-diff-lcs all 1.5.1-1 [28.1 kB]
Get: 144 http://deb.debian.org/debian unstable/main amd64 ruby-eventmachine amd64 1.3~pre20220315-df4ab006-5+b2 [154 kB]
Get: 145 http://deb.debian.org/debian unstable/main amd64 ruby-formatador all 1.1.0-1 [9304 B]
Get: 146 http://deb.debian.org/debian unstable/main amd64 ruby-kgio amd64 2.11.2-2+b8 [28.8 kB]
Get: 147 http://deb.debian.org/debian unstable/main amd64 ruby-multi-json all 1.14.1-2 [20.4 kB]
Get: 148 http://deb.debian.org/debian unstable/main amd64 ruby-ruby2-keywords all 0.0.5-1 [4300 B]
Get: 149 http://deb.debian.org/debian unstable/main amd64 ruby-mustermann all 3.0.0-2 [37.7 kB]
Get: 150 http://deb.debian.org/debian unstable/main amd64 ruby-open4 all 1.3.4-3 [14.5 kB]
Get: 151 http://deb.debian.org/debian unstable/main amd64 ruby-rack all 3.0.8-4 [93.6 kB]
Get: 152 http://deb.debian.org/debian unstable/main amd64 ruby-rack-protection all 4.1.1-5 [41.8 kB]
Get: 153 http://deb.debian.org/debian unstable/main amd64 ruby-rack-session all 2.0.0-3 [12.3 kB]
Get: 154 http://deb.debian.org/debian unstable/main amd64 ruby-rackup all 2.1.0-4 [12.7 kB]
Get: 155 http://deb.debian.org/debian unstable/main amd64 ruby-raindrops amd64 0.20.0-2+b1 [29.4 kB]
Get: 156 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-support all 3.13.0c0e0m0s1-2 [28.5 kB]
Get: 157 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-core all 3.13.0c0e0m0s1-2 [164 kB]
Get: 158 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-expectations all 3.13.0c0e0m0s1-2 [90.2 kB]
Get: 159 http://deb.debian.org/debian unstable/main amd64 ruby-rspec-mocks all 3.13.0c0e0m0s1-2 [81.3 kB]
Get: 160 http://deb.debian.org/debian unstable/main amd64 ruby-rspec all 3.13.0c0e0m0s1-2 [5184 B]
Get: 161 http://deb.debian.org/debian unstable/main amd64 ruby-shindo all 0.3.10-2 [12.0 kB]
Get: 162 http://deb.debian.org/debian unstable/main amd64 ruby-tilt all 2.4.0-3 [32.2 kB]
Get: 163 http://deb.debian.org/debian unstable/main amd64 ruby-sinatra all 4.1.1-5 [122 kB]
Get: 164 http://deb.debian.org/debian unstable/main amd64 ruby-sinatra-contrib all 4.1.1-5 [54.8 kB]
Get: 165 http://deb.debian.org/debian unstable/main amd64 unicorn amd64 6.1.0+git.20250131.1370f52-1+b1 [97.8 kB]
Fetched 50.4 MB in 5s (9750 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libpython3.13-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 ... 19779 files and directories currently installed.)
Preparing to unpack .../libpython3.13-minimal_3.13.2-1_amd64.deb ...
Unpacking libpython3.13-minimal:amd64 (3.13.2-1) ...
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.13-minimal.
Preparing to unpack .../python3.13-minimal_3.13.2-1_amd64.deb ...
Unpacking python3.13-minimal (3.13.2-1) ...
Setting up libpython3.13-minimal:amd64 (3.13.2-1) ...
Setting up libexpat1:amd64 (2.6.4-1) ...
Setting up python3.13-minimal (3.13.2-1) ...
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 ... 20113 files and directories currently installed.)
Preparing to unpack .../0-python3-minimal_3.13.2-1_amd64.deb ...
Unpacking python3-minimal (3.13.2-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../1-media-types_12.0.0_all.deb ...
Unpacking media-types (12.0.0) ...
Selecting previously unselected package netbase.
Preparing to unpack .../2-netbase_6.4_all.deb ...
Unpacking netbase (6.4) ...
Selecting previously unselected package tzdata.
Preparing to unpack .../3-tzdata_2025a-2_all.deb ...
Unpacking tzdata (2025a-2) ...
Selecting previously unselected package libffi8:amd64.
Preparing to unpack .../4-libffi8_3.4.7-1_amd64.deb ...
Unpacking libffi8:amd64 (3.4.7-1) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../5-readline-common_8.2-6_all.deb ...
Unpacking readline-common (8.2-6) ...
Selecting previously unselected package libreadline8t64:amd64.
Preparing to unpack .../6-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.13-stdlib:amd64.
Preparing to unpack .../7-libpython3.13-stdlib_3.13.2-1_amd64.deb ...
Unpacking libpython3.13-stdlib:amd64 (3.13.2-1) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../8-python3.13_3.13.2-1_amd64.deb ...
Unpacking python3.13 (3.13.2-1) ...
Selecting previously unselected package libpython3-stdlib:amd64.
Preparing to unpack .../9-libpython3-stdlib_3.13.2-1_amd64.deb ...
Unpacking libpython3-stdlib:amd64 (3.13.2-1) ...
Setting up python3-minimal (3.13.2-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 ... 21123 files and directories currently installed.)
Preparing to unpack .../000-python3_3.13.2-1_amd64.deb ...
Unpacking python3 (3.13.2-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.4.1-1_amd64.deb ...
Unpacking openssl (3.4.1-1) ...
Selecting previously unselected package ca-certificates.
Preparing to unpack .../003-ca-certificates_20241223_all.deb ...
Unpacking ca-certificates (20241223) ...
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.23.1-1_amd64.deb ...
Unpacking gettext-base (0.23.1-1) ...
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-7_amd64.deb ...
Unpacking groff-base (1.23.0-7) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../010-bsdextrautils_2.40.4-5_amd64.deb ...
Unpacking bsdextrautils (2.40.4-5) ...
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-5_amd64.deb ...
Unpacking m4 (1.4.19-5) ...
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.17-3_all.deb ...
Unpacking automake (1:1.17-3) ...
Selecting previously unselected package autopoint.
Preparing to unpack .../017-autopoint_0.23.1-1_all.deb ...
Unpacking autopoint (0.23.1-1) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../018-libdebhelper-perl_13.24.1_all.deb ...
Unpacking libdebhelper-perl (13.24.1) ...
Selecting previously unselected package libtool.
Preparing to unpack .../019-libtool_2.5.4-3_all.deb ...
Unpacking libtool (2.5.4-3) ...
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.1-2_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.1-2) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../023-dh-strip-nondeterminism_1.14.1-2_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.1-2) ...
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 libunistring5:amd64.
Preparing to unpack .../026-libunistring5_1.3-1_amd64.deb ...
Unpacking libunistring5:amd64 (1.3-1) ...
Selecting previously unselected package libicu72:amd64.
Preparing to unpack .../027-libicu72_72.1-6_amd64.deb ...
Unpacking libicu72:amd64 (72.1-6) ...
Selecting previously unselected package libxml2:amd64.
Preparing to unpack .../028-libxml2_2.12.7+dfsg+really2.9.14-0.2+b2_amd64.deb ...
Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b2) ...
Selecting previously unselected package gettext.
Preparing to unpack .../029-gettext_0.23.1-1_amd64.deb ...
Unpacking gettext (0.23.1-1) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../030-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 .../031-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../032-debhelper_13.24.1_all.deb ...
Unpacking debhelper (13.24.1) ...
Selecting previously unselected package libgpg-error0:amd64.
Preparing to unpack .../033-libgpg-error0_1.51-3_amd64.deb ...
Unpacking libgpg-error0:amd64 (1.51-3) ...
Selecting previously unselected package libassuan9:amd64.
Preparing to unpack .../034-libassuan9_3.0.1-2_amd64.deb ...
Unpacking libassuan9:amd64 (3.0.1-2) ...
Selecting previously unselected package libgcrypt20:amd64.
Preparing to unpack .../035-libgcrypt20_1.11.0-7_amd64.deb ...
Unpacking libgcrypt20:amd64 (1.11.0-7) ...
Selecting previously unselected package gpgconf.
Preparing to unpack .../036-gpgconf_2.2.46-2_amd64.deb ...
Unpacking gpgconf (2.2.46-2) ...
Selecting previously unselected package libidn2-0:amd64.
Preparing to unpack .../037-libidn2-0_2.3.7-2+b1_amd64.deb ...
Unpacking libidn2-0:amd64 (2.3.7-2+b1) ...
Selecting previously unselected package libp11-kit0:amd64.
Preparing to unpack .../038-libp11-kit0_0.25.5-3_amd64.deb ...
Unpacking libp11-kit0:amd64 (0.25.5-3) ...
Selecting previously unselected package libtasn1-6:amd64.
Preparing to unpack .../039-libtasn1-6_4.20.0-2_amd64.deb ...
Unpacking libtasn1-6:amd64 (4.20.0-2) ...
Selecting previously unselected package libgnutls30t64:amd64.
Preparing to unpack .../040-libgnutls30t64_3.8.9-2_amd64.deb ...
Unpacking libgnutls30t64:amd64 (3.8.9-2) ...
Selecting previously unselected package libksba8:amd64.
Preparing to unpack .../041-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 .../042-libsasl2-modules-db_2.1.28+dfsg1-8+b1_amd64.deb ...
Unpacking libsasl2-modules-db:amd64 (2.1.28+dfsg1-8+b1) ...
Selecting previously unselected package libsasl2-2:amd64.
Preparing to unpack .../043-libsasl2-2_2.1.28+dfsg1-8+b1_amd64.deb ...
Unpacking libsasl2-2:amd64 (2.1.28+dfsg1-8+b1) ...
Selecting previously unselected package libldap2:amd64.
Preparing to unpack .../044-libldap2_2.6.9+dfsg-1_amd64.deb ...
Unpacking libldap2:amd64 (2.6.9+dfsg-1) ...
Selecting previously unselected package libnpth0t64:amd64.
Preparing to unpack .../045-libnpth0t64_1.8-2_amd64.deb ...
Unpacking libnpth0t64:amd64 (1.8-2) ...
Selecting previously unselected package dirmngr.
Preparing to unpack .../046-dirmngr_2.2.46-2_amd64.deb ...
Unpacking dirmngr (2.2.46-2) ...
Selecting previously unselected package gnupg-l10n.
Preparing to unpack .../047-gnupg-l10n_2.2.46-2_all.deb ...
Unpacking gnupg-l10n (2.2.46-2) ...
Selecting previously unselected package gpg.
Preparing to unpack .../048-gpg_2.2.46-2_amd64.deb ...
Unpacking gpg (2.2.46-2) ...
Selecting previously unselected package pinentry-curses.
Preparing to unpack .../049-pinentry-curses_1.3.1-2_amd64.deb ...
Unpacking pinentry-curses (1.3.1-2) ...
Selecting previously unselected package gpg-agent.
Preparing to unpack .../050-gpg-agent_2.2.46-2_amd64.deb ...
Unpacking gpg-agent (2.2.46-2) ...
Selecting previously unselected package gpgsm.
Preparing to unpack .../051-gpgsm_2.2.46-2_amd64.deb ...
Unpacking gpgsm (2.2.46-2) ...
Selecting previously unselected package gnupg.
Preparing to unpack .../052-gnupg_2.2.46-2_all.deb ...
Unpacking gnupg (2.2.46-2) ...
Selecting previously unselected package gpgv.
Preparing to unpack .../053-gpgv_2.2.46-2_amd64.deb ...
Unpacking gpgv (2.2.46-2) ...
Selecting previously unselected package sopv-gpgv.
Preparing to unpack .../054-sopv-gpgv_0.1.1-1_all.deb ...
Unpacking sopv-gpgv (0.1.1-1) ...
Selecting previously unselected package libfile-dirlist-perl.
Preparing to unpack .../055-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 .../056-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 .../057-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 .../058-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 .../059-libio-pty-perl_1%3a1.20-1+b3_amd64.deb ...
Unpacking libio-pty-perl (1:1.20-1+b3) ...
Selecting previously unselected package libipc-run-perl.
Preparing to unpack .../060-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 .../061-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 .../062-libclass-xsaccessor-perl_1.19-4+b5_amd64.deb ...
Unpacking libclass-xsaccessor-perl (1.19-4+b5) ...
Selecting previously unselected package libb-hooks-op-check-perl:amd64.
Preparing to unpack .../063-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 .../064-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 .../065-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 .../066-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 .../067-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 .../068-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 .../069-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 .../070-libsub-quote-perl_2.006008-1_all.deb ...
Unpacking libsub-quote-perl (2.006008-1) ...
Selecting previously unselected package libmoo-perl.
Preparing to unpack .../071-libmoo-perl_2.005005-1_all.deb ...
Unpacking libmoo-perl (2.005005-1) ...
Selecting previously unselected package libencode-locale-perl.
Preparing to unpack .../072-libencode-locale-perl_1.05-3_all.deb ...
Unpacking libencode-locale-perl (1.05-3) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../073-libtimedate-perl_2.3300-2_all.deb ...
Unpacking libtimedate-perl (2.3300-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../074-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 .../075-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 .../076-libhtml-tagset-perl_3.24-1_all.deb ...
Unpacking libhtml-tagset-perl (3.24-1) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../077-liburi-perl_5.30-1_all.deb ...
Unpacking liburi-perl (5.30-1) ...
Selecting previously unselected package libhtml-parser-perl:amd64.
Preparing to unpack .../078-libhtml-parser-perl_3.83-1+b2_amd64.deb ...
Unpacking libhtml-parser-perl:amd64 (3.83-1+b2) ...
Selecting previously unselected package libhtml-tree-perl.
Preparing to unpack .../079-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 .../080-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 .../081-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 .../082-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 .../083-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 .../084-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 .../085-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 .../086-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 .../087-libnet-ssleay-perl_1.94-3_amd64.deb ...
Unpacking libnet-ssleay-perl:amd64 (1.94-3) ...
Selecting previously unselected package libio-socket-ssl-perl.
Preparing to unpack .../088-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 .../089-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 .../090-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 .../091-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 .../092-libwww-robotrules-perl_6.02-1_all.deb ...
Unpacking libwww-robotrules-perl (6.02-1) ...
Selecting previously unselected package libwww-perl.
Preparing to unpack .../093-libwww-perl_6.77-1_all.deb ...
Unpacking libwww-perl (6.77-1) ...
Selecting previously unselected package patchutils.
Preparing to unpack .../094-patchutils_0.4.2-1_amd64.deb ...
Unpacking patchutils (0.4.2-1) ...
Selecting previously unselected package wdiff.
Preparing to unpack .../095-wdiff_1.2.2-7_amd64.deb ...
Unpacking wdiff (1.2.2-7) ...
Selecting previously unselected package devscripts.
Preparing to unpack .../096-devscripts_2.25.5_all.deb ...
Unpacking devscripts (2.25.5) ...
Selecting previously unselected package rubygems-integration.
Preparing to unpack .../097-rubygems-integration_1.19_all.deb ...
Unpacking rubygems-integration (1.19) ...
Selecting previously unselected package ruby-did-you-mean.
Preparing to unpack .../098-ruby-did-you-mean_1.6.3-2_all.deb ...
Unpacking ruby-did-you-mean (1.6.3-2) ...
Selecting previously unselected package ruby-minitest.
Preparing to unpack .../099-ruby-minitest_5.25.4-2_all.deb ...
Unpacking ruby-minitest (5.25.4-2) ...
Selecting previously unselected package ruby-net-telnet.
Preparing to unpack .../100-ruby-net-telnet_0.2.0-1_all.deb ...
Unpacking ruby-net-telnet (0.2.0-1) ...
Selecting previously unselected package ruby-power-assert.
Preparing to unpack .../101-ruby-power-assert_2.0.3-1_all.deb ...
Unpacking ruby-power-assert (2.0.3-1) ...
Selecting previously unselected package ruby-test-unit.
Preparing to unpack .../102-ruby-test-unit_3.6.2-1_all.deb ...
Unpacking ruby-test-unit (3.6.2-1) ...
Selecting previously unselected package ruby-webrick.
Preparing to unpack .../103-ruby-webrick_1.8.1-1_all.deb ...
Unpacking ruby-webrick (1.8.1-1) ...
Selecting previously unselected package ruby-xmlrpc.
Preparing to unpack .../104-ruby-xmlrpc_0.3.3-2_all.deb ...
Unpacking ruby-xmlrpc (0.3.3-2) ...
Selecting previously unselected package libyaml-0-2:amd64.
Preparing to unpack .../105-libyaml-0-2_0.2.5-2_amd64.deb ...
Unpacking libyaml-0-2:amd64 (0.2.5-2) ...
Selecting previously unselected package libruby3.3:amd64.
Preparing to unpack .../106-libruby3.3_3.3.7-1_amd64.deb ...
Unpacking libruby3.3:amd64 (3.3.7-1) ...
Selecting previously unselected package ruby3.3.
Preparing to unpack .../107-ruby3.3_3.3.7-1_amd64.deb ...
Unpacking ruby3.3 (3.3.7-1) ...
Selecting previously unselected package libruby:amd64.
Preparing to unpack .../108-libruby_1%3a3.3+b1_amd64.deb ...
Unpacking libruby:amd64 (1:3.3+b1) ...
Selecting previously unselected package ruby-rubygems.
Preparing to unpack .../109-ruby-rubygems_3.6.3-1_all.deb ...
Unpacking ruby-rubygems (3.6.3-1) ...
Selecting previously unselected package ruby.
Preparing to unpack .../110-ruby_1%3a3.3+b1_amd64.deb ...
Unpacking ruby (1:3.3+b1) ...
Selecting previously unselected package rake.
Preparing to unpack .../111-rake_13.2.1-1_all.deb ...
Unpacking rake (13.2.1-1) ...
Selecting previously unselected package gem2deb-test-runner.
Preparing to unpack .../112-gem2deb-test-runner_2.2.5_amd64.deb ...
Unpacking gem2deb-test-runner (2.2.5) ...
Selecting previously unselected package libgmpxx4ldbl:amd64.
Preparing to unpack .../113-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 .../114-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.3-dev:amd64.
Preparing to unpack .../115-ruby3.3-dev_3.3.7-1_amd64.deb ...
Unpacking ruby3.3-dev:amd64 (3.3.7-1) ...
Selecting previously unselected package ruby-all-dev:amd64.
Preparing to unpack .../116-ruby-all-dev_1%3a3.3+b1_amd64.deb ...
Unpacking ruby-all-dev:amd64 (1:3.3+b1) ...
Selecting previously unselected package gem2deb.
Preparing to unpack .../117-gem2deb_2.2.5_amd64.deb ...
Unpacking gem2deb (2.2.5) ...
Selecting previously unselected package ruby-nio4r.
Preparing to unpack .../118-ruby-nio4r_2.7.3-1+b2_amd64.deb ...
Unpacking ruby-nio4r (2.7.3-1+b2) ...
Selecting previously unselected package puma.
Preparing to unpack .../119-puma_6.6.0-2+b1_amd64.deb ...
Unpacking puma (6.6.0-2+b1) ...
Selecting previously unselected package ruby-concurrent.
Preparing to unpack .../120-ruby-concurrent_1.3.4-1_all.deb ...
Unpacking ruby-concurrent (1.3.4-1) ...
Selecting previously unselected package ruby-i18n.
Preparing to unpack .../121-ruby-i18n_1.14.5-1_all.deb ...
Unpacking ruby-i18n (1.14.5-1) ...
Selecting previously unselected package ruby-tzinfo.
Preparing to unpack .../122-ruby-tzinfo_2.0.6-1_all.deb ...
Unpacking ruby-tzinfo (2.0.6-1) ...
Selecting previously unselected package ruby-zeitwerk.
Preparing to unpack .../123-ruby-zeitwerk_2.6.8-1_all.deb ...
Unpacking ruby-zeitwerk (2.6.8-1) ...
Selecting previously unselected package ruby-activesupport.
Preparing to unpack .../124-ruby-activesupport_2%3a6.1.7.3+dfsg-13_all.deb ...
Unpacking ruby-activesupport (2:6.1.7.3+dfsg-13) ...
Selecting previously unselected package ruby-base64.
Preparing to unpack .../125-ruby-base64_0.2.0-2_all.deb ...
Unpacking ruby-base64 (0.2.0-2) ...
Selecting previously unselected package ruby-numerizer.
Preparing to unpack .../126-ruby-numerizer_0.2.0-2_all.deb ...
Unpacking ruby-numerizer (0.2.0-2) ...
Selecting previously unselected package ruby-chronic.
Preparing to unpack .../127-ruby-chronic_0.10.5-3_all.deb ...
Unpacking ruby-chronic (0.10.5-3) ...
Selecting previously unselected package ruby-delorean.
Preparing to unpack .../128-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 .../129-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 .../130-ruby-eventmachine_1.3~pre20220315-df4ab006-5+b2_amd64.deb ...
Unpacking ruby-eventmachine:amd64 (1.3~pre20220315-df4ab006-5+b2) ...
Selecting previously unselected package ruby-formatador.
Preparing to unpack .../131-ruby-formatador_1.1.0-1_all.deb ...
Unpacking ruby-formatador (1.1.0-1) ...
Selecting previously unselected package ruby-kgio.
Preparing to unpack .../132-ruby-kgio_2.11.2-2+b8_amd64.deb ...
Unpacking ruby-kgio (2.11.2-2+b8) ...
Selecting previously unselected package ruby-multi-json.
Preparing to unpack .../133-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 .../134-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 .../135-ruby-mustermann_3.0.0-2_all.deb ...
Unpacking ruby-mustermann (3.0.0-2) ...
Selecting previously unselected package ruby-open4.
Preparing to unpack .../136-ruby-open4_1.3.4-3_all.deb ...
Unpacking ruby-open4 (1.3.4-3) ...
Selecting previously unselected package ruby-rack.
Preparing to unpack .../137-ruby-rack_3.0.8-4_all.deb ...
Unpacking ruby-rack (3.0.8-4) ...
Selecting previously unselected package ruby-rack-protection.
Preparing to unpack .../138-ruby-rack-protection_4.1.1-5_all.deb ...
Unpacking ruby-rack-protection (4.1.1-5) ...
Selecting previously unselected package ruby-rack-session.
Preparing to unpack .../139-ruby-rack-session_2.0.0-3_all.deb ...
Unpacking ruby-rack-session (2.0.0-3) ...
Selecting previously unselected package ruby-rackup.
Preparing to unpack .../140-ruby-rackup_2.1.0-4_all.deb ...
Unpacking ruby-rackup (2.1.0-4) ...
Selecting previously unselected package ruby-raindrops:amd64.
Preparing to unpack .../141-ruby-raindrops_0.20.0-2+b1_amd64.deb ...
Unpacking ruby-raindrops:amd64 (0.20.0-2+b1) ...
Selecting previously unselected package ruby-rspec-support.
Preparing to unpack .../142-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 .../143-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 .../144-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 .../145-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 .../146-ruby-rspec_3.13.0c0e0m0s1-2_all.deb ...
Unpacking ruby-rspec (3.13.0c0e0m0s1-2) ...
Selecting previously unselected package ruby-shindo.
Preparing to unpack .../147-ruby-shindo_0.3.10-2_all.deb ...
Unpacking ruby-shindo (0.3.10-2) ...
Selecting previously unselected package ruby-tilt.
Preparing to unpack .../148-ruby-tilt_2.4.0-3_all.deb ...
Unpacking ruby-tilt (2.4.0-3) ...
Selecting previously unselected package ruby-sinatra.
Preparing to unpack .../149-ruby-sinatra_4.1.1-5_all.deb ...
Unpacking ruby-sinatra (4.1.1-5) ...
Selecting previously unselected package ruby-sinatra-contrib.
Preparing to unpack .../150-ruby-sinatra-contrib_4.1.1-5_all.deb ...
Unpacking ruby-sinatra-contrib (4.1.1-5) ...
Selecting previously unselected package unicorn.
Preparing to unpack .../151-unicorn_6.1.0+git.20250131.1370f52-1+b1_amd64.deb ...
Unpacking unicorn (6.1.0+git.20250131.1370f52-1+b1) ...
Setting up media-types (12.0.0) ...
Setting up libpipeline1:amd64 (1.5.8-1) ...
Setting up wdiff (1.2.2-7) ...
Setting up libfile-which-perl (1.27-2) ...
Setting up libnpth0t64:amd64 (1.8-2) ...
Setting up ruby-ruby2-keywords (0.0.5-1) ...
Setting up libicu72:amd64 (72.1-6) ...
Setting up ruby-mustermann (3.0.0-2) ...
Setting up bsdextrautils (2.40.4-5) ...
Setting up libgpg-error0:amd64 (1.51-3) ...
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 ruby-power-assert (2.0.3-1) ...
Setting up libio-pty-perl (1:1.20-1+b3) ...
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-2) ...
Setting up libhtml-tagset-perl (3.24-1) ...
Setting up libdebhelper-perl (13.24.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.23.1-1) ...
Setting up m4 (1.4.19-5) ...
Setting up libgcrypt20:amd64 (1.11.0-7) ...
Setting up libencode-locale-perl (1.05-3) ...
Setting up file (1:5.45-3+b1) ...
Setting up ruby-concurrent (1.3.4-1) ...
Setting up libelf1t64:amd64 (0.192-4) ...
Setting up libsasl2-modules-db:amd64 (2.1.28+dfsg1-8+b1) ...
Setting up tzdata (2025a-2) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Fri Feb 28 09:31:51 UTC 2025.
Universal Time is now:  Fri Feb 28 09:31:51 UTC 2025.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up ruby-minitest (5.25.4-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up libgmpxx4ldbl:amd64 (2:6.3.0+dfsg-3) ...
Setting up ruby-test-unit (3.6.2-1) ...
Setting up gnupg-l10n (2.2.46-2) ...
Setting up ruby-net-telnet (0.2.0-1) ...
Setting up ruby-base64 (0.2.0-2) ...
Setting up libunistring5:amd64 (1.3-1) ...
Setting up libio-html-perl (1.004-3) ...
Setting up autopoint (0.23.1-1) ...
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 libsasl2-2:amd64 (2.1.28+dfsg1-8+b1) ...
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 libffi8:amd64 (3.4.7-1) ...
Setting up dwz (0.15-1+b1) ...
Setting up sensible-utils (0.0.24) ...
Setting up gpgv (2.2.46-2) ...
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 libtasn1-6:amd64 (4.20.0-2) ...
Setting up netbase (6.4) ...
Setting up libsub-quote-perl (2.006008-1) ...
Setting up libclass-xsaccessor-perl (1.19-4+b5) ...
Setting up ruby-did-you-mean (1.6.3-2) ...
Setting up libfile-dirlist-perl (0.05-3) ...
Setting up libfile-homedir-perl (1.006-2) ...
Setting up openssl (3.4.1-1) ...
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+b2) ...
Setting up ruby-zeitwerk (2.6.8-1) ...
Setting up libldap2:amd64 (2.6.9+dfsg-1) ...
Setting up liburi-perl (5.30-1) ...
Setting up libfile-touch-perl (0.12-2) ...
Setting up libnet-ssleay-perl:amd64 (1.94-3) ...
Setting up automake (1:1.17-3) ...
update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode
Setting up libksba8:amd64 (1.6.7-2+b1) ...
Setting up pinentry-curses (1.3.1-2) ...
Setting up libfile-stripnondeterminism-perl (1.14.1-2) ...
Setting up libhttp-date-perl (6.06-1) ...
Setting up gettext (0.23.1-1) ...
Setting up libgmp-dev:amd64 (2:6.3.0+dfsg-3) ...
Setting up libfile-listing-perl (6.16-1) ...
Setting up libtool (2.5.4-3) ...
Setting up ruby-tzinfo (2.0.6-1) ...
Setting up libnet-http-perl (6.23-1) ...
Setting up libidn2-0:amd64 (2.3.7-2+b1) ...
Setting up libdevel-callchecker-perl:amd64 (0.009-1+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 (20241223) ...
Updating certificates in /etc/ssl/certs...
152 added, 0 removed; done.
Setting up libp11-kit0:amd64 (0.25.5-3) ...
Setting up libreadline8t64:amd64 (8.2-6) ...
Setting up dh-strip-nondeterminism (1.14.1-2) ...
Setting up libwww-robotrules-perl (6.02-1) ...
Setting up groff-base (1.23.0-7) ...
Setting up libhtml-parser-perl:amd64 (3.83-1+b2) ...
Setting up gpgconf (2.2.46-2) ...
Setting up libpython3.13-stdlib:amd64 (3.13.2-1) ...
Setting up libio-socket-ssl-perl (2.089-1) ...
Setting up gpg (2.2.46-2) ...
Setting up libpython3-stdlib:amd64 (3.13.2-1) ...
Setting up libhttp-message-perl (7.00-2) ...
Setting up libgnutls30t64:amd64 (3.8.9-2) ...
Setting up libhttp-negotiate-perl (6.01-2) ...
Setting up gpg-agent (2.2.46-2) ...
Setting up libhttp-cookies-perl (6.11-1) ...
Setting up python3.13 (3.13.2-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.46-2) ...
Setting up python3 (3.13.2-1) ...
Setting up rubygems-integration (1.19) ...
Setting up sopv-gpgv (0.1.1-1) ...
update-alternatives: using /usr/bin/sopv-gpgv to provide /usr/bin/sopv (sopv) in auto mode
Setting up man-db (2.13.0-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up dirmngr (2.2.46-2) ...
Setting up libmodule-runtime-perl (0.016-2) ...
Setting up gnupg (2.2.46-2) ...
Setting up libimport-into-perl (1.002005-2) ...
Setting up libmoo-perl (2.005005-1) ...
Setting up debhelper (13.24.1) ...
Setting up rake (13.2.1-1) ...
Setting up liblwp-protocol-https-perl (6.14-1) ...
Setting up libwww-perl (6.77-1) ...
Setting up libruby3.3:amd64 (3.3.7-1) ...
Setting up ruby-rubygems (3.6.3-1) ...
Setting up devscripts (2.25.5) ...
Setting up ruby3.3-dev:amd64 (3.3.7-1) ...
Setting up ruby3.3 (3.3.7-1) ...
Setting up libruby:amd64 (1:3.3+b1) ...
Setting up ruby-eventmachine:amd64 (1.3~pre20220315-df4ab006-5+b2) ...
Setting up ruby-raindrops:amd64 (0.20.0-2+b1) ...
Setting up ruby-all-dev:amd64 (1:3.3+b1) ...
Setting up ruby (1:3.3+b1) ...
Setting up ruby-nio4r (2.7.3-1+b2) ...
Setting up ruby-rspec-core (3.13.0c0e0m0s1-2) ...
Setting up ruby-tilt (2.4.0-3) ...
Setting up ruby-numerizer (0.2.0-2) ...
Setting up ruby-kgio (2.11.2-2+b8) ...
Setting up ruby-diff-lcs (1.5.1-1) ...
Setting up puma (6.6.0-2+b1) ...
Setting up ruby-multi-json (1.14.1-2) ...
Setting up ruby-rack (3.0.8-4) ...
Setting up ruby-chronic (0.10.5-3) ...
Setting up ruby-activesupport (2:6.1.7.3+dfsg-13) ...
Setting up gem2deb-test-runner (2.2.5) ...
Setting up ruby-formatador (1.1.0-1) ...
Setting up unicorn (6.1.0+git.20250131.1370f52-1+b1) ...
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-session (2.0.0-3) ...
Setting up ruby-rack-protection (4.1.1-5) ...
Setting up ruby-rackup (2.1.0-4) ...
Setting up ruby-delorean (2.1.0-2.1) ...
Setting up ruby-rspec (3.13.0c0e0m0s1-2) ...
Setting up ruby-sinatra (4.1.1-5) ...
Setting up ruby-sinatra-contrib (4.1.1-5) ...
Processing triggers for libc-bin (2.40-7) ...
Processing triggers for ca-certificates (20241223) ...
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-4_source.changes
dpkg-buildpackage: info: source package ruby-excon
dpkg-buildpackage: info: source version 0.112.0-4
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Sruthi Chandran <srud@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.3             │
└──────────────────────────────────────────────────────────────────────────────┘

/usr/bin/ruby3.3 -S gem build --config-file /dev/null --verbose /tmp/d20250227-301107-yqyhs2/gemspec
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:  You have specified the uri:
  https://github.com/excon/excon
for all of the following keys:
  homepage_uri
  source_code_uri
Only the first one will be shown on rubygems.org
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.3 -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/d20250227-301107-yqyhs2/excon-0.112.0.gem
/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.3 /usr/bin/gem2deb-test-runner

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

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.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -e gem\ \"excon\"

┌──────────────────────────────────────────────────────────────────────────────┐
│ Run tests for ruby3.3 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.3.0:/var/lib/gems/3.3.0:/usr/local/lib/ruby/gems/3.3.0:/usr/lib/ruby/gems/3.3.0:/usr/lib/x86_64-linux-gnu/ruby/gems/3.3.0:/usr/share/rubygems-integration/3.3.0:/usr/share/rubygems-integration/all:/usr/lib/x86_64-linux-gnu/rubygems-integration/3.3.0 ruby3.3 -S rake --rakelibdir /gem2deb-nonexistent -f debian/ruby-tests.rake
sh: 1: git: not found
/usr/bin/ruby3.3 -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
      + 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"]
  
  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

[2025-02-27 21:33:49] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:33:49] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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

[2025-02-27 21:34:10] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:10] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:10] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:13] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:16] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:18] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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

[2025-02-27 21:34:32] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:32] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:32] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:32] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:39] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:41] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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

[2025-02-27 21:34:50] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:34:52] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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

[2025-02-27 21:35:05] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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'

[2025-02-27 21:35:05] ERROR OpenSSL::SSL::SSLError: SSL_read: unexpected eof while reading
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `sysread'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:80:in `fill_rbuff'
	/usr/lib/ruby/3.3.0/openssl/buffering.rb:329: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 []
  
  13 pending and 1457 succeeded in 167.21914475106897 seconds
  
/usr/bin/ruby3.3 -I/usr/share/rubygems-integration/all/gems/rspec-support-3.13.1/lib:/usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/lib /usr/share/rubygems-integration/all/gems/rspec-core-3.13.0/exe/rspec --pattern spec/\*\*/\*_spec.rb -c -f doc -r ./spec/spec_helper.rb

Excon::Error
  #status_errors
    .keys
      returns the pertinent HTTP error numbers
  #new
    returns an Excon::Error
    raises errors for bad URIs
    raises errors for bad paths
  when remaining backwards compatible
    #new
      should raise standard error and catch standard error
      should raise legacy errors and catch legacy errors
      should raise standard error and catch legacy errors
    #status_error
      should raise with status_error() and catch with standard error
      should raise with  status_error() and catch with legacy error
      should raise with legacy status_error() and catch with standard
  when exceptions are rescued
    when :debug_request and :debug_response are switched off
      exception message does not include response or response info
    when :debug_request and :debug_response are switched on
      exception message includes request and response info
    when only :debug_request is turned on
      exception message includes only request info
    when only :debug_response is turned on
      exception message includes only response info

Excon::Test::Server
  when the web server is webrick
    it should behave like a excon test server
      returns an instance
      starts the server
      stops the server
  when the web server is unicorn
    bound to a tcp socket
      it should behave like a excon test server
        returns an instance
        starts the server
        stops the server
    bound to a unix socket
      it should behave like a excon test server
        returns an instance
        starts the server
        stops the server
  when the web server is puma
    it should behave like a excon test server
      returns an instance
      starts the server
      stops the server
  when the web server is a executable
    it should behave like a excon test server
      returns an instance
      starts the server
      stops the server

Excon
  has a version number

Excon::Connection
  when an explicit uri is passed
    .new
      returns an instance
    when :method is :get and :path is /content-length/100
      #request
        returns an Excon::Response
        Excon::Response
          #status
            returns 200
    when nonblock is true and persistent is false
      when :method is get and :path is /content-length/100
        #request
          returns an Excon::Response
          Excon::Response
            #status
              returns 200
              #status returns 200
            #headers
              ["Content-Length"] returns 100
              ["Content-Type"] returns  "text/html;charset=utf-8"
              ['Date'] returns a valid date
              ['Server'] matches /^WEBrick/
              ['Custom'] returns Foo: bar
            #remote_ip
              returns 127.0.0.1
          when tcp_nodelay is true
            #request
              returns an Excon::Response
              Excon::Response
                #body
                  .status
                    #returns 200
        when utilizing deprecated block usage
          #request
            yields with a chunk, remaining length, and total length
            completes with expected data
        when utilizing response_block usage
          #request
            yields a chunk, remaining length, and total_length
            completes with expected data
        when method is :post
          when :path is /body-sink
            when a body parameter is supplied
              returns an Excon::Response
              Excon::Response
                #body
                  equals "5000000"
            when the body parameter is an empty string
              returns an Excon::Response
              Excon::Response
                #body
                  equals "0"
          when :path is /echo
            when a file handle is the body paramter
              Excon::Response
                #body equals "x" * 100 + "\n"
            when a string is the body paramter
              does not change the enconding of the body
              without request_block
                Excon::Response
                  #body equals 'x' * 100)
              when a request_block paramter is supplied
                Excon::Response
                  #body equals'x' * 100
              when a multi-byte string is the body paramter
                Excon::Response
                  #body properly concatenates request+headers and body
    when nonblock is true and persistent is true
      when :method is get and :path is /content-length/100
        #request
          returns an Excon::Response
          Excon::Response
            #status
              returns 200
              #status returns 200
            #headers
              ["Content-Length"] returns 100
              ["Content-Type"] returns  "text/html;charset=utf-8"
              ['Date'] returns a valid date
              ['Server'] matches /^WEBrick/
              ['Custom'] returns Foo: bar
            #remote_ip
              returns 127.0.0.1
          when tcp_nodelay is true
            #request
              returns an Excon::Response
              Excon::Response
                #body
                  .status
                    #returns 200
        when utilizing deprecated block usage
          #request
            yields with a chunk, remaining length, and total length
            completes with expected data
        when utilizing response_block usage
          #request
            yields a chunk, remaining length, and total_length
            completes with expected data
        when method is :post
          when :path is /body-sink
            when a body parameter is supplied
              returns an Excon::Response
              Excon::Response
                #body
                  equals "5000000"
            when the body parameter is an empty string
              returns an Excon::Response
              Excon::Response
                #body
                  equals "0"
          when :path is /echo
            when a file handle is the body paramter
              Excon::Response
                #body equals "x" * 100 + "\n"
            when a string is the body paramter
              does not change the enconding of the body
              without request_block
                Excon::Response
                  #body equals 'x' * 100)
              when a request_block paramter is supplied
                Excon::Response
                  #body equals'x' * 100
              when a multi-byte string is the body paramter
                Excon::Response
                  #body properly concatenates request+headers and body
    when nonblock is false and persistent is true
      when :method is get and :path is /content-length/100
        #request
          returns an Excon::Response
          Excon::Response
            #status
              returns 200
              #status returns 200
            #headers
              ["Content-Length"] returns 100
              ["Content-Type"] returns  "text/html;charset=utf-8"
              ['Date'] returns a valid date
              ['Server'] matches /^WEBrick/
              ['Custom'] returns Foo: bar
            #remote_ip
              returns 127.0.0.1
          when tcp_nodelay is true
            #request
              returns an Excon::Response
              Excon::Response
                #body
                  .status
                    #returns 200
        when utilizing deprecated block usage
          #request
            yields with a chunk, remaining length, and total length
            completes with expected data
        when utilizing response_block usage
          #request
            yields a chunk, remaining length, and total_length
            completes with expected data
        when method is :post
          when :path is /body-sink
            when a body parameter is supplied
              returns an Excon::Response
              Excon::Response
                #body
                  equals "5000000"
            when the body parameter is an empty string
              returns an Excon::Response
              Excon::Response
                #body
                  equals "0"
          when :path is /echo
            when a file handle is the body paramter
              Excon::Response
                #body equals "x" * 100 + "\n"
            when a string is the body paramter
              does not change the enconding of the body
              without request_block
                Excon::Response
                  #body equals 'x' * 100)
              when a request_block paramter is supplied
                Excon::Response
                  #body equals'x' * 100
              when a multi-byte string is the body paramter
                Excon::Response
                  #body properly concatenates request+headers and body
    when nonblock is false and persistent is false
      when :method is get and :path is /content-length/100
        #request
          returns an Excon::Response
          Excon::Response
            #status
              returns 200
              #status returns 200
            #headers
              ["Content-Length"] returns 100
              ["Content-Type"] returns  "text/html;charset=utf-8"
              ['Date'] returns a valid date
              ['Server'] matches /^WEBrick/
              ['Custom'] returns Foo: bar
            #remote_ip
              returns 127.0.0.1
          when tcp_nodelay is true
            #request
              returns an Excon::Response
              Excon::Response
                #body
                  .status
                    #returns 200
        when utilizing deprecated block usage
          #request
            yields with a chunk, remaining length, and total length
            completes with expected data
        when utilizing response_block usage
          #request
            yields a chunk, remaining length, and total_length
            completes with expected data
        when method is :post
          when :path is /body-sink
            when a body parameter is supplied
              returns an Excon::Response
              Excon::Response
                #body
                  equals "5000000"
            when the body parameter is an empty string
              returns an Excon::Response
              Excon::Response
                #body
                  equals "0"
          when :path is /echo
            when a file handle is the body paramter
              Excon::Response
                #body equals "x" * 100 + "\n"
            when a string is the body paramter
              does not change the enconding of the body
              without request_block
                Excon::Response
                  #body equals 'x' * 100)
              when a request_block paramter is supplied
                Excon::Response
                  #body equals'x' * 100
              when a multi-byte string is the body paramter
                Excon::Response
                  #body properly concatenates request+headers and body

Excon::Socket
  passes the dns_timeouts to Resolv::DNS::Config (PENDING: Temporarily skipped with xit)
  when the DNS server is unreachable
    returns a Excon::Error::Socket

Excon
  when dispatching requests
    to a server that does not supply response headers
      when no block is given
        should rescue from an EOFError and return response
      when a block is given
        should rescue from EOFError and return response
    to a server that prematurely aborts the request with no response
      should raise an EOFError

Excon::Socket
  resolv_resolver config reaches Resolv::DNS::Config (PENDING: Temporarily skipped with xit)
  when the DNS server is unreachable
    returns a Excon::Error::Socket

Excon::Connection
  blocking connection
    when timeout is not set
      does not error
    when timeout is not triggered
      does not error
    when timeout is triggered
      does not raise
  non-blocking connection
    when timeout is not set
      does not error
    when timeout is not triggered
      does not error
    when timeout is triggered
      returns a request Excon::Error::Timeout
    when read timeout is triggered
      returns a read Excon::Error::Timeout

Excon::Connection
  when speaking to a UNIX socket
    via Excon.new
      accepts the unix:/ URL
    Host header handling
      sends an empty Host= by default
      doesn't overwrite an explicit Host header

Excon::Connection
  validating parameters
    with default middleware
      Connection.new warns on invalid parameter keys
      Connection#request warns on invalid parameter keys
    with custom middleware at instantiation
      Connection.new accepts parameters that are valid for the provided middleware
      Connection.new warns on parameters that are not valid for the provided middleware
      Connection#request accepts parameters that are valid for the provided middleware
      Connection#request warns on parameters that are not valid for the provided middleware
    with custom middleware at request time
      Connection#request accepts parameters that are valid for the provided middleware
      Connection#request warns on parameters that are not valid for the request middleware
      Connection#request warns on parameters from instantiation that are not valid for the request middleware

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Excon::Socket passes the dns_timeouts to Resolv::DNS::Config
     # Temporarily skipped with xit
     # ./spec/requests/dns_timeout_spec.rb:10

  2) Excon::Socket resolv_resolver config reaches Resolv::DNS::Config
     # Temporarily skipped with xit
     # ./spec/requests/resolv_resolver_spec.rb:14

Finished in 29.65 seconds (files took 1.31 seconds to load)
155 examples, 0 failures, 2 pending


┌──────────────────────────────────────────────────────────────────────────────┐
│ dh_ruby --install finished                                                   │
└──────────────────────────────────────────────────────────────────────────────┘

   dh_installdocs -O--buildsystem=ruby
   dh_ruby_fixdocs -O--buildsystem=ruby
   dh_installchangelogs -O--buildsystem=ruby
   dh_installsystemduser -O--buildsystem=ruby
   dh_perl -O--buildsystem=ruby
   dh_link -O--buildsystem=ruby
   dh_strip_nondeterminism -O--buildsystem=ruby
   dh_compress -X.rb -O--buildsystem=ruby
   dh_fixperms -O--buildsystem=ruby
   dh_missing -O--buildsystem=ruby
   dh_ruby_fixdepends -O--buildsystem=ruby
   dh_installdeb -O--buildsystem=ruby
   dh_gencontrol -O--buildsystem=ruby
   dh_md5sums -O--buildsystem=ruby
   dh_builddeb -O--buildsystem=ruby
dpkg-deb: building package 'ruby-excon' in '../ruby-excon_0.112.0-4_all.deb'.
 dpkg-genbuildinfo --build=binary -O../ruby-excon_0.112.0-4_amd64.buildinfo
 dpkg-genchanges --build=binary -O../ruby-excon_0.112.0-4_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
dpkg-genchanges: info: not including original source code in upload
I: copying local configuration
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/265266 and its subdirectories
I: Current time: Thu Feb 27 21:36:43 -12 2025
I: pbuilder-time-stamp: 1740735403
Fri Feb 28 09:36:45 UTC 2025  I: 1st build successful. Starting 2nd build on remote node ionos15-amd64.debian.net.
Fri Feb 28 09:36:45 UTC 2025  I: Preparing to do remote build '2' on ionos15-amd64.debian.net.
Fri Feb 28 09:38:32 UTC 2025  I: Deleting $TMPDIR on ionos15-amd64.debian.net.
Fri Feb 28 09:38:32 UTC 2025  I: ruby-excon_0.112.0-4_amd64.changes:
Format: 1.8
Date: Fri, 31 Jan 2025 15:38:18 +0100
Source: ruby-excon
Binary: ruby-excon
Architecture: all
Version: 0.112.0-4
Distribution: unstable
Urgency: medium
Maintainer: Debian Ruby Team <pkg-ruby-extras-maintainers@lists.alioth.debian.org>
Changed-By: Sruthi Chandran <srud@debian.org>
Description:
 ruby-excon - Ruby library for creating fast, persistent, HTTP(S) connections
Closes: 1094551
Changes:
 ruby-excon (0.112.0-4) unstable; urgency=medium
 .
   * Team upload
   * Add ruby-rackup to builddeps (Closes: #1094551)
   * Set minimum version for ruby-sinatra and ruby-sinatra-contrib
Checksums-Sha1:
 2e41f2d140ae45e8f016340e7f8e41e96a869fc2 175856 ruby-excon_0.112.0-4_all.deb
 a8573fc1121aafc77cee5b5f2554253267e18940 8995 ruby-excon_0.112.0-4_amd64.buildinfo
Checksums-Sha256:
 02881df7fde44cc7f519816b24ca294c49fe5bb62a91a3b9198de15d06674b7a 175856 ruby-excon_0.112.0-4_all.deb
 4cff083e592ed714190ae1922da6d33380672aae1df78d2eb4c41cbd8282f1a1 8995 ruby-excon_0.112.0-4_amd64.buildinfo
Files:
 7ee4cc7d2149c56d9a605f7cd49dfe8d 175856 ruby optional ruby-excon_0.112.0-4_all.deb
 da6c1681d42e08ee87b7313b0e33f8db 8995 ruby optional ruby-excon_0.112.0-4_amd64.buildinfo
Fri Feb 28 09:38:33 UTC 2025  I: diffoscope 289 will be used to compare the two builds:
Running as unit: rb-diffoscope-amd64_27-47934.service
# Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/ruby-excon_0.112.0-4.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/ruby-excon_0.112.0-4.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/ruby-excon_0.112.0-4.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/b1/ruby-excon_0.112.0-4_amd64.changes /srv/reproducible-results/rbuild-debian/r-b-build.FdSiZyKC/b2/ruby-excon_0.112.0-4_amd64.changes

## command (total time: 0.000s)
       0.000s      1 call     cmp (internal)

## has_same_content_as (total time: 0.000s)
       0.000s      1 call     diffoscope.comparators.binary.FilesystemFile

## main (total time: 0.003s)
       0.003s      2 calls    outputs
       0.000s      1 call     cleanup
Finished with result: success
Main processes terminated with: code=exited/status=0
Service runtime: 225ms
CPU time consumed: 226ms
Fri Feb 28 09:38:34 UTC 2025  I: diffoscope 289 found no differences in the changes files, and a .buildinfo file also exists.
Fri Feb 28 09:38:34 UTC 2025  I: ruby-excon from unstable built successfully and reproducibly on amd64.
Fri Feb 28 09:38:35 UTC 2025  I: Submitting .buildinfo files to external archives:
Fri Feb 28 09:38:35 UTC 2025  I: Submitting 12K	b1/ruby-excon_0.112.0-4_amd64.buildinfo.asc
Fri Feb 28 09:38:35 UTC 2025  I: Submitting 12K	b2/ruby-excon_0.112.0-4_amd64.buildinfo.asc
Fri Feb 28 09:38:36 UTC 2025  I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit.
Fri Feb 28 09:38:36 UTC 2025  I: Done submitting .buildinfo files.
Fri Feb 28 09:38:36 UTC 2025  I: Removing signed ruby-excon_0.112.0-4_amd64.buildinfo.asc files:
removed './b1/ruby-excon_0.112.0-4_amd64.buildinfo.asc'
removed './b2/ruby-excon_0.112.0-4_amd64.buildinfo.asc'