++ dirname ./run.sh
+ cd .
+ echo 1270
+ echo '2.0-SNAPSHOT BUILD'
2.0-SNAPSHOT BUILD
+ date
Tue Dec 23 03:34:18 UTC 2025
+ uptime
03:34:18 up 1 min, 0 users, load average: 0.71, 0.28, 0.10
+ ff=default
+ image=yegor256/ruby
+ rebase=false
+ head_branch=master
+ pull_title='Update fsfe/reuse-action action to v6'
+ author=yegor256
+ directory=
+ head=git@github.com:yegor256/sibit.git
+ pull_id=161
+ fork=git@github.com:yegor256/sibit.git
+ fork_branch=renovate/fsfe-reuse-action-6.x
+ squash=false
+ vars=('--env=head=git@github.com:yegor256/sibit.git' '--env=pull_id=161' '--env=fork=git@github.com:yegor256/sibit.git' '--env=fork_branch=renovate/fsfe-reuse-action-6.x' '--env=head_branch=master' '--env=pull_title=Update fsfe/reuse-action action to v6' '--env=author=yegor256' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/sibit.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=161'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:yegor256/sibit.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=renovate/fsfe-reuse-action-6.x'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Update fsfe/reuse-action action to v6'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''bundle install --no-color "--gemfile=$(pwd)/Gemfile"'\'' '\'';'\'' '\''bundle exec rake'\'' '\'';'\'' )')
+ scripts=('export '\''head=git@github.com:yegor256/sibit.git'\''' ';' 'export '\''pull_id=161'\''' ';' 'export '\''fork=git@github.com:yegor256/sibit.git'\''' ';' 'export '\''fork_branch=renovate/fsfe-reuse-action-6.x'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Update fsfe/reuse-action action to v6'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'bundle install --no-color "--gemfile=$(pwd)/Gemfile"' ';' 'bundle exec rake' ';')
+ container=yegor256_sibit_161
+ as_root=false
+ set -e -o pipefail
+ hostname
ip-172-31-25-202
+ pwd
/tmp/rultor-Kk4D
+ git --version
git version 2.34.1
+ docker --version
Docker version 25.0.3, build 4debf41
+ mkdir -p /home/ubuntu/.ssh
+ echo -e 'Host github.com\n\tStrictHostKeyChecking no\n'
+ chmod 600 /home/ubuntu/.ssh/config
+ git clone --recurse-submodules git@github.com:yegor256/sibit.git repo
Cloning into 'repo'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
+ cd repo
+ git config user.email gpg@rultor.com
+ git config user.name Rultor.com
+ '[' -z 'export '\''head=git@github.com:yegor256/sibit.git'\''' ']'
+ cd ..
+ cat
+ '[' false = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:yegor256/sibit.git'\''' ';' 'export '\''pull_id=161'\''' ';' 'export '\''fork=git@github.com:yegor256/sibit.git'\''' ';' 'export '\''fork_branch=renovate/fsfe-reuse-action-6.x'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Update fsfe/reuse-action action to v6'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'bundle install --no-color "--gemfile=$(pwd)/Gemfile"' ';' 'bundle exec rake' ';'
+ sensitive=()
+ set -ex -o pipefail
+ cd repo
+ git remote add fork git@github.com:yegor256/sibit.git
+ git remote update
Fetching origin
Fetching fork
From github.com:yegor256/sibit
* [new branch] master -> fork/master
* [new branch] renovate/actions-checkout-6.x -> fork/renovate/actions-checkout-6.x
* [new branch] renovate/cucumber-10.x -> fork/renovate/cucumber-10.x
* [new branch] renovate/fsfe-reuse-action-6.x -> fork/renovate/fsfe-reuse-action-6.x
* [new branch] renovate/ruby-3.x -> fork/renovate/ruby-3.x
+ args=()
+ '[' default == default ']'
+ args+=(--ff)
+ '[' default == no ']'
+ '[' default == only ']'
+ '[' false == true ']'
+ BRANCH=__rultor
++ wc -l
++ git show-branch __rultor
+ '[' 0 -gt 0 ']'
+ export BRANCH
+ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
+ git checkout -B __rultor fork/renovate/fsfe-reuse-action-6.x
Switched to a new branch '__rultor'
Branch '__rultor' set up to track remote branch 'renovate/fsfe-reuse-action-6.x' from 'fork'.
+ git checkout -B master origin/master
Switched to and reset branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
Your branch is up to date with 'origin/master'.
+ '[' false == true ']'
+ KEY=3FD3FA7E9AF0FA4C
+ git merge --gpg-sign=3FD3FA7E9AF0FA4C --no-edit -m 'Update fsfe/reuse-action action to v6' --ff __rultor
Updating f566b9a..c477724
Fast-forward (no commit created; -m option ignored)
.github/workflows/reuse.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
+ git log -1 --show-signature
commit c477724841f9aabaf6d062a73b396d2c8ab326c0
gpg: Signature made Mon Dec 22 18:39:21 2025 UTC
gpg: using RSA key B5690EEEBB952194
gpg: Can't check signature: No public key
Author: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Date: Mon Dec 22 18:39:21 2025 +0000
Update fsfe/reuse-action action to v6
+ docker_when_possible
+ true
++ tail -n 1
++ sed 's/ /\n/g'
++ uptime
+ load=0.11
++ bc
++ echo 0.11 '>' 30
+ '[' 0 -eq 1 ']'
+ echo 'load average is 0.11, low enough to run a new Docker container'
load average is 0.11, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=yegor256/ruby
+ docker pull yegor256/ruby
Using default tag: latest
latest: Pulling from yegor256/ruby
632ef5283d0f: Pulling fs layer
2be42d221bda: Pulling fs layer
54d1704eb717: Pulling fs layer
f0f51ee5c79e: Pulling fs layer
ec11ce133a4e: Pulling fs layer
71ab1586461a: Pulling fs layer
8e0e2fc3c108: Pulling fs layer
4f4fb700ef54: Pulling fs layer
72e45e6fed5c: Pulling fs layer
99e89f339e27: Pulling fs layer
3f0278ea12d5: Pulling fs layer
11f168291684: Pulling fs layer
0943aaa8f703: Pulling fs layer
fd13cdf0383c: Pulling fs layer
f0f51ee5c79e: Waiting
ec11ce133a4e: Waiting
71ab1586461a: Waiting
8e0e2fc3c108: Waiting
4f4fb700ef54: Waiting
72e45e6fed5c: Waiting
99e89f339e27: Waiting
3f0278ea12d5: Waiting
11f168291684: Waiting
0943aaa8f703: Waiting
fd13cdf0383c: Waiting
2be42d221bda: Verifying Checksum
2be42d221bda: Download complete
632ef5283d0f: Verifying Checksum
632ef5283d0f: Download complete
54d1704eb717: Verifying Checksum
54d1704eb717: Download complete
ec11ce133a4e: Verifying Checksum
ec11ce133a4e: Download complete
8e0e2fc3c108: Verifying Checksum
8e0e2fc3c108: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
72e45e6fed5c: Verifying Checksum
72e45e6fed5c: Download complete
71ab1586461a: Verifying Checksum
71ab1586461a: Download complete
99e89f339e27: Verifying Checksum
99e89f339e27: Download complete
11f168291684: Verifying Checksum
11f168291684: Download complete
0943aaa8f703: Verifying Checksum
0943aaa8f703: Download complete
fd13cdf0383c: Verifying Checksum
fd13cdf0383c: Download complete
f0f51ee5c79e: Verifying Checksum
f0f51ee5c79e: Download complete
3f0278ea12d5: Verifying Checksum
3f0278ea12d5: Download complete
632ef5283d0f: Pull complete
2be42d221bda: Pull complete
54d1704eb717: Pull complete
f0f51ee5c79e: Pull complete
ec11ce133a4e: Pull complete
71ab1586461a: Pull complete
8e0e2fc3c108: Pull complete
4f4fb700ef54: Pull complete
72e45e6fed5c: Pull complete
99e89f339e27: Pull complete
3f0278ea12d5: Pull complete
11f168291684: Pull complete
0943aaa8f703: Pull complete
fd13cdf0383c: Pull complete
Digest: sha256:2efd606f46d102d3ac2341eae193a4da1f1d8af42a73f51ec066a7cb55d5e37d
Status: Downloaded newer image for yegor256/ruby:latest
docker.io/yegor256/ruby:latest
+ grep --quiet '\syegor256_sibit_161\s*$'
+ docker ps --filter=status=exited
+ ls -al .
total 48
drwx------ 3 ubuntu ubuntu 4096 Dec 23 03:34 .
drwxrwxrwt 12 root root 4096 Dec 23 03:34 ..
-rwxrwxr-x 1 ubuntu ubuntu 666 Dec 23 03:34 end.sh
-rwxrwxr-x 1 ubuntu ubuntu 498 Dec 23 03:34 entry.sh
-rw-rw-r-- 1 ubuntu ubuntu 5 Dec 23 03:34 pid
drwxrwxr-x 9 ubuntu ubuntu 4096 Dec 23 03:34 repo
-rw-rw-r-- 1 ubuntu ubuntu 81 Dec 23 03:34 rubygems.yml
-rwxrwxr-x 1 ubuntu ubuntu 6542 Dec 23 03:34 run.sh
-rw-rw-r-- 1 ubuntu ubuntu 574 Dec 23 03:34 script.sh
-rw-rw-r-- 1 ubuntu ubuntu 7829 Dec 23 03:34 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-Kk4D:/main --env=head=git@github.com:yegor256/sibit.git --env=pull_id=161 --env=fork=git@github.com:yegor256/sibit.git --env=fork_branch=renovate/fsfe-reuse-action-6.x --env=head_branch=master '--env=pull_title=Update fsfe/reuse-action action to v6' --env=author=yegor256 '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/sibit.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=161'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:yegor256/sibit.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=renovate/fsfe-reuse-action-6.x'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Update fsfe/reuse-action action to v6'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''bundle install --no-color "--gemfile=$(pwd)/Gemfile"'\'' '\'';'\'' '\''bundle exec rake'\'' '\'';'\'' )' --hostname=docker --privileged --net=host --dns 8.8.8.8 --add-host docker:127.0.0.1 --memory=8g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-Kk4D/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_sibit_161 yegor256/ruby /main/entry.sh
WARNING: Your kernel does not support OomKillDisable. OomKillDisable discarded.
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
++ awk -F : '$3 > 100 { print $1 }'
++ cat /etc/group
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G nogroup r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G ssh r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G docker r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G r r
+ usermod -s /bin/bash r
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bashrc /root/.cache /root/.gemrc /root/.profile /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./pid ./repo ./rubygems.yml ./run.sh ./script.sh ./stdout /home/r
+ rm -rf repo
+ chown -R r:r /home/r
+ chmod a+x /home/r/script.sh
+ cat /home/r/script.sh
#!/usr/bin/env bash
set -e
set -o pipefail
if [ -e /home/r/.profile ]; then source /home/r/.profile; fi
shopt -s expand_aliases
alias 'sudo=sudo -i'
export HOME=/home/r
cd "${HOME}/repo"
export 'head=git@github.com:yegor256/sibit.git' ; export 'pull_id=161' ; export 'fork=git@github.com:yegor256/sibit.git' ; export 'fork_branch=renovate/fsfe-reuse-action-6.x' ; export 'head_branch=master' ; export 'pull_title=Update fsfe/reuse-action action to v6' ; export 'author=yegor256' ; pdd -f /dev/null ; bundle install --no-color "--gemfile=$(pwd)/Gemfile" ; bundle exec rake ;
+ su --login r --command /home/r/script.sh
Found 7 lines in /home/r/repo/.pdd
My version is 0.23.1
Ruby version is 3.4.5 at x86_64-linux
Reading from root dir .
Excluding target/**/*
Excluding coverage/**/*
/usr/local/bundle/gems/pdd-0.23.1/lib/pdd/sources.rb:90: warning: undefining the allocator of T_DATA class FileMagic
/home/r/repo/logo.svg is a binary file (3101 bytes)
/home/r/repo/renovate.json is a binary file (107 bytes)
Reading .0pdd.yml ...
Reading .gitattributes ...
Reading .github/workflows/actionlint.yml ...
Reading .github/workflows/codecov.yml ...
Reading .github/workflows/copyrights.yml ...
Reading .github/workflows/markdown-lint.yml ...
Reading .github/workflows/pdd.yml ...
Reading .github/workflows/rake.yml ...
Reading .github/workflows/reuse.yml ...
Reading .github/workflows/typos.yml ...
Reading .github/workflows/xcop.yml ...
Reading .github/workflows/yamllint.yml ...
Reading .gitignore ...
Reading .pdd ...
Reading .rubocop.yml ...
Reading .rultor.yml ...
Reading Gemfile ...
Reading Gemfile.lock ...
Reading LICENSE.txt ...
Reading LICENSES/MIT.txt ...
Reading README.md ...
Reading REUSE.toml ...
Reading Rakefile ...
Reading bin/sibit ...
Reading cucumber.yml ...
Reading features/cli.feature ...
Reading features/gem_package.feature ...
Reading features/step_definitions/steps.rb ...
Reading features/support/env.rb ...
Reading lib/sibit/bestof.rb ...
Reading lib/sibit/bitcoin/base58.rb ...
Reading lib/sibit/bitcoin/key.rb ...
Reading lib/sibit/bitcoin/script.rb ...
Reading lib/sibit/bitcoin/tx.rb ...
Reading lib/sibit/bitcoin/txbuilder.rb ...
Reading lib/sibit/bitcoinchain.rb ...
Reading lib/sibit/blockchain.rb ...
Reading lib/sibit/blockchair.rb ...
Reading lib/sibit/btc.rb ...
Reading lib/sibit/cex.rb ...
Reading lib/sibit/cryptoapis.rb ...
Reading lib/sibit/earn.rb ...
Reading lib/sibit/error.rb ...
Reading lib/sibit/fake.rb ...
Reading lib/sibit/firstof.rb ...
Reading lib/sibit/http.rb ...
Reading lib/sibit/json.rb ...
Reading lib/sibit/version.rb ...
Reading lib/sibit.rb ...
Reading sibit.gemspec ...
Reading test/test__helper.rb ...
Reading test/test_base58.rb ...
Reading test/test_bestof.rb ...
Reading test/test_bitcoinchain.rb ...
Reading test/test_blockchain.rb ...
Reading test/test_blockchair.rb ...
Reading test/test_btc.rb ...
Reading test/test_cex.rb ...
Reading test/test_cryptoapis.rb ...
Reading test/test_fake.rb ...
Reading test/test_firstof.rb ...
Reading test/test_json.rb ...
Reading test/test_key.rb ...
Reading test/test_live.rb ...
Reading test/test_script.rb ...
Reading test/test_sibit.rb ...
Reading test/test_tx.rb ...
Reading test/test_txbuilder.rb ...
Bundler 2.6.9 is running, but your lockfile was generated with 2.5.16. Installing Bundler 2.5.16 and restarting using that version.
Fetching gem metadata from https://rubygems.org/.
Fetching bundler 2.5.16
Installing bundler 2.5.16
Fetching gem metadata from https://rubygems.org/........
Fetching rake 13.3.1
Installing rake 13.3.1
Fetching public_suffix 7.0.0
Installing public_suffix 7.0.0
Fetching addressable 2.8.8
Installing addressable 2.8.8
Fetching ansi 1.5.0
Installing ansi 1.5.0
Fetching contracts 0.17.3
Installing contracts 0.17.3
Fetching builder 3.3.0
Installing builder 3.3.0
Fetching cucumber-ci-environment 10.0.1
Installing cucumber-ci-environment 10.0.1
Fetching cucumber-messages 22.0.0
Installing cucumber-messages 22.0.0
Fetching cucumber-gherkin 27.0.0
Installing cucumber-gherkin 27.0.0
Fetching cucumber-tag-expressions 6.1.2
Installing cucumber-tag-expressions 6.1.2
Fetching cucumber-core 13.0.3
Installing cucumber-core 13.0.3
Fetching bigdecimal 4.0.1
Installing bigdecimal 4.0.1 with native extensions
Fetching cucumber-cucumber-expressions 17.1.0
Installing cucumber-cucumber-expressions 17.1.0
Fetching cucumber-html-formatter 21.15.1
Installing cucumber-html-formatter 21.15.1
Fetching diff-lcs 1.6.2
Installing diff-lcs 1.6.2
Fetching mini_mime 1.1.5
Installing mini_mime 1.1.5
Fetching multi_test 1.1.0
Installing multi_test 1.1.0
Fetching ffi 1.17.2 (x86_64-linux-gnu)
Installing ffi 1.17.2 (x86_64-linux-gnu)
Fetching memoist3 1.0.0
Installing memoist3 1.0.0
Fetching sys-uname 1.4.1
Installing sys-uname 1.4.1
Fetching cucumber 9.2.1
Installing cucumber 9.2.1
Fetching rspec-support 3.13.6
Installing rspec-support 3.13.6
Fetching rspec-expectations 3.13.5
Installing rspec-expectations 3.13.5
Fetching thor 1.4.0
Installing thor 1.4.0
Fetching aruba 2.3.3
Installing aruba 2.3.3
Fetching ast 2.4.3
Installing ast 2.4.3
Fetching backtrace 0.4.1
Installing backtrace 0.4.1
Fetching rexml 3.4.4
Installing rexml 3.4.4
Fetching crack 1.0.1
Installing crack 1.0.1
Fetching date 3.5.1
Installing date 3.5.1 with native extensions
Fetching docile 1.4.1
Installing docile 1.4.1
Fetching erb 6.0.1
Installing erb 6.0.1 with native extensions
Fetching hashdiff 1.2.1
Installing hashdiff 1.2.1
Fetching iri 0.11.3
Installing iri 0.11.3
Fetching json 2.18.0
Installing json 2.18.0 with native extensions
Fetching language_server-protocol 3.17.0.5
Installing language_server-protocol 3.17.0.5
Fetching lint_roller 1.1.0
Installing lint_roller 1.1.0
Fetching logger 1.7.0
Installing logger 1.7.0
Fetching loog 0.6.1
Installing loog 0.6.1
Fetching prism 1.7.0
Installing prism 1.7.0 with native extensions
Fetching minitest 6.0.0
Installing minitest 6.0.0
Fetching ruby-progressbar 1.13.0
Installing ruby-progressbar 1.13.0
Fetching minitest-reporters 1.7.1
Installing minitest-reporters 1.7.1
Fetching nokogiri 1.18.10 (x86_64-linux-gnu)
Installing nokogiri 1.18.10 (x86_64-linux-gnu)
Fetching openssl 4.0.0
Installing openssl 4.0.0 with native extensions
Fetching parallel 1.27.0
Installing parallel 1.27.0
Fetching parser 3.3.10.0
Installing parser 3.3.10.0
Fetching stringio 3.2.0
Installing stringio 3.2.0 with native extensions
Fetching psych 5.3.1
Installing psych 5.3.1 with native extensions
Fetching tsort 0.2.0
Installing tsort 0.2.0
Fetching rdoc 7.0.2
Installing rdoc 7.0.2
Fetching regexp_parser 2.11.3
Installing regexp_parser 2.11.3
Fetching retriable 3.1.2
Installing retriable 3.1.2
Fetching retriable_proxy 1.0.2
Installing retriable_proxy 1.0.2
Fetching rubocop-ast 1.48.0
Installing rubocop-ast 1.48.0
Fetching unicode-emoji 4.2.0
Installing unicode-emoji 4.2.0
Fetching unicode-display_width 3.2.0
Installing unicode-display_width 3.2.0
Fetching rubocop 1.82.0
Installing rubocop 1.82.0
Fetching rubocop-minitest 0.38.2
Installing rubocop-minitest 0.38.2
Fetching rubocop-performance 1.26.1
Installing rubocop-performance 1.26.1
Fetching rubocop-rake 0.7.1
Installing rubocop-rake 0.7.1
Fetching simplecov-html 0.13.2
Installing simplecov-html 0.13.2
Fetching simplecov_json_formatter 0.1.4
Installing simplecov_json_formatter 0.1.4
Fetching simplecov 0.22.0
Installing simplecov 0.22.0
Fetching simplecov-cobertura 3.1.0
Installing simplecov-cobertura 3.1.0
Fetching webmock 3.26.1
Installing webmock 3.26.1
Bundle complete! 16 Gemfile dependencies, 71 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
/usr/local/bundle/gems/bundler-2.5.16/lib/bundler/rubygems_ext.rb:250: warning: method redefined; discarding old encode_with
/usr/local/lib/ruby/3.4.0/rubygems/dependency.rb:341: warning: previous definition of encode_with was here
Started with run options --seed 51425
TestBestOf
test_two_apis 32m PASS0m (0.00s)
test_one_apis 32m PASS0m (0.00s)
test_not_array 32m PASS0m (0.00s)
test_all_fail 32m PASS0m (0.00s)
TestCryptoapis
test_utxos_raises_not_supported 32m PASS0m (0.00s)
test_fetch_block 32m PASS0m (0.02s)
test_push_transaction 32m PASS0m (0.00s)
test_fees_raises_not_supported 32m PASS0m (0.00s)
test_fetch_height 32m PASS0m (0.00s)
test_works_without_api_key 32m PASS0m (0.00s)
test_price_raises_not_supported 32m PASS0m (0.00s)
test_fetch_next_of_block 32m PASS0m (0.00s)
test_fetch_balance 32m PASS0m (0.00s)
test_fetch_latest_block_hash 32m PASS0m (0.00s)
TestLive
test_price 33m SKIP0m (0.00s)
test_block 33m SKIP0m (0.00s)
test_absent_balance 33m SKIP0m (0.00s)
test_height 33m SKIP0m (0.00s)
test_utxos 33m SKIP0m (0.00s)
test_next_of 33m SKIP0m (0.00s)
test_balance 33m SKIP0m (0.00s)
test_latest 33m SKIP0m (0.00s)
TestFake
test_scan_works 32m PASS0m (0.00s)
test_fake_object_works 32m PASS0m (0.00s)
TestFirstOf
test_two_apis 32m PASS0m (0.00s)
test_one_apis 32m PASS0m (0.00s)
test_not_array 32m PASS0m (0.00s)
test_all_fail 32m PASS0m (0.00s)
TestBlockchair
test_push_with_api_key 32m PASS0m (0.00s)
test_uses_api_key_in_requests 32m PASS0m (0.00s)
test_fetch_balance 32m PASS0m (0.00s)
test_block_raises_not_supported 32m PASS0m (0.00s)
test_returns_zero_for_unknown_address 32m PASS0m (0.00s)
test_push_transaction 32m PASS0m (0.00s)
test_height_raises_not_supported 32m PASS0m (0.00s)
test_utxos_raises_not_supported 32m PASS0m (0.00s)
test_price_raises_not_supported 32m PASS0m (0.00s)
test_next_of_raises_not_supported 32m PASS0m (0.00s)
test_fees_raises_not_supported 32m PASS0m (0.00s)
test_latest_raises_not_supported 32m PASS0m (0.00s)
TestSibit
test_scan 32m PASS0m (0.00s)
test_fetch_current_price 32m PASS0m (0.00s)
test_loads_fees 32m PASS0m (0.00s)
key: 40be11429603936ec7cbaabaf61d6ae8d9b09c175e3dad13d21d3d26154f59e5
address: 1PoY9AKgcK48oTbLWb5dtoWSnyoMusTYzN
test_create_address 32m PASS0m (0.01s)
test_generate_key 32m PASS0m (0.00s)
test_send_payment 32m PASS0m (0.01s)
test_get_latest_block 32m PASS0m (0.00s)
test_get_balance 32m PASS0m (0.00s)
test_fail_if_not_enough_funds 32m PASS0m (0.00s)
test_generate_key_and_prints 32m PASS0m (0.00s)
TestJson
test_loads_hash 32m PASS0m (0.01s)
TestBase58
test_preserves_leading_zeros_on_encode 32m PASS0m (0.00s)
test_decodes_base58_to_hex 32m PASS0m (0.00s)
test_preserves_leading_ones_on_decode 32m PASS0m (0.00s)
test_checksum_is_deterministic 32m PASS0m (0.00s)
test_decodes_single_digit 32m PASS0m (0.00s)
test_roundtrip_encode_decode 32m PASS0m (0.00s)
test_encodes_small_number 32m PASS0m (0.00s)
test_encodes_hex_to_base58 32m PASS0m (0.00s)
test_computes_checksum 32m PASS0m (0.00s)
test_different_inputs_produce_different_checksums 32m PASS0m (0.00s)
TestTx
test_creates_empty_transaction 32m PASS0m (0.00s)
test_generates_hex_payload 32m PASS0m (0.00s)
test_output_script_ends_with_checksig 32m PASS0m (0.00s)
test_output_has_correct_value 32m PASS0m (0.00s)
test_adds_input 32m PASS0m (0.00s)
test_input_stores_previous_output_hash 32m PASS0m (0.00s)
test_output_generates_script 32m PASS0m (0.00s)
test_input_stores_previous_output_index 32m PASS0m (0.00s)
test_out_returns_outputs 32m PASS0m (0.00s)
test_supports_multiple_outputs 32m PASS0m (0.00s)
test_input_prev_out_returns_binary_hash 32m PASS0m (0.00s)
test_in_returns_inputs 32m PASS0m (0.00s)
test_adds_output 32m PASS0m (0.00s)
test_generates_transaction_hash 32m PASS0m (0.00s)
TestBlockchain
test_next_of 33m SKIP0m (0.00s)
test_fetch_block 32m PASS0m (0.00s)
TestBtc
test_fetch_block 32m PASS0m (0.00s)
test_fetch_next_of_block 32m PASS0m (0.00s)
test_get_zero_balance_no_txns 32m PASS0m (0.00s)
test_fetch_latest_block_hash 32m PASS0m (0.00s)
test_push_raises_not_supported 32m PASS0m (0.00s)
test_fetch_next_of_raises_on_missing_block 32m PASS0m (0.00s)
test_fetch_latest_raises_on_missing_data 32m PASS0m (0.00s)
test_fees_raises_not_supported 32m PASS0m (0.00s)
test_get_broken_balance 32m PASS0m (0.00s)
test_price_raises_not_supported 32m PASS0m (0.00s)
test_get_balance 32m PASS0m (0.00s)
test_block_raises_on_missing_data 32m PASS0m (0.00s)
test_get_empty_balance 32m PASS0m (0.00s)
test_fetch_height_raises_on_missing_height 32m PASS0m (0.00s)
test_get_price 32m PASS0m (0.00s)
test_get_zero_balance 32m PASS0m (0.00s)
test_fetch_next_of_returns_nil_for_latest 32m PASS0m (0.00s)
test_txns_raises_on_empty_list 32m PASS0m (0.00s)
test_fetch_height_raises_on_missing_block 32m PASS0m (0.00s)
test_fetch_height 32m PASS0m (0.00s)
test_block_sets_next_to_nil_for_latest 32m PASS0m (0.00s)
test_fetch_block_broken 32m PASS0m (0.00s)
TestKey
test_returns_compressed_public_key 32m PASS0m (0.00s)
test_verify_returns_false_for_invalid_signature 32m PASS0m (0.00s)
test_derives_correct_address 32m PASS0m (0.00s)
test_address_starts_with_one 32m PASS0m (0.00s)
test_signs_and_verifies 32m PASS0m (0.00s)
test_rejects_private_key_above_curve_order 32m PASS0m (0.00s)
test_generates_random_key 32m PASS0m (0.00s)
test_verify_returns_false_for_wrong_data 32m PASS0m (0.00s)
test_rejects_invalid_private_key_zero 32m PASS0m (0.00s)
test_public_key_length_is_sixty_six 32m PASS0m (0.00s)
test_creates_key_from_private 32m PASS0m (0.00s)
test_generates_unique_keys 32m PASS0m (0.00s)
TestTxBuilder
test_supports_multiple_inputs 32m PASS0m (0.00s)
test_input_builder_stores_all_fields 32m PASS0m (0.00s)
test_skips_change_when_zero_or_negative 32m PASS0m (0.00s)
test_builds_transaction_with_hash 32m PASS0m (0.00s)
test_returns_inputs_via_in_method 32m PASS0m (0.00s)
test_supports_multiple_outputs 32m PASS0m (0.00s)
test_skips_change_when_leave_fee_is_false 32m PASS0m (0.00s)
test_serializes_to_hex 32m PASS0m (0.00s)
test_creates_change_output 32m PASS0m (0.00s)
test_returns_outputs_via_out_method 32m PASS0m (0.00s)
TestBitcoinchain
test_fetch_hash 32m PASS0m (0.00s)
test_fetch_block 32m PASS0m (0.00s)
test_fetch_balance 32m PASS0m (0.00s)
TestScript
test_returns_nil_address_for_non_p2pkh 32m PASS0m (0.00s)
test_handles_empty_script 32m PASS0m (0.00s)
test_rejects_wrong_op_hash160 32m PASS0m (0.00s)
test_extracts_address_from_script 32m PASS0m (0.00s)
test_rejects_wrong_op_dup 32m PASS0m (0.00s)
test_parses_p2pkh_script 32m PASS0m (0.00s)
test_returns_nil_hash160_for_non_p2pkh 32m PASS0m (0.00s)
test_rejects_wrong_hash_length 32m PASS0m (0.00s)
test_rejects_too_short_script 32m PASS0m (0.00s)
test_extracts_hash160_from_script 32m PASS0m (0.00s)
test_rejects_non_p2pkh_script 32m PASS0m (0.00s)
Finished in 0.21580s
135 tests, 228 assertions, 32m0 failures, 0 errors, 0m33m9 skips0m
Coverage report generated for test to /home/r/repo/coverage.
Line Coverage: 88.37% (866 / 980)
Coverage report generated for test to /home/r/repo/coverage/coverage.xml.
Line Coverage: 88.37% (866 / 980)
/usr/local/bin/ruby -S bundle exec cucumber
Using the default profile...
90m# SPDX-FileCopyrightText: Copyright (c) 2019-2025 Yegor Bugayenko0m
90m# SPDX-License-Identifier: MIT0m
Feature: Command Line Processing
As a newsletter author I want to be able to send a newsletter
Scenario: Help can be printed 90m# features/cli.feature:60m
32mWhen I run bin/sibit with "32m1m--help0m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
32mAnd Stdout contains "32m1m--help0m0m32m"90m # features/step_definitions/steps.rb:390m0m
Scenario: Bitcoin price can be retrieved 90m# features/cli.feature:110m
32mWhen I run bin/sibit with "32m1mprice --attempts=40m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Scenario: Bitcoin latest block hash can be retrieved 90m# features/cli.feature:150m
32mWhen I run bin/sibit with "32m1mlatest --api=blockchain0m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Scenario: Bitcoin private key can be generated 90m# features/cli.feature:190m
32mWhen I run bin/sibit with "32m1mgenerate0m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Scenario: Bitcoin address can be created 90m# features/cli.feature:230m
32mWhen I run bin/sibit with "32m1mcreate 46feba063e9b59a8ae0dba68abd39a3cb8f52089e776576d6eb1bb5bfec123d10m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Scenario: Bitcoin balance can be checked 90m# features/cli.feature:270m
32mWhen I run bin/sibit with "32m1mbalance 1MZT1fa6y8H9UmbZV6HqKF4UY41o9MGT5f --verbose --api=blockchain,btc0m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Scenario: Bitcoin fees can be printed 90m# features/cli.feature:310m
32mWhen I run bin/sibit with "32m1mfees --verbose --api=fake0m0m32m"90m # features/step_definitions/steps.rb:330m0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
Feature: Gem Package
As a source code writer I want to be able to
package the Gem into .gem file
Scenario: Gem can be packaged 90m# features/gem_package.feature:70m
32mGiven It is Unix90m # features/step_definitions/steps.rb:670m0m
32mGiven I have a "32m1mexecs.rb0m0m32m" file with content:90m # features/step_definitions/steps.rb:280m0m
32m """0m
32m #!/usr/bin/env ruby0m
32m require 'rubygems'0m
32m spec = Gem::Specification::load('./spec.rb')0m
32m if spec.executables.empty?0m
32m fail 'no executables: ' + File.read('./spec.rb')0m
32m end0m
32m """0m
/tmp/test20251223-957-wj4hcr/sibit/lib/sibit/version.rb:12: warning: already initialized constant Sibit::VERSION
/home/r/repo/lib/sibit/version.rb:12: warning: previous definition of VERSION was here
WARNING: open-ended dependency on openssl (>= 2.0) is not recommended
if openssl is semantically versioned, use:
add_runtime_dependency "openssl", "~> 2.0"
WARNING: See https://guides.rubygems.org/specification-reference/ for help
32mWhen I run bash with:90m # features/step_definitions/steps.rb:610m0m
32m """0m
32m cd sibit0m
32m gem build sibit.gemspec0m
32m gemfile=$(ls -t sibit-*.gem | head -1)0m
32m gem specification --ruby "$gemfile" > ../spec.rb0m
32m cd ..0m
32m ruby execs.rb0m
32m """0m
32mThen Exit code is zero90m # features/step_definitions/steps.rb:470m0m
8 scenarios (32m8 passed0m)
19 steps (32m19 passed0m)
0m5.061s
1m32m┌──────────────────────────────────────────────────────────────────────────────┐0m0m
1m32m│0m0m Share your Cucumber Report with your team at 4m1m36mhttps://reports.cucumber.io0m0m0m 1m32m│0m0m
1m32m│0m0m 1m32m│0m0m
1m32m│0m0m Command line option: 36m--publish0m 1m32m│0m0m
1m32m│0m0m Environment variable: 36mCUCUMBER_PUBLISH_ENABLED0m=36mtrue0m 1m32m│0m0m
1m32m│0m0m cucumber.yml: 36mdefault: --publish0m 1m32m│0m0m
1m32m│0m0m 1m32m│0m0m
1m32m│0m0m More information at 4m1m36mhttps://cucumber.io/docs/cucumber/environment-variables/0m0m0m 1m32m│0m0m
1m32m│0m0m 1m32m│0m0m
1m32m│0m0m To disable this message, specify 1mCUCUMBER_PUBLISH_QUIET=true0m or use the 1m32m│0m0m
1m32m│0m0m 1m--publish-quiet0m option. You can also add this to your 1mcucumber.yml:0m 1m32m│0m0m
1m32m│0m0m 1mdefault: --publish-quiet0m 1m32m│0m0m
1m32m└──────────────────────────────────────────────────────────────────────────────┘0m0m
Running RuboCop...
Inspecting 44 files
32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m32m.0m
44 files inspected, 32mno offenses0m detected
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R ubuntu repo
+ cd repo
+ git push origin master
To github.com:yegor256/sibit.git
f566b9a..c477724 master -> master
container 358fcaae69888301964e7b8f946585268cb684b748671b33790ed2f5e4f1a406 is dead
Tue Dec 23 03:36:49 UTC 2025