From 9531ecc72ae0cacf2da72a7f8998b9b4f40a56c5 Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 10 Sep 2014 09:50:47 +0100 Subject: [PATCH] Use bundler for test gem dependencies. Closes Homebrew/homebrew#31986. References Homebrew/homebrew#31981. --- Library/Homebrew/cmd/tests.rb | 9 ++++++++- Library/Homebrew/test/.gitignore | 3 +++ Library/Homebrew/test/Gemfile | 5 +++++ Library/Homebrew/test/Gemfile.lock | 16 ++++++++++++++++ Library/Homebrew/test/Rakefile | 13 ------------- 5 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 Library/Homebrew/test/Gemfile create mode 100644 Library/Homebrew/test/Gemfile.lock diff --git a/Library/Homebrew/cmd/tests.rb b/Library/Homebrew/cmd/tests.rb index 5e74457695..623c14f04f 100644 --- a/Library/Homebrew/cmd/tests.rb +++ b/Library/Homebrew/cmd/tests.rb @@ -2,7 +2,14 @@ module Homebrew def tests (HOMEBREW_LIBRARY/'Homebrew/test').cd do ENV['TESTOPTS'] = '-v' if ARGV.verbose? - system "rake", "deps", "test" + quiet_system("gem", "list", "--installed", "bundler") || \ + system("gem", "install", "--no-ri", "--no-rdoc", + "--user-install", "bundler") + require 'rubygems' + ENV["PATH"] = "#{Gem.user_dir}/bin:#{ENV["PATH"]}" + quiet_system("bundle", "check") || \ + system("bundle", "install", "--path", "vendor/bundle") + system "bundle", "exec", "rake", "test" exit $?.exitstatus end end diff --git a/Library/Homebrew/test/.gitignore b/Library/Homebrew/test/.gitignore index f5df6eb3ab..ae01bda0f8 100644 --- a/Library/Homebrew/test/.gitignore +++ b/Library/Homebrew/test/.gitignore @@ -1,2 +1,5 @@ +/.bundle/ +/bin/ /coverage /prof +/vendor/ diff --git a/Library/Homebrew/test/Gemfile b/Library/Homebrew/test/Gemfile new file mode 100644 index 0000000000..7c224bd619 --- /dev/null +++ b/Library/Homebrew/test/Gemfile @@ -0,0 +1,5 @@ +source "https://rubygems.org" + +gem "mocha", "~> 1.1" +gem "minitest", "~> 5.3" +gem "rake", "~> 10.3" diff --git a/Library/Homebrew/test/Gemfile.lock b/Library/Homebrew/test/Gemfile.lock new file mode 100644 index 0000000000..3461b338ab --- /dev/null +++ b/Library/Homebrew/test/Gemfile.lock @@ -0,0 +1,16 @@ +GEM + remote: https://rubygems.org/ + specs: + metaclass (0.0.4) + minitest (5.4.1) + mocha (1.1.0) + metaclass (~> 0.0.1) + rake (10.3.2) + +PLATFORMS + ruby + +DEPENDENCIES + minitest (~> 5.3) + mocha (~> 1.1) + rake (~> 10.3) diff --git a/Library/Homebrew/test/Rakefile b/Library/Homebrew/test/Rakefile index 1f919aab28..b9dfe3ebb2 100644 --- a/Library/Homebrew/test/Rakefile +++ b/Library/Homebrew/test/Rakefile @@ -3,22 +3,9 @@ require 'rake/testtask' TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__)) TEST_FILES = Dir["#{TEST_DIRECTORY}/test_*.rb"] -GEM_DEPS = { - "mocha" => "~> 1.1", - "minitest" => "~> 5.3", - "rake" => "~> 10.3", -} task :default => :test -task :deps do - GEM_DEPS.each do |dep, version| - `gem list --installed #{dep} -v '#{version}'` - next if $?.success? - sh "gem", "install", "--no-ri", "--no-rdoc", "--user-install", dep, "-v", version - end -end - Rake::TestTask.new(:test) do |t| t.libs << TEST_DIRECTORY t.test_files = TEST_FILES