rultor.com logo This build log was produced by rultor.com for yegor256/judges#243
++ dirname ./run.sh
+ cd .
+ echo 1598
+ echo '2.0-SNAPSHOT BUILD'
2.0-SNAPSHOT BUILD
+ date
Mon Jun 16 07:58:24 UTC 2025
+ uptime
 07:58:24 up 0 min,  0 users,  load average: 1.57, 0.40, 0.13
+ head=git@github.com:yegor256/judges.git
+ ff=default
+ image=yegor256/ruby
+ rebase=false
+ squash=false
+ head_branch=master
+ author=yegor256
+ tag=0.50.3
+ vars=('--env=head=git@github.com:yegor256/judges.git' '--env=tag=0.50.3' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/judges.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''tag=0.50.3'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''bundle install --no-color'\'' '\'';'\'' '\''[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1'\'' '\'';'\'' '\''bundle exec rake'\'' '\'';'\'' '\''rm -rf *.gem'\'' '\'';'\'' '\''sed -i "s/0\.0\.0/${tag}/g" judges.gemspec'\'' '\'';'\'' '\''git add judges.gemspec'\'' '\'';'\'' '\''sed -i "s/0\.0\.0/${tag}/g" lib/judges.rb'\'' '\'';'\'' '\''git add lib/judges.rb'\'' '\'';'\'' '\''git commit -m "version set to ${tag}"'\'' '\'';'\'' '\''gem build judges.gemspec'\'' '\'';'\'' '\''chmod 0600 ../rubygems.yml'\'' '\'';'\'' '\''gem push *.gem --config-file ../rubygems.yml'\'' '\'';'\'' '\''cp assets/index.css /tmp/index.css'\'' '\'';'\'' '\''cp assets/index.js /tmp/index.js'\'' '\'';'\'' '\''git checkout gh-pages'\'' '\'';'\'' '\''mkdir -p assets'\'' '\'';'\'' '\''cp /tmp/index.css assets/index.css'\'' '\'';'\'' '\''cp /tmp/index.js assets/index.js'\'' '\'';'\'' '\''git add assets/'\'' '\'';'\'' '\''git commit -a --allow-empty -m '\''\'\'''\''New JS and CSS'\''\'\'''\'''\'' '\'';'\'' )' '--env=head_branch=master' '--env=author=yegor256')
+ scripts=('export '\''head=git@github.com:yegor256/judges.git'\''' ';' 'export '\''tag=0.50.3'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'bundle install --no-color' ';' '[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1' ';' 'bundle exec rake' ';' 'rm -rf *.gem' ';' 'sed -i "s/0\.0\.0/${tag}/g" judges.gemspec' ';' 'git add judges.gemspec' ';' 'sed -i "s/0\.0\.0/${tag}/g" lib/judges.rb' ';' 'git add lib/judges.rb' ';' 'git commit -m "version set to ${tag}"' ';' 'gem build judges.gemspec' ';' 'chmod 0600 ../rubygems.yml' ';' 'gem push *.gem --config-file ../rubygems.yml' ';' 'cp assets/index.css /tmp/index.css' ';' 'cp assets/index.js /tmp/index.js' ';' 'git checkout gh-pages' ';' 'mkdir -p assets' ';' 'cp /tmp/index.css assets/index.css' ';' 'cp /tmp/index.js assets/index.js' ';' 'git add assets/' ';' 'git commit -a --allow-empty -m '\''New JS and CSS'\''' ';')
+ directory=
+ container=yegor256_judges_243
+ as_root=false
+ set -e -o pipefail
+ hostname
ip-172-31-30-41
+ pwd
/tmp/rultor-c3Sc
+ 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 git@github.com:yegor256/judges.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/judges.git'\''' ']'
+ cd ..
+ cat
+ '[' false = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:yegor256/judges.git'\''' ';' 'export '\''tag=0.50.3'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''author=yegor256'\''' ';' 'pdd -f /dev/null' ';' 'bundle install --no-color' ';' '[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1' ';' 'bundle exec rake' ';' 'rm -rf *.gem' ';' 'sed -i "s/0\.0\.0/${tag}/g" judges.gemspec' ';' 'git add judges.gemspec' ';' 'sed -i "s/0\.0\.0/${tag}/g" lib/judges.rb' ';' 'git add lib/judges.rb' ';' 'git commit -m "version set to ${tag}"' ';' 'gem build judges.gemspec' ';' 'chmod 0600 ../rubygems.yml' ';' 'gem push *.gem --config-file ../rubygems.yml' ';' 'cp assets/index.css /tmp/index.css' ';' 'cp assets/index.js /tmp/index.js' ';' 'git checkout gh-pages' ';' 'mkdir -p assets' ';' 'cp /tmp/index.css assets/index.css' ';' 'cp /tmp/index.js assets/index.js' ';' 'git add assets/' ';' 'git commit -a --allow-empty -m '\''New JS and CSS'\''' ';'
+ sensitive=()
+ set -ex -o pipefail
+ '[' -z 0.50.3 ']'
+ [[ 0.50.3 =~ ^[a-zA-Z0-9\.\-]+$ ]]
+ echo 'tag name is valid: "0.50.3"'
tag name is valid: "0.50.3"
+ cd repo
++ git tag -l 0.50.3
+ '[' -n '' ']'
+ BRANCH_NAME=__rultor
++ wc -l
++ git show-branch __rultor
+ '[' 0 -gt 0 ']'
+ export BRANCH_NAME
+ git checkout -b __rultor
Switched to a new branch '__rultor'
+ docker_when_possible
+ true
++ tail -n 1
++ sed 's/ /\n/g'
++ uptime
+ load=0.15
++ bc
++ echo 0.15 '>' 30
+ '[' 0 -eq 1 ']'
+ echo 'load average is 0.15, low enough to run a new Docker container'
load average is 0.15, 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
72049b7b8f26: Pulling fs layer
cac8156a957a: Pulling fs layer
a2678613884c: Pulling fs layer
a5c662499587: Pulling fs layer
36160d2877bb: Pulling fs layer
40bfde081b4e: Pulling fs layer
e17fd6a8908f: Pulling fs layer
4f4fb700ef54: Pulling fs layer
d5de12645ff5: Pulling fs layer
521a1fd9d30a: Pulling fs layer
159470902a51: Pulling fs layer
b5ada550863b: Pulling fs layer
c3410fe156ab: Pulling fs layer
e17a5e990a4d: Pulling fs layer
a5c662499587: Waiting
36160d2877bb: Waiting
40bfde081b4e: Waiting
e17fd6a8908f: Waiting
4f4fb700ef54: Waiting
d5de12645ff5: Waiting
521a1fd9d30a: Waiting
159470902a51: Waiting
b5ada550863b: Waiting
c3410fe156ab: Waiting
e17a5e990a4d: Waiting
cac8156a957a: Verifying Checksum
cac8156a957a: Download complete
72049b7b8f26: Verifying Checksum
72049b7b8f26: Download complete
36160d2877bb: Verifying Checksum
36160d2877bb: Download complete
a2678613884c: Verifying Checksum
a2678613884c: Download complete
e17fd6a8908f: Verifying Checksum
e17fd6a8908f: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
d5de12645ff5: Verifying Checksum
d5de12645ff5: Download complete
40bfde081b4e: Verifying Checksum
40bfde081b4e: Download complete
159470902a51: Verifying Checksum
159470902a51: Download complete
521a1fd9d30a: Verifying Checksum
521a1fd9d30a: Download complete
c3410fe156ab: Verifying Checksum
c3410fe156ab: Download complete
e17a5e990a4d: Verifying Checksum
e17a5e990a4d: Download complete
b5ada550863b: Verifying Checksum
b5ada550863b: Download complete
a5c662499587: Verifying Checksum
a5c662499587: Download complete
72049b7b8f26: Pull complete
cac8156a957a: Pull complete
a2678613884c: Pull complete
a5c662499587: Pull complete
36160d2877bb: Pull complete
40bfde081b4e: Pull complete
e17fd6a8908f: Pull complete
4f4fb700ef54: Pull complete
d5de12645ff5: Pull complete
521a1fd9d30a: Pull complete
159470902a51: Pull complete
b5ada550863b: Pull complete
c3410fe156ab: Pull complete
e17a5e990a4d: Pull complete
Digest: sha256:ad360ceecd591b173a5973b28ce92246eefcf2bdd4a5e37ed82e0116daac0394
Status: Downloaded newer image for yegor256/ruby:latest
docker.io/yegor256/ruby:latest
+ docker ps --filter=status=exited
+ grep --quiet '\syegor256_judges_243\s*$'
+ ls -al .
total 48
drwx------  3 ubuntu ubuntu 4096 Jun 16 07:58 .
drwxrwxrwt 12 root   root   4096 Jun 16 07:58 ..
-rwxrwxr-x  1 ubuntu ubuntu  658 Jun 16 07:58 end.sh
-rwxrwxr-x  1 ubuntu ubuntu  490 Jun 16 07:58 entry.sh
-rw-rw-r--  1 ubuntu ubuntu    5 Jun 16 07:58 pid
drwxrwxr-x 11 ubuntu ubuntu 4096 Jun 16 07:58 repo
-rw-rw-r--  1 ubuntu ubuntu   81 Jun 16 07:58 rubygems.yml
-rwxrwxr-x  1 ubuntu ubuntu 7370 Jun 16 07:58 run.sh
-rw-rw-r--  1 ubuntu ubuntu  981 Jun 16 07:58 script.sh
-rw-rw-r--  1 ubuntu ubuntu 7439 Jun 16 07:59 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-c3Sc:/main --env=head=git@github.com:yegor256/judges.git --env=tag=0.50.3 '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:yegor256/judges.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''tag=0.50.3'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''pdd -f /dev/null'\'' '\'';'\'' '\''bundle install --no-color'\'' '\'';'\'' '\''[[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1'\'' '\'';'\'' '\''bundle exec rake'\'' '\'';'\'' '\''rm -rf *.gem'\'' '\'';'\'' '\''sed -i "s/0\.0\.0/${tag}/g" judges.gemspec'\'' '\'';'\'' '\''git add judges.gemspec'\'' '\'';'\'' '\''sed -i "s/0\.0\.0/${tag}/g" lib/judges.rb'\'' '\'';'\'' '\''git add lib/judges.rb'\'' '\'';'\'' '\''git commit -m "version set to ${tag}"'\'' '\'';'\'' '\''gem build judges.gemspec'\'' '\'';'\'' '\''chmod 0600 ../rubygems.yml'\'' '\'';'\'' '\''gem push *.gem --config-file ../rubygems.yml'\'' '\'';'\'' '\''cp assets/index.css /tmp/index.css'\'' '\'';'\'' '\''cp assets/index.js /tmp/index.js'\'' '\'';'\'' '\''git checkout gh-pages'\'' '\'';'\'' '\''mkdir -p assets'\'' '\'';'\'' '\''cp /tmp/index.css assets/index.css'\'' '\'';'\'' '\''cp /tmp/index.js assets/index.js'\'' '\'';'\'' '\''git add assets/'\'' '\'';'\'' '\''git commit -a --allow-empty -m '\''\'\'''\''New JS and CSS'\''\'\'''\'''\'' '\'';'\'' )' --env=head_branch=master --env=author=yegor256 --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-c3Sc/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=yegor256_judges_243 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 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
#!/bin/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/judges.git' ; export 'tag=0.50.3' ; export 'head_branch=master' ; export 'author=yegor256' ; pdd -f /dev/null ; bundle install --no-color ; [[ "${tag}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || exit -1 ; bundle exec rake ; rm -rf *.gem ; sed -i "s/0\.0\.0/${tag}/g" judges.gemspec ; git add judges.gemspec ; sed -i "s/0\.0\.0/${tag}/g" lib/judges.rb ; git add lib/judges.rb ; git commit -m "version set to ${tag}" ; gem build judges.gemspec ; chmod 0600 ../rubygems.yml ; gem push *.gem --config-file ../rubygems.yml ; cp assets/index.css /tmp/index.css ; cp assets/index.js /tmp/index.js ; git checkout gh-pages ; mkdir -p assets ; cp /tmp/index.css assets/index.css ; cp /tmp/index.js assets/index.js ; git add assets/ ; git commit -a --allow-empty -m 'New JS and CSS' ;
+ 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.4 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/package-lock.json is a binary file (38288 bytes)
/home/r/repo/package.json is a binary file (84 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/eslint.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 assets/index.css ...
Reading assets/index.js ...
Reading assets/index.xsl ...
Reading bin/judges ...
Reading eslint.config.js ...
Reading features/echo.feature ...
Reading features/gem_package.feature ...
Reading features/import.feature ...
Reading features/inspect.feature ...
Reading features/join.feature ...
Reading features/misc.feature ...
Reading features/print.feature ...
Reading features/pull.feature ...
Reading features/push.feature ...
Reading features/step_definitions/steps.rb ...
Reading features/support/env.rb ...
Reading features/test.feature ...
Reading features/trim.feature ...
Reading features/update.feature ...
Reading features/version.feature ...
Reading fixtures/guess/guess.rb ...
Reading fixtures/guess/guess_made.yml ...
Reading fixtures/guess/skipped.yml ...
Reading fixtures/repeat/repeat.rb ...
Reading fixtures/repeat/repeated.yml ...
Reading fixtures/try/tried.yml ...
Reading fixtures/try/try.rb ...
Reading judges.gemspec ...
Reading lib/judges/categories.rb ...
Reading lib/judges/commands/download.rb ...
Reading lib/judges/commands/eval.rb ...
Reading lib/judges/commands/import.rb ...
Reading lib/judges/commands/inspect.rb ...
Reading lib/judges/commands/join.rb ...
Reading lib/judges/commands/print.rb ...
Reading lib/judges/commands/pull.rb ...
Reading lib/judges/commands/push.rb ...
Reading lib/judges/commands/test.rb ...
Reading lib/judges/commands/trim.rb ...
Reading lib/judges/commands/update.rb ...
Reading lib/judges/commands/upload.rb ...
Reading lib/judges/impex.rb ...
Reading lib/judges/judge.rb ...
Reading lib/judges/judges.rb ...
Reading lib/judges/options.rb ...
Reading lib/judges/to_rel.rb ...
Reading lib/judges.rb ...
Reading test/commands/test_download.rb ...
Reading test/commands/test_eval.rb ...
Reading test/commands/test_import.rb ...
Reading test/commands/test_inspect.rb ...
Reading test/commands/test_join.rb ...
Reading test/commands/test_print.rb ...
Reading test/commands/test_pull.rb ...
Reading test/commands/test_push.rb ...
Reading test/commands/test_test.rb ...
Reading test/commands/test_trim.rb ...
Reading test/commands/test_update.rb ...
Reading test/commands/test_upload.rb ...
Reading test/test__helper.rb ...
Reading test/test_bin.rb ...
Reading test/test_categories.rb ...
Reading test/test_impex.rb ...
Reading test/test_judge.rb ...
Reading test/test_judges.rb ...
Reading test/test_options.rb ...
Reading test/test_to_rel.rb ...
Bundler 2.6.7 is running, but your lockfile was generated with 2.6.8. Installing Bundler 2.6.8 and restarting using that version.
Fetching gem metadata from https://rubygems.org/.
Fetching bundler 2.6.8
Installing bundler 2.6.8
Fetching gem metadata from https://rubygems.org/........
Fetching rake 13.3.0
Installing rake 13.3.0
Fetching public_suffix 6.0.2
Installing public_suffix 6.0.2
Fetching addressable 2.8.7
Installing addressable 2.8.7
Fetching ansi 1.5.0
Installing ansi 1.5.0
Fetching ast 2.4.3
Installing ast 2.4.3
Fetching backtrace 0.4.1
Installing backtrace 0.4.1
Fetching base64 0.3.0
Installing base64 0.3.0
Fetching logger 1.7.0
Installing logger 1.7.0
Fetching loog 0.6.1
Installing loog 0.6.1
Fetching tago 0.1.0
Installing tago 0.1.0
Fetching elapsed 0.0.1
Installing elapsed 0.0.1
Fetching uri 1.0.3
Installing uri 1.0.3
Fetching net-http 0.6.0
Installing net-http 0.6.0
Fetching faraday-net_http 3.4.1
Installing faraday-net_http 3.4.1
Fetching json 2.12.2
Installing json 2.12.2 with native extensions
Fetching faraday 2.13.1
Installing faraday 2.13.1
Fetching faraday-http-cache 2.5.1
Installing faraday-http-cache 2.5.1
Fetching multipart-post 2.4.1
Installing multipart-post 2.4.1
Fetching faraday-multipart 1.1.0
Installing faraday-multipart 1.1.0
Fetching faraday-retry 2.3.1
Installing faraday-retry 2.3.1
Fetching iri 0.11.2
Installing iri 0.11.2
Fetching retries 0.0.5
Installing retries 0.0.5
Fetching ffi 1.17.2 (x86_64-linux-gnu)
Installing ffi 1.17.2 (x86_64-linux-gnu)
Fetching ethon 0.16.0
Installing ethon 0.16.0
Fetching typhoeus 1.4.1
Installing typhoeus 1.4.1
Fetching baza.rb 0.9.4
Installing baza.rb 0.9.4
Fetching bigdecimal 3.2.2
Installing bigdecimal 3.2.2 with native extensions
Fetching builder 3.3.0
Installing builder 3.3.0
Fetching concurrent-ruby 1.3.5
Installing concurrent-ruby 1.3.5
Fetching rexml 3.4.1
Installing rexml 3.4.1
Fetching crack 1.0.0
Installing crack 1.0.0
Fetching cucumber-ci-environment 10.0.1
Installing cucumber-ci-environment 10.0.1
Fetching cucumber-messages 27.2.0
Installing cucumber-messages 27.2.0
Fetching cucumber-gherkin 30.0.4
Installing cucumber-gherkin 30.0.4
Fetching cucumber-tag-expressions 6.1.2
Installing cucumber-tag-expressions 6.1.2
Fetching cucumber-core 15.1.0
Installing cucumber-core 15.1.0
Fetching cucumber-cucumber-expressions 18.0.1
Installing cucumber-cucumber-expressions 18.0.1
Fetching cucumber-html-formatter 21.10.1
Installing cucumber-html-formatter 21.10.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 sys-uname 1.3.1
Installing sys-uname 1.3.1
Fetching cucumber 10.0.0
Installing cucumber 10.0.0
Fetching date 3.4.1
Installing date 3.4.1 with native extensions
Fetching decoor 0.0.1
Installing decoor 0.0.1
Fetching docile 1.4.1
Installing docile 1.4.1
Fetching erb 5.0.1
Installing erb 5.0.1 with native extensions
Fetching others 0.0.3
Installing others 0.0.3
Fetching yaml 0.4.0
Installing yaml 0.4.0
Fetching factbase 0.11.0
Installing factbase 0.11.0
Fetching ostruct 0.6.1
Installing ostruct 0.6.1
Fetching gli 2.22.2
Installing gli 2.22.2
Fetching hashdiff 1.2.0
Installing hashdiff 1.2.0
Fetching moments 0.3.0
Installing moments 0.3.0
Fetching timeout 0.4.3
Installing timeout 0.4.3
Fetching total 0.4.1
Installing total 0.4.1
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 minitest 5.25.5
Installing minitest 5.25.5
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 minitest-retry 0.2.5
Installing minitest-retry 0.2.5
Fetching net-ping 2.0.8
Installing net-ping 2.0.8
Fetching os 1.1.4
Installing os 1.1.4
Fetching parallel 1.27.0
Installing parallel 1.27.0
Fetching parser 3.3.8.0
Installing parser 3.3.8.0
Fetching prism 1.4.0
Installing prism 1.4.0 with native extensions
Fetching stringio 3.1.7
Installing stringio 3.1.7 with native extensions
Fetching psych 5.2.6
Installing psych 5.2.6 with native extensions
Fetching qbash 0.4.5
Installing qbash 0.4.5
Fetching random-port 0.7.5
Installing random-port 0.7.5
Fetching rdoc 6.14.0
Installing rdoc 6.14.0
Fetching regexp_parser 2.10.0
Installing regexp_parser 2.10.0
Fetching rubocop-ast 1.45.1
Installing rubocop-ast 1.45.1
Fetching unicode-emoji 4.0.4
Installing unicode-emoji 4.0.4
Fetching unicode-display_width 3.1.4
Installing unicode-display_width 3.1.4
Fetching rubocop 1.76.1
Installing rubocop 1.76.1
Fetching rubocop-minitest 0.38.1
Installing rubocop-minitest 0.38.1
Fetching rubocop-performance 1.25.0
Installing rubocop-performance 1.25.0
Fetching rubocop-rake 0.7.1
Installing rubocop-rake 0.7.1
Fetching rubocop-rspec 3.6.0
Installing rubocop-rspec 3.6.0
Fetching simplecov-html 0.13.1
Installing simplecov-html 0.13.1
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 2.1.0
Installing simplecov-cobertura 2.1.0
Fetching w3c_validators 1.3.7
Installing w3c_validators 1.3.7
Fetching webmock 3.25.1
Installing webmock 3.25.1
Fetching yard 0.9.37
Installing yard 0.9.37
Bundle complete! 22 Gemfile dependencies, 93 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
1 installed gem you directly depend on is looking for funding.
  Run `bundle fund` for details
/usr/local/lib/ruby/3.4.0/bundled_gems.rb:82: warning: /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82: warning: loading in progress, circular require considered harmful - /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb
        from /usr/local/bundle/gems/rake-13.3.0/lib/rake/rake_test_loader.rb:6:in  '<main>'
        from /usr/local/bundle/gems/rake-13.3.0/lib/rake/rake_test_loader.rb:6:in  'select'
        from /usr/local/bundle/gems/rake-13.3.0/lib/rake/rake_test_loader.rb:21:in  'block in <main>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /home/r/repo/test/commands/test_download.rb:7:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /usr/local/bundle/gems/webmock-3.25.1/lib/webmock/minitest.rb:4:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb:1:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:1235:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'

Started with run options --seed 35571

TestTrim
  test_trims_factbase                                            32m PASS0m (0.00s)

TestOptions
  test_merge                                                     32m PASS0m (0.00s)
  test_with_string                                               32m PASS0m (0.00s)
  test_merge_by_symbols                                          32m PASS0m (0.00s)
  test_with_nil                                                  32m PASS0m (0.00s)
  test_with_empty_strings                                        32m PASS0m (0.00s)
  test_with_hash                                                 32m PASS0m (0.00s)
  test_case_insensitive                                          32m PASS0m (0.00s)
  test_converts_to_string                                        32m PASS0m (0.00s)
  test_with_empty_string                                         32m PASS0m (0.00s)
  test_stips_spaces                                              32m PASS0m (0.00s)
  test_basic                                                     32m PASS0m (0.00s)

TestUpdate
/tmp/d20250616-671-svz22d/foo/foo.rb:1: warning: possibly useless use of < in void context
  test_update_with_error_no_quiet                                32m PASS0m (0.00s)
  test_update_with_options_in_file                               32m PASS0m (0.00s)
/tmp/d20250616-671-jn24li/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-jn24li/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-jn24li/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-jn24li/foo/foo.rb:1: warning: possibly useless use of a variable in void context
  test_update_with_error                                         32m PASS0m (0.00s)
  test_extend_existing_factbase                                  32m PASS0m (0.00s)
/tmp/d20250616-671-qae2il/first/first.rb:1: warning: possibly useless use of + in void context
/tmp/d20250616-671-qae2il/first/first.rb:1: warning: possibly useless use of + in void context
/tmp/d20250616-671-qae2il/first/first.rb:1: warning: possibly useless use of + in void context
  test_isolates_churns                                           32m PASS0m (0.01s)
  test_no_failure_when_expect_judges_false                       32m PASS0m (0.00s)
/tmp/d20250616-671-dfbr6h/error/error.rb:1: warning: possibly useless use of a variable in void context
  test_fail_fast_stops_cycle                                     32m PASS0m (0.00s)
/tmp/d20250616-671-q7ns8y/bar/bar.rb:1: warning: ambiguous first argument; put parentheses or a space even after `-` operator
/tmp/d20250616-671-q7ns8y/bar/bar.rb:1: warning: possibly useless use of -@ in void context
/tmp/d20250616-671-q7ns8y/bar/bar.rb:1: warning: possibly useless use of -@ in void context
/tmp/d20250616-671-q7ns8y/bar/bar.rb:1: warning: possibly useless use of -@ in void context
  test_with_only_one_judge                                       32m PASS0m (0.02s)
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
/tmp/d20250616-671-b1k4vu/foo/foo.rb:1: warning: possibly useless use of a variable in void context
  test_update_with_error_and_summary                             32m PASS0m (0.01s)
  test_no_failure_with_nonexistent_judge_when_expect_judges_false32m PASS0m (0.00s)
  test_build_factbase_from_scratch                               32m PASS0m (0.01s)
  test_cancels_slow_judge                                        32m PASS0m (0.10s)
  test_fails_when_no_judges_used                                 32m PASS0m (0.00s)
  test_fails_when_empty_directory                                32m PASS0m (0.00s)
  test_appends_to_existing_summary                               32m PASS0m (0.00s)

TestBin
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/text_wrapper.rb:48: warning: character class has duplicated range: /[\n\s]*\Z/
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/global_help_format.rb:30: warning: assigned but unused variable - global_option_descriptions
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/global_help_format.rb:28: warning: assigned but unused variable - commands
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/global_help_format.rb:14: warning: assigned but unused variable - program_desc
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:17: warning: assigned but unused variable - wrapper
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:21: warning: assigned but unused variable - command_examples
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:16: warning: assigned but unused variable - command_wrapper
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:20: warning: assigned but unused variable - commands_description
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:23: warning: assigned but unused variable - synopses
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/command_help_format.rb:19: warning: assigned but unused variable - options_description
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/full_synopsis_formatter.rb:29: warning: assigned but unused variable - sub_options_doc
/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/help_modules/full_synopsis_formatter.rb:92: warning: assigned but unused variable - synopses
/usr/local/lib/ruby/3.4.0/bundled_gems.rb:82: warning: /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82: warning: loading in progress, circular require considered harmful - /usr/local/bundle/gems/gli-2.22.2/lib/gli.rb
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:86:in  'block in autorun'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:288:in  'run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:332:in  '__run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:332:in  'map'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:332:in  'block in __run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:429:in  'run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:459:in  'with_info_handler'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:472:in  'on_signal'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:430:in  'block in run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:430:in  'each'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:434:in  'block (2 levels) in run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:447:in  'run_one_method'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:1208:in  'run_one_method'
        from /usr/local/bundle/gems/minitest-reporters-1.7.1/lib/minitest/reporters.rb:48:in  'run_with_hooks'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb:88:in  'run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest.rb:368:in  'time_it'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb:89:in  'block in run'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb:190:in  'capture_exceptions'
        from /usr/local/bundle/gems/minitest-5.25.5/lib/minitest/test.rb:94:in  'block (2 levels) in run'
        from /home/r/repo/test/test_bin.rb:15:in  'test_simple_run'
        from /home/r/repo/test/test_bin.rb:15:in  'load'
        from /home/r/repo/bin/judges:9:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /usr/local/bundle/gems/gli-2.22.2/lib/gli.rb:21:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'
        from /usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/initconfig.rb:1:in  '<top (required)>'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'block (2 levels) in replace_require'
        from /usr/local/lib/ruby/3.4.0/bundled_gems.rb:82:in  'require'

/usr/local/bundle/gems/gli-2.22.2/lib/gli/commands/doc.rb:145: warning: assigned but unused variable - ex
/home/r/repo/bin/judges:16: warning: setting Encoding.default_external
/home/r/repo/bin/judges:17: warning: setting Encoding.default_internal
  test_simple_run                                                32m PASS0m (0.07s)

TestCategories
  test_basic                                                     32m PASS0m (0.00s)
  test_all_enabled                                               32m PASS0m (0.00s)

TestEval
  test_build_factbase_from_scratch                               32m PASS0m (0.00s)

TestToRel
  test_simple_mapping                                            32m PASS0m (0.00s)
  test_maps_dir_name                                             32m PASS0m (0.00s)

TestUpload
  test_upload_simple_durable                                     32m PASS0m (0.12s)
  test_upload_with_custom_owner                                  32m PASS0m (0.01s)
  test_fails_with_wrong_number_of_arguments                      32m PASS0m (0.00s)
  test_fails_when_file_does_not_exist                            32m PASS0m (0.00s)
  test_fails_on_http_error                                       32m PASS0m (0.00s)

TestImpex
  test_strict_import                                             32m PASS0m (0.00s)
  test_basic                                                     32m PASS0m (0.00s)

TestPrint
  test_print_twice                                               32m PASS0m (0.00s)
  test_simple_print                                              32m PASS0m (0.00s)
  test_print_to_html                                             33m SKIP0m (0.01s)
  test_print_all_formats                                         32m PASS0m (0.01s)
  test_html_table_has_colgroup                                   32m PASS0m (0.01s)

TestImport
  test_import_from_yaml                                          32m PASS0m (0.00s)

TestPull
  test_pull_simple_factbase                                      32m PASS0m (0.01s)
  test_fail_pull_when_job_is_broken                              32m PASS0m (0.01s)

TestJudges
  test_shuffles_them                                             32m PASS0m (0.00s)
  test_get_one                                                   32m PASS0m (0.00s)
  test_shuffles_and_boosts                                       32m PASS0m (0.00s)
  test_keeps_them_all                                            32m PASS0m (0.02s)
  test_boost_and_demote_together                                 32m PASS0m (0.00s)
  test_demotes_judges                                            32m PASS0m (0.00s)
  test_list_with_empty_dir                                       32m PASS0m (0.00s)
  test_list_only_direct_subdirs                                  32m PASS0m (0.00s)
  test_basic                                                     32m PASS0m (0.00s)

TestPush
  test_push_simple_factbase                                      32m PASS0m (0.01s)
  test_fails_on_http_error                                       32m PASS0m (0.01s)

TestTest
  test_with_options                                              32m PASS0m (0.00s)
  test_with_after_assertion                                      32m PASS0m (0.00s)
  test_with_expected_failure_no_string                           32m PASS0m (0.00s)
  test_with_before                                               32m PASS0m (0.00s)
  test_one_judge_negative                                        32m PASS0m (0.00s)
  test_positive                                                  32m PASS0m (0.00s)
  test_with_expected_failure                                     32m PASS0m (0.00s)
  test_negative                                                  32m PASS0m (0.00s)

TestJudge
  test_passes_local_vars_between_tests                           32m PASS0m (0.00s)
  test_with_standard_error                                       32m PASS0m (0.00s)
  test_run_isolated                                              32m PASS0m (0.00s)
  test_with_broken_ruby_syntax                                   32m PASS0m (0.00s)
  test_with_runtime_ruby_error                                   32m PASS0m (0.00s)
  test_counts_churn                                              32m PASS0m (0.00s)
  test_counts_churn_after_txn                                    32m PASS0m (0.00s)
  test_sets_start_value_correctly                                32m PASS0m (0.00s)
  test_sets_judge_value_correctly                                32m PASS0m (0.00s)
  test_basic_run                                                 32m PASS0m (0.00s)

TestDownload
  test_fails_with_wrong_number_of_arguments                      32m PASS0m (0.00s)
  test_handles_not_found_durable                                 32m PASS0m (0.00s)
  test_fails_on_http_error                                       32m PASS0m (0.01s)
  test_download_with_custom_owner                                32m PASS0m (0.01s)
  test_download_simple_durable                                   32m PASS0m (0.02s)

TestJoin
  test_simple_join                                               32m PASS0m (0.00s)

TestInspect
  test_simple_inspect                                            32m PASS0m (0.00s)

Finished in 0.62762s
84 tests, 241 assertions, 32m0 failures, 0 errors, 0m33m1 skips0m
Coverage report generated for test to /home/r/repo/coverage.
Line Coverage: 92.55% (820 / 886)
Coverage report generated for test to /home/r/repo/coverage/coverage.xml. 820 / 886 LOC (92.55%) covered
/usr/local/bin/ruby -S bundle exec cucumber --no-color --retry=2 --fail-fast --backtrace --order=random
# SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
# SPDX-License-Identifier: MIT
Feature: Push
  I want to push a factbase

  Scenario: Push a small factbase                                                                                                                                                                                        # features/push.feature:7
    Given We are online                                                                                                                                                                                                  # features/step_definitions/steps.rb:21
    Given I make a temp directory                                                                                                                                                                                        # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '(0..1000).each { $fb.insert.foo = 42 }'"                                                                                                                       # features/step_definitions/steps.rb:38
    And Exit code is zero                                                                                                                                                                                                # features/step_definitions/steps.rb:67
    Then I run bin/judges with "push --token ZRCY-00000000-0000-0000-0000-000000000000 --meta a:b --meta foo:bar --meta=pages_url:https://zerocracy.github.io/zerocracy.html --meta=duration:1055 fake2a0d6f1631cd3f1b simple.fb # features/step_definitions/steps.rb:38
    Then Stdout contains "Pushed"                                                                                                                                                                                        # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                                                                                                                                                # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Simple test of a few judges, with a lib           # features/test.feature:37
    Given I make a temp directory                             # features/step_definitions/steps.rb:27
    Then I have a "myjudges/good/good.rb" file with content:  # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.foo = $foo
      """
    Then I have a "myjudges/good/good.yml" file with content: # features/step_definitions/steps.rb:33
      """
      ---
      category: good
      input: []
      """
    Then I have a "mylib/foo.rb" file with content:           # features/step_definitions/steps.rb:33
      """
        $foo = 42
      """
    Then I run bin/judges with "test --lib mylib myjudges"    # features/step_definitions/steps.rb:38
    Then Stdout contains "All 1 judge(s) and 1 tests passed"  # features/step_definitions/steps.rb:59
    And Exit code is zero                                     # features/step_definitions/steps.rb:67

Feature: Import
  I want to import YAML into a factbase

  Scenario: Simple import of a small YAML                               # features/import.feature:7
    Given I make a temp directory                                       # features/step_definitions/steps.rb:27
    Then I have a &quot;simple.yaml" file with content:                      # features/step_definitions/steps.rb:33
      """
      -
        foo: 42
        bar: 2024-03-04T22:22:22Z
        t: Hello, world!
      -
        z: 3.14
      """
    Then I run bin/judges with "--verbose import simple.yaml simple.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "Import of 2 facts completed"                  # features/step_definitions/steps.rb:59
    And Exit code is zero                                               # features/step_definitions/steps.rb:67

Feature: Print
  I want to print a factbase

  Scenario: Simple print of a small factbase, to XML                            # features/print.feature:28
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "print --format=xml --auto simple.fb"            # features/step_definitions/steps.rb:38
    Then Stdout contains "printed"                                              # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Generate a summary fact, with errors                                            # features/update.feature:21
    Given I make a temp directory                                                           # features/step_definitions/steps.rb:27
    Then I have a "buggy/buggy.rb" file with content: "this is an intentional bug"          # features/update.feature:23
    Then I run bin/judges with "update --quiet --summary=append --max-cycles 1 . simple.fb" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                                  # features/step_definitions/steps.rb:67
    Then I run bin/judges with "inspect simple.fb"                                          # features/step_definitions/steps.rb:38
    Then Stdout contains "Facts: 1"                                                         # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                   # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Factbase version can be set                                                    # features/test.feature:18
    When I run bin/judges with "--factbase 0.11.0 --verbose test --judge guess ./fixtures" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                                 # features/step_definitions/steps.rb:67
    And Stdout contains "Factbase version to be used: '0.11.0'"                            # features/step_definitions/steps.rb:59

Feature: Pull
  I want to pull a factbase

  Scenario: Pull a small factbase, which is absent on the server                                                                  # features/pull.feature:7
    Given We are online                                                                                                           # features/step_definitions/steps.rb:21
    Given I make a temp directory                                                                                                 # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose pull --token ZRCY-00000000-0000-0000-0000-000000000000 --wait=15 faked4c1ae5d8e98b893 simple.fb # features/step_definitions/steps.rb:38
    Then Stdout contains "doesn't exist at api.zerocracy.com"                                                                     # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                                                         # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Test with a pre-condition                         # features/test.feature:128
    Given I make a temp directory                             # features/step_definitions/steps.rb:27
    Then I have a "mine/first/first.rb" file with content:    # features/step_definitions/steps.rb:33
      """
      n = $fb.insert
      n.foo = 42
      """
    Then I have a "mine/second/second.rb" file with content:  # features/step_definitions/steps.rb:33
      """
      n = $fb.insert
      n.foo = 55
      """
    Then I have a "mine/second/second.yml" file with content: # features/step_definitions/steps.rb:33
      """
      ---
      before:
        - first
      expected:
        - /fb[count(f)=2]
      """
    Then I run bin/judges with "test mine"                    # features/step_definitions/steps.rb:38
    And Exit code is zero                                     # features/step_definitions/steps.rb:67

Feature: Print
  I want to print a factbase

  Scenario: Simple print of a small factbase, to JSON                           # features/print.feature:21
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "print --format=json simple.fb simple.json"      # features/step_definitions/steps.rb:38
    Then Stdout contains "printed"                                              # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Use options from a file                                                           # features/update.feature:70
    Given I make a temp directory                                                             # features/step_definitions/steps.rb:27
    Then I have a "simple/simple.rb" file with content:                                       # features/step_definitions/steps.rb:33
      """
        n.kind.foo = $options.a1
      """
    Then I have a "opts.txt" file with content:                                               # features/step_definitions/steps.rb:33
      """
        a1 = test
        a2 = another test
      """
    Then I run bin/judges with "--verbose update --quiet --options-file opts.txt . simple.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "A1 → "                                                              # features/step_definitions/steps.rb:59
    Then Stdout contains "A2 → "                                                              # features/step_definitions/steps.rb:59
    Then Stdout contains "1 judge(s) processed"                                               # features/step_definitions/steps.rb:59
    Then Stdout contains "Update completed"                                                   # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                     # features/step_definitions/steps.rb:67

Feature: Trim
  I want to trim a factbase

  Scenario: Simple trimming of a factbase, with a query                         # features/trim.feature:7
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'&quot; # features/step_definitions/steps.rb:38
    Given I run bin/judges with &quot;trim --query '(eq foo 42)' simple.fb&quot;          # features/step_definitions/steps.rb:38
    Then Stdout contains &quot;1 fact(s) deleted&quot;                                    # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Print
  I want to print a factbase

  Scenario: Simple print of a small factbase, to XML, with a query              # features/print.feature:35
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 43'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "print '--query=(eq foo 43)' --auto simple.fb"   # features/step_definitions/steps.rb:38
    Then Stdout contains "printed"                                              # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Join
  I want to join two factbases

  Scenario: Simple join of two small factbases                                  # features/join.feature:7
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval first.fb '$fb.insert.foo = 42'"  # features/step_definitions/steps.rb:38
    Then I run bin/judges with "--verbose eval second.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "update . first.fb"                              # features/step_definitions/steps.rb:38
    Then I run bin/judges with "update . second.fb"                             # features/step_definitions/steps.rb:38
    Then I run bin/judges with "join first.fb second.fb"                        # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                      # features/step_definitions/steps.rb:67
    And Stdout contains "joined"                                                # features/step_definitions/steps.rb:59

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Simple run of a few judges                                                                 # features/update.feature:7
    Given I make a temp directory                                                                      # features/step_definitions/steps.rb:27
    Then I have a "simple/simple.rb" file with content:                                                # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.kind = 'yes!'
      """
    Then I run bin/judges with "--verbose update --quiet -o foo=1 -o bar=2 --max-cycles 3 . simple.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "FOO → "                                                                      # features/step_definitions/steps.rb:59
    Then Stdout contains "BAR → "                                                                      # features/step_definitions/steps.rb:59
    Then Stdout contains "1 judge(s) processed"                                                        # features/step_definitions/steps.rb:59
    Then Stdout contains "Update completed in 3 cycle(s), did 3i/0d/3a"                                # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                              # features/step_definitions/steps.rb:67

  Scenario: The update fails when a broken Ruby syntax in a judge # features/update.feature:128
    Given I make a temp directory                                 # features/step_definitions/steps.rb:27
    Then I have a "mine/broken/broken.rb" file with content:      # features/step_definitions/steps.rb:33
      """
      invalid$ruby$syntax$here
      """
    Then I run bin/judges with "update mine simple.fb"            # features/step_definitions/steps.rb:38
    Then Stdout contains "Failed to update correctly"             # features/step_definitions/steps.rb:59
    And Exit code is not zero                                     # features/step_definitions/steps.rb:71

Feature: Print
  I want to print a factbase

  Scenario: Print twice, without --force                                        # features/print.feature:43
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "print --auto simple.fb"                         # features/step_definitions/steps.rb:38
    Then Stdout contains "printed"                                              # features/step_definitions/steps.rb:59
    Then I run bin/judges with "print --auto simple.fb"                         # features/step_definitions/steps.rb:38
    Then Stdout contains "No need to print"                                     # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Simple demote of a single judge                                                        # features/update.feature:152
    Given I make a temp directory                                                                  # features/step_definitions/steps.rb:27
    Then I have a "alpha/alpha.rb" file with content:                                              # features/step_definitions/steps.rb:33
      """
        $fb.insert.name = 'alpha'
      """
    Then I have a "beta/beta.rb" file with content:                                                # features/step_definitions/steps.rb:33
      """
        $fb.insert.name = 'beta'
      """
    Then I have a "gamma/gamma.rb" file with content:                                              # features/step_definitions/steps.rb:33
      """
        $fb.insert.name = 'gamma'
      """
    Then I run bin/judges with "--verbose update --quiet --max-cycles 1 --demote beta . demote.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "Running alpha"                                                           # features/step_definitions/steps.rb:59
    Then Stdout contains "Running gamma"                                                           # features/step_definitions/steps.rb:59
    Then Stdout contains "Running beta"                                                            # features/step_definitions/steps.rb:59
    Then Stdout contains "3 judge(s) processed"                                                    # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                          # features/step_definitions/steps.rb:67

Feature: Print
  I want to print a factbase

  Scenario: Simple print of a small factbase, to HTML                           # features/print.feature:14
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with &quot;print --format=html simple.fb simple.html&quot;      # features/step_definitions/steps.rb:38
    Then Stdout contains &quot;printed&quot;                                              # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: The update fails when a bug in a judge           # features/update.feature:118
    Given I make a temp directory                            # features/step_definitions/steps.rb:27
    Then I have a "mine/broken/broken.rb" file with content: # features/step_definitions/steps.rb:33
      """
      a < 1
      """
    Then I run bin/judges with "update mine simple.fb"       # features/step_definitions/steps.rb:38
    Then Stdout contains "Failed to update correctly"        # features/step_definitions/steps.rb:59
    And Exit code is not zero                                # features/step_definitions/steps.rb:71

Feature: Test
  I want to test a few judges

  Scenario: Test with exception                            # features/test.feature:173
    Given I make a temp directory                          # features/step_definitions/steps.rb:27
    Then I have a "mine/foo/foo.rb" file with content:     # features/step_definitions/steps.rb:33
      """
      raise 'this is a joke'
      """
    Then I have a "mine/foo/simple.yml" file with content: # features/step_definitions/steps.rb:33
      """
      ---
      expected_failure:
        - a joke
      """
    Then I run bin/judges with "test mine"                 # features/step_definitions/steps.rb:38
    And Exit code is zero                                  # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Avoid duplicate insert on error in the middle                     # features/update.feature:138
    Given I make a temp directory                                             # features/step_definitions/steps.rb:27
    Then I have a "mine/foo/foo.rb" file with content:                        # features/step_definitions/steps.rb:33
      """
      return unless $fb.query('(eq foo 42)').each.to_a.empty?
      f = $fb.insert
      f.foo = 42
      raise 'intentional'
      """
    Then I run bin/judges with "update --quiet --max-cycles=3 mine simple.fb" # features/step_definitions/steps.rb:38
    And Exit code is zero                                                     # features/step_definitions/steps.rb:67
    Then I run bin/judges with "inspect simple.fb"                            # features/step_definitions/steps.rb:38
    Then Stdout contains "Facts: 1"                                           # features/step_definitions/steps.rb:59

Feature: Test
  I want to test a few judges

  Scenario: Enable only one category                         # features/test.feature:97
    Given I make a temp directory                            # features/step_definitions/steps.rb:27
    Then I have a "mine/good/good.rb" file with content:     # features/step_definitions/steps.rb:33
      """
      n = $fb.insert
      """
    Then I have a "mine/good/good.yml" file with content:    # features/step_definitions/steps.rb:33
      """
      ---
      category: good
      input: []
      """
    Then I have a "mine/bad/bad.rb" file with content:       # features/step_definitions/steps.rb:33
      """
      broken$ruby$syntax
      """
    Then I have a "mine/bad/bad.yml" file with content:      # features/step_definitions/steps.rb:33
      """
      ---
      category: bad
      """
    Then I run bin/judges with "test --enable good mine"     # features/step_definitions/steps.rb:38
    Then Stdout contains "All 2 judge(s) and 1 tests passed" # features/step_definitions/steps.rb:59
    And Exit code is zero                                    # features/step_definitions/steps.rb:67
    Then I run bin/judges with "test --disable bad mine"     # features/step_definitions/steps.rb:38
    Then Stdout contains "All 2 judge(s) and 1 tests passed" # features/step_definitions/steps.rb:59
    And Exit code is zero                                    # features/step_definitions/steps.rb:67
    Then I run bin/judges with "test --enable bad mine"      # features/step_definitions/steps.rb:38
    Then Stdout contains "Testing mine/bad/bad.yml"          # features/step_definitions/steps.rb:59
    And Exit code is not zero                                # features/step_definitions/steps.rb:71

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Demote multiple judges                                                                                  # features/update.feature:173
    Given I make a temp directory                                                                                   # features/step_definitions/steps.rb:27
    Then I have a "first/first.rb" file with content:                                                               # features/step_definitions/steps.rb:33
      """
        $fb.insert.order = 'first'
      """
    Then I have a "second/second.rb" file with content:                                                             # features/step_definitions/steps.rb:33
      """
        $fb.insert.order = 'second'
      """
    Then I have a "third/third.rb" file with content:                                                               # features/step_definitions/steps.rb:33
      """
        $fb.insert.order = 'third'
      """
    Then I have a "fourth/fourth.rb" file with content:                                                             # features/step_definitions/steps.rb:33
      """
        $fb.insert.order = 'fourth'
      """
    Then I run bin/judges with "--verbose update --quiet --max-cycles 1 --demote second --demote fourth . multi.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "Running first"                                                                            # features/step_definitions/steps.rb:59
    Then Stdout contains "Running third"                                                                            # features/step_definitions/steps.rb:59
    Then Stdout contains "Running second"                                                                           # features/step_definitions/steps.rb:59
    Then Stdout contains "Running fourth"                                                                           # features/step_definitions/steps.rb:59
    Then Stdout contains "4 judge(s) processed"                                                                     # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                                           # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Simple test of no judges at all # features/test.feature:27
    Given I make a temp directory           # features/step_definitions/steps.rb:27
    Given I run bin/judges with "test ."    # features/step_definitions/steps.rb:38
    Then Exit code is not zero              # features/step_definitions/steps.rb:71

  Scenario: Simple test of no judges                                      # features/test.feature:23
    Given I run bin/judges with "test --judge absent_for_sure ./fixtures" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                # features/step_definitions/steps.rb:67

Feature: Version
  I want to know the version of the gem

  Scenario: Print the version            # features/version.feature:7
    Given I make a temp directory        # features/step_definitions/steps.rb:27
    Then I run bin/judges with &quot;version&quot; # features/step_definitions/steps.rb:38
    And Exit code is zero                # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Simple run with a timeout for a judge                              # features/update.feature:88
    Given I make a temp directory                                              # features/step_definitions/steps.rb:27
    Then I have a "slow/slow.rb" file with content:                            # features/step_definitions/steps.rb:33
      """
        sleep(10)
        $fb.insert.foo = 1
      """
    Then I run bin/judges with "--verbose update --timeout 1 --quiet . foo.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "execution expired"                                   # features/step_definitions/steps.rb:59
    Then Stdout contains "judge timed out after"                               # features/step_definitions/steps.rb:59
    Then Stdout contains "1 judge(s) processed"                                # features/step_definitions/steps.rb:59
    Then Stdout contains "Update completed in 1 cycle(s), did 0i/0d/0a"        # features/step_definitions/steps.rb:59
    And Exit code is zero                                                      # features/step_definitions/steps.rb:67

  Scenario: Delete a previous summary fact and create new one                            # features/update.feature:42
    Given I make a temp directory                                                        # features/step_definitions/steps.rb:27
    Then I have a "buggy/buggy.rb" file with content: "this is an intentional bug"       # features/update.feature:44
    Then I run bin/judges with "update --quiet --summary=add --max-cycles 1 . simple.fb" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                               # features/step_definitions/steps.rb:67
    Then Stdout contains "Summary fact added"                                            # features/step_definitions/steps.rb:59
    Then I run bin/judges with "update --quiet --summary=add --max-cycles 1 . simple.fb" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                               # features/step_definitions/steps.rb:67
    And Stdout contains "Summary fact deleted"                                           # features/step_definitions/steps.rb:59

Feature: Misc
  I want to get some meta info

  Scenario: Help can be printed     # features/misc.feature:7
    When I run bin/judges with "-h" # features/step_definitions/steps.rb:38
    Then Exit code is zero          # features/step_definitions/steps.rb:67
    And Stdout contains "--help"    # features/step_definitions/steps.rb:59

Feature: Test
  I want to test a few judges

  Scenario: Simple test of no judges at all           # features/test.feature:32
    Given I make a temp directory                     # features/step_definitions/steps.rb:27
    Given I run bin/judges with "test --judge some ." # features/step_definitions/steps.rb:38
    Then Exit code is not zero                        # features/step_definitions/steps.rb:71

Feature: Inspect
  I want to inspect a factbase

  Scenario: Simple inspect of a small factbase                                  # features/inspect.feature:7
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "update . simple.fb"                             # features/step_definitions/steps.rb:38
    Then I run bin/judges with "inspect simple.fb"                              # features/step_definitions/steps.rb:38
    Then Stdout contains "Facts: 1"                                             # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Combine boost and demote                                                                                     # features/update.feature:199
    Given I make a temp directory                                                                                        # features/step_definitions/steps.rb:27
    Then I have a "priority/priority.rb" file with content:                                                              # features/step_definitions/steps.rb:33
      """
        $fb.insert.type = 'priority'
      """
    Then I have a "normal/normal.rb" file with content:                                                                  # features/step_definitions/steps.rb:33
      """
        $fb.insert.type = 'normal'
      """
    Then I have a "delayed/delayed.rb" file with content:                                                                # features/step_definitions/steps.rb:33
      """
        $fb.insert.type = 'delayed'
      """
    Then I run bin/judges with "--verbose update --quiet --max-cycles 1 --boost priority --demote delayed . combined.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "Running priority"                                                                              # features/step_definitions/steps.rb:59
    Then Stdout contains "Running normal"                                                                                # features/step_definitions/steps.rb:59
    Then Stdout contains "Running delayed"                                                                               # features/step_definitions/steps.rb:59
    Then Stdout contains "3 judge(s) processed"                                                                          # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                                                # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Test with a post-assert                        # features/test.feature:151
    Given I make a temp directory                          # features/step_definitions/steps.rb:27
    Then I have a "mine/foo/foo.rb" file with content:     # features/step_definitions/steps.rb:33
      """
      n = $fb.insert
      n.foo = 42
      """
    Then I have a "mine/foo/assert.rb" file with content:  # features/step_definitions/steps.rb:33
      """
      raise unless $fb.size == 1
      """
    Then I have a "mine/foo/simple.yml" file with content: # features/step_definitions/steps.rb:33
      """
      ---
      expected:
        - /fb[count(f)=1]
      after:
        - assert.rb
      """
    Then I run bin/judges with "test mine"                 # features/step_definitions/steps.rb:38
    And Exit code is zero                                  # features/step_definitions/steps.rb:67

  Scenario: Simple test of just one judge                       # features/test.feature:13
    Given I run bin/judges with "test --judge guess ./fixtures" # features/step_definitions/steps.rb:38
    Then Stdout contains "All 1 judge(s) and 1 tests passed"    # features/step_definitions/steps.rb:59
    And Exit code is zero                                       # features/step_definitions/steps.rb:67

Feature: Misc
  I want to get some meta info

  Scenario: Version can be printed         # features/misc.feature:12
    When I run bin/judges with &quot;--version&quot; # features/step_definitions/steps.rb:38
    Then Exit code is zero                 # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Simple test with many runs                       # features/test.feature:58
    Given I make a temp directory                            # features/step_definitions/steps.rb:27
    Then I have a "foo/foo.rb" file with content:            # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.foo = $fb.size
      """
    Then I have a "foo/good.yml" file with content:          # features/step_definitions/steps.rb:33
      """
      ---
      runs: 5
      input: []
      expected:
        - /fb[count(f)=5]
      """
    Then I run bin/judges with "test ."                      # features/step_definitions/steps.rb:38
    Then Stdout contains "All 1 judge(s) and 1 tests passed" # features/step_definitions/steps.rb:59
    And Exit code is zero                                    # features/step_definitions/steps.rb:67

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Simple run of a few judges, with a lib                                # features/update.feature:102
    Given I make a temp directory                                                 # features/step_definitions/steps.rb:27
    Then I have a "mine/judge1/judge1.rb" file with content:                      # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.foo = $foo
      """
    Then I have a "mylib/foo.rb" file with content:                               # features/step_definitions/steps.rb:33
      """
        $foo = 42
      """
    Then I run bin/judges with "update --lib mylib --max-cycles 1 mine simple.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "1 judge(s) processed"                                   # features/step_definitions/steps.rb:59
    Then Stdout contains "Update completed in 1 cycle(s)"                         # features/step_definitions/steps.rb:59
    And Exit code is zero                                                         # features/step_definitions/steps.rb:67

Feature: Test
  I want to test a few judges

  Scenario: Simple test of a few judges                      # features/test.feature:7
    Given I run bin/judges with "test ./fixtures"            # features/step_definitions/steps.rb:38
    Then Stdout contains "πŸ‘‰ Testing"                         # features/step_definitions/steps.rb:59
    Then Stdout contains "All 3 judge(s) and 3 tests passed" # features/step_definitions/steps.rb:59
    And Exit code is zero                                    # features/step_definitions/steps.rb:67

  Scenario: Simple test with many runs and many asserts      # features/test.feature:77
    Given I make a temp directory                            # features/step_definitions/steps.rb:27
    Then I have a "foo/foo.rb" file with content:            # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.foo = $fb.size
      """
    Then I have a "foo/good.yml" file with content:          # features/step_definitions/steps.rb:33
      """
      ---
      runs: 5
      input: []
      assert_once: false
      expected:
        - /fb/f[foo = 1]
      """
    Then I run bin/judges with "test ."                      # features/step_definitions/steps.rb:38
    Then Stdout contains "All 1 judge(s) and 1 tests passed" # features/step_definitions/steps.rb:59
    And Exit code is zero                                    # features/step_definitions/steps.rb:67

Feature: Print
  I want to print a factbase

  Scenario: Simple print of a small factbase, to YAML                           # features/print.feature:7
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Then I run bin/judges with "print --format=yaml simple.fb simple.yml"       # features/step_definitions/steps.rb:38
    Then Stdout contains "printed"                                              # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Trim
  I want to trim a factbase

  Scenario: Delete nothing by default                                           # features/trim.feature:14
    Given I make a temp directory                                               # features/step_definitions/steps.rb:27
    Then I run bin/judges with "--verbose eval simple.fb '$fb.insert.foo = 42'" # features/step_definitions/steps.rb:38
    Given I run bin/judges with "trim simple.fb"                                # features/step_definitions/steps.rb:38
    Then Stdout contains "No facts deleted"                                     # features/step_definitions/steps.rb:59
    And Exit code is zero                                                       # features/step_definitions/steps.rb:67

Feature: Gem Package
  As a source code writer I want to be able to
  judgeage the Gem into .gem file

  Scenario: Gem can be packaged                 # features/gem_package.feature:8
    Given I make a temp directory               # features/step_definitions/steps.rb:27
    Then I have a "execs.rb" file with content: # features/step_definitions/steps.rb:33
      """
      #!/usr/bin/env ruby
      require 'rubygems'
      spec = Gem::Specification::load('./spec.rb')
      if spec.executables.empty?
        fail 'no executables: ' + File.read('./spec.rb')
      end
      """
    When I run bash with:                       # features/step_definitions/steps.rb:53
      """
      cd judges
      gem build judges.gemspec
      gem specification --ruby judges-*.gem > ../spec.rb
      cd ..
      ruby execs.rb
      """
    Then Exit code is zero                      # features/step_definitions/steps.rb:67

Feature: Echo
  I want to see the full command line when using --echo flag

  Scenario: Echo flag prints command line           # features/echo.feature:7
    When I run bin/judges with "--echo version"     # features/step_definitions/steps.rb:38
    Then Exit code is zero                          # features/step_definitions/steps.rb:67
    And Stdout contains "bin/judges --echo version" # features/step_definitions/steps.rb:59

Feature: Update
  I want to run a few judges over a factbase

  Scenario: Append to existing summary fact, with errors                                    # features/update.feature:30
    Given I make a temp directory                                                           # features/step_definitions/steps.rb:27
    Then I have a "buggy/buggy.rb" file with content: "this is an intentional bug"          # features/update.feature:32
    Then I run bin/judges with "update --quiet --summary=append --max-cycles 1 . simple.fb" # features/step_definitions/steps.rb:38
    Then Exit code is zero                                                                  # features/step_definitions/steps.rb:67
    Then Stdout contains "Summary fact not found"                                           # features/step_definitions/steps.rb:59
    Then I run bin/judges with "update --quiet --summary=append --max-cycles 1 . simple.fb&quot; # features/step_definitions/steps.rb:38
    Then I run bin/judges with &quot;inspect simple.fb&quot;                                          # features/step_definitions/steps.rb:38
    Then Stdout contains &quot;Summary fact found&quot;                                               # features/step_definitions/steps.rb:59
    Then Stdout contains &quot;errors:&quot;                                                          # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                   # features/step_definitions/steps.rb:67

  Scenario: Skips the judge on lifetime running out                                               # features/update.feature:52
    Given I make a temp directory                                                                 # features/step_definitions/steps.rb:27
    Then I have a "first/first.rb" file with content:                                             # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.type = 'first'
        sleep 1
      """
    Then I have a "second/second.rb" file with content:                                           # features/step_definitions/steps.rb:33
      """
        n = $fb.insert
        n.type = 'second'
      """
    Then I run bin/judges with "--verbose update --quiet --lifetime 1 --max-cycles 5 . simple.fb" # features/step_definitions/steps.rb:38
    Then Stdout contains "The 'second' judge skipped, no time left"                               # features/step_definitions/steps.rb:59
    Then Stdout contains "Update completed in 1 cycle(s), did 1i/0d/1a"                           # features/step_definitions/steps.rb:59
    And Exit code is zero                                                                         # features/step_definitions/steps.rb:67

45 scenarios (3 undefined, 42 passed)
269 steps (19 skipped, 3 undefined, 247 passed)
0m31.450s

Randomized with seed 54435

You can implement step definitions for undefined steps with these snippets:

Then('I have a {string} file with content: {string}') do |string, string2|
  pending # Write code here that turns the phrase above into concrete actions
end

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Share your Cucumber Report with your team at https://reports.cucumber.io     β”‚
β”‚                                                                              β”‚
β”‚ Command line option:    --publish                                            β”‚
β”‚ Environment variable:   CUCUMBER_PUBLISH_ENABLED=true                        β”‚
β”‚ cucumber.yml:           default: --publish                                   β”‚
β”‚                                                                              β”‚
β”‚ More information at https://cucumber.io/docs/cucumber/environment-variables/ β”‚
β”‚                                                                              β”‚
β”‚ To disable this message, specify CUCUMBER_PUBLISH_QUIET=true or use the      β”‚
β”‚ --publish-quiet option. You can also add this to your cucumber.yml:          β”‚
β”‚ default: --publish-quiet                                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
+ bundle exec ruby test/commands/test_download.rb /#960
#960: Started with run options --seed 1662
#960:
#960: TestDownload
#960:   test_download_simple_durable                                    PASS (0.04s)
#960:   test_download_with_custom_owner                                 PASS (0.01s)
#960:   test_handles_not_found_durable                                  PASS (0.00s)
#960:   test_fails_with_wrong_number_of_arguments                       PASS (0.00s)
#960:   test_fails_on_http_error                                        PASS (0.01s)
#960:
#960: Finished in 0.06392s
#960: 5 tests, 6 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_eval.rb /#968
#968: Started with run options --seed 23440
#968:
#968: TestEval
#968:   test_build_factbase_from_scratch                                PASS (0.00s)
#968:
#968: Finished in 0.00701s
#968: 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_import.rb /#975
#975: Started with run options --seed 27432
#975:
#975: TestImport
#975:   test_import_from_yaml                                           PASS (0.01s)
#975:
#975: Finished in 0.00847s
#975: 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_inspect.rb /#982
#982: Started with run options --seed 46335
#982:
#982: TestInspect
#982:   test_simple_inspect                                             PASS (0.01s)
#982:
#982: Finished in 0.01252s
#982: 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_join.rb /#989
#989: Started with run options --seed 15717
#989:
#989: TestJoin
#989:   test_simple_join                                                PASS (0.00s)
#989:
#989: Finished in 0.00717s
#989: 1 tests, 6 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_print.rb /#996
#996: Started with run options --seed 7984
#996:
#996: TestPrint
#996:   test_simple_print                                               PASS (0.00s)
#996:   test_print_to_html                                              SKIP (0.03s)
#996:   test_print_all_formats                                          PASS (0.01s)
#996:   test_html_table_has_colgroup                                    PASS (0.00s)
#996:   test_print_twice                                                PASS (0.00s)
#996:
#996: Finished in 0.05540s
#996: 5 tests, 16 assertions, 0 failures, 0 errors, 1 skips
+ bundle exec ruby test/commands/test_pull.rb /#1006
#1006: Started with run options --seed 52951
#1006:
#1006: TestPull
#1006:   test_pull_simple_factbase                                       PASS (0.05s)
#1006:   test_fail_pull_when_job_is_broken                               PASS (0.01s)
#1006:
#1006: Finished in 0.05866s
#1006: 2 tests, 3 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_push.rb /#1014
#1014: Started with run options --seed 15286
#1014:
#1014: TestPush
#1014:   test_push_simple_factbase                                       PASS (0.05s)
#1014:   test_fails_on_http_error                                        PASS (0.02s)
#1014:
#1014: Finished in 0.06821s
#1014: 2 tests, 1 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_test.rb /#1022
#1022: Started with run options --seed 28199
#1022:
#1022: TestTest
#1022:   test_with_expected_failure_no_string                            PASS (0.00s)
#1022:   test_positive                                                   PASS (0.01s)
#1022:   test_one_judge_negative                                         PASS (0.00s)
#1022:   test_with_after_assertion                                       PASS (0.00s)
#1022:   test_with_expected_failure                                      PASS (0.00s)
#1022:   test_with_before                                                PASS (0.00s)
#1022:   test_with_options                                               PASS (0.00s)
#1022:   test_negative                                                   PASS (0.00s)
#1022:
#1022: Finished in 0.02798s
#1022: 8 tests, 8 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_trim.rb /#1029
#1029: Started with run options --seed 18641
#1029:
#1029: TestTrim
#1029:   test_trims_factbase                                             PASS (0.01s)
#1029:
#1029: Finished in 0.01335s
#1029: 1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_update.rb /#1036
#1036: Started with run options --seed 2612
#1036:
#1036: TestUpdate
#1036:   test_cancels_slow_judge                                         PASS (0.10s)
#1036:   test_update_with_options_in_file                                PASS (0.00s)
#1036:   test_no_failure_when_expect_judges_false                        PASS (0.00s)
#1036:   test_extend_existing_factbase                                   PASS (0.00s)
#1036:   test_fail_fast_stops_cycle                                      PASS (0.00s)
#1036:   test_update_with_error_and_summary                              PASS (0.01s)
#1036:   test_with_only_one_judge                                        PASS (0.01s)
#1036:   test_isolates_churns                                            PASS (0.01s)
#1036:   test_build_factbase_from_scratch                                PASS (0.01s)
#1036:   test_update_with_error_no_quiet                                 PASS (0.00s)
#1036:   test_fails_when_empty_directory                                 PASS (0.01s)
#1036:   test_no_failure_with_nonexistent_judge_when_expect_judges_false PASS (0.00s)
#1036:   test_fails_when_no_judges_used                                  PASS (0.00s)
#1036:   test_appends_to_existing_summary                                PASS (0.00s)
#1036:   test_update_with_error                                          PASS (0.00s)
#1036:
#1036: Finished in 0.16954s
#1036: 15 tests, 25 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/commands/test_upload.rb /#1044
#1044: Started with run options --seed 49179
#1044:
#1044: TestUpload
#1044:   test_fails_when_file_does_not_exist                             PASS (0.00s)
#1044:   test_upload_with_custom_owner                                   PASS (0.05s)
#1044:   test_fails_with_wrong_number_of_arguments                       PASS (0.00s)
#1044:   test_fails_on_http_error                                        PASS (0.00s)
#1044:   test_upload_simple_durable                                      PASS (0.02s)
#1044:
#1044: Finished in 0.08969s
#1044: 5 tests, 4 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test__helper.rb /#1052
#1052: Started with run options --seed 22581
#1052:
#1052: Finished in 0.00155s
#1052: 0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_bin.rb /#1059
#1059: Started with run options --seed 6293
#1059:
#1059: TestBin
#1059:   test_simple_run                                                 PASS (0.05s)
#1059:
#1059: Finished in 0.05602s
#1059: 1 tests, 2 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_categories.rb /#1066
#1066: Started with run options --seed 35712
#1066:
#1066: TestCategories
#1066:   test_basic                                                      PASS (0.00s)
#1066:   test_all_enabled                                                PASS (0.00s)
#1066:
#1066: Finished in 0.00419s
#1066: 2 tests, 11 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_impex.rb /#1073
#1073: Started with run options --seed 45937
#1073:
#1073: TestImpex
#1073:   test_basic                                                      PASS (0.00s)
#1073:   test_strict_import                                              PASS (0.00s)
#1073:
#1073: Finished in 0.00427s
#1073: 2 tests, 0 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_judge.rb /#1080
#1080: Started with run options --seed 29902
#1080:
#1080: TestJudge
#1080:   test_run_isolated                                               PASS (0.00s)
#1080:   test_with_runtime_ruby_error                                    PASS (0.00s)
#1080:   test_counts_churn_after_txn                                     PASS (0.00s)
#1080:   test_with_broken_ruby_syntax                                    PASS (0.00s)
#1080:   test_counts_churn                                               PASS (0.00s)
#1080:   test_basic_run                                                  PASS (0.00s)
#1080:   test_with_standard_error                                        PASS (0.00s)
#1080:   test_sets_judge_value_correctly                                 PASS (0.00s)
#1080:   test_passes_local_vars_between_tests                            PASS (0.00s)
#1080:   test_sets_start_value_correctly                                 PASS (0.00s)
#1080:
#1080: Finished in 0.01777s
#1080: 10 tests, 17 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_judges.rb /#1087
#1087: Started with run options --seed 761
#1087:
#1087: TestJudges
#1087:   test_get_one                                                    PASS (0.00s)
#1087:   test_demotes_judges                                             PASS (0.00s)
#1087:   test_basic                                                      PASS (0.00s)
#1087:   test_list_only_direct_subdirs                                   PASS (0.00s)
#1087:   test_boost_and_demote_together                                  PASS (0.00s)
#1087:   test_shuffles_them                                              PASS (0.00s)
#1087:   test_shuffles_and_boosts                                        PASS (0.00s)
#1087:   test_keeps_them_all                                             PASS (0.01s)
#1087:   test_list_with_empty_dir                                        PASS (0.00s)
#1087:
#1087: Finished in 0.02557s
#1087: 9 tests, 106 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_options.rb /#1094
#1094: Started with run options --seed 61129
#1094:
#1094: TestOptions
#1094:   test_with_hash                                                  PASS (0.00s)
#1094:   test_basic                                                      PASS (0.00s)
#1094:   test_stips_spaces                                               PASS (0.00s)
#1094:   test_with_empty_strings                                         PASS (0.00s)
#1094:   test_with_empty_string                                          PASS (0.00s)
#1094:   test_with_nil                                                   PASS (0.00s)
#1094:   test_case_insensitive                                           PASS (0.00s)
#1094:   test_with_string                                                PASS (0.00s)
#1094:   test_converts_to_string                                         PASS (0.00s)
#1094:   test_merge                                                      PASS (0.00s)
#1094:   test_merge_by_symbols                                           PASS (0.00s)
#1094:
#1094: Finished in 0.00734s
#1094: 11 tests, 27 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby test/test_to_rel.rb /#1101
#1101: Started with run options --seed 58912
#1101:
#1101: TestToRel
#1101:   test_maps_dir_name                                              PASS (0.00s)
#1101:   test_simple_mapping                                             PASS (0.00s)
#1101:
#1101: Finished in 0.00319s
#1101: 2 tests, 2 assertions, 0 failures, 0 errors, 0 skips
+ bundle exec ruby lib/judges/categories.rb /#1108
+ bundle exec ruby lib/judges/commands/download.rb /#1114
+ bundle exec ruby lib/judges/commands/eval.rb /#1120
+ bundle exec ruby lib/judges/commands/import.rb /#1126
+ bundle exec ruby lib/judges/commands/inspect.rb /#1132
+ bundle exec ruby lib/judges/commands/join.rb /#1138
+ bundle exec ruby lib/judges/commands/print.rb /#1144
+ bundle exec ruby lib/judges/commands/pull.rb /#1150
+ bundle exec ruby lib/judges/commands/push.rb /#1156
+ bundle exec ruby lib/judges/commands/test.rb /#1162
+ bundle exec ruby lib/judges/commands/trim.rb /#1168
+ bundle exec ruby lib/judges/commands/update.rb /#1174
+ bundle exec ruby lib/judges/commands/upload.rb /#1180
+ bundle exec ruby lib/judges/impex.rb /#1186
+ bundle exec ruby lib/judges/judge.rb /#1192
+ bundle exec ruby lib/judges/judges.rb /#1198
+ bundle exec ruby lib/judges/options.rb /#1204
+ bundle exec ruby lib/judges/to_rel.rb /#1210
+ bundle exec ruby lib/judges.rb /#1216
Running RuboCop...
Inspecting 47 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.0m32m.0m32m.0m32m.0m

47 files inspected, 32mno offenses0m detected
[warn]:Kin5YARD::Handlers::Ruby::DSLHandler:bUndocumentable method, missing name
        in file 'lib/judges/options.rb':148:

        148: others do |*args|

[warn]:mInGfilea`README.md':12:hCannotmresolvellinkmtob<code>Factbase</code><a from text:
        ...{<code>Factbase</code><a href="https://www.rubydoc.info/gems/factbase/0.0.22/Factbase">}...
[warn]: In file `README.md':14: Cannot resolve link to <code>Loog</code><a from text:
        ...{<code>Loog</code><a href="https://www.rubydoc.info/gems/loog/0.5.1/Loog">}...
[warn]:KIn5filea`README.md':12:fCannotAresolvellink to <code>Factbase</code><a from text:
        ...{<code>Factbase</code><a href="https://www.rubydoc.info/gems/factbase/0.0.22/Factbase">}...
[warn]: In file `README.md':14: Cannot resolve link to <code>Loog</code><a from text:
        ...{<code>Loog</code><a href="https://www.rubydoc.info/gems/loog/0.5.1/Loog">}...
?25h2KFiles:1mβ£½aGenera19ngudoc/Judges/Download.html0m0m0m
Modules:         1 (    0 undocumented)
Classes:        18 (    0 undocumented)
Constants:       1 (    1 undocumented)
Attributes:      1 (    0 undocumented)
Methods:        46 (    0 undocumented)
 98.51% documented
[__rultor 673c7a6] version set to 0.50.3
 2 files changed, 2 insertions(+), 2 deletions(-)
  Successfully built RubyGem
  Name: judges
  Version: 0.50.3
  File: judges-0.50.3.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: judges (0.50.3)
Branch 'gh-pages' set up to track remote branch 'gh-pages' from 'origin'.
Switched to a new branch 'gh-pages'
[gh-pages 1198e33] New JS and CSS
+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R ubuntu repo
+ cd repo
+ git checkout __rultor
Switched to branch '__rultor'
+ git tag 0.50.3 -m '0.50.3: tagged by rultor.com'
+ git reset --hard
HEAD is now at 673c7a6 version set to 0.50.3
+ git clean -fd
+ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
+ git branch -D __rultor
Deleted branch __rultor (was 673c7a6).
+ git push --all origin
To github.com:yegor256/judges.git
   b75e4d9..1198e33  gh-pages -> gh-pages
+ git push --tags origin
To github.com:yegor256/judges.git
 * [new tag]         0.50.3 -> 0.50.3
container 0d44108b62c9440d746d4732d7ab16240d50fa9988a81f477645932a29897f0a is dead
Mon Jun 16 08:01:42 UTC 2025