Skip to content

Commit 5d7e254

Browse files
committed
Added ruby_memcheck
1 parent 26e5c6d commit 5d7e254

File tree

5 files changed

+20
-1
lines changed

5 files changed

+20
-1
lines changed

.github/workflows/build.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ jobs:
99
include:
1010
- ruby: "4.0"
1111
os: ubuntu-24.04
12+
valgrind: true
1213
- ruby: 3.4
1314
os: ubuntu-24.04
1415
- ruby: 3.3
@@ -25,3 +26,8 @@ jobs:
2526
bundler-cache: true
2627
- run: MAKE="make -j$(getconf _NPROCESSORS_ONLN)" bundle exec rake compile
2728
- run: bundle exec rake test
29+
30+
- if: ${{ matrix.valgrind }}
31+
run: |
32+
sudo apt-get update && sudo apt-get install valgrind
33+
bundle exec rake test:valgrind

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ gemspec
55
gem "rake"
66
gem "rake-compiler"
77
gem "minitest"
8+
gem "ruby_memcheck", require: false
89

910
# https://github.com/ruby/openssl/issues/952
1011
gem "openssl" if RUBY_PLATFORM =~ /darwin/

Rakefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
require "bundler/gem_tasks"
22
require "rake/testtask"
33
require "rake/extensiontask"
4+
require "ruby_memcheck"
45

5-
Rake::TestTask.new do |t|
6+
test_config = lambda do |t|
67
t.pattern = "test/**/*_test.rb"
78
end
9+
Rake::TestTask.new(&test_config)
10+
11+
namespace :test do
12+
RubyMemcheck::TestTask.new(:valgrind, &test_config)
13+
end
814

915
task default: :test
1016

test/shift_scheduling_sat_test.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
class ShiftSchedulingSatTest < Minitest::Test
44
def test_shift_scheduling_sat
5+
skip if valgrind?
6+
57
num_employees = 8
68
num_weeks = 3
79
shifts = %w[O M A N]

test/test_helper.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,8 @@ def assert_output(expected)
3434
def stress?
3535
ENV["STRESS"]
3636
end
37+
38+
def valgrind?
39+
ENV["RUBY_MEMCHECK_RUNNING"]
40+
end
3741
end

0 commit comments

Comments
 (0)