From 4162c51a246de38996727d94027ecc059e81484d Mon Sep 17 00:00:00 2001 From: Peter Zhu Date: Wed, 7 Jun 2023 09:33:09 -0400 Subject: [PATCH] Set up ruby_memcheck --- .github/workflows/ruby.yml | 14 ++++++++++++++ Gemfile | 1 + Gemfile.lock | 3 +++ Rakefile | 8 +++++++- gemfiles/Gemfile-rails-6-0 | 1 + gemfiles/Gemfile-rails-6-1 | 1 + 6 files changed, 27 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index cce22e1..44999ad 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -32,6 +32,20 @@ jobs: bundler-cache: true - name: Run tests run: bundle exec rake + memcheck: + name: Memcheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.2 + bundler-cache: true + - name: Install Valgrind + run: sudo apt-get install valgrind + - name: Run tests + run: bundle exec rake test:valgrind lint: runs-on: ubuntu-latest name: Lint diff --git a/Gemfile b/Gemfile index cf23ea4..6cc6c14 100644 --- a/Gemfile +++ b/Gemfile @@ -9,6 +9,7 @@ gem "minitest" gem "mocha" gem "rake" gem "rake-compiler" +gem "ruby_memcheck" group :deployment, :test do gem "pry-byebug" diff --git a/Gemfile.lock b/Gemfile.lock index eac2c6b..31015b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -79,6 +79,8 @@ GEM rubocop-shopify (2.9.0) rubocop (~> 1.33) ruby-progressbar (1.11.0) + ruby_memcheck (1.3.2) + nokogiri smart_properties (1.17.0) tzinfo (2.0.5) concurrent-ruby (~> 1.0) @@ -96,6 +98,7 @@ DEPENDENCIES rake rake-compiler rubocop-shopify + ruby_memcheck BUNDLED WITH 2.2.22 diff --git a/Rakefile b/Rakefile index 5b30e52..964d04e 100644 --- a/Rakefile +++ b/Rakefile @@ -8,7 +8,9 @@ rescue LoadError end require "rake/extensiontask" +require "ruby_memcheck" +RubyMemcheck.config(binary_name: "better_html_ext") Rake::ExtensionTask.new("better_html_ext") require "rdoc/task" @@ -23,11 +25,15 @@ end require "rake/testtask" -Rake::TestTask.new(:test) do |t| +test_config = lambda do |t| t.libs << "lib" t.libs << "test" t.pattern = "test/**/*_test.rb" t.verbose = false end +Rake::TestTask.new(test: :compile, &test_config) +namespace :test do + RubyMemcheck::TestTask.new(valgrind: :compile, &test_config) +end task default: [:compile, :test] diff --git a/gemfiles/Gemfile-rails-6-0 b/gemfiles/Gemfile-rails-6-0 index f20ce95..7263fd8 100644 --- a/gemfiles/Gemfile-rails-6-0 +++ b/gemfiles/Gemfile-rails-6-0 @@ -9,6 +9,7 @@ gem "rake" gem "rake-compiler" gem "minitest" gem "mocha" +gem "ruby_memcheck" group :deployment, :test do gem "pry-byebug" diff --git a/gemfiles/Gemfile-rails-6-1 b/gemfiles/Gemfile-rails-6-1 index 3397a95..6746897 100644 --- a/gemfiles/Gemfile-rails-6-1 +++ b/gemfiles/Gemfile-rails-6-1 @@ -9,6 +9,7 @@ gem "rake" gem "rake-compiler" gem "minitest" gem "mocha" +gem "ruby_memcheck" group :deployment, :test do gem "pry-byebug"