Skip to content

Commit 29022d8

Browse files
committed
Add Gemfile and fix tests for Ruby 4.x compatibility
- Add Gemfile with test dependencies (minitest,csv, gruff, etc.) - Pin minitest to version 5.x to avoid breaking changes introduced in minitest 6.x - Require minitest/mock in test_helper.rb for stub method - Update CI to use bundler-cache and bundle exec
1 parent b8c0630 commit 29022d8

File tree

5 files changed

+68
-1
lines changed

5 files changed

+68
-1
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@ jobs:
3333
uses: ruby/setup-ruby@v1
3434
with:
3535
ruby-version: ${{ matrix.ruby }}
36+
bundler-cache: true
3637

3738
- name: Run tests
38-
run: rake test
39+
run: bundle exec rake test
3940

4041
benchmark-default:
4142
runs-on: ubuntu-latest

Gemfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# frozen_string_literal: true
2+
3+
source "https://rubygems.org"
4+
5+
gem "csv"
6+
gem "gruff"
7+
gem "minitest", "~> 5.0"
8+
gem "minitest-mock"
9+
gem "rake"
10+
gem "rmagick"

Gemfile.lock

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
bigdecimal (4.0.1)
5+
csv (3.3.5)
6+
gruff (0.29.0)
7+
bigdecimal (>= 3.0)
8+
histogram
9+
rmagick (>= 5.5)
10+
histogram (0.2.4.1)
11+
minitest (5.27.0)
12+
minitest-mock (5.27.0)
13+
observer (0.1.2)
14+
pkg-config (1.6.5)
15+
rake (13.3.1)
16+
rmagick (6.1.5)
17+
observer (~> 0.1)
18+
pkg-config (~> 1.4)
19+
20+
PLATFORMS
21+
arm64-darwin-24
22+
ruby
23+
x86_64-linux
24+
25+
DEPENDENCIES
26+
csv
27+
gruff
28+
minitest (~> 5.0)
29+
minitest-mock
30+
rake
31+
rmagick
32+
33+
CHECKSUMS
34+
bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
35+
csv (3.3.5) sha256=6e5134ac3383ef728b7f02725d9872934f523cb40b961479f69cf3afa6c8e73f
36+
gruff (0.29.0) sha256=ab808cbf507abda7ffacd4ba5805a43c47ad0ec6aa2a7b125cf8a165110047a0
37+
histogram (0.2.4.1) sha256=9a6e379172b88ea842ab71700a535dd037185a4e17abcce742c7444679ae2abc
38+
minitest (5.27.0) sha256=2d3b17f8a36fe7801c1adcffdbc38233b938eb0b4966e97a6739055a45fa77d5
39+
minitest-mock (5.27.0) sha256=7040ed7185417a966920987eaa6eaf1be4ea1fc5b25bb03ff4703f98564a55b0
40+
observer (0.1.2) sha256=d8a3107131ba661138d748e7be3dbafc0d82e732fffba9fccb3d7829880950ac
41+
pkg-config (1.6.5) sha256=33f9f81c5322983d22b439b8b672f27777b406fea23bfec74ff14bbeb42ec733
42+
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
43+
rmagick (6.1.5) sha256=91c1734cc0effc3b1be18e6705ea0353d73cb492547002f542763fa08445acd1
44+
45+
BUNDLED WITH
46+
4.0.3

lib/benchmark_suite.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,15 @@ def benchmark_env(ruby)
177177
end
178178
end
179179

180+
# Clear Bundler environment variables to prevent the parent's bundle context
181+
# from leaking into benchmark subprocesses. Benchmarks that need Bundler will
182+
# set up their own context via use_gemfile in the harness.
183+
# This is especially important when running tests under `bundle exec rake test`.
184+
["BUNDLE_GEMFILE", "BUNDLE_BIN_PATH", "BUNDLE_PATH", "BUNDLER_VERSION",
185+
"BUNDLER_SETUP", "RUBYOPT", "RUBYLIB"].each do |var|
186+
env[var] = nil if ENV.key?(var)
187+
end
188+
180189
env
181190
end
182191

test/test_helper.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
require 'minitest/autorun'
2+
require 'minitest/mock'

0 commit comments

Comments
 (0)