From 59f1e1783136a6a5a6deca60dc25bf3925e8cde9 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Wed, 12 Jun 2024 12:18:01 +0900 Subject: [PATCH] Add support for fast smoke tests. --- Rakefile | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Rakefile b/Rakefile index 481f912adc..36e6a37429 100644 --- a/Rakefile +++ b/Rakefile @@ -34,11 +34,24 @@ task default: %w(test test:isolated) end desc "Smoke-test all projects" -task :smoke do - (FRAMEWORKS - %w(activerecord)).each do |project| - system %(cd #{project} && #{$0} test:isolated --trace) +task :smoke, [:frameworks, :isolated] do |task, args| + frameworks = args[:frameworks] ? args[:frameworks].split(" ") : FRAMEWORKS + # The arguments are positional, and users may want to specify only the isolated flag.. so we allow 'all' as a default for the first argument: + if frameworks.include?("all") + frameworks = FRAMEWORKS + end + + isolated = args[:isolated].nil? ? true : args[:isolated] == "true" + test_task = isolated ? "test:isolated" : "test" + + (frameworks - ["activerecord"]).each do |project| + system %(cd #{project} && #{$0} #{test_task} --trace) + end + + if frameworks.include? "activerecord" + test_task = isolated ? "sqlite3:isolated_test" : "sqlite3:test" + system %(cd activerecord && #{$0} #{test_task} --trace) end - system %(cd activerecord && #{$0} sqlite3:isolated_test --trace) end desc "Install gems for all projects."