Mock Version: 4.1
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/rubygem-ethon.spec'], chrootPath='/var/lib/mock/rhel+epel-9-x86_64-1687852494.508427/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f3f5f60e910>timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'ae9df1027002445190e2c3506db8b76c', '-D', '/var/lib/mock/rhel+epel-9-x86_64-1687852494.508427/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs  --target x86_64 --nodeps /builddir/build/SPECS/rubygem-ethon.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: x86_64
Building for target x86_64
setting SOURCE_DATE_EPOCH=1687651200
Wrote: /builddir/build/SRPMS/rubygem-ethon-0.16.0-1.el9.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb  --target x86_64 --nodeps /builddir/build/SPECS/rubygem-ethon.spec'], chrootPath='/var/lib/mock/rhel+epel-9-x86_64-1687852494.508427/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7f3f5f60e910>timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '23c0c66040d0455382bfc826a979e219', '-D', '/var/lib/mock/rhel+epel-9-x86_64-1687852494.508427/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.k5_8h15s:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb  --target x86_64 --nodeps /builddir/build/SPECS/rubygem-ethon.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: x86_64
Building for target x86_64
setting SOURCE_DATE_EPOCH=1687651200
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.AnHkN7
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf ethon-0.16.0
+ /usr/bin/gem unpack /builddir/build/SOURCES/ethon-0.16.0.gem
Unpacked gem: '/builddir/build/BUILD/ethon-0.16.0'
+ /usr/bin/gem spec /builddir/build/SOURCES/ethon-0.16.0.gem --ruby
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd ethon-0.16.0
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.zUTlaj
+ umask 022
+ cd /builddir/build/BUILD
+ cd ethon-0.16.0
+ gem build ../ethon-0.16.0.gemspec
WARNING:  open-ended dependency on ffi (>= 1.15.0) is not recommended
  if ffi is semantically versioned, use:
    add_runtime_dependency 'ffi', '~> 1.15', '>= 1.15.0'
WARNING:  See https://guides.rubygems.org/specification-reference/ for help
  Successfully built RubyGem
  Name: ethon
  Version: 0.16.0
  File: ethon-0.16.0.gem
