Diff of the two buildlogs: -- --- b1/build.log 2021-06-08 17:48:35.936344007 +0000 +++ b2/build.log 2021-06-08 17:52:27.531325734 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Jul 11 12:10:55 -12 2022 -I: pbuilder-time-stamp: 1657584655 +I: Current time: Wed Jun 9 07:48:39 +14 2021 +I: pbuilder-time-stamp: 1623174519 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,8 @@ I: copying [./ruby-http_4.4.1-4.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.HBloP04p/trustedkeys.kbx': General error -gpgv: Signature made Wed Jul 1 06:39:01 2020 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.ataoyqT3/trustedkeys.kbx': General error +gpgv: Signature made Thu Jul 2 08:39:01 2020 +14 gpgv: using RSA key 8ED6C3F8BAC9DB7FC130A870F823A2729883C97C gpgv: issuer "kanashiro@debian.org" gpgv: Can't check signature: No public key @@ -33,137 +33,171 @@ dpkg-source: info: applying 0004-Skip-failing-flaky-test.patch I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/21867/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/D01_modify_environment starting +debug: Running on ionos2-i386. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=18' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='i386' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=10' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='42d4d5a038ae451ba590dc0f9971354c' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='21867' - PS1='# ' - PS2='> ' + INVOCATION_ID=80fd69cfcc62485cad25e4a180ebba59 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=15462 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/tmp.JORSdQ7ksF/pbuilderrc_7eQh --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.JORSdQ7ksF/b1 --logfile b1/build.log ruby-http_4.4.1-4.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.JORSdQ7ksF/pbuilderrc_A4g0 --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.JORSdQ7ksF/b2 --logfile b2/build.log --extrapackages usrmerge ruby-http_4.4.1-4.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos16-i386 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux + Linux i-capture-the-hostname 4.19.0-16-686-pae #1 SMP Debian 4.19.181-1 (2021-03-19) i686 GNU/Linux I: ls -l /bin - total 5776 - -rwxr-xr-x 1 root root 1367848 Feb 24 2021 bash - -rwxr-xr-x 3 root root 38280 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 38280 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 38280 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 17768 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 38824 Sep 22 2020 cat - -rwxr-xr-x 1 root root 71624 Sep 22 2020 chgrp - -rwxr-xr-x 1 root root 67528 Sep 22 2020 chmod - -rwxr-xr-x 1 root root 75752 Sep 22 2020 chown - -rwxr-xr-x 1 root root 157960 Sep 22 2020 cp - -rwxr-xr-x 1 root root 128724 Dec 10 2020 dash - -rwxr-xr-x 1 root root 124904 Sep 22 2020 date - -rwxr-xr-x 1 root root 92172 Sep 22 2020 dd - -rwxr-xr-x 1 root root 100752 Sep 22 2020 df - -rwxr-xr-x 1 root root 153964 Sep 22 2020 dir - -rwxr-xr-x 1 root root 83644 Feb 7 2021 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 34664 Sep 22 2020 echo - -rwxr-xr-x 1 root root 28 Nov 9 2020 egrep - -rwxr-xr-x 1 root root 34664 Sep 22 2020 false - -rwxr-xr-x 1 root root 28 Nov 9 2020 fgrep - -rwxr-xr-x 1 root root 71928 Feb 7 2021 findmnt - -rwsr-xr-x 1 root root 30112 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 210488 Nov 9 2020 grep - -rwxr-xr-x 2 root root 2346 Mar 2 2021 gunzip - -rwxr-xr-x 1 root root 6376 Mar 2 2021 gzexe - -rwxr-xr-x 1 root root 100952 Mar 2 2021 gzip - -rwxr-xr-x 1 root root 21916 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 83980 Sep 22 2020 ln - -rwxr-xr-x 1 root root 55572 Feb 7 2020 login - -rwxr-xr-x 1 root root 153964 Sep 22 2020 ls - -rwxr-xr-x 1 root root 153124 Feb 7 2021 lsblk - -rwxr-xr-x 1 root root 96328 Sep 22 2020 mkdir - -rwxr-xr-x 1 root root 79912 Sep 22 2020 mknod - -rwxr-xr-x 1 root root 47048 Sep 22 2020 mktemp - -rwxr-xr-x 1 root root 58920 Feb 7 2021 more - -rwsr-xr-x 1 root root 50720 Feb 7 2021 mount - -rwxr-xr-x 1 root root 13856 Feb 7 2021 mountpoint - -rwxr-xr-x 1 root root 157996 Sep 22 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 18 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 38824 Sep 22 2020 pwd - lrwxrwxrwx 1 root root 4 Feb 24 2021 rbash -> bash - -rwxr-xr-x 1 root root 46984 Sep 22 2020 readlink - -rwxr-xr-x 1 root root 75720 Sep 22 2020 rm - -rwxr-xr-x 1 root root 46984 Sep 22 2020 rmdir - -rwxr-xr-x 1 root root 22292 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 125036 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 11 03:46 sh -> dash - -rwxr-xr-x 1 root root 34696 Sep 22 2020 sleep - -rwxr-xr-x 1 root root 83880 Sep 22 2020 stty - -rwsr-xr-x 1 root root 79396 Feb 7 2021 su - -rwxr-xr-x 1 root root 34696 Sep 22 2020 sync - -rwxr-xr-x 1 root root 602584 Feb 16 2021 tar - -rwxr-xr-x 1 root root 13860 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 108520 Sep 22 2020 touch - -rwxr-xr-x 1 root root 34664 Sep 22 2020 true - -rwxr-xr-x 1 root root 17768 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 30236 Feb 7 2021 umount - -rwxr-xr-x 1 root root 34664 Sep 22 2020 uname - -rwxr-xr-x 2 root root 2346 Mar 2 2021 uncompress - -rwxr-xr-x 1 root root 153964 Sep 22 2020 vdir - -rwxr-xr-x 1 root root 63024 Feb 7 2021 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Mar 2 2021 zcat - -rwxr-xr-x 1 root root 1678 Mar 2 2021 zcmp - -rwxr-xr-x 1 root root 5880 Mar 2 2021 zdiff - -rwxr-xr-x 1 root root 29 Mar 2 2021 zegrep - -rwxr-xr-x 1 root root 29 Mar 2 2021 zfgrep - -rwxr-xr-x 1 root root 2081 Mar 2 2021 zforce - -rwxr-xr-x 1 root root 7585 Mar 2 2021 zgrep - -rwxr-xr-x 1 root root 2206 Mar 2 2021 zless - -rwxr-xr-x 1 root root 1842 Mar 2 2021 zmore - -rwxr-xr-x 1 root root 4553 Mar 2 2021 znew -I: user script /srv/workspace/pbuilder/21867/tmp/hooks/D02_print_environment finished + total 5780 + -rwxr-xr-x 1 root root 1367848 Feb 25 10:57 bash + -rwxr-xr-x 3 root root 38280 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 38280 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 38280 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 17768 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 38824 Sep 23 2020 cat + -rwxr-xr-x 1 root root 71624 Sep 23 2020 chgrp + -rwxr-xr-x 1 root root 67528 Sep 23 2020 chmod + -rwxr-xr-x 1 root root 75752 Sep 23 2020 chown + -rwxr-xr-x 1 root root 157960 Sep 23 2020 cp + -rwxr-xr-x 1 root root 128724 Dec 11 03:23 dash + -rwxr-xr-x 1 root root 124904 Sep 23 2020 date + -rwxr-xr-x 1 root root 92172 Sep 23 2020 dd + -rwxr-xr-x 1 root root 100752 Sep 23 2020 df + -rwxr-xr-x 1 root root 153964 Sep 23 2020 dir + -rwxr-xr-x 1 root root 83644 Feb 8 04:38 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 34664 Sep 23 2020 echo + -rwxr-xr-x 1 root root 28 Nov 10 2020 egrep + -rwxr-xr-x 1 root root 34664 Sep 23 2020 false + -rwxr-xr-x 1 root root 28 Nov 10 2020 fgrep + -rwxr-xr-x 1 root root 71928 Feb 8 04:38 findmnt + -rwsr-xr-x 1 root root 30112 Feb 27 06:12 fusermount + -rwxr-xr-x 1 root root 210488 Nov 10 2020 grep + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 gunzip + -rwxr-xr-x 1 root root 6376 Mar 3 13:30 gzexe + -rwxr-xr-x 1 root root 100952 Mar 3 13:30 gzip + -rwxr-xr-x 1 root root 21916 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 83980 Sep 23 2020 ln + -rwxr-xr-x 1 root root 55572 Feb 8 2020 login + -rwxr-xr-x 1 root root 153964 Sep 23 2020 ls + -rwxr-xr-x 1 root root 153124 Feb 8 04:38 lsblk + -rwxr-xr-x 1 root root 96328 Sep 23 2020 mkdir + -rwxr-xr-x 1 root root 79912 Sep 23 2020 mknod + -rwxr-xr-x 1 root root 47048 Sep 23 2020 mktemp + -rwxr-xr-x 1 root root 58920 Feb 8 04:38 more + -rwsr-xr-x 1 root root 50720 Feb 8 04:38 mount + -rwxr-xr-x 1 root root 13856 Feb 8 04:38 mountpoint + -rwxr-xr-x 1 root root 157996 Sep 23 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 19 05:38 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 38824 Sep 23 2020 pwd + lrwxrwxrwx 1 root root 4 Feb 25 10:57 rbash -> bash + -rwxr-xr-x 1 root root 46984 Sep 23 2020 readlink + -rwxr-xr-x 1 root root 75720 Sep 23 2020 rm + -rwxr-xr-x 1 root root 46984 Sep 23 2020 rmdir + -rwxr-xr-x 1 root root 22292 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 125036 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Jun 9 07:50 sh -> bash + lrwxrwxrwx 1 root root 4 Jun 8 23:27 sh.distrib -> dash + -rwxr-xr-x 1 root root 34696 Sep 23 2020 sleep + -rwxr-xr-x 1 root root 83880 Sep 23 2020 stty + -rwsr-xr-x 1 root root 79396 Feb 8 04:38 su + -rwxr-xr-x 1 root root 34696 Sep 23 2020 sync + -rwxr-xr-x 1 root root 602584 Feb 17 23:55 tar + -rwxr-xr-x 1 root root 13860 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 108520 Sep 23 2020 touch + -rwxr-xr-x 1 root root 34664 Sep 23 2020 true + -rwxr-xr-x 1 root root 17768 Feb 27 06:12 ulockmgr_server + -rwsr-xr-x 1 root root 30236 Feb 8 04:38 umount + -rwxr-xr-x 1 root root 34664 Sep 23 2020 uname + -rwxr-xr-x 2 root root 2346 Mar 3 13:30 uncompress + -rwxr-xr-x 1 root root 153964 Sep 23 2020 vdir + -rwxr-xr-x 1 root root 63024 Feb 8 04:38 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Mar 3 13:30 zcat + -rwxr-xr-x 1 root root 1678 Mar 3 13:30 zcmp + -rwxr-xr-x 1 root root 5880 Mar 3 13:30 zdiff + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zegrep + -rwxr-xr-x 1 root root 29 Mar 3 13:30 zfgrep + -rwxr-xr-x 1 root root 2081 Mar 3 13:30 zforce + -rwxr-xr-x 1 root root 7585 Mar 3 13:30 zgrep + -rwxr-xr-x 1 root root 2206 Mar 3 13:30 zless + -rwxr-xr-x 1 root root 1842 Mar 3 13:30 zmore + -rwxr-xr-x 1 root root 4553 Mar 3 13:30 znew +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -383,7 +417,7 @@ Get: 162 http://deb.debian.org/debian bullseye/main i386 ruby-rspec-mocks all 3.9.0c2e2m1s3-2 [81.4 kB] Get: 163 http://deb.debian.org/debian bullseye/main i386 ruby-rspec all 3.9.0c2e2m1s3-2 [8348 B] Get: 164 http://deb.debian.org/debian bullseye/main i386 ruby-rspec-its all 1.3.0-1 [6864 B] -Fetched 46.7 MB in 2s (19.4 MB/s) +Fetched 46.7 MB in 8s (5533 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (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 ... 19675 files and directories currently installed.) @@ -1063,8 +1097,44 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +The following additional packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl +The following NEW packages will be installed: + libfile-find-rule-perl libnumber-compare-perl libtext-glob-perl usrmerge +0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. +Need to get 59.5 kB of archives. +After this operation, 157 kB of additional disk space will be used. +Get:1 http://deb.debian.org/debian bullseye/main i386 libnumber-compare-perl all 0.03-1.1 [6956 B] +Get:2 http://deb.debian.org/debian bullseye/main i386 libtext-glob-perl all 0.11-1 [8888 B] +Get:3 http://deb.debian.org/debian bullseye/main i386 libfile-find-rule-perl all 0.34-1 [30.6 kB] +Get:4 http://deb.debian.org/debian bullseye/main i386 usrmerge all 25 [13.0 kB] +debconf: delaying package configuration, since apt-utils is not installed +Fetched 59.5 kB in 0s (2880 kB/s) +Selecting previously unselected package libnumber-compare-perl. +(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 ... 28003 files and directories currently installed.) +Preparing to unpack .../libnumber-compare-perl_0.03-1.1_all.deb ... +Unpacking libnumber-compare-perl (0.03-1.1) ... +Selecting previously unselected package libtext-glob-perl. +Preparing to unpack .../libtext-glob-perl_0.11-1_all.deb ... +Unpacking libtext-glob-perl (0.11-1) ... +Selecting previously unselected package libfile-find-rule-perl. +Preparing to unpack .../libfile-find-rule-perl_0.34-1_all.deb ... +Unpacking libfile-find-rule-perl (0.34-1) ... +Selecting previously unselected package usrmerge. +Preparing to unpack .../archives/usrmerge_25_all.deb ... +Unpacking usrmerge (25) ... +Setting up libtext-glob-perl (0.11-1) ... +Setting up libnumber-compare-perl (0.03-1.1) ... +Setting up libfile-find-rule-perl (0.34-1) ... +Setting up usrmerge (25) ... +The system has been successfully converted. +Processing triggers for man-db (2.9.4-2) ... +Not building database; man-db/auto-update is not 'true'. I: Building the package -I: Running cd /build/ruby-http-4.4.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b +I: Running cd /build/ruby-http-4.4.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b dpkg-buildpackage: info: source package ruby-http dpkg-buildpackage: info: source version 4.4.1-4 dpkg-buildpackage: info: source distribution unstable @@ -1100,39 +1170,39 @@ install -d /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby install -D -m644 /build/ruby-http-4.4.1/lib/http.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/request.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/request/writer.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request/writer.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/request/body.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request/body.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/content_type.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/content_type.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/response.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/options.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/options.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/redirector.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/redirector.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/client.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/client.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/uri.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/uri.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/headers.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/version.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/version.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/headers/known.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers/known.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/headers/mixin.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers/mixin.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type/json.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type/json.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type/adapter.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type/adapter.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/redirector.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/redirector.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/features/auto_inflate.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/auto_inflate.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/features/logging.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/logging.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/features/normalize_uri.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/normalize_uri.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/features/instrumentation.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/instrumentation.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/features/auto_deflate.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/auto_deflate.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/request/body.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request/body.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/request/writer.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request/writer.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/timeout/null.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/timeout/null.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/timeout/global.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/timeout/global.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/timeout/per_operation.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/timeout/per_operation.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/timeout/global.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/timeout/global.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/errors.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/errors.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/headers/mixin.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers/mixin.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/headers/known.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers/known.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/options.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/options.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/feature.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/feature.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/response/inflater.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/inflater.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/chainable.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/chainable.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/client.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/client.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/response.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/content_type.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/content_type.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/uri.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/uri.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/request.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/request.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/response/status/reasons.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/status/reasons.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/response/parser.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/parser.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/response/status.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/status.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/response/body.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/body.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/response/status/reasons.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/status/reasons.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/response/inflater.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/inflater.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/response/status.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/response/status.rb +install -D -m644 /build/ruby-http-4.4.1/lib/http/headers.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/headers.rb install -D -m644 /build/ruby-http-4.4.1/lib/http/connection.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/connection.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/chainable.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/chainable.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type/json.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type/json.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/mime_type/adapter.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/mime_type/adapter.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/errors.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/errors.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/features/instrumentation.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/instrumentation.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/features/logging.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/logging.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/features/auto_inflate.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/auto_inflate.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/features/normalize_uri.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/normalize_uri.rb -install -D -m644 /build/ruby-http-4.4.1/lib/http/features/auto_deflate.rb /build/ruby-http-4.4.1/debian/ruby-http/usr/lib/ruby/vendor_ruby/http/features/auto_deflate.rb ┌──────────────────────────────────────────────────────────────────────────────┐ │ Install Rubygems integration metadata │ @@ -1166,446 +1236,778 @@ All examples were filtered out; ignoring {:focus=>true} -Randomized with seed 14201 - -HTTP::Options merge - supports a Hash - supports another Options - merges as excepted in complex cases - -HTTP::Features::Logging - logging the request - should log the request - logging the response - should log the response - -HTTP::Response - includes HTTP::Headers::Mixin - #parse - with known content type - returns parsed body - with unknown content type - raises HTTP::Error - with explicitly given mime type - ignores mime_type of response - supports MIME type aliases - #flush - flushes body - returns response self-reference - #inspect - is expected to eq "#\"text/plain\"}>" - #connection - returns the connection object used to instantiate the response - to_a - returns a Rack-like array - #chunked? - is expected not to be chunked - when encoding is set to chunked - is expected to be chunked - #content_length - with invalid Content-Length - is expected to be nil - without Content-Length header - is expected to be nil - with Content-Length: 5 - is expected to eq 5 - #cookies - is expected to be a kind of HTTP::CookieJar - contains cookies without domain restriction - does not contains cookies limited to non-requeted uri - contains cookies limited to domain of request uri - charset - with Content-Type: text/html - is expected to be nil - without Content-Type header - is expected to be nil - with Content-Type: text/html; charset=utf-8 - is expected to eq "utf-8" - mime_type - without Content-Type header - is expected to be nil - with Content-Type: text/html; charset=utf-8 - is expected to eq "text/html" - with Content-Type: text/html - is expected to eq "text/html" - -HTTP::Options features - accepts feature name with its options in array - defaults to be empty - accepts plain symbols in array - raises error for not supported features - -HTTP::Options form - may be specified with with_form_data - defaults to nil - -HTTP::Request::Body - #== - when sources are equivalent - returns true - when sources are not equivalent - returns false - when objects are not of the same class - returns false - #each - when body is a pipe - yields chunks of content - when body is nil - yields nothing - when body is a string - yields the string - when body is a non-Enumerable IO - yields chunks of content - when body is an Enumerable IO - yields chunks of content - allows to enumerate multiple times - when body is an Enumerable - yields elements - #source - returns the original object - #initialize - when body is an IO - does not raise an error - when body is a string - does not raise an error - when body is nil - does not raise an error - when body is an Enumerable - does not raise an error - when body is of unrecognized type - raises an error - #size - when body is an IO with size - returns IO size - when body is an Enumerable - raises a RequestError - when body is nil - returns zero - when body is an IO without size - raises a RequestError - when body is a string - returns string bytesize - -HTTP::Options - has reader methods for attributes - coerces to a Hash - -HTTP::URI - sets default ports for HTTP URIs - knows URI schemes - sets default ports for HTTPS URIs - #dup - doesn't share internal value between duplicates - -HTTP::Features::Instrumentation - logging the request - should log the request - logging the response - should log the response - -HTTP::Features::AutoInflate - #wrap_response - when there is no Content-Encoding header - returns original request - for deflate Content-Encoding header - returns a HTTP::Response wrapping the inflated response body - for unknown Content-Encoding header - returns original request - for gzip Content-Encoding header - returns a HTTP::Response wrapping the inflated response body - for x-gzip Content-Encoding header - returns a HTTP::Response wrapping the inflated response body - for identity Content-Encoding header - returns original request - when response has uri - preserves uri in wrapped response - -HTTP::Response::Parser - whole response in one part - parses headers - parses body - response in many parts - parses headers - parses body - -HTTP::Options new - supports a Options instance - with a Hash - coerces :proxy correctly - coerces :response correctly - coerces :form correctly - coerces :headers correctly +Randomized with seed 59474 HTTP::Redirector - #strict - by default - is expected to equal true #max_hops by default is expected to eq 5 #perform - fails with TooManyRedirectsError if max hops reached - returns first non-redirect response + concatenates multiple Location headers fails with EndlessRedirectError if endless loop detected fails with StateError if there were no Location header - concatenates multiple Location headers - following 308 redirect + fails with TooManyRedirectsError if max hops reached + returns first non-redirect response + following 307 redirect follows with original request's verb - following 300 redirect + following 302 redirect with strict mode raises StateError if original request was POST it follows with original verb if it's safe raises StateError if original request was DELETE raises StateError if original request was PUT with non-strict mode - it follows with GET if original request was POST it follows with original verb if it's safe + it follows with GET if original request was POST it follows with GET if original request was DELETE it follows with GET if original request was PUT - following 303 redirect - follows with GET if original request was GET - follows with GET if original request was neither GET nor HEAD - follows with HEAD if original request was HEAD following 301 redirect - with strict mode - raises StateError if original request was DELETE - raises StateError if original request was POST - it follows with original verb if it's safe - raises StateError if original request was PUT with non-strict mode it follows with GET if original request was POST - it follows with original verb if it's safe it follows with GET if original request was PUT it follows with GET if original request was DELETE - following 302 redirect + it follows with original verb if it's safe + with strict mode + raises StateError if original request was PUT + raises StateError if original request was DELETE + it follows with original verb if it's safe + raises StateError if original request was POST + following 308 redirect + follows with original request's verb + following 300 redirect with strict mode raises StateError if original request was POST raises StateError if original request was DELETE it follows with original verb if it's safe raises StateError if original request was PUT with non-strict mode - it follows with GET if original request was DELETE + it follows with GET if original request was POST it follows with GET if original request was PUT + it follows with GET if original request was DELETE it follows with original verb if it's safe - it follows with GET if original request was POST - following 307 redirect - follows with original request's verb + following 303 redirect + follows with HEAD if original request was HEAD + follows with GET if original request was neither GET nor HEAD + follows with GET if original request was GET + #strict + by default + is expected to equal true -HTTP::Client - without timeouts - works - with a per operation timeout - works - connection - of 1 - does not time out - read - of 0 - times out (PENDING: Temporarily skipped with xit) - of 2.5 - does not time out - following redirects - fails if max amount of hops reached - prepends previous request uri scheme and host if needed - fails upon endless redirects - returns response of new location - with non-ASCII URLs - theoretically works like a charm (PENDING: Temporarily skipped with xit) - works like a charm in real world (PENDING: Temporarily skipped with xit) - with a global timeout - errors if reading takes too long - errors if connecting takes too long - it resets state when reusing connections - does not timeout - working with SSL - just works (PENDING: Temporarily skipped with xdescribe) - fails with OpenSSL::SSL::SSLError if host mismatch (PENDING: Temporarily skipped with xdescribe) - with a per operation timeout - works (PENDING: Temporarily skipped with xdescribe) - read - of 2.5 - does not time out (PENDING: Temporarily skipped with xdescribe) - of 0 - times out (PENDING: Temporarily skipped with xit) - connection - of 1 - does not time out (PENDING: Temporarily skipped with xdescribe) - without timeouts - works (PENDING: Temporarily skipped with xdescribe) - with a global timeout - errors if reading takes too long (PENDING: Temporarily skipped with xdescribe) - errors if connecting takes too long (PENDING: Temporarily skipped with xdescribe) - it resets state when reusing connections - does not timeout (PENDING: Temporarily skipped with xdescribe) - with SSL options instead of a context - just works (PENDING: Temporarily skipped with xdescribe) - connection reuse - when enabled - re-uses the socket (PENDING: Temporarily skipped with xdescribe) - without a host - infers host from persistent config (PENDING: Temporarily skipped with xdescribe) - with a change in host - errors (PENDING: Temporarily skipped with xdescribe) - with a socket issue - transparently reopens (PENDING: Temporarily skipped with xdescribe) - when trying to read a stale body - errors (PENDING: Temporarily skipped with xdescribe) - on a mixed state - re-opens the connection (PENDING: Temporarily skipped with xdescribe) - when reading a cached body - succeeds (PENDING: Temporarily skipped with xdescribe) - when disabled - opens new sockets (PENDING: Temporarily skipped with xdescribe) - connection reuse - when disabled - opens new sockets - when enabled - re-uses the socket - when reading a cached body - succeeds - when trying to read a stale body - errors - with a socket issue - transparently reopens - with a change in host - errors - on a mixed state - re-opens the connection - without a host - infers host from persistent config - #request - with explicitly given `Host` header - keeps `Host` header as is (PENDING: Temporarily skipped with xit) - when :auto_deflate was specified - deletes Content-Length header - sets Content-Encoding header - and there is no body - doesn't set Content-Encoding header - with non-ASCII URLs - works like a charm in real world (PENDING: Temporarily skipped with xit) - theoretically works like a charm (PENDING: Temporarily skipped with xit) - #perform - calls finish_response once body was fully flushed - when server fully flushes response in one chunk - properly reads body - with HEAD request - finishes response after headers were received - does not iterates through body - when uses chunked transfer encoding - properly reads body - with broken body (too early closed connection) - raises HTTP::ConnectionError - passing json - encodes given object - parsing params - combines GET params from the URI with the passed in params - accepts params within the provided URL - merges duplicate values - does not modifies query part if no params were given - does not convert newlines into \r\n before encoding string values - does not corrupts index-less arrays - properly encodes colons - passing multipart form data - creates url encoded form data object - creates multipart form data object - when passing an HTTP::FormData object directly - creates url encoded form data object +HTTP::Options new + supports a Options instance + with a Hash + coerces :response correctly + coerces :proxy correctly + coerces :form correctly + coerces :headers correctly + +HTTP::Options proxy + accepts proxy address, port, username, and password + defaults to {} + may be specified with with_proxy + +HTTP::Connection + #read_headers! + reads data in parts + #readpartial + reads data in parts + +HTTP::Options form + defaults to nil + may be specified with with_form_data + +HTTP::Headers::Mixin + #headers + returns @headers instance variable + #[] + proxies to headers#[] + #[]= + proxies to headers#[] + +HTTP::URI + sets default ports for HTTPS URIs + sets default ports for HTTP URIs + knows URI schemes + #dup + doesn't share internal value between duplicates HTTP::ContentType .parse + with text/plain; charSET=utf-8 + charset + is expected to eq "utf-8" + mime_type + is expected to eq "text/plain" with text/plain; foo=bar; charset=utf-8 mime_type is expected to eq "text/plain" charset is expected to eq "utf-8" - with text/plain - charset - is expected to be nil - mime_type - is expected to eq "text/plain" - with text/plain; charSET=utf-8 + with text/plain; charset=utf-8 charset is expected to eq "utf-8" mime_type is expected to eq "text/plain" - with text/plain; charset=utf-8 + with text/plain; charset="utf-8" mime_type is expected to eq "text/plain" charset is expected to eq "utf-8" - with tEXT/plaIN - charset - is expected to be nil + with text/plain;charset=utf-8;foo=bar mime_type is expected to eq "text/plain" - with text/plain;charset=utf-8;foo=bar charset is expected to eq "utf-8" + with text/plain mime_type is expected to eq "text/plain" - with text/plain; charset="utf-8" charset - is expected to eq "utf-8" + is expected to be nil + with tEXT/plaIN + charset + is expected to be nil mime_type is expected to eq "text/plain" +HTTP::Request::Writer + #stream + when server won't accept any more data + aborts silently + when body is empty + doesn't write anything to the socket and sets Content-Length + when Content-Length header is set + keeps the given value + when body is nonempty + writes it to the socket and sets Content-Length + when multiple headers are set + separates headers with carriage return and line feed + when writing to socket raises an exception + raises a ConnectionError + when Transfer-Encoding is chunked + writes encoded content and omits Content-Length + +HTTP::Features::AutoInflate + #wrap_response + for identity Content-Encoding header + returns original request + for deflate Content-Encoding header + returns a HTTP::Response wrapping the inflated response body + when response has uri + preserves uri in wrapped response + when there is no Content-Encoding header + returns original request + for unknown Content-Encoding header + returns original request + for x-gzip Content-Encoding header + returns a HTTP::Response wrapping the inflated response body + for gzip Content-Encoding header + returns a HTTP::Response wrapping the inflated response body + +HTTP::Features::AutoDeflate + raises error for wrong type + accepts deflate method + accepts gzip method + uses gzip by default + accepts string as method + #deflated_body + when method is gzip + returns object which yields gzipped content of the given body + caches compressed content when size is called + when method is deflate + caches compressed content when size is called + returns object which yields deflated content of the given body + +HTTP +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized +/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized + unifies socket errors into HTTP::ConnectionError + loading text with no charset + is binary encoded + .persistent + with timeout specified + sets keep_alive_timeout + with host only given + example at ./spec/lib/http_spec.rb:261 (PENDING: Temporarily skipped with xit) + example at ./spec/lib/http_spec.rb:260 (PENDING: Temporarily skipped with xit) + with host and block given + returns last evaluation of last expression (PENDING: Temporarily skipped with xit) + auto-closes connection (PENDING: Temporarily skipped with xit) + .basic_auth + fails when options is not a Hash + sets Authorization header with proper BasicAuth value + fails when :user is not given + fails when :pass is not given + loading endpoint with charset + uses charset from headers + with encoding option + respects option + .cookies + properly merges cookies + passes correct `Cookie` header + properly works with cookie jars from response + properly merges Cookie headers and cookies + loading binary data + is encoded as bytes + head requests + is easy + with redirects + is easy for 301 + is easy for 302 + posting forms to resources + is easy + .use + turns on given feature + with :auto_deflate + sends deflated body + sends gzipped body + with :normalize_uri + uses the custom URI Normalizer method + uses the default URI normalizer + normalizes URI + with :auto_inflate + returns raw body when Content-Encoding type is missing + returns deflated body + returns decoded body + .auth + accepts any #to_s object + sets Authorization header to the given value + getting resources + is easy + with two leading slashes in path + is allowed + with headers + is easy + with a large request body + with `.timeout({:read=>2, :write=>2, :connect=>2})` + writes the whole body + with `.timeout(:null)` + writes the whole body + with `.timeout(6)` + writes the whole body + with query string parameters in the URI and opts hash + includes both + with URI instance + is easy + with query string parameters + is easy + .via + proxy with authentication + responds with the endpoint's body + responds with 407 when wrong credentials given + responds with 407 if no credentials given + proxies the request + ssl + responds with 407 if no credentials given (PENDING: Temporarily skipped with xcontext) + responds with the endpoint's body (PENDING: Temporarily skipped with xcontext) + responds with 407 when wrong credentials given (PENDING: Temporarily skipped with xcontext) + anonymous proxy + proxies the request + ignores credentials + responds with the endpoint's body + raises an argument error if no port given + ssl + ignores credentials (PENDING: Temporarily skipped with xcontext) + responds with the endpoint's body (PENDING: Temporarily skipped with xcontext) + .nodelay + sets TCP_NODELAY on the underlying socket + posting with an explicit body + is easy + passing a string encoding type + finds encoding + .timeout + specifying per operation timeouts + sets timeout_class to PerOperation + sets given timeout options + specifying a null timeout + sets timeout_class to Null + specifying a global timeout + sets given timeout option + sets timeout_class to Global + +HTTP::Request::Body + #== + when sources are not equivalent + returns false + when sources are equivalent + returns true + when objects are not of the same class + returns false + #each + when body is nil + yields nothing + when body is a non-Enumerable IO + yields chunks of content + when body is a pipe + yields chunks of content + when body is an Enumerable + yields elements + when body is an Enumerable IO + allows to enumerate multiple times + yields chunks of content + when body is a string + yields the string + #source + returns the original object + #size + when body is nil + returns zero + when body is a string + returns string bytesize + when body is an IO without size + raises a RequestError + when body is an IO with size + returns IO size + when body is an Enumerable + raises a RequestError + #initialize + when body is nil + does not raise an error + when body is a string + does not raise an error + when body is of unrecognized type + raises an error + when body is an Enumerable + does not raise an error + when body is an IO + does not raise an error + +HTTP::Response::Body + streams bodies from responses + when body empty + returns responds to empty? with true + #readpartial + returns content in specified encoding + with size given + passes value to underlying connection + without size given + calls underlying connection readpartial without specific size + does not blows up + when body is gzipped + decodes body + #readpartial + streams decoded body + +HTTP::Headers + is Enumerable + #inspect + is expected to eq "#[\"hoo=ray\", \"woo=hoo\"]}>" + #[] + when header does not exists + returns nil + when header has a multiple values + returns array of associated values + normalizes header name + when header has a single value + normalizes header name + returns it returns a single value + #merge! + leaves headers not presented in other as is + overwrites existing values + appends other headers, not presented in base + #delete + fails with invalid header name + normalizes header name + removes given header + fails with empty header name + #include? + tells whenever given headers is set or not + normalizes given header name + #to_h + returns a Hash + returns Hash with normalized keys + for a header with multiple values + provides an array of values + for a header with single value + provides a value as is + .coerce + accepts any object that respond to #to_hash + accepts any object that respond to #to_h + is aliased as .[] + accepts any object that respond to #to_a + fails if given object cannot be coerced + with duplicate header keys (mixed case) + adds all headers + #[]= + sets header value + normalizes header name + allows set multiple values + overwrites previous value + .empty? + when header exists + is expected to equal false + initially + is expected to equal true + when last header was removed + is expected to equal true + #get + fails with empty header name + fails with invalid header name + normalizes header name + returns array of associated values + when header does not exists + returns empty array + #merge + does not affects original headers + leaves headers not presented in other as is + is expected not to equal ["Host", "example.com"] and ["Accept", "application/json"] + overwrites existing values + is expected to be a kind of HTTP::Headers + appends other headers, not presented in base + #dup + is expected not to equal ["Content-Type", "application/json"] + is expected to be a kind of HTTP::Headers + has headers copied + modifying a copy + modifies dupped copy + does not affects original headers + #keys + normalizes keys + returns uniq keys only + #add + appends new value if header exists + sets header value + normalizes header name + fails with invalid header name + allows append multiple values + fails with empty header name + #hash + equals if two headers equals + #== + sensitive to header values order + allows comparison with Array of key/value pairs + sensitive to headers order + compares header keys and values + #to_a + returns an Array + returns Array of key/value pairs with normalized keys + #each + returns self instance if block given + yields each key/value pair separatedly + returns Enumerator if no block given + yields headers in the same order they were added + #set + normalizes header name + sets header value + overwrites previous value + allows set multiple values + fails with empty header name + fails with invalid header name + +HTTP::Options json + may be specified with with_json data + defaults to nil + +HTTP::Options merge + merges as excepted in complex cases + supports a Hash + supports another Options + +HTTP::Request + provides a #verb accessor + includes HTTP::Headers::Mixin +/build/ruby-http-4.4.1/lib/http/request.rb:91: warning: instance variable @scheme not initialized + requires URI to have scheme part + sets given headers + provides a #scheme accessor + #redirect + presets new Host header + proxy + is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} + with relative URL that misses leading slash given + keeps Host header + verb + is expected to eq :post + uri + is expected to eq # + body + is expected to eq # + proxy + is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} + with original URI having non-standard port + uri + is expected to eq # + with URL with non-standard port given + presets new Host header + uri + is expected to eq # + proxy + is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} + verb + is expected to eq :post + body + is expected to eq # + uri + is expected to eq # + with relative URL given + keeps Host header + verb + is expected to eq :post + uri + is expected to eq # + body + is expected to eq # + proxy + is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} + with original URI having non-standard port + uri + is expected to eq # + with schema-less absolute URL given + presets new Host header + verb + is expected to eq :post + body + is expected to eq # + uri + is expected to eq # + proxy + is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} + body + is expected to eq # + with new verb given + verb + is expected to equal :get + verb + is expected to eq :post + #inspect + is expected to eq "#" + Host header + was not given + is expected to eq "example.com" + and request URI has non-standard port + is expected to eq "example.com:3000" + was explicitly given + is expected to eq "github.com" + #headline + is expected to eq "GET /foo?bar=baz HTTP/1.1" + when URI contains encoded query + does not unencodes query part + when URI contains fragment + omits fragment part + with proxy + is expected to eq "GET http://example.com/foo?bar=baz HTTP/1.1" + and HTTPS uri + is expected to eq "GET /foo?bar=baz HTTP/1.1" + when URI contains non-ASCII path + encodes non-ASCII path part + User-Agent header + was not given + is expected to eq "http.rb/4.4.1" + was explicitly given + is expected to eq "MrCrawly/123" + HTTP::Response::Status - #partial_content? - when code is lower than 206 + #misdirected_request? + when code is lower than 421 is expected to equal false - when code is 206 + when code is higher than 421 + is expected to equal false + when code is 421 is expected to equal true - when code is higher than 206 + #method_not_allowed? + when code is higher than 405 is expected to equal false - #use_proxy? - when code is lower than 305 + when code is lower than 405 is expected to equal false - when code is higher than 305 + when code is 405 + is expected to equal true + #accepted? + when code is higher than 202 is expected to equal false - when code is 305 + when code is 202 is expected to equal true - #too_many_requests? - when code is lower than 429 + when code is lower than 202 is expected to equal false - when code is higher than 429 + #not_modified? + when code is higher than 304 is expected to equal false - when code is 429 + when code is lower than 304 + is expected to equal false + when code is 304 is expected to equal true - #multi_status? - when code is lower than 207 + #non_authoritative_information? + when code is higher than 203 is expected to equal false - when code is higher than 207 + when code is lower than 203 is expected to equal false - when code is 207 + when code is 203 is expected to equal true - #reset_content? - when code is 205 + #processing? + when code is higher than 102 + is expected to equal false + when code is lower than 102 + is expected to equal false + when code is 102 is expected to equal true - when code is lower than 205 + #created? + when code is lower than 201 is expected to equal false - when code is higher than 205 + when code is 201 + is expected to equal true + when code is higher than 201 is expected to equal false - #inspect - returns quoted code and reason phrase - with 5xx codes - is not #informational? + #not_extended? + when code is higher than 510 + is expected to equal false + when code is lower than 510 + is expected to equal false + when code is 510 + is expected to equal true + #conflict? + when code is 409 + is expected to equal true + when code is lower than 409 + is expected to equal false + when code is higher than 409 + is expected to equal false + #continue? + when code is lower than 100 + is expected to equal false + when code is 100 + is expected to equal true + when code is higher than 100 + is expected to equal false + #gateway_timeout? + when code is lower than 504 + is expected to equal false + when code is 504 + is expected to equal true + when code is higher than 504 + is expected to equal false + #unavailable_for_legal_reasons? + when code is 451 + is expected to equal true + when code is higher than 451 + is expected to equal false + when code is lower than 451 + is expected to equal false + with 3xx codes is not #success? - is #server_error? + is #redirect? is not #client_error? - is not #redirect? - #http_version_not_supported? - when code is higher than 505 + is not #informational? + is not #server_error? + #already_reported? + when code is higher than 208 is expected to equal false + when code is 208 + is expected to equal true + when code is lower than 208 + is expected to equal false + .coerce + is aliased as `.[]` + fails if coercion failed + with Symbol + fails when symbolized reason is unknown + coerces symbolized reasons + with Numeric + coerces as Fixnum code + with String + fails when reason is unknown + coerces reasons + #precondition_required? + when code is 428 + is expected to equal true + when code is higher than 428 + is expected to equal false + when code is lower than 428 + is expected to equal false + #network_authentication_required? + when code is 511 + is expected to equal true + when code is higher than 511 + is expected to equal false + when code is lower than 511 + is expected to equal false + #insufficient_storage? + when code is lower than 507 + is expected to equal false + when code is higher than 507 + is expected to equal false + when code is 507 + is expected to equal true + #locked? + when code is 423 + is expected to equal true + when code is higher than 423 + is expected to equal false + when code is lower than 423 + is expected to equal false + #internal_server_error? + when code is higher than 500 + is expected to equal false + when code is lower than 500 + is expected to equal false + when code is 500 + is expected to equal true + #code + is expected to eq 200 + is expected to be a kind of Integer + ::SYMBOLS + [200] + is expected to equal :ok + [400] + is expected to equal :bad_request + #unauthorized? + when code is 401 + is expected to equal true + when code is lower than 401 + is expected to equal false + when code is higher than 401 + is expected to equal false + #service_unavailable? + when code is higher than 503 + is expected to equal false + when code is lower than 503 + is expected to equal false + when code is 503 + is expected to equal true + #found? + when code is higher than 302 + is expected to equal false + when code is lower than 302 + is expected to equal false + when code is 302 + is expected to equal true + #http_version_not_supported? when code is lower than 505 is expected to equal false + when code is higher than 505 + is expected to equal false when code is 505 is expected to equal true - #already_reported? - when code is lower than 208 + #payload_too_large? + when code is higher than 413 is expected to equal false - when code is 208 + when code is lower than 413 + is expected to equal false + when code is 413 is expected to equal true - when code is higher than 208 + #inspect + returns quoted code and reason phrase + #loop_detected? + when code is lower than 508 + is expected to equal false + when code is higher than 508 + is expected to equal false + when code is 508 + is expected to equal true + #expectation_failed? + when code is higher than 417 + is expected to equal false + when code is 417 + is expected to equal true + when code is lower than 417 + is expected to equal false + #permanent_redirect? + when code is 308 + is expected to equal true + when code is lower than 308 + is expected to equal false + when code is higher than 308 is expected to equal false #unsupported_media_type? when code is lower than 415 @@ -1614,231 +2016,298 @@ is expected to equal true when code is higher than 415 is expected to equal false - #uri_too_long? - when code is higher than 414 + #bad_gateway? + when code is higher than 502 is expected to equal false - when code is lower than 414 + when code is 502 + is expected to equal true + when code is lower than 502 is expected to equal false - when code is 414 + #range_not_satisfiable? + when code is higher than 416 + is expected to equal false + when code is lower than 416 + is expected to equal false + when code is 416 + is expected to equal true + #moved_permanently? + when code is lower than 301 + is expected to equal false + when code is 301 + is expected to equal true + when code is higher than 301 + is expected to equal false + #request_timeout? + when code is 408 + is expected to equal true + when code is lower than 408 + is expected to equal false + when code is higher than 408 + is expected to equal false + with 2xx codes + is not #informational? + is not #redirect? + is not #server_error? + is not #client_error? + is #success? + #payment_required? + when code is 402 is expected to equal true + when code is lower than 402 + is expected to equal false + when code is higher than 402 + is expected to equal false + #multi_status? + when code is higher than 207 + is expected to equal false + when code is lower than 207 + is expected to equal false + when code is 207 + is expected to equal true + #variant_also_negotiates? + when code is higher than 506 + is expected to equal false + when code is lower than 506 + is expected to equal false + when code is 506 + is expected to equal true + with 1xx codes + is not #client_error? + is not #redirect? + is #informational? + is not #success? + is not #server_error? #to_sym - with well-known code: 507 - is expected to equal :insufficient_storage - with well-known code: 426 - is expected to equal :upgrade_required - with well-known code: 208 - is expected to equal :already_reported - with well-known code: 504 - is expected to equal :gateway_timeout - with well-known code: 205 - is expected to equal :reset_content - with well-known code: 508 - is expected to equal :loop_detected - with well-known code: 409 - is expected to equal :conflict - with well-known code: 204 - is expected to equal :no_content - with well-known code: 502 - is expected to equal :bad_gateway - with well-known code: 305 - is expected to equal :use_proxy + with well-known code: 300 + is expected to equal :multiple_choices with well-known code: 203 is expected to equal :non_authoritative_information - with well-known code: 408 - is expected to equal :request_timeout - with well-known code: 304 - is expected to equal :not_modified - with well-known code: 226 - is expected to equal :im_used - with well-known code: 400 - is expected to equal :bad_request - with well-known code: 503 - is expected to equal :service_unavailable - with well-known code: 101 - is expected to equal :switching_protocols - with well-known code: 303 - is expected to equal :see_other - with well-known code: 423 - is expected to equal :locked + with well-known code: 429 + is expected to equal :too_many_requests + with well-known code: 410 + is expected to equal :gone + with well-known code: 305 + is expected to equal :use_proxy + with well-known code: 502 + is expected to equal :bad_gateway + with well-known code: 426 + is expected to equal :upgrade_required with well-known code: 428 is expected to equal :precondition_required + with well-known code: 102 + is expected to equal :processing + with well-known code: 409 + is expected to equal :conflict with well-known code: 431 is expected to equal :request_header_fields_too_large - with well-known code: 201 - is expected to equal :created - with well-known code: 415 - is expected to equal :unsupported_media_type - with well-known code: 300 - is expected to equal :multiple_choices - with well-known code: 402 - is expected to equal :payment_required + with well-known code: 500 + is expected to equal :internal_server_error + with well-known code: 101 + is expected to equal :switching_protocols + with well-known code: 503 + is expected to equal :service_unavailable + with well-known code: 406 + is expected to equal :not_acceptable + with well-known code: 205 + is expected to equal :reset_content + with well-known code: 404 + is expected to equal :not_found + with well-known code: 412 + is expected to equal :precondition_failed + with well-known code: 506 + is expected to equal :variant_also_negotiates with well-known code: 403 is expected to equal :forbidden + with well-known code: 411 + is expected to equal :length_required + with well-known code: 402 + is expected to equal :payment_required + with well-known code: 424 + is expected to equal :failed_dependency + with well-known code: 308 + is expected to equal :permanent_redirect + with well-known code: 417 + is expected to equal :expectation_failed + with well-known code: 204 + is expected to equal :no_content + with well-known code: 307 + is expected to equal :temporary_redirect with well-known code: 505 is expected to equal :http_version_not_supported - with well-known code: 207 - is expected to equal :multi_status - with well-known code: 429 - is expected to equal :too_many_requests - with well-known code: 506 - is expected to equal :variant_also_negotiates - with well-known code: 202 - is expected to equal :accepted + with well-known code: 304 + is expected to equal :not_modified + with well-known code: 422 + is expected to equal :unprocessable_entity + with well-known code: 408 + is expected to equal :request_timeout + with well-known code: 226 + is expected to equal :im_used + with well-known code: 510 + is expected to equal :not_extended + with well-known code: 451 + is expected to equal :unavailable_for_legal_reasons + with well-known code: 504 + is expected to equal :gateway_timeout + with well-known code: 416 + is expected to equal :range_not_satisfiable with well-known code: 401 is expected to equal :unauthorized - with well-known code: 413 - is expected to equal :payload_too_large - with well-known code: 500 - is expected to equal :internal_server_error - with well-known code: 406 - is expected to equal :not_acceptable + with well-known code: 208 + is expected to equal :already_reported + with well-known code: 400 + is expected to equal :bad_request + with well-known code: 301 + is expected to equal :moved_permanently + with well-known code: 407 + is expected to equal :proxy_authentication_required with well-known code: 511 is expected to equal :network_authentication_required - with well-known code: 501 - is expected to equal :not_implemented + with well-known code: 423 + is expected to equal :locked + with well-known code: 206 + is expected to equal :partial_content with well-known code: 414 is expected to equal :uri_too_long + with well-known code: 207 + is expected to equal :multi_status + with well-known code: 303 + is expected to equal :see_other with well-known code: 421 is expected to equal :misdirected_request + with well-known code: 201 + is expected to equal :created with well-known code: 405 is expected to equal :method_not_allowed - with well-known code: 412 - is expected to equal :precondition_failed - with well-known code: 407 - is expected to equal :proxy_authentication_required - with well-known code: 301 - is expected to equal :moved_permanently - with well-known code: 417 - is expected to equal :expectation_failed - with well-known code: 206 - is expected to equal :partial_content - with well-known code: 200 - is expected to equal :ok - with well-known code: 424 - is expected to equal :failed_dependency - with well-known code: 102 - is expected to equal :processing - with well-known code: 451 - is expected to equal :unavailable_for_legal_reasons - with well-known code: 410 - is expected to equal :gone - with well-known code: 100 - is expected to equal :continue - with well-known code: 422 - is expected to equal :unprocessable_entity - with well-known code: 416 - is expected to equal :range_not_satisfiable - with well-known code: 510 - is expected to equal :not_extended - with well-known code: 411 - is expected to equal :length_required with well-known code: 302 is expected to equal :found - with well-known code: 307 - is expected to equal :temporary_redirect + with well-known code: 100 + is expected to equal :continue + with well-known code: 508 + is expected to equal :loop_detected + with well-known code: 501 + is expected to equal :not_implemented + with well-known code: 413 + is expected to equal :payload_too_large + with well-known code: 200 + is expected to equal :ok + with well-known code: 202 + is expected to equal :accepted with unknown code is expected to be nil - with well-known code: 308 - is expected to equal :permanent_redirect - with well-known code: 404 - is expected to equal :not_found - #no_content? - when code is 204 - is expected to equal true - when code is higher than 204 + with well-known code: 415 + is expected to equal :unsupported_media_type + with well-known code: 507 + is expected to equal :insufficient_storage + #bad_request? + when code is lower than 400 is expected to equal false - when code is lower than 204 + when code is 400 + is expected to equal true + when code is higher than 400 is expected to equal false - #im_used? - when code is 226 + #partial_content? + when code is 206 is expected to equal true - when code is lower than 226 + when code is higher than 206 is expected to equal false - when code is higher than 226 + when code is lower than 206 is expected to equal false - #forbidden? - when code is higher than 403 + #switching_protocols? + when code is higher than 101 is expected to equal false - when code is 403 + when code is 101 is expected to equal true - when code is lower than 403 + when code is lower than 101 is expected to equal false - #misdirected_request? - when code is 421 + #not_acceptable? + when code is lower than 406 + is expected to equal false + when code is higher than 406 + is expected to equal false + when code is 406 is expected to equal true - when code is lower than 421 + #multiple_choices? + when code is lower than 300 is expected to equal false - when code is higher than 421 + when code is higher than 300 is expected to equal false - #not_found? - when code is higher than 404 + when code is 300 + is expected to equal true + #request_header_fields_too_large? + when code is higher than 431 is expected to equal false - when code is lower than 404 + when code is lower than 431 is expected to equal false - when code is 404 + when code is 431 is expected to equal true - #not_extended? - when code is lower than 510 + #reset_content? + when code is higher than 205 is expected to equal false - when code is 510 + when code is 205 is expected to equal true - when code is higher than 510 + when code is lower than 205 is expected to equal false - #request_timeout? - when code is lower than 408 + #forbidden? + when code is lower than 403 is expected to equal false - when code is 408 + when code is 403 is expected to equal true - when code is higher than 408 + when code is higher than 403 is expected to equal false - #expectation_failed? - when code is higher than 417 + #length_required? + when code is lower than 411 is expected to equal false - when code is lower than 417 + when code is higher than 411 is expected to equal false - when code is 417 + when code is 411 is expected to equal true - #non_authoritative_information? - when code is higher than 203 - is expected to equal false - when code is lower than 203 + #not_found? + when code is lower than 404 is expected to equal false - when code is 203 - is expected to equal true - #gateway_timeout? - when code is 504 + when code is 404 is expected to equal true - when code is higher than 504 + when code is higher than 404 is expected to equal false - when code is lower than 504 + #use_proxy? + when code is lower than 305 is expected to equal false - #locked? - when code is lower than 423 + when code is higher than 305 is expected to equal false - when code is 423 + when code is 305 is expected to equal true - when code is higher than 423 + with 5xx codes + is not #client_error? + is not #success? + is not #redirect? + is not #informational? + is #server_error? + #ok? + when code is higher than 200 is expected to equal false - #request_header_fields_too_large? - when code is higher than 431 + when code is 200 + is expected to equal true + when code is lower than 200 is expected to equal false - when code is 431 + #precondition_failed? + when code is 412 is expected to equal true - when code is lower than 431 + when code is higher than 412 is expected to equal false - #unprocessable_entity? - when code is lower than 422 + when code is lower than 412 is expected to equal false - when code is 422 + #temporary_redirect? + when code is higher than 307 + is expected to equal false + when code is 307 is expected to equal true - when code is higher than 422 + when code is lower than 307 is expected to equal false - #precondition_failed? - when code is higher than 412 + #uri_too_long? + when code is lower than 414 is expected to equal false - when code is 412 + when code is 414 is expected to equal true - when code is lower than 412 + when code is higher than 414 is expected to equal false #see_other? when code is 303 @@ -1847,1054 +2316,655 @@ is expected to equal false when code is higher than 303 is expected to equal false - #unauthorized? - when code is lower than 401 + #upgrade_required? + when code is higher than 426 is expected to equal false - when code is 401 + when code is lower than 426 + is expected to equal false + when code is 426 is expected to equal true - when code is higher than 401 + #im_used? + when code is lower than 226 + is expected to equal false + when code is higher than 226 is expected to equal false + when code is 226 + is expected to equal true #reason - with well-known code: 226 - is expected to eq "IM Used" + with well-known code: 205 is expected to be frozen - with well-known code: 403 - is expected to eq "Forbidden" + is expected to eq "Reset Content" + with well-known code: 426 is expected to be frozen - with well-known code: 416 + is expected to eq "Upgrade Required" + with well-known code: 423 + is expected to eq "Locked" is expected to be frozen - is expected to eq "Range Not Satisfiable" - with well-known code: 501 - is expected to eq "Not Implemented" + with well-known code: 404 is expected to be frozen - with well-known code: 409 + is expected to eq "Not Found" + with well-known code: 410 is expected to be frozen - is expected to eq "Conflict" - with well-known code: 401 + is expected to eq "Gone" + with well-known code: 429 + is expected to eq "Too Many Requests" is expected to be frozen - is expected to eq "Unauthorized" - with well-known code: 200 + with well-known code: 501 is expected to be frozen - is expected to eq "OK" - with well-known code: 414 - is expected to eq "URI Too Long" + is expected to eq "Not Implemented" + with well-known code: 405 is expected to be frozen - with well-known code: 411 - is expected to eq "Length Required" + is expected to eq "Method Not Allowed" + with well-known code: 422 + is expected to eq "Unprocessable Entity" is expected to be frozen - with well-known code: 417 - is expected to eq "Expectation Failed" + with well-known code: 307 + is expected to eq "Temporary Redirect" is expected to be frozen - with well-known code: 507 + with well-known code: 202 is expected to be frozen - is expected to eq "Insufficient Storage" - with well-known code: 429 + is expected to eq "Accepted" + with well-known code: 424 is expected to be frozen - is expected to eq "Too Many Requests" - with well-known code: 505 + is expected to eq "Failed Dependency" + with well-known code: 403 is expected to be frozen - is expected to eq "HTTP Version Not Supported" - with well-known code: 208 - is expected to eq "Already Reported" + is expected to eq "Forbidden" + with well-known code: 428 + is expected to eq "Precondition Required" is expected to be frozen - with well-known code: 415 - is expected to eq "Unsupported Media Type" + with well-known code: 407 is expected to be frozen - with well-known code: 100 - is expected to eq "Continue" + is expected to eq "Proxy Authentication Required" + with well-known code: 413 + is expected to eq "Payload Too Large" is expected to be frozen - with well-known code: 502 + with well-known code: 304 + is expected to eq "Not Modified" is expected to be frozen - is expected to eq "Bad Gateway" - with well-known code: 413 + with well-known code: 451 + is expected to eq "Unavailable For Legal Reasons" is expected to be frozen - is expected to eq "Payload Too Large" - with well-known code: 428 + with well-known code: 412 + is expected to eq "Precondition Failed" is expected to be frozen - is expected to eq "Precondition Required" - with well-known code: 508 + with well-known code: 500 is expected to be frozen - is expected to eq "Loop Detected" - with well-known code: 431 - is expected to eq "Request Header Fields Too Large" + is expected to eq "Internal Server Error" + with well-known code: 504 is expected to be frozen - with well-known code: 402 + is expected to eq "Gateway Timeout" + with well-known code: 101 is expected to be frozen - is expected to eq "Payment Required" - with well-known code: 408 + is expected to eq "Switching Protocols" + with well-known code: 503 is expected to be frozen + is expected to eq "Service Unavailable" + with well-known code: 408 is expected to eq "Request Timeout" - with well-known code: 511 is expected to be frozen - is expected to eq "Network Authentication Required" - with well-known code: 504 - is expected to eq "Gateway Timeout" + with well-known code: 305 + is expected to eq "Use Proxy" is expected to be frozen - with well-known code: 510 + with well-known code: 417 is expected to be frozen - is expected to eq "Not Extended" - with well-known code: 102 - is expected to eq "Processing" + is expected to eq "Expectation Failed" + with unknown code + is expected to be nil + with well-known code: 200 is expected to be frozen - with well-known code: 202 - is expected to eq "Accepted" + is expected to eq "OK" + with well-known code: 411 + is expected to eq "Length Required" is expected to be frozen - with well-known code: 404 + with well-known code: 201 is expected to be frozen - is expected to eq "Not Found" - with well-known code: 424 - is expected to eq "Failed Dependency" + is expected to eq "Created" + with well-known code: 416 + is expected to eq "Range Not Satisfiable" is expected to be frozen - with well-known code: 503 + with well-known code: 100 is expected to be frozen - is expected to eq "Service Unavailable" - with well-known code: 301 - is expected to eq "Moved Permanently" + is expected to eq "Continue" + with well-known code: 204 is expected to be frozen - with well-known code: 412 + is expected to eq "No Content" + with well-known code: 508 + is expected to eq "Loop Detected" is expected to be frozen - is expected to eq "Precondition Failed" - with well-known code: 422 + with well-known code: 402 + is expected to eq "Payment Required" is expected to be frozen - is expected to eq "Unprocessable Entity" - with well-known code: 308 + with well-known code: 406 + is expected to eq "Not Acceptable" is expected to be frozen - is expected to eq "Permanent Redirect" - with well-known code: 305 - is expected to eq "Use Proxy" + with well-known code: 409 is expected to be frozen - with well-known code: 426 + is expected to eq "Conflict" + with well-known code: 502 + is expected to eq "Bad Gateway" is expected to be frozen - is expected to eq "Upgrade Required" - with well-known code: 300 - is expected to eq "Multiple Choices" + with well-known code: 303 + is expected to eq "See Other" is expected to be frozen - with well-known code: 421 + with well-known code: 401 is expected to be frozen - is expected to eq "Misdirected Request" - with well-known code: 203 - is expected to eq "Non-Authoritative Information" + is expected to eq "Unauthorized" + with well-known code: 302 is expected to be frozen - with well-known code: 406 - is expected to eq "Not Acceptable" + is expected to eq "Found" + with well-known code: 415 + is expected to eq "Unsupported Media Type" + is expected to be frozen + with well-known code: 301 + is expected to eq "Moved Permanently" + is expected to be frozen + with well-known code: 431 is expected to be frozen + is expected to eq "Request Header Fields Too Large" with well-known code: 400 is expected to be frozen is expected to eq "Bad Request" - with well-known code: 304 - is expected to eq "Not Modified" + with well-known code: 505 + is expected to eq "HTTP Version Not Supported" is expected to be frozen - with well-known code: 500 + with well-known code: 203 is expected to be frozen - is expected to eq "Internal Server Error" - with well-known code: 407 + is expected to eq "Non-Authoritative Information" + with well-known code: 507 + is expected to eq "Insufficient Storage" is expected to be frozen - is expected to eq "Proxy Authentication Required" - with well-known code: 101 - is expected to eq "Switching Protocols" + with well-known code: 206 + is expected to eq "Partial Content" is expected to be frozen - with well-known code: 205 + with well-known code: 226 is expected to be frozen - is expected to eq "Reset Content" - with well-known code: 201 + is expected to eq "IM Used" + with well-known code: 207 is expected to be frozen - is expected to eq "Created" - with well-known code: 204 - is expected to eq "No Content" + is expected to eq "Multi-Status" + with well-known code: 421 is expected to be frozen - with well-known code: 405 - is expected to eq "Method Not Allowed" + is expected to eq "Misdirected Request" + with well-known code: 511 + is expected to eq "Network Authentication Required" is expected to be frozen with well-known code: 506 is expected to eq "Variant Also Negotiates" is expected to be frozen - with unknown code - is expected to be nil - with well-known code: 423 - is expected to be frozen - is expected to eq "Locked" - with well-known code: 451 - is expected to eq "Unavailable For Legal Reasons" - is expected to be frozen - with well-known code: 303 - is expected to eq "See Other" + with well-known code: 300 + is expected to eq "Multiple Choices" is expected to be frozen - with well-known code: 207 + with well-known code: 308 is expected to be frozen - is expected to eq "Multi-Status" - with well-known code: 302 + is expected to eq "Permanent Redirect" + with well-known code: 510 + is expected to eq "Not Extended" is expected to be frozen - is expected to eq "Found" - with well-known code: 206 - is expected to eq "Partial Content" + with well-known code: 102 is expected to be frozen - with well-known code: 410 + is expected to eq "Processing" + with well-known code: 208 + is expected to eq "Already Reported" is expected to be frozen - is expected to eq "Gone" - with well-known code: 307 + with well-known code: 414 + is expected to eq "URI Too Long" is expected to be frozen - is expected to eq "Temporary Redirect" - #processing? - when code is higher than 102 - is expected to equal false - when code is lower than 102 - is expected to equal false - when code is 102 - is expected to equal true - #variant_also_negotiates? - when code is lower than 506 - is expected to equal false - when code is higher than 506 - is expected to equal false - when code is 506 - is expected to equal true - #proxy_authentication_required? - when code is higher than 407 - is expected to equal false - when code is 407 - is expected to equal true - when code is lower than 407 - is expected to equal false - #upgrade_required? - when code is lower than 426 - is expected to equal false - when code is higher than 426 - is expected to equal false - when code is 426 - is expected to equal true - #payload_too_large? - when code is lower than 413 - is expected to equal false - when code is 413 - is expected to equal true - when code is higher than 413 - is expected to equal false - #ok? - when code is lower than 200 - is expected to equal false - when code is higher than 200 - is expected to equal false - when code is 200 - is expected to equal true - #loop_detected? - when code is 508 - is expected to equal true - when code is higher than 508 - is expected to equal false - when code is lower than 508 - is expected to equal false - #permanent_redirect? - when code is lower than 308 - is expected to equal false - when code is 308 - is expected to equal true - when code is higher than 308 - is expected to equal false - #insufficient_storage? - when code is lower than 507 - is expected to equal false - when code is 507 - is expected to equal true - when code is higher than 507 - is expected to equal false - #internal_server_error? - when code is lower than 500 - is expected to equal false - when code is higher than 500 - is expected to equal false - when code is 500 - is expected to equal true - #service_unavailable? - when code is 503 - is expected to equal true - when code is lower than 503 - is expected to equal false - when code is higher than 503 - is expected to equal false - #continue? - when code is 100 - is expected to equal true - when code is lower than 100 - is expected to equal false - when code is higher than 100 - is expected to equal false - #switching_protocols? - when code is higher than 101 - is expected to equal false - when code is lower than 101 - is expected to equal false - when code is 101 - is expected to equal true - #not_modified? - when code is 304 - is expected to equal true - when code is lower than 304 - is expected to equal false - when code is higher than 304 - is expected to equal false #not_implemented? - when code is higher than 501 - is expected to equal false - when code is lower than 501 - is expected to equal false when code is 501 is expected to equal true - #multiple_choices? - when code is lower than 300 - is expected to equal false - when code is 300 - is expected to equal true - when code is higher than 300 - is expected to equal false - #moved_permanently? - when code is lower than 301 - is expected to equal false - when code is 301 - is expected to equal true - when code is higher than 301 - is expected to equal false - #payment_required? - when code is lower than 402 - is expected to equal false - when code is higher than 402 + when code is higher than 501 is expected to equal false - when code is 402 - is expected to equal true - with 2xx codes - is not #redirect? - is #success? - is not #informational? - is not #server_error? - is not #client_error? - #bad_request? - when code is higher than 400 + when code is lower than 501 is expected to equal false - when code is 400 - is expected to equal true - when code is lower than 400 + #gone? + when code is lower than 410 is expected to equal false - #not_acceptable? - when code is lower than 406 + when code is higher than 410 is expected to equal false - when code is 406 + when code is 410 is expected to equal true - when code is higher than 406 - is expected to equal false - #bad_gateway? - when code is 502 + #failed_dependency? + when code is 424 is expected to equal true - when code is lower than 502 + when code is higher than 424 is expected to equal false - when code is higher than 502 + when code is lower than 424 is expected to equal false - #length_required? - when code is lower than 411 + #unprocessable_entity? + when code is higher than 422 is expected to equal false - when code is higher than 411 + when code is lower than 422 is expected to equal false - when code is 411 + when code is 422 is expected to equal true - ::SYMBOLS - [200] - is expected to equal :ok - [400] - is expected to equal :bad_request - #created? - when code is lower than 201 + #no_content? + when code is higher than 204 is expected to equal false - when code is 201 + when code is 204 is expected to equal true - when code is higher than 201 + when code is lower than 204 is expected to equal false - #network_authentication_required? - when code is lower than 511 + #proxy_authentication_required? + when code is lower than 407 is expected to equal false - when code is higher than 511 + when code is higher than 407 is expected to equal false - when code is 511 + when code is 407 is expected to equal true - #code - is expected to be a kind of Integer - is expected to eq 200 - with 1xx codes - is #informational? + with 4xx codes + is #client_error? + is not #server_error? is not #redirect? + is not #informational? is not #success? - is not #server_error? - is not #client_error? - #gone? - when code is lower than 410 - is expected to equal false - when code is 410 - is expected to equal true - when code is higher than 410 - is expected to equal false - .coerce - is aliased as `.[]` - fails if coercion failed - with Numeric - coerces as Fixnum code - with Symbol - fails when symbolized reason is unknown - coerces symbolized reasons - with String - coerces reasons - fails when reason is unknown - #accepted? - when code is lower than 202 - is expected to equal false - when code is higher than 202 - is expected to equal false - when code is 202 - is expected to equal true .new + accepts any object that responds to #to_i /build/ruby-http-4.4.1/lib/http/response/status.rb:148: warning: instance variable @code not initialized fails if given value does not respond to #to_i - accepts any object that responds to #to_i - #temporary_redirect? - when code is lower than 307 - is expected to equal false - when code is 307 - is expected to equal true - when code is higher than 307 - is expected to equal false - #unavailable_for_legal_reasons? - when code is 451 - is expected to equal true - when code is lower than 451 - is expected to equal false - when code is higher than 451 - is expected to equal false - with 3xx codes - is not #informational? - is not #success? - is #redirect? - is not #client_error? - is not #server_error? - with 4xx codes - is not #server_error? - is not #success? - is not #redirect? - is #client_error? - is not #informational? - #failed_dependency? - when code is higher than 424 - is expected to equal false - when code is 424 - is expected to equal true - when code is lower than 424 - is expected to equal false - #precondition_required? - when code is lower than 428 - is expected to equal false - when code is 428 - is expected to equal true - when code is higher than 428 - is expected to equal false - #method_not_allowed? - when code is lower than 405 - is expected to equal false - when code is 405 - is expected to equal true - when code is higher than 405 - is expected to equal false - #found? - when code is lower than 302 - is expected to equal false - when code is 302 - is expected to equal true - when code is higher than 302 - is expected to equal false - #range_not_satisfiable? - when code is lower than 416 - is expected to equal false - when code is 416 - is expected to equal true - when code is higher than 416 - is expected to equal false - #conflict? - when code is 409 + #too_many_requests? + when code is 429 is expected to equal true - when code is higher than 409 + when code is higher than 429 is expected to equal false - when code is lower than 409 + when code is lower than 429 is expected to equal false -HTTP::Headers - is Enumerable - #[] - when header does not exists - returns nil - when header has a single value - returns it returns a single value - normalizes header name - when header has a multiple values - returns array of associated values - normalizes header name - #to_h - returns Hash with normalized keys - returns a Hash - for a header with multiple values - provides an array of values - for a header with single value - provides a value as is - #include? - tells whenever given headers is set or not - normalizes given header name - #merge - is expected to be a kind of HTTP::Headers - is expected not to equal ["Host", "example.com"] and ["Accept", "application/json"] - overwrites existing values - appends other headers, not presented in base - leaves headers not presented in other as is - does not affects original headers - #delete - fails with empty header name - normalizes header name - removes given header - fails with invalid header name - #dup - has headers copied - is expected to be a kind of HTTP::Headers - is expected not to equal ["Content-Type", "application/json"] - modifying a copy - modifies dupped copy - does not affects original headers +HTTP::Features::Instrumentation + logging the response + should log the response + logging the request + should log the request + +HTTP::Options headers + defaults to be empty + accepts any object that respond to :to_hash + may be specified with with_headers + +HTTP::Response + includes HTTP::Headers::Mixin + #chunked? + is expected not to be chunked + when encoding is set to chunked + is expected to be chunked + #cookies + is expected to be a kind of HTTP::CookieJar + does not contains cookies limited to non-requeted uri + contains cookies without domain restriction + contains cookies limited to domain of request uri + mime_type + with Content-Type: text/html; charset=utf-8 + is expected to eq "text/html" + without Content-Type header + is expected to be nil + with Content-Type: text/html + is expected to eq "text/html" #inspect - is expected to eq "#[\"hoo=ray\", \"woo=hoo\"]}>" - #set - fails with empty header name - allows set multiple values - sets header value - overwrites previous value - fails with invalid header name - normalizes header name - #get - normalizes header name - returns array of associated values - fails with invalid header name - fails with empty header name - when header does not exists - returns empty array - #[]= - allows set multiple values - normalizes header name - sets header value - overwrites previous value - #add - appends new value if header exists - fails with empty header name - fails with invalid header name - sets header value - normalizes header name - allows append multiple values - #keys - returns uniq keys only - normalizes keys - .empty? - initially - is expected to equal true - when header exists - is expected to equal false - when last header was removed - is expected to equal true - #merge! - overwrites existing values - leaves headers not presented in other as is - appends other headers, not presented in base - .coerce - accepts any object that respond to #to_hash - is aliased as .[] - fails if given object cannot be coerced - accepts any object that respond to #to_h - accepts any object that respond to #to_a - with duplicate header keys (mixed case) - adds all headers - #each - yields headers in the same order they were added - returns self instance if block given - yields each key/value pair separatedly - returns Enumerator if no block given - #to_a - returns an Array - returns Array of key/value pairs with normalized keys - #== - compares header keys and values - sensitive to headers order - allows comparison with Array of key/value pairs - sensitive to header values order - #hash - equals if two headers equals + is expected to eq "#\"text/plain\"}>" + charset + without Content-Type header + is expected to be nil + with Content-Type: text/html + is expected to be nil + with Content-Type: text/html; charset=utf-8 + is expected to eq "utf-8" + #connection + returns the connection object used to instantiate the response + to_a + returns a Rack-like array + #flush + flushes body + returns response self-reference + #parse + with explicitly given mime type + supports MIME type aliases + ignores mime_type of response + with unknown content type + raises HTTP::Error + with known content type + returns parsed body + #content_length + with invalid Content-Length + is expected to be nil + without Content-Length header + is expected to be nil + with Content-Length: 5 + is expected to eq 5 -HTTP::Headers::Mixin - #headers - returns @headers instance variable - #[] - proxies to headers#[] - #[]= - proxies to headers#[] +HTTP::Options features + accepts plain symbols in array + defaults to be empty + raises error for not supported features + accepts feature name with its options in array -HTTP::Request::Writer - #stream - when Transfer-Encoding is chunked - writes encoded content and omits Content-Length - when Content-Length header is set - keeps the given value - when writing to socket raises an exception - raises a ConnectionError - when body is empty - doesn't write anything to the socket and sets Content-Length - when server won't accept any more data - aborts silently - when multiple headers are set - separates headers with carriage return and line feed - when body is nonempty - writes it to the socket and sets Content-Length +HTTP::Options + coerces to a Hash + has reader methods for attributes -HTTP::Options proxy - accepts proxy address, port, username, and password - may be specified with with_proxy - defaults to {} +HTTP::Response::Parser + response in many parts + parses body + parses headers + whole response in one part + parses body + parses headers + +HTTP::Features::Logging + logging the response + should log the response + logging the request + should log the request + +HTTP::Client + passing multipart form data + creates multipart form data object + creates url encoded form data object + when passing an HTTP::FormData object directly + creates url encoded form data object + #perform + calls finish_response once body was fully flushed + when uses chunked transfer encoding + properly reads body + with broken body (too early closed connection) + raises HTTP::ConnectionError + when server fully flushes response in one chunk + properly reads body + with HEAD request + finishes response after headers were received + does not iterates through body + working with SSL + just works (PENDING: Temporarily skipped with xdescribe) + fails with OpenSSL::SSL::SSLError if host mismatch (PENDING: Temporarily skipped with xdescribe) + with SSL options instead of a context + just works (PENDING: Temporarily skipped with xdescribe) + with a global timeout + errors if connecting takes too long (PENDING: Temporarily skipped with xdescribe) + errors if reading takes too long (PENDING: Temporarily skipped with xdescribe) + it resets state when reusing connections + does not timeout (PENDING: Temporarily skipped with xdescribe) + with a per operation timeout + works (PENDING: Temporarily skipped with xdescribe) + read + of 0 + times out (PENDING: Temporarily skipped with xit) + of 2.5 + does not time out (PENDING: Temporarily skipped with xdescribe) + connection + of 1 + does not time out (PENDING: Temporarily skipped with xdescribe) + connection reuse + when disabled + opens new sockets (PENDING: Temporarily skipped with xdescribe) + when enabled + re-uses the socket (PENDING: Temporarily skipped with xdescribe) + with a change in host + errors (PENDING: Temporarily skipped with xdescribe) + when reading a cached body + succeeds (PENDING: Temporarily skipped with xdescribe) + with a socket issue + transparently reopens (PENDING: Temporarily skipped with xdescribe) + on a mixed state + re-opens the connection (PENDING: Temporarily skipped with xdescribe) + when trying to read a stale body + errors (PENDING: Temporarily skipped with xdescribe) + without a host + infers host from persistent config (PENDING: Temporarily skipped with xdescribe) + without timeouts + works (PENDING: Temporarily skipped with xdescribe) + connection reuse + when disabled + opens new sockets + when enabled + re-uses the socket + when trying to read a stale body + errors + with a socket issue + transparently reopens + with a change in host + errors + when reading a cached body + succeeds + on a mixed state + re-opens the connection + without a host + infers host from persistent config + without timeouts + works + following redirects + returns response of new location + fails if max amount of hops reached + fails upon endless redirects + prepends previous request uri scheme and host if needed + with non-ASCII URLs + theoretically works like a charm (PENDING: Temporarily skipped with xit) + works like a charm in real world (PENDING: Temporarily skipped with xit) + parsing params + does not convert newlines into \r\n before encoding string values + combines GET params from the URI with the passed in params + does not modifies query part if no params were given + does not corrupts index-less arrays + properly encodes colons + merges duplicate values + accepts params within the provided URL + #request + when :auto_deflate was specified + deletes Content-Length header + sets Content-Encoding header + and there is no body + doesn't set Content-Encoding header + with explicitly given `Host` header + keeps `Host` header as is (PENDING: Temporarily skipped with xit) + with non-ASCII URLs + works like a charm in real world (PENDING: Temporarily skipped with xit) + theoretically works like a charm (PENDING: Temporarily skipped with xit) + with a per operation timeout + works + connection + of 1 + does not time out + read + of 2.5 + does not time out + of 0 + times out (PENDING: Temporarily skipped with xit) + with a global timeout + errors if connecting takes too long + errors if reading takes too long + it resets state when reusing connections + does not timeout + passing json + encodes given object HTTP::Options body defaults to nil may be specified with with_body -HTTP::Features::AutoDeflate - raises error for wrong type - accepts string as method - accepts deflate method - accepts gzip method - uses gzip by default - #deflated_body - when method is gzip - returns object which yields gzipped content of the given body - caches compressed content when size is called - when method is deflate - caches compressed content when size is called - returns object which yields deflated content of the given body - -HTTP::Response::Body - streams bodies from responses - when body empty - returns responds to empty? with true - #readpartial - returns content in specified encoding - without size given - does not blows up - calls underlying connection readpartial without specific size - with size given - passes value to underlying connection - when body is gzipped - decodes body - #readpartial - streams decoded body +Pending: (Failures listed here are expected and do not affect your suite's status) -HTTP -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized -/usr/lib/ruby/vendor_ruby/certificate_authority/extensions.rb:70: warning: instance variable @path_len not initialized - unifies socket errors into HTTP::ConnectionError - loading text with no charset - is binary encoded - loading binary data - is encoded as bytes - head requests - is easy - with redirects - is easy for 302 - is easy for 301 - .auth - accepts any #to_s object - sets Authorization header to the given value - .nodelay - sets TCP_NODELAY on the underlying socket - posting forms to resources - is easy - posting with an explicit body - is easy - getting resources - is easy - with two leading slashes in path - is allowed - with query string parameters in the URI and opts hash - includes both - with query string parameters - is easy - with a large request body - with `.timeout(6)` - writes the whole body - with `.timeout({:read=>2, :write=>2, :connect=>2})` - writes the whole body - with `.timeout(:null)` - writes the whole body - with headers - is easy - with URI instance - is easy - .cookies - passes correct `Cookie` header - properly works with cookie jars from response - properly merges cookies - properly merges Cookie headers and cookies - loading endpoint with charset - uses charset from headers - with encoding option - respects option - .use - turns on given feature - with :auto_inflate - returns decoded body - returns raw body when Content-Encoding type is missing - returns deflated body - with :normalize_uri - normalizes URI - uses the custom URI Normalizer method - uses the default URI normalizer - with :auto_deflate - sends gzipped body - sends deflated body - .persistent - with host and block given - auto-closes connection (PENDING: Temporarily skipped with xit) - returns last evaluation of last expression (PENDING: Temporarily skipped with xit) - with timeout specified - sets keep_alive_timeout - with host only given - example at ./spec/lib/http_spec.rb:260 (PENDING: Temporarily skipped with xit) - example at ./spec/lib/http_spec.rb:261 (PENDING: Temporarily skipped with xit) - .timeout - specifying per operation timeouts - sets given timeout options - sets timeout_class to PerOperation - specifying a null timeout - sets timeout_class to Null - specifying a global timeout - sets given timeout option - sets timeout_class to Global - .basic_auth - fails when :pass is not given - fails when :user is not given - sets Authorization header with proper BasicAuth value - fails when options is not a Hash - .via - proxy with authentication - responds with 407 when wrong credentials given - proxies the request - responds with 407 if no credentials given - responds with the endpoint's body - ssl - responds with the endpoint's body (PENDING: Temporarily skipped with xcontext) - responds with 407 if no credentials given (PENDING: Temporarily skipped with xcontext) - responds with 407 when wrong credentials given (PENDING: Temporarily skipped with xcontext) - anonymous proxy - raises an argument error if no port given - responds with the endpoint's body - ignores credentials - proxies the request - ssl - ignores credentials (PENDING: Temporarily skipped with xcontext) - responds with the endpoint's body (PENDING: Temporarily skipped with xcontext) - passing a string encoding type - finds encoding + 1) HTTP.persistent with host only given + # Temporarily skipped with xit + # ./spec/lib/http_spec.rb:261 -HTTP::Options headers - may be specified with with_headers - accepts any object that respond to :to_hash - defaults to be empty + 2) HTTP.persistent with host only given + # Temporarily skipped with xit + # ./spec/lib/http_spec.rb:260 -HTTP::Connection - #read_headers! - reads data in parts - #readpartial - reads data in parts + 3) HTTP.persistent with host and block given returns last evaluation of last expression + # Temporarily skipped with xit + # ./spec/lib/http_spec.rb:265 -HTTP::Request - provides a #verb accessor -/build/ruby-http-4.4.1/lib/http/request.rb:91: warning: instance variable @scheme not initialized - requires URI to have scheme part - provides a #scheme accessor - includes HTTP::Headers::Mixin - sets given headers - #inspect - is expected to eq "#" - Host header - was not given - is expected to eq "example.com" - and request URI has non-standard port - is expected to eq "example.com:3000" - was explicitly given - is expected to eq "github.com" - User-Agent header - was explicitly given - is expected to eq "MrCrawly/123" - was not given - is expected to eq "http.rb/4.4.1" - #redirect - presets new Host header - with new verb given - verb - is expected to equal :get - with schema-less absolute URL given - presets new Host header - uri - is expected to eq # - body - is expected to eq # - proxy - is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} - verb - is expected to eq :post - verb - is expected to eq :post - proxy - is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} - with relative URL given - keeps Host header - verb - is expected to eq :post - body - is expected to eq # - proxy - is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} - uri - is expected to eq # - with original URI having non-standard port - uri - is expected to eq # - with relative URL that misses leading slash given - keeps Host header - with original URI having non-standard port - uri - is expected to eq # - uri - is expected to eq # - proxy - is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} - body - is expected to eq # - verb - is expected to eq :post - body - is expected to eq # - uri - is expected to eq # - with URL with non-standard port given - presets new Host header - verb - is expected to eq :post - uri - is expected to eq # - proxy - is expected to eq {:proxy_password=>"adams", :proxy_username=>"douglas"} - body - is expected to eq # - #headline - is expected to eq "GET /foo?bar=baz HTTP/1.1" - when URI contains non-ASCII path - encodes non-ASCII path part - when URI contains fragment - omits fragment part - with proxy - is expected to eq "GET http://example.com/foo?bar=baz HTTP/1.1" - and HTTPS uri - is expected to eq "GET /foo?bar=baz HTTP/1.1" - when URI contains encoded query - does not unencodes query part + 4) HTTP.persistent with host and block given auto-closes connection + # Temporarily skipped with xit + # ./spec/lib/http_spec.rb:269 -HTTP::Options json - defaults to nil - may be specified with with_json data + 5) HTTP.via proxy with authentication ssl responds with 407 if no credentials given + # Temporarily skipped with xcontext + # ./spec/lib/http_spec.rb:145 -Pending: (Failures listed here are expected and do not affect your suite's status) + 6) HTTP.via proxy with authentication ssl responds with the endpoint's body + # Temporarily skipped with xcontext + # ./spec/lib/http_spec.rb:135 - 1) HTTP::Client with a per operation timeout read of 0 times out - # Temporarily skipped with xit - # ./spec/support/http_handling_shared.rb:47 + 7) HTTP.via proxy with authentication ssl responds with 407 when wrong credentials given + # Temporarily skipped with xcontext + # ./spec/lib/http_spec.rb:140 - 2) HTTP::Client following redirects with non-ASCII URLs theoretically works like a charm - # Temporarily skipped with xit - # ./spec/lib/http/client_spec.rb:91 + 8) HTTP.via anonymous proxy ssl ignores credentials + # Temporarily skipped with xcontext + # ./spec/lib/http_spec.rb:104 - 3) HTTP::Client following redirects with non-ASCII URLs works like a charm in real world - # Temporarily skipped with xit - # ./spec/lib/http/client_spec.rb:100 + 9) HTTP.via anonymous proxy ssl responds with the endpoint's body + # Temporarily skipped with xcontext + # ./spec/lib/http_spec.rb:99 - 4) HTTP::Client working with SSL just works + 10) HTTP::Client working with SSL just works # Temporarily skipped with xdescribe # ./spec/lib/http/client_spec.rb:304 - 5) HTTP::Client working with SSL fails with OpenSSL::SSL::SSLError if host mismatch + 11) HTTP::Client working with SSL fails with OpenSSL::SSL::SSLError if host mismatch # Temporarily skipped with xdescribe # ./spec/lib/http/client_spec.rb:309 - 6) HTTP::Client working with SSL with a per operation timeout works + 12) HTTP::Client working with SSL with SSL options instead of a context just works # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:29 + # ./spec/lib/http/client_spec.rb:319 - 7) HTTP::Client working with SSL with a per operation timeout read of 2.5 does not time out + 13) HTTP::Client working with SSL with a global timeout errors if connecting takes too long # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:55 - - 8) HTTP::Client working with SSL with a per operation timeout read of 0 times out - # Temporarily skipped with xit - # ./spec/support/http_handling_shared.rb:47 + # ./spec/support/http_handling_shared.rb:75 - 9) HTTP::Client working with SSL with a per operation timeout connection of 1 does not time out + 14) HTTP::Client working with SSL with a global timeout errors if reading takes too long # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:37 + # ./spec/support/http_handling_shared.rb:83 - 10) HTTP::Client working with SSL without timeouts works + 15) HTTP::Client working with SSL with a global timeout it resets state when reusing connections does not timeout # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:7 + # ./spec/support/http_handling_shared.rb:93 - 11) HTTP::Client working with SSL with a global timeout errors if reading takes too long + 16) HTTP::Client working with SSL with a per operation timeout works # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:83 + # ./spec/support/http_handling_shared.rb:29 - 12) HTTP::Client working with SSL with a global timeout errors if connecting takes too long - # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:75 + 17) HTTP::Client working with SSL with a per operation timeout read of 0 times out + # Temporarily skipped with xit + # ./spec/support/http_handling_shared.rb:47 - 13) HTTP::Client working with SSL with a global timeout it resets state when reusing connections does not timeout + 18) HTTP::Client working with SSL with a per operation timeout read of 2.5 does not time out # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:93 + # ./spec/support/http_handling_shared.rb:55 - 14) HTTP::Client working with SSL with SSL options instead of a context just works + 19) HTTP::Client working with SSL with a per operation timeout connection of 1 does not time out # Temporarily skipped with xdescribe - # ./spec/lib/http/client_spec.rb:319 + # ./spec/support/http_handling_shared.rb:37 - 15) HTTP::Client working with SSL connection reuse when enabled re-uses the socket + 20) HTTP::Client working with SSL connection reuse when disabled opens new sockets # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:117 + # ./spec/support/http_handling_shared.rb:184 - 16) HTTP::Client working with SSL connection reuse when enabled without a host infers host from persistent config + 21) HTTP::Client working with SSL connection reuse when enabled re-uses the socket # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:112 + # ./spec/support/http_handling_shared.rb:117 - 17) HTTP::Client working with SSL connection reuse when enabled with a change in host errors + 22) HTTP::Client working with SSL connection reuse when enabled with a change in host errors # Temporarily skipped with xdescribe # ./spec/support/http_handling_shared.rb:175 - 18) HTTP::Client working with SSL connection reuse when enabled with a socket issue transparently reopens + 23) HTTP::Client working with SSL connection reuse when enabled when reading a cached body succeeds # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:154 + # ./spec/support/http_handling_shared.rb:142 - 19) HTTP::Client working with SSL connection reuse when enabled when trying to read a stale body errors + 24) HTTP::Client working with SSL connection reuse when enabled with a socket issue transparently reopens # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:135 + # ./spec/support/http_handling_shared.rb:154 - 20) HTTP::Client working with SSL connection reuse when enabled on a mixed state re-opens the connection + 25) HTTP::Client working with SSL connection reuse when enabled on a mixed state re-opens the connection # Temporarily skipped with xdescribe # ./spec/support/http_handling_shared.rb:123 - 21) HTTP::Client working with SSL connection reuse when enabled when reading a cached body succeeds + 26) HTTP::Client working with SSL connection reuse when enabled when trying to read a stale body errors # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:142 + # ./spec/support/http_handling_shared.rb:135 - 22) HTTP::Client working with SSL connection reuse when disabled opens new sockets + 27) HTTP::Client working with SSL connection reuse when enabled without a host infers host from persistent config # Temporarily skipped with xdescribe - # ./spec/support/http_handling_shared.rb:184 + # ./spec/support/http_handling_shared.rb:112 - 23) HTTP::Client#request with explicitly given `Host` header keeps `Host` header as is - # Temporarily skipped with xit - # ./spec/lib/http/client_spec.rb:241 + 28) HTTP::Client working with SSL without timeouts works + # Temporarily skipped with xdescribe + # ./spec/support/http_handling_shared.rb:7 - 24) HTTP::Client#request with non-ASCII URLs works like a charm in real world + 29) HTTP::Client following redirects with non-ASCII URLs theoretically works like a charm # Temporarily skipped with xit - # ./spec/lib/http/client_spec.rb:230 + # ./spec/lib/http/client_spec.rb:91 - 25) HTTP::Client#request with non-ASCII URLs theoretically works like a charm + 30) HTTP::Client following redirects with non-ASCII URLs works like a charm in real world # Temporarily skipped with xit - # ./spec/lib/http/client_spec.rb:225 + # ./spec/lib/http/client_spec.rb:100 - 26) HTTP.persistent with host and block given auto-closes connection + 31) HTTP::Client#request with explicitly given `Host` header keeps `Host` header as is # Temporarily skipped with xit - # ./spec/lib/http_spec.rb:269 + # ./spec/lib/http/client_spec.rb:241 - 27) HTTP.persistent with host and block given returns last evaluation of last expression + 32) HTTP::Client#request with non-ASCII URLs works like a charm in real world # Temporarily skipped with xit - # ./spec/lib/http_spec.rb:265 + # ./spec/lib/http/client_spec.rb:230 - 28) HTTP.persistent with host only given + 33) HTTP::Client#request with non-ASCII URLs theoretically works like a charm # Temporarily skipped with xit - # ./spec/lib/http_spec.rb:260 + # ./spec/lib/http/client_spec.rb:225 - 29) HTTP.persistent with host only given + 34) HTTP::Client with a per operation timeout read of 0 times out # Temporarily skipped with xit - # ./spec/lib/http_spec.rb:261 - - 30) HTTP.via proxy with authentication ssl responds with the endpoint's body - # Temporarily skipped with xcontext - # ./spec/lib/http_spec.rb:135 - - 31) HTTP.via proxy with authentication ssl responds with 407 if no credentials given - # Temporarily skipped with xcontext - # ./spec/lib/http_spec.rb:145 - - 32) HTTP.via proxy with authentication ssl responds with 407 when wrong credentials given - # Temporarily skipped with xcontext - # ./spec/lib/http_spec.rb:140 - - 33) HTTP.via anonymous proxy ssl ignores credentials - # Temporarily skipped with xcontext - # ./spec/lib/http_spec.rb:104 - - 34) HTTP.via anonymous proxy ssl responds with the endpoint's body - # Temporarily skipped with xcontext - # ./spec/lib/http_spec.rb:99 + # ./spec/support/http_handling_shared.rb:47 -Top 10 slowest examples (9 seconds, 91.5% of total time): +Top 10 slowest examples (9.74 seconds, 88.0% of total time): HTTP::Client with a global timeout it resets state when reusing connections does not timeout - 4.05 seconds ./spec/support/http_handling_shared.rb:93 + 4.06 seconds ./spec/support/http_handling_shared.rb:93 HTTP::Client with a per operation timeout read of 2.5 does not time out - 2 seconds ./spec/support/http_handling_shared.rb:55 + 2.01 seconds ./spec/support/http_handling_shared.rb:55 + HTTP unifies socket errors into HTTP::ConnectionError + 1.18 seconds ./spec/lib/http_spec.rb:455 HTTP::Client with a global timeout errors if reading takes too long 1.01 seconds ./spec/support/http_handling_shared.rb:83 HTTP::Client with a global timeout errors if connecting takes too long - 1 seconds ./spec/support/http_handling_shared.rb:75 - HTTP unifies socket errors into HTTP::ConnectionError - 0.76675 seconds ./spec/lib/http_spec.rb:455 + 1.01 seconds ./spec/support/http_handling_shared.rb:75 HTTP::Client connection reuse when enabled re-uses the socket - 0.04931 seconds ./spec/support/http_handling_shared.rb:117 - HTTP::Client connection reuse when enabled when reading a cached body succeeds - 0.04708 seconds ./spec/support/http_handling_shared.rb:142 + 0.25316 seconds ./spec/support/http_handling_shared.rb:117 HTTP getting resources with a large request body with `.timeout({:read=>2, :write=>2, :connect=>2})` writes the whole body - 0.02914 seconds ./spec/lib/http_spec.rb:64 - HTTP getting resources with a large request body with `.timeout(:null)` writes the whole body - 0.02556 seconds ./spec/lib/http_spec.rb:64 + 0.06176 seconds ./spec/lib/http_spec.rb:64 + HTTP::Client connection reuse when enabled when reading a cached body succeeds + 0.05474 seconds ./spec/support/http_handling_shared.rb:142 HTTP getting resources with a large request body with `.timeout(6)` writes the whole body - 0.02379 seconds ./spec/lib/http_spec.rb:64 + 0.05358 seconds ./spec/lib/http_spec.rb:64 + HTTP getting resources with a large request body with `.timeout(:null)` writes the whole body + 0.05095 seconds ./spec/lib/http_spec.rb:64 Top 10 slowest example groups: HTTP::Client - 0.12934 seconds average (8.28 seconds / 64 examples) ./spec/lib/http/client_spec.rb:8 + 0.1343 seconds average (8.6 seconds / 64 examples) ./spec/lib/http/client_spec.rb:8 HTTP - 0.01698 seconds average (1.07 seconds / 63 examples) ./spec/lib/http_spec.rb:9 + 0.02848 seconds average (1.79 seconds / 63 examples) ./spec/lib/http_spec.rb:9 HTTP::Connection - 0.00218 seconds average (0.00435 seconds / 2 examples) ./spec/lib/http/connection_spec.rb:3 + 0.01891 seconds average (0.03783 seconds / 2 examples) ./spec/lib/http/connection_spec.rb:3 + HTTP::Response::Body + 0.00281 seconds average (0.02247 seconds / 8 examples) ./spec/lib/http/response/body_spec.rb:3 HTTP::Request - 0.0019 seconds average (0.08544 seconds / 45 examples) ./spec/lib/http/request_spec.rb:4 - HTTP::Response - 0.00137 seconds average (0.03418 seconds / 25 examples) ./spec/lib/http/response_spec.rb:3 + 0.002 seconds average (0.08995 seconds / 45 examples) ./spec/lib/http/request_spec.rb:4 + HTTP::Request::Body + 0.00194 seconds average (0.04067 seconds / 21 examples) ./spec/lib/http/request/body_spec.rb:3 HTTP::Redirector - 0.00127 seconds average (0.04574 seconds / 36 examples) ./spec/lib/http/redirector_spec.rb:3 + 0.0017 seconds average (0.06134 seconds / 36 examples) ./spec/lib/http/redirector_spec.rb:3 + HTTP::Headers::Mixin + 0.00142 seconds average (0.00426 seconds / 3 examples) ./spec/lib/http/headers/mixin_spec.rb:3 HTTP::Response::Parser - 0.00105 seconds average (0.00419 seconds / 4 examples) ./spec/lib/http/response/parser_spec.rb:3 - HTTP::Features::Logging - 0.00095 seconds average (0.00189 seconds / 2 examples) ./spec/lib/http/features/logging_spec.rb:5 - HTTP::Features::Instrumentation - 0.00094 seconds average (0.00187 seconds / 2 examples) ./spec/lib/http/features/instrumentation_spec.rb:3 + 0.00126 seconds average (0.00505 seconds / 4 examples) ./spec/lib/http/response/parser_spec.rb:3 HTTP::Options merge - 0.00091 seconds average (0.00273 seconds / 3 examples) ./spec/lib/http/options/merge_spec.rb:3 + 0.00118 seconds average (0.00353 seconds / 3 examples) ./spec/lib/http/options/merge_spec.rb:3 -Finished in 9.84 seconds (files took 0.71362 seconds to load) +Finished in 11.06 seconds (files took 2.72 seconds to load) 811 examples, 0 failures, 34 pending -Randomized with seed 14201 +Randomized with seed 59474 Coverage report generated for RSpec to /build/ruby-http-4.4.1/coverage. 1268 / 1361 LOC (93.17%) covered. [Coveralls] Outside the CI environment, not sending data. @@ -2930,12 +3000,14 @@ dpkg-source --after-build . dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/15462/tmp/hooks/B01_cleanup finished 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/21867 and its subdirectories -I: Current time: Mon Jul 11 12:11:35 -12 2022 -I: pbuilder-time-stamp: 1657584695 +I: removing directory /srv/workspace/pbuilder/15462 and its subdirectories +I: Current time: Wed Jun 9 07:52:26 +14 2021 +I: pbuilder-time-stamp: 1623174746