aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/cmd/brew-cask-tests.rb
blob: 19a21275e453a9a9d4d9c035f4ae638e28337388 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
require "English"

def run_tests(executable, files, args = [])
  opts = []
  opts << "--serialize-stdout" if ENV["CI"]

  system "bundle", "exec", executable, *opts, "--", *args, "--", *files
end

repo_root = Pathname(__FILE__).realpath.parent.parent
repo_root.cd do
  ENV["HOMEBREW_NO_ANALYTICS_THIS_RUN"] = "1"

  Homebrew.install_gem_setup_path! "bundler"
  unless quiet_system("bundle", "check")
    system "bundle", "install", "--path", "vendor/bundle"
  end

  rspec = ARGV.flag?("--rspec") || !ARGV.flag?("--minitest")
  minitest = ARGV.flag?("--minitest") || !ARGV.flag?("--rspec")

  # TODO: setting the --seed here is an ugly temporary hack, to remain only
  #       until test-suite glitches are fixed.
  ENV["TESTOPTS"] = "--seed=14830" if ENV["TRAVIS"]

  ENV["HOMEBREW_TESTS_COVERAGE"] = "1" if ARGV.flag?("--coverage")

  if rspec
    run_tests "parallel_rspec", Dir["spec/**/*_spec.rb"], %w[
      --format progress
      --format ParallelTests::RSpec::RuntimeLogger
      --out tmp/parallel_runtime_rspec.log
    ]
  end

  if minitest
    run_tests "parallel_test", Dir["test/**/*_test.rb"]
  end

  if ENV["CODECOV_TOKEN"]
    system "bundle", "exec", "rake", "test:coverage:upload"
  end

  Homebrew.failed = !$CHILD_STATUS.success?
end