+ mkdir -p ./usr/share/gems
+ CONFIGURE_ARGS='--with-cflags='\''-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'\'' --with-cxxflags='\''-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64 -march=x86-64-v2 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'\'' --with-ldflags='\''-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 '\'' '
+ gem install -V --local --build-root . --force --document=ri,rdoc ethon-0.16.0.gem
WARNING:  You build with buildroot.
  Build root: /builddir/build/BUILD/ethon-0.16.0
  Bin dir: /builddir/build/BUILD/ethon-0.16.0/usr/bin
  Gem home: /builddir/build/BUILD/ethon-0.16.0/usr/share/gems
  Plugins dir: /builddir/build/BUILD/ethon-0.16.0/usr/share/gems/plugins
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/.github/workflows/ruby.yml
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/.gitignore
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/.rspec
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/CHANGELOG.md
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/Gemfile
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/Guardfile
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/LICENSE
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/README.md
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/Rakefile
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/ethon.gemspec
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curl.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/classes.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/codes.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/constants.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/form_options.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/functions.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/infos.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/messages.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/options.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/curls/settings.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/callbacks.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/debug_info.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/features.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/form.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/header.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/actionable.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/custom.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/delete.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/get.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/head.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/options.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/patch.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/post.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/postable.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/put.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/http/putable.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/informations.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/mirror.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/operations.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/options.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/params.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/queryable.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/response_callbacks.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/easy/util.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/ethon_error.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/global_init.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/invalid_option.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/invalid_value.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/multi_add.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/multi_fdset.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/multi_remove.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/multi_timeout.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/errors/select.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/libc.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/loggable.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/multi.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/multi/operations.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/multi/options.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/multi/stack.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/lib/ethon/version.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/benchmarks.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/memory_leaks.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/perf_spec_helper.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/support/memory_test_helpers.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/support/os_memory_leak_tracker.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/profile/support/ruby_object_leak_tracker.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/curl_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/debug_info_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/features_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/form_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/header_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/custom_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/delete_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/get_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/head_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/options_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/patch_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/post_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http/put_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/http_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/options_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/queryable_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/response_callbacks_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy/util_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/easy_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/libc_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/loggable_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/multi/operations_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/multi/options_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/multi/stack_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/ethon/multi_spec.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/spec_helper.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/support/localhost_server.rb
/builddir/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0/spec/support/server.rb
Successfully installed ethon-0.16.0
Parsing documentation for ethon-0.16.0
Parsing sources...
  1% [ 1/54]  lib/ethon.rb
  3% [ 2/54]  lib/ethon/curl.rb
  5% [ 3/54]  lib/ethon/curls/classes.rb
  7% [ 4/54]  lib/ethon/curls/codes.rb
  9% [ 5/54]  lib/ethon/curls/constants.rb
 11% [ 6/54]  lib/ethon/curls/form_options.rb
 12% [ 7/54]  lib/ethon/curls/functions.rb
 14% [ 8/54]  lib/ethon/curls/infos.rb
 16% [ 9/54]  lib/ethon/curls/messages.rb
 18% [10/54]  lib/ethon/curls/options.rb
 20% [11/54]  lib/ethon/curls/settings.rb
 22% [12/54]  lib/ethon/easy.rb
 24% [13/54]  lib/ethon/easy/callbacks.rb
 25% [14/54]  lib/ethon/easy/debug_info.rb
 27% [15/54]  lib/ethon/easy/features.rb
 29% [16/54]  lib/ethon/easy/form.rb
 31% [17/54]  lib/ethon/easy/header.rb
 33% [18/54]  lib/ethon/easy/http.rb
 35% [19/54]  lib/ethon/easy/http/actionable.rb
 37% [20/54]  lib/ethon/easy/http/custom.rb
 38% [21/54]  lib/ethon/easy/http/delete.rb
 40% [22/54]  lib/ethon/easy/http/get.rb
 42% [23/54]  lib/ethon/easy/http/head.rb
 44% [24/54]  lib/ethon/easy/http/options.rb
 46% [25/54]  lib/ethon/easy/http/patch.rb
 48% [26/54]  lib/ethon/easy/http/post.rb
 50% [27/54]  lib/ethon/easy/http/postable.rb
 51% [28/54]  lib/ethon/easy/http/put.rb
 53% [29/54]  lib/ethon/easy/http/putable.rb
 55% [30/54]  lib/ethon/easy/informations.rb
 57% [31/54]  lib/ethon/easy/mirror.rb
 59% [32/54]  lib/ethon/easy/operations.rb
 61% [33/54]  lib/ethon/easy/options.rb
 62% [34/54]  lib/ethon/easy/params.rb
 64% [35/54]  lib/ethon/easy/queryable.rb
 66% [36/54]  lib/ethon/easy/response_callbacks.rb
 68% [37/54]  lib/ethon/easy/util.rb
 70% [38/54]  lib/ethon/errors.rb
 72% [39/54]  lib/ethon/errors/ethon_error.rb
 74% [40/54]  lib/ethon/errors/global_init.rb
 75% [41/54]  lib/ethon/errors/invalid_option.rb
 77% [42/54]  lib/ethon/errors/invalid_value.rb
 79% [43/54]  lib/ethon/errors/multi_add.rb
 81% [44/54]  lib/ethon/errors/multi_fdset.rb
 83% [45/54]  lib/ethon/errors/multi_remove.rb
 85% [46/54]  lib/ethon/errors/multi_timeout.rb
 87% [47/54]  lib/ethon/errors/select.rb
 88% [48/54]  lib/ethon/libc.rb
 90% [49/54]  lib/ethon/loggable.rb
 92% [50/54]  lib/ethon/multi.rb
 94% [51/54]  lib/ethon/multi/operations.rb
 96% [52/54]  lib/ethon/multi/options.rb
 98% [53/54]  lib/ethon/multi/stack.rb
100% [54/54]  lib/ethon/version.rb
Installing ri documentation for ethon-0.16.0
Installing darkfish documentation for ethon-0.16.0
Done installing documentation for ethon after 0 seconds
1 gem installed
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.Mh4Znp
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64
++ dirname /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64
+ cd ethon-0.16.0
+ mkdir -p /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64/usr/share/gems
+ cp -a ./usr/share/gems/build_info ./usr/share/gems/cache ./usr/share/gems/doc ./usr/share/gems/extensions ./usr/share/gems/gems ./usr/share/gems/plugins ./usr/share/gems/specifications /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64/usr/share/gems/
+ sed -i '/#!\/usr\/bin\/env/d' /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64//usr/share/gems/gems/ethon-0.16.0/spec/support/server.rb
+ /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 0.16.0-1.el9 --unique-debug-suffix -0.16.0-1.el9.x86_64 --unique-debug-src-base rubygem-ethon-0.16.0-1.el9.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 --remove-section .gnu.build.attributes -S debugsourcefiles.list /builddir/build/BUILD/ethon-0.16.0
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0
+ /usr/lib/rpm/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.xfnbU2
+ umask 022
+ cd /builddir/build/BUILD
~/build/BUILD/ethon-0.16.0/usr/share/gems/gems/ethon-0.16.0 ~/build/BUILD/ethon-0.16.0
+ cd ethon-0.16.0
+ pushd ./usr/share/gems/gems/ethon-0.16.0
+ sed -i -e '/require '\''bundler'\''/ s/^/#/' -e '/Bundler.setup/ s/^/#/' spec/spec_helper.rb
+ rspec spec
Ethon::Curl
  .init
    when global_init fails
      raises global init error
    when global_init works
      doesn't raises global init error
      logs
    when global_cleanup is called
      logs
