diff options
| author | Markus Reiter | 2017-02-28 14:33:39 +0100 | 
|---|---|---|
| committer | Markus Reiter | 2017-02-28 22:48:57 +0100 | 
| commit | 487294f8155cbbcc1af22757d632ca352c24d6b8 (patch) | |
| tree | 3c6012460b8959314e5f17934df29ff0c965f0e8 /Library/Homebrew/dev-cmd/tests.rb | |
| parent | fa34aa2a21473a4e4d360e9561f8ca89f2415ded (diff) | |
| download | brew-487294f8155cbbcc1af22757d632ca352c24d6b8.tar.bz2 | |
Remove Minitest.
Diffstat (limited to 'Library/Homebrew/dev-cmd/tests.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/tests.rb | 74 | 
1 files changed, 34 insertions, 40 deletions
diff --git a/Library/Homebrew/dev-cmd/tests.rb b/Library/Homebrew/dev-cmd/tests.rb index 50d0c5909..7d6ec51c9 100644 --- a/Library/Homebrew/dev-cmd/tests.rb +++ b/Library/Homebrew/dev-cmd/tests.rb @@ -1,4 +1,4 @@ -#:  * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script>`:`<test_method>] [`--seed` <seed>] [`--trace`] [`--online`] [`--official-cmd-taps`]: +#:  * `tests` [`-v`] [`--coverage`] [`--generic`] [`--no-compat`] [`--only=`<test_script>`:`<line_number>] [`--seed` <seed>] [`--online`] [`--official-cmd-taps`]:  #:    Run Homebrew's unit and integration tests.  require "fileutils" @@ -7,27 +7,17 @@ require "tap"  module Homebrew    module_function -  def run_tests(executable, files, args = []) -    opts = [] -    opts << "--serialize-stdout" if ENV["CI"] - -    system "bundle", "exec", executable, *opts, "--", *args, "--", *files - -    return if $?.success? -    Homebrew.failed = true -  end -    def tests      HOMEBREW_LIBRARY_PATH.cd do -      ENV.delete "HOMEBREW_VERBOSE" -      ENV.delete "VERBOSE" +      ENV.delete("HOMEBREW_VERBOSE") +      ENV.delete("VERBOSE")        ENV.delete("HOMEBREW_CASK_OPTS")        ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"        ENV["HOMEBREW_DEVELOPER"] = "1" -      ENV["TESTOPTS"] = "-v" if ARGV.verbose?        ENV["HOMEBREW_NO_COMPAT"] = "1" if ARGV.include? "--no-compat"        ENV["HOMEBREW_TEST_GENERIC_OS"] = "1" if ARGV.include? "--generic"        ENV["HOMEBREW_NO_GITHUB_API"] = "1" unless ARGV.include? "--online" +        if ARGV.include? "--official-cmd-taps"          ENV["HOMEBREW_TEST_OFFICIAL_CMD_TAPS"] = "1"        end @@ -53,29 +43,29 @@ module Homebrew          system "bundle", "install"        end -      # Make it easier to reproduce test runs. -      ENV["SEED"] = ARGV.next if ARGV.include? "--seed" - -      files = Dir.glob("test/**/*_{spec,test}.rb") -                 .reject { |p| p =~ %r{^test/vendor/bundle} } -                 .reject { |p| !OS.mac? && p =~ %r{^test/(os/mac|cask)(/.*|_(test|spec)\.rb)$} } +      parallel = true -      test_args = [] -      test_args << "--trace" if ARGV.include? "--trace" +      files = if ARGV.value("only") +        test_name, line = ARGV.value("only").split(":", 2) -      if ARGV.value("only") -        test_name, test_method = ARGV.value("only").split(":", 2) -        files = Dir.glob("test/{#{test_name},#{test_name}/**/*}_{spec,test}.rb") -        test_args << "--name=test_#{test_method}" if test_method +        if line.nil? +          Dir.glob("test/{#{test_name},#{test_name}/**/*}_spec.rb") +        else +          parallel = false +          ["test/#{test_name}_spec.rb:#{line}"] +        end +      else +        Dir.glob("test/**/*_spec.rb").reject { |p| p =~ %r{^test/vendor/bundle/} }        end -      test_files = files.select { |p| p.end_with?("_test.rb") } -      spec_files = files.select { |p| p.end_with?("_spec.rb") } +      opts = [] -      test_args += ARGV.named.select { |v| v[/^TEST(OPTS)?=/] } -      run_tests "parallel_test", test_files, test_args +      if ENV["CI"] +        opts << "--combine-stderr" +        opts << "--serialize-stdout" +      end -      spec_args = [ +      args = [          "--color",          "-I", HOMEBREW_LIBRARY_PATH/"test",          "--require", "spec_helper", @@ -83,18 +73,22 @@ module Homebrew          "--format", "ParallelTests::RSpec::RuntimeLogger",          "--out", "tmp/parallel_runtime_rspec.log"        ] -      spec_args << "--tag" << "~needs_macos" unless OS.mac? -      run_tests "parallel_rspec", spec_files, spec_args +      args << "--seed" << ARGV.next if ARGV.include? "--seed" -      if (fs_leak_log = HOMEBREW_LIBRARY_PATH/"tmp/fs_leak.log").file? -        fs_leak_log_content = fs_leak_log.read -        unless fs_leak_log_content.empty? -          opoo "File leak is detected" -          puts fs_leak_log_content -          Homebrew.failed = true -        end +      unless OS.mac? +        args << "--tag" << "~needs_macos" +        files = files.reject { |p| p =~ %r{^test/(os/mac|cask)(/.*|_spec\.rb)$} }        end + +      if parallel +        system "bundle", "exec", "parallel_rspec", *opts, "--", *args, "--", *files +      else +        system "bundle", "exec", "rspec", *args, "--", *files +      end + +      return if $?.success? +      Homebrew.failed = true      end    end  end  | 