Ethon::Easy::Callbacks
  #set_callbacks
    sets write-, debug-, and headerfunction
    resets @response_body
    resets @response_headers
    resets @debug_info
  #progress_callback
    returns 0
  #body_write_callback
    when body returns not :abort
      returns number bigger than 0
    when body returns :abort
      returns -1 to indicate abort to libcurl
  #header_write_callback
    when header returns not :abort
      returns number bigger than 0
    when header returns :abort
      returns -1 to indicate abort to libcurl
Ethon::Easy::DebugInfo
  #debug_info
    when verbose is not set to true
      does not save any debug info after a request
    when verbose is set to true
Found bundle for host localhost: 0x55ec39788650 [serially]
Can not multiplex, even if we wanted to!
Re-using existing connection! (#0) with host localhost
Connected to localhost (::1) port 3001 (#0)
GET / HTTP/1.1
Host: localhost:3001
Accept: */*

Mark bundle as not supporting multiuse
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 870
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.7.0 (Ruby/3.0.4/2022-04-12)
Date: Tue, 27 Jun 2023 07:56:12 GMT
Connection: Keep-Alive

Connection #0 to host localhost left intact
      saves debug info after a request
Found bundle for host localhost: 0x55ec399e6450 [serially]
Can not multiplex, even if we wanted to!
Re-using existing connection! (#0) with host localhost
Connected to localhost (::1) port 3001 (#0)
GET / HTTP/1.1
Host: localhost:3001
Accept: */*

Mark bundle as not supporting multiuse
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 870
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.7.0 (Ruby/3.0.4/2022-04-12)
Date: Tue, 27 Jun 2023 07:56:12 GMT
Connection: Keep-Alive

Connection #0 to host localhost left intact
      saves request headers
Found bundle for host localhost: 0x55ec397ea090 [serially]
Can not multiplex, even if we wanted to!
Re-using existing connection! (#0) with host localhost
Connected to localhost (::1) port 3001 (#0)
GET / HTTP/1.1
Host: localhost:3001
Accept: */*

Mark bundle as not supporting multiuse
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 870
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.7.0 (Ruby/3.0.4/2022-04-12)
Date: Tue, 27 Jun 2023 07:56:12 GMT
Connection: Keep-Alive

Connection #0 to host localhost left intact
      saves response headers
Found bundle for host localhost: 0x55ec39821c70 [serially]
Can not multiplex, even if we wanted to!
Re-using existing connection! (#0) with host localhost
Connected to localhost (::1) port 3001 (#0)
GET / HTTP/1.1
Host: localhost:3001
Accept: */*

Mark bundle as not supporting multiuse
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 870
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.7.0 (Ruby/3.0.4/2022-04-12)
Date: Tue, 27 Jun 2023 07:56:12 GMT
Connection: Keep-Alive

Connection #0 to host localhost left intact
      saves incoming data
Found bundle for host localhost: 0x55ec39a0e8c0 [serially]
Can not multiplex, even if we wanted to!
Re-using existing connection! (#0) with host localhost
Connected to localhost (::1) port 3001 (#0)
GET / HTTP/1.1
Host: localhost:3001
Accept: */*

Mark bundle as not supporting multiuse
HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Content-Length: 870
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Server: WEBrick/1.7.0 (Ruby/3.0.4/2022-04-12)
Date: Tue, 27 Jun 2023 07:56:12 GMT
Connection: Keep-Alive

Connection #0 to host localhost left intact
      saves debug text
Ethon::Easy::Informations
  #supports_asynch_dns?
    returns boolean
  #supports_zlib?
    returns boolean
  #supports_timeout_ms?
    returns boolean
Ethon::Easy::Form
  .new
    assigns attribute to @params
  #first
    returns a pointer
  #last
    returns a pointer
  #multipart?
    when query_pairs contains string values
      returns false
    when query_pairs contains file
      returns true
    when options contains multipart=true
      returns true
  #materialize
    when query_pairs contains string values
      adds params to form
    when query_pairs contains nil
      adds params to form
    when query_pairs contains file
      adds file to form
    when query_pairs contains file and string values
      adds file to form
    when query_pairs contains file, string and int values
      adds file to form
Ethon::Easy::Header
  #headers=
    sets header
    when requesting
      sends
      when header value contains null byte
        escapes
      when header value has leading whitespace
        removes
      when header value has traiing whitespace
        removes
  #compose_header
    has space in between
    when value is a symbol
      works
  #header_list
    when no set_headers
      returns nil
    when set_headers
      returns pointer to header list
Ethon::Easy::Http::Custom
  #setup
    when nothing
      sets url
      makes a custom request
    when params
      attaches escaped to url
      when requesting
        is a custom verb
        does not use application/x-www-form-urlencoded content type
        requests parameterized url
    when body
      when multipart
        sets httppost
        when requesting
          returns ok
          is a custom verb
          uses multipart/form-data content type
          submits a body
          submits the data
      when not multipart
        sets escaped copypostfields
        sets postfieldsize
        when requesting
          returns ok
          is a custom verb
          uses multipart/form-data content type
          submits a body
          submits the data
      when string
        when requesting
          returns ok
          sends string
    when params and body
      when requesting
        url contains params
        body contains form
Ethon::Easy::Http::Delete
  when requesting
    makes a delete request
Ethon::Easy::Http::Get
  #setup
    sets url
    when body
      sets customrequest
    when no body
      doesn't set customrequest
    when requesting
      when url already contains params
        returns ok
        is a get request
        requests parameterized url
      when params and no body
        returns ok
        is a get request
        requests parameterized url
      when params and body
        returns ok
        is a get request
        requests parameterized url
      with :escape
        missing
          escapes values
        nil
          escapes values
        true
          escapes values
        false
          sends raw values
Ethon::Easy::Http::Head
  #setup
    when nothing
      sets nobody
      sets url
    when params
      sets nobody
      attaches escaped to url
      when requesting
        returns ok
        has no body
        requests parameterized url
        when url already contains params
          requests parameterized url
    when body
      when requesting
        returns ok
Ethon::Easy::Http::Options
  #setup
    sets customrequest
    sets url
    when requesting
      returns ok
      is a options request
      requests parameterized url
      when url already contains params
        requests parameterized url
Ethon::Easy::Http::Patch
  #setup
    sets customrequest
    sets url
    when requesting
      returns ok
      is a patch request
      requests parameterized url
      when url already contains params
        requests parameterized url
Ethon::Easy::Http::Post
  #setup
    when nothing
      sets url
      sets postfield_size
      sets copy_postfields
      makes a post request
    when params
      attaches escaped to url
      sets postfieldsize
      sets copypostfields
      with arrays
        by default
          encodes them with indexes
        when params_encoding is :rack
          encodes them without indexes
      with :escape
        missing
          escapes values
        nil
          escapes values
        true
          escapes values
        false
          sends raw values
      when requesting
        is a post
        uses application/x-www-form-urlencoded content type
        requests parameterized url
        when redirection
          when no postredirs
            is a get
          when postredirs
            is a post
    when body
      when multipart
        sets httppost
        when requesting
          returns ok
          is a post
          uses multipart/form-data content type
          submits a body
          submits the data
      when not multipart
        sets escaped copypostfields
        sets postfieldsize
        when requesting
          returns ok
          is a post
          uses multipart/form-data content type
          submits a body
          submits the data
      when string
        when requesting
          returns ok
          sends string
      when binary with null bytes
        when requesting
          returns ok
          sends binary data
      when arrays
        by default
          sets copypostfields with indexed, escaped representation
        when params_encoding is :rack
          sets copypostfields with non-indexed, escaped representation
    when params and body
      when requesting
        url contains params
        body contains form
Ethon::Easy::Http::Put
  #setup
    when nothing
      sets url
      sets upload
      sets infilesize
      when requesting
        makes a put request
    when params
      attaches escaped to url
      sets upload
      sets infilesize
      with arrays
        by default
          encodes them with indexes
        when params_encoding is :rack
          encodes them without indexes
      when requesting
        makes a put request
    when body
      sets infilesize
      sets readfunction
      sets upload
      when requesting
        sending string body
          makes a put request
          submits a body
        when injecting a file as body
          submits file
      when arrays
        by default
          submits an indexed, escaped representation
        when params_encoding is :rack
          submits an non-indexed, escaped representation
Ethon::Easy::Http
  #http_request
    instanciates action
    when requesting
      returns ok
      makes a GET request
      streams the response body from the GET request
      notifies when headers are ready
      returns ok
      makes a POST request
      streams the response body from the POST request
      notifies when headers are ready
      returns ok
      makes a PUT request
      streams the response body from the PUT request
      notifies when headers are ready
      returns ok
      makes a DELETE request
      streams the response body from the DELETE request
      notifies when headers are ready
      returns ok
      returns ok
      makes a PATCH request
      streams the response body from the PATCH request
      notifies when headers are ready
      returns ok
      makes a OPTIONS request
      streams the response body from the OPTIONS request
      notifies when headers are ready
      makes requests with custom HTTP verbs
Ethon::Easy::Informations
  #httpauth_avail
    returns
  #total_time
    returns float
  #starttransfer_time
    returns float
  #appconnect_time
    returns float
  #pretransfer_time
    returns float
  #connect_time
    returns float
  #namelookup_time
    returns float
  #redirect_time
    returns float
  #effective_url
    returns url
  #primary_ip
    returns localhost
  #response_code
    returns 200
  #redirect_count
    returns 0
  #redirect_url
    returns nil as there is no redirect
  #request_size
    returns 53
  #supports_zlib?
    returns true
  #size_upload
    returns float
  #size_download
    returns float
  #speed_upload
    returns float
  #speed_download
    returns float
Ethon::Easy::Mirror
  ::INFORMATIONS_TO_LOG
    contains return_code
    contains response_code
    contains response_body
    contains response_headers
    contains total_time
    contains starttransfer_time
    contains appconnect_time
    contains pretransfer_time
    contains connect_time
    contains namelookup_time
    contains redirect_time
    contains size_upload
    contains size_download
    contains speed_upload
    contains speed_upload
    contains effective_url
    contains primary_ip
    contains redirect_count
    contains redirect_url
    contains debug_info
  #to_hash
    returns mirror as hash
  #log_informations
    returns hash
    only calls methods that exist
    includes return code
Ethon::Easy::Operations
  #handle
    returns a pointer
  #perform
D, [2023-06-27T07:56:15.395662 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
D, [2023-06-27T07:56:15.396304 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
    calls Curl.easy_perform
D, [2023-06-27T07:56:15.396990 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
    calls Curl.easy_cleanup
D, [2023-06-27T07:56:15.397919 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
    logs
D, [2023-06-27T07:56:15.398619 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
D, [2023-06-27T07:56:15.398683 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
    doesn't log after completing because completing could reset
    when url
D, [2023-06-27T07:56:15.403930 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.004506
      returns ok
D, [2023-06-27T07:56:15.405496 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.000995
      sets response body
D, [2023-06-27T07:56:15.407284 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.000877
      sets response headers
      when request timed out
D, [2023-06-27T07:56:16.409646 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/?delay=1 response_code=0 return_code=operation_timedout total_time=1.000899
        returns operation_timedout
      when connection timed out
D, [2023-06-27T07:56:16.411158 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3009/ response_code=0 return_code=couldnt_connect total_time=0.000437
        returns couldnt_connect
      when no follow location
D, [2023-06-27T07:56:16.413234 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/redirect response_code=302 return_code=ok total_time=0.001143
        doesn't follow
      when follow location
D, [2023-06-27T07:56:16.456670 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.042523
        follows
        when infinite redirect loop
          when max redirect set
D, [2023-06-27T07:56:16.463048 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/bad_redirect response_code=302 return_code=too_many_redirects total_time=0.004769
            follows only x times
      when user agent
D, [2023-06-27T07:56:16.464920 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.000947
        sets
    when auth url
      when basic auth
        when no user_pwd
D, [2023-06-27T07:56:16.469293 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_basic/username/password response_code=401 return_code=ok total_time=0.003013
          returns 401
        when invalid user_pwd
D, [2023-06-27T07:56:16.471475 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_basic/username/password response_code=401 return_code=ok total_time=0.00128
          returns 401
        when valid user_pwd
D, [2023-06-27T07:56:16.473238 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_basic/username/password response_code=200 return_code=ok total_time=0.000861
          returns 200
        when user and password
D, [2023-06-27T07:56:16.475085 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_basic/username/password response_code=200 return_code=ok total_time=0.001142
          returns 200
      when ntlm
        when no user_pwd
D, [2023-06-27T07:56:16.477041 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_ntlm response_code=401 return_code=ok total_time=0.000845
          returns 401
        when user_pwd
D, [2023-06-27T07:56:16.478772 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_ntlm response_code=200 return_code=ok total_time=0.000838
          returns 200
    when protocols
      when asking for a allowed url
D, [2023-06-27T07:56:16.480836 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.00135
        returns ok
      when asking for a not allowed url
D, [2023-06-27T07:56:16.481492 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=0 return_code=unsupported_protocol total_time=0.0
        returns unsupported_protocol
    when multiple protocols
      when asking for a allowed url
        when http
D, [2023-06-27T07:56:16.483081 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.000863
          returns ok for http
        when https
D, [2023-06-27T07:56:16.504280 #219] DEBUG -- : ETHON: performed EASY effective_url=https://localhost:3001/ response_code=0 return_code=ssl_connect_error total_time=0.019647
          returns ssl_connect_error for https
      when asking for a not allowed url
D, [2023-06-27T07:56:16.505468 #219] DEBUG -- : ETHON: performed EASY effective_url=ssh://localhost/ response_code=0 return_code=unsupported_protocol total_time=0.0
        returns unsupported_protocol
    when redir_protocols
      when redirecting to a not allowed url
D, [2023-06-27T07:56:16.507900 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=302 return_code=unsupported_protocol total_time=0.001661
        returns unsupported_protocol
    when no url
D, [2023-06-27T07:56:16.508589 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
D, [2023-06-27T07:56:16.508650 #219] DEBUG -- : ETHON: performed EASY effective_url= response_code=0 return_code=url_malformat total_time=0.0
      returns url_malformat
Ethon::Easy::Options
  accept_encoding=
    responds_to
    sets option
  cainfo=
    responds_to
    sets option
  capath=
    responds_to
    sets option
  connecttimeout=
    responds_to
    sets option
  connecttimeout_ms=
    responds_to
    sets option
  cookie=
    responds_to
    sets option
  cookiejar=
    responds_to
    sets option
  cookiefile=
    responds_to
    sets option
  copypostfields=
    responds_to
    sets option
  customrequest=
    responds_to
    sets option
  dns_cache_timeout=
    responds_to
    sets option
  followlocation=
    responds_to
    sets option
  forbid_reuse=
    responds_to
    sets option
  http_version=
    responds_to
    sets option
  httpauth=
    responds_to
    sets option
  httpget=
    responds_to
    sets option
  httppost=
    responds_to
    sets option
  infilesize=
    responds_to
    sets option
  interface=
    responds_to
    sets option
  keypasswd=
    responds_to
    sets option
  maxredirs=
    responds_to
    sets option
  nobody=
    responds_to
    sets option
  nosignal=
    responds_to
    sets option
  postfieldsize=
    responds_to
    sets option
  postredir=
    responds_to
    sets option
  protocols=
    responds_to
    sets option
  proxy=
    responds_to
    sets option
  proxyauth=
    responds_to
    sets option
  proxyport=
    responds_to
    sets option
  proxytype=
    responds_to
    sets option
  proxyuserpwd=
    responds_to
    sets option
  readdata=
    responds_to
    sets option
  readfunction=
    responds_to
    sets option
  redir_protocols=
    responds_to
    sets option
  ssl_verifyhost=
    responds_to
    sets option
  ssl_verifypeer=
    responds_to
    sets option
  sslcert=
    responds_to
    sets option
  sslcerttype=
    responds_to
    sets option
  sslkey=
    responds_to
    sets option
  sslkeytype=
    responds_to
    sets option
  sslversion=
    responds_to
    sets option
  timeout=
    responds_to
    sets option
  timeout_ms=
    responds_to
    sets option
  unrestricted_auth=
    responds_to
    sets option
  upload=
    responds_to
    sets option
  url=
    responds_to
    sets option
  useragent=
    responds_to
    sets option
  userpwd=
    responds_to
    sets option
  verbose=
    responds_to
    sets option
  pipewait=
    responds_to
    sets option
  dns_shuffle_addresses=
    responds_to
    sets option
  path_as_is=
    responds_to
    sets option
  #escape?
    by default
      returns true
    when #escape=nil
      returns true
    when #escape=true
      returns true
    when #escape=false
      returns true
  #multipart?
    by default
      returns false
    when #multipart=nil
      returns false
    when #multipart=true
      returns true
    when #multipart=false
      returns false
  #httppost=
    raises unless given a FFI::Pointer
  when requesting
    when userpwd
      when contains /
D, [2023-06-27T07:56:16.573232 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/auth_basic/test/te%2Fst response_code=200 return_code=ok total_time=0.00382
        works
    when timeout
      when request takes longer
D, [2023-06-27T07:56:17.575418 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/?delay=2 response_code=0 return_code=operation_timedout total_time=1.001286
        times out
    when connecttimeout
      when cannot connect
D, [2023-06-27T07:56:17.577096 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3002/ response_code=0 return_code=couldnt_connect total_time=0.00034
        times out
    when timeout_ms
      when request takes longer
D, [2023-06-27T07:56:17.678746 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/?delay=1 response_code=0 return_code=operation_timedout total_time=0.100603
        times out
    when connecttimeout_ms
      when cannot connect
D, [2023-06-27T07:56:17.680101 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3002/ response_code=0 return_code=couldnt_connect total_time=0.000376
        times out
Ethon::Easy::Queryable
  #to_s
    when query_pairs empty
      returns empty string
    when query_pairs not empty
      when escape
        turns "!" into %21
        turns "*" into %2A
        turns "'" into %27
        turns "(" into %28
        turns ")" into %29
        turns ";" into %3B
        turns ":" into %3A
        turns "@" into %40
        turns "&" into %26
        turns "=" into %3D
        turns "+" into %2B
        turns "$" into %24
        turns "," into %2C
        turns "/" into %2F
        turns "?" into %3F
        turns "#" into %23
        turns "[" into %5B
        turns "]" into %5D
        turns "<" into %3C
        turns ">" into %3E
        turns "\"" into %22
        turns "{" into %7B
        turns "}" into %7D
        turns "|" into %7C
        turns "\\" into %5C
        turns "`" into %60
        turns "^" into %5E
        turns "%" into %25
        turns " " into %20
        turns "\u0000" into %00
        turns "\u307E\u3064\u3082\u3068" into %E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8
        leaves "." instead of turning into %2E
        leaves "-" instead of turning into %2D
        leaves "_" instead of turning into %5F
        leaves "~" instead of turning into %7E
      when no escape
        returns concatenated query string
    when query_pairs contains a string
      returns correct string
  #build_query_pairs
    when params is empty
      returns empty array
    when params is string
      wraps it in an array
    when params is simple hash
      transforms
    when params is a nested hash
      transforms
    when params contains an array
      by default
        transforms
      when params_encoding is :rack
        transforms without indexes
      when params_encoding is :none
        does no transformation
    when params contains something nested in an array
      when string
        transforms
      when hash
        transforms
      when file
        transforms
        when MIME
          when mime type
            sets mime type to text
          when no mime type
            sets mime type to default application/octet-stream
        when no MIME
          sets mime type to default application/octet-stream
    when params contains file
      transforms
    when params key contains a null byte
      preserves
    when params value contains a null byte
      preserves
  #empty?
    when params empty
      returns true
    when params not empty
      returns false
Ethon::Easy::ResponseCallbacks
  #on_complete
    responds
    when no block given
      returns @on_complete
    when block given
      stores
    when multiple blocks given
      stores
  #on_headers
    responds
    when no block given
      returns @on_headers
    when block given
      stores
    when multiple blocks given
      stores
  #on_body
    responds
    when no block given
      returns @on_body
    when block given
      stores
    when multiple blocks given
      stores
  #on_progress
    responds
    when no block given
      returns @on_progress
    when block given
      stores
    when multiple blocks given
      stores
  #complete
    executes blocks and passes self
    when @on_complete nil
      doesn't raise
  #headers
    executes blocks and passes self
    when @on_headers nil
      doesn't raise
  #progress
    when requesting for realz
D, [2023-06-27T07:56:17.712880 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001743
      executes callback
    when pretending
      executes blocks and passes dltotal
      executes blocks and passes dlnow
      executes blocks and passes ultotal
      executes blocks and passes ulnow
      when @on_progress nil
        doesn't raise
  #body
    executes blocks and passes self
    executes blocks and passes chunk
    when @on_body nil
      doesn't raise
Ethon::Easy::Util
  escape_zero_byte
    when value has no zero byte
      returns same value
    when value has zero byte
      returns escaped
Ethon::Easy
  .new
    inits curl
    when options are empty
      sets only callbacks
    when options not empty
      when followlocation is set
        sets followlocation
  #set_attributes
    when options are empty
      sets only callbacks
    when options aren't empty
      when valid key
        sets
      when invalid key
        raises invalid option error
  #reset
    resets url
    resets escape?
    resets hash
    resets easy handle
    resets on_complete
    resets on_headers
    resets on_body
  #dup
    sets a new handle
    preserves url
    preserves on_complete callback
    preserves on_headers callback
D, [2023-06-27T07:56:17.728027 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001531
D, [2023-06-27T07:56:17.769586 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001531
    preserves body_write_callback of original handle
    preserves on_progress callback
D, [2023-06-27T07:56:17.772426 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001353
D, [2023-06-27T07:56:17.813563 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001353
    sets new body_write_callback of duplicated handle
D, [2023-06-27T07:56:17.816237 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001327
D, [2023-06-27T07:56:17.857579 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001327
    preserves headers_write_callback of original handle
D, [2023-06-27T07:56:17.860015 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001323
D, [2023-06-27T07:56:17.901569 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001323
    sets new headers_write_callback of duplicated handle
    resets response_body
    resets response_headers
D, [2023-06-27T07:56:17.904880 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001404
    sets response_body for duplicated Easy
D, [2023-06-27T07:56:17.906719 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001256
    sets response_headers for duplicated Easy
D, [2023-06-27T07:56:17.908640 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001111
    preserves response_body for original Easy
D, [2023-06-27T07:56:17.910417 #219] DEBUG -- : ETHON: performed EASY effective_url=http://localhost:3001/ response_code=200 return_code=ok total_time=0.001065
    preserves response_headers for original Easy
  #mirror
    returns a Mirror
    builds from easy
  #log_inspect
    contains url
    contains response_code
    contains return_code
    contains total_time
Ethon::Libc
  #getdtablesize
    returns an integer
    returns bigger zero
Ethon::Loggable
  #logger=
    sets the logger
Ethon::Multi::Operations
  #handle
    returns a pointer
  #running_count
    when hydra has no easy
      returns nil
    when hydra has easy
      returns 1
    when hydra has more easys
      returns 2
  #get_timeout
    when code ok
      doesn't raise
      when timeout smaller zero
        returns 1
      when timeout bigger or equal zero
        returns timeout
    when code not ok
      raises MultiTimeout error
  #set_fds
    when code ok
      doesn't raise
      when max_fd -1
        waits 100ms
      when max_fd not -1
        when code smaller zero
          raises Select error
        when code bigger or equal zero
          doesn't raise
    when code not ok
      raises MultiFdset error
  #perform
    when no easy handles
      returns nil
      logs
    when easy handle
      requests
      sets easy
    when four easy handles
      sets response codes
  #ongoing?
    when easy_handles
      when running_count not greater 0
        returns true
      when running_count greater 0
        returns true
    when no easy_handles
      when running_count not greater 0
        returns false
      when running_count greater 0
        returns true
  #init_vars
    sets @timeout
    sets @timeval
    sets @fd_read
    sets @fd_write
    sets @fd_excep
    sets @max_fd
  #reset_fds
    resets @fd_read
    resets @fd_write
    resets @fd_excep
  #check
    example at ./spec/ethon/multi/operations_spec.rb:274 (PENDING: untested)
  #run
    example at ./spec/ethon/multi/operations_spec.rb:278 (PENDING: untested)
  #trigger
    calls multi perform
    sets running count
    returns multi perform code
Ethon::Multi::Options
  maxconnects=
    responds_to
    sets option
  pipelining=
    responds_to
    sets option
  socketdata=
    responds_to
    sets option
  socketfunction=
    responds_to
    sets option
  timerdata=
    responds_to
    sets option
  timerfunction=
    responds_to
    sets option
  max_total_connections=
    responds_to
    sets option
  socket_action mode
    #socketfunction callbacks
      allows multi_code return values
      allows integer return values (compatibility)
      errors on invalid return codes
    #timerfunction callbacks
      allows multi_code return values
      allows integer return values (compatibility)
      errors on invalid return codes
  #value_for
    when option in bool
      when value true
        returns 1
      when value false
        returns 0
    when value in int
      returns value casted to int
    when value in unspecific_options
      when value a string
        returns zero byte escaped string
      when value not a string
        returns value
Ethon::Multi::Stack
  #add
    when easy already added
      returns nil
    when easy new
      adds easy to multi
      adds easy to easy_handles
    when multi_add_handle fails
      raises multi add error
    when multi cleaned up before
      raises multi add error
  #delete
    when easy in easy_handles
      deletes easy from multi
      deletes easy from easy_handles
    when easy is not in easy_handles
      does nothing
      adds easy to easy_handles
    when multi_remove_handle fails
      raises multi remove error
Ethon::Multi
  .new
    inits curl
    with default options
      allows running #perform with the default execution_mode
      refuses to run #socket_action
    when options not empty
      when pipelining is set
        sets pipelining
      when execution_mode option is :socket_action
        refuses to run #perform
        allows running #socket_action
  #socket_action
    supports an end-to-end request
    supports multiple concurrent requests
Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Ethon::Multi::Operations#check 
     # untested
     # ./spec/ethon/multi/operations_spec.rb:274

  2) Ethon::Multi::Operations#run 
     # untested
     # ./spec/ethon/multi/operations_spec.rb:278

Finished in 6.21 seconds (files took 0.37401 seconds to load)
578 examples, 0 failures, 2 pending
+ popd
+ RPM_EC=0
~/build/BUILD/ethon-0.16.0
++ jobs -p
+ exit 0
Processing files: rubygem-ethon-0.16.0-1.el9.noarch
Provides: rubygem(ethon) = 0.16.0 rubygem-ethon = 0.16.0-1.el9
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: ruby(rubygems) >= 1.3.6 rubygem(ffi) >= 1.15.0
Processing files: rubygem-ethon-doc-0.16.0-1.el9.noarch
Provides: rubygem-ethon-doc = 0.16.0-1.el9
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64
Wrote: /builddir/build/RPMS/rubygem-ethon-0.16.0-1.el9.noarch.rpm
Wrote: /builddir/build/RPMS/rubygem-ethon-doc-0.16.0-1.el9.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.PskQby
+ umask 022
+ cd /builddir/build/BUILD
+ cd ethon-0.16.0
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/rubygem-ethon-0.16.0-1.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
Child return code was: 0