2016-08-21 07:51:25 +02:00
|
|
|
#!/usr/bin/env ruby
|
2015-07-27 21:50:30 +01:00
|
|
|
|
2017-02-18 14:35:02 -08:00
|
|
|
require "English"
|
2016-09-25 00:51:09 +02:00
|
|
|
|
2015-07-27 21:50:30 +01:00
|
|
|
SimpleCov.start do
|
2016-09-21 22:58:35 +01:00
|
|
|
coverage_dir File.expand_path("../test/coverage", File.realpath(__FILE__))
|
|
|
|
root File.expand_path("..", File.realpath(__FILE__))
|
2015-07-27 21:50:30 +01:00
|
|
|
|
2016-08-06 04:24:18 +02:00
|
|
|
# We manage the result cache ourselves and the default of 10 minutes can be
|
|
|
|
# too low (particularly on Travis CI), causing results from some integration
|
|
|
|
# tests to be dropped. This causes random fluctuations in test coverage.
|
|
|
|
merge_timeout 86400
|
|
|
|
|
2016-06-14 14:54:16 +02:00
|
|
|
if ENV["HOMEBREW_INTEGRATION_TEST"]
|
2016-09-25 00:51:09 +02:00
|
|
|
command_name "#{ENV["HOMEBREW_INTEGRATION_TEST"]} (#{$PROCESS_ID})"
|
2017-03-05 18:56:32 +01:00
|
|
|
|
2016-06-14 14:54:16 +02:00
|
|
|
at_exit do
|
2016-09-25 00:51:09 +02:00
|
|
|
exit_code = $ERROR_INFO.nil? ? 0 : $ERROR_INFO.status
|
2016-06-14 14:54:16 +02:00
|
|
|
$stdout.reopen("/dev/null")
|
2016-09-22 17:40:52 +01:00
|
|
|
|
|
|
|
# Just save result, but don't write formatted output.
|
|
|
|
coverage_result = Coverage.result
|
|
|
|
SimpleCov.add_not_loaded_files(coverage_result)
|
|
|
|
simplecov_result = SimpleCov::Result.new(coverage_result)
|
|
|
|
SimpleCov::ResultMerger.store_result(simplecov_result)
|
|
|
|
|
2016-06-14 14:54:16 +02:00
|
|
|
exit! exit_code
|
|
|
|
end
|
|
|
|
else
|
2016-09-25 00:51:09 +02:00
|
|
|
command_name "#{command_name} (#{$PROCESS_ID})"
|
2017-10-08 00:45:18 +02:00
|
|
|
|
|
|
|
subdirs = Dir.chdir(SimpleCov.root) { Dir.glob("*") }
|
|
|
|
.reject { |d| d.end_with?(".rb") || ["test", "vendor"].include?(d) }
|
|
|
|
.map { |d| "#{d}/**/*.rb" }.join(",")
|
|
|
|
|
2017-10-08 14:14:15 +02:00
|
|
|
# Not using this during integration tests makes the tests 4x times faster
|
|
|
|
# without changing the coverage.
|
2017-10-08 00:45:18 +02:00
|
|
|
track_files "#{SimpleCov.root}/{#{subdirs},*.rb}"
|
2016-01-27 22:03:17 +01:00
|
|
|
end
|
2016-02-06 22:45:37 +01:00
|
|
|
|
2017-12-08 16:44:33 +00:00
|
|
|
add_filter %r{^/build.rb$}
|
|
|
|
add_filter %r{^/config.rb$}
|
|
|
|
add_filter %r{^/constants.rb$}
|
|
|
|
add_filter %r{^/postinstall.rb$}
|
|
|
|
add_filter %r{^/test.rb$}
|
2017-10-08 00:45:18 +02:00
|
|
|
add_filter %r{^/compat/}
|
|
|
|
add_filter %r{^/dev-cmd/tests.rb$}
|
|
|
|
add_filter %r{^/test/}
|
|
|
|
add_filter %r{^/vendor/}
|
|
|
|
|
2017-12-08 16:44:33 +00:00
|
|
|
require "rbconfig"
|
|
|
|
add_filter %r{^/os/mac/} unless RbConfig::CONFIG["host_os"].include?("darwin")
|
|
|
|
unless RbConfig::CONFIG["host_os"].include?("linux")
|
|
|
|
add_filter %r{^/os/linux/}
|
|
|
|
end
|
|
|
|
|
2016-02-06 22:45:37 +01:00
|
|
|
# Add groups and the proper project name to the output.
|
|
|
|
project_name "Homebrew"
|
2017-10-08 00:45:18 +02:00
|
|
|
add_group "Cask", %r{^/cask/}
|
|
|
|
add_group "Commands", [%r{/cmd/}, %r{^/dev-cmd/}]
|
|
|
|
add_group "Extensions", %r{^/extend/}
|
|
|
|
add_group "OS", [%r{^/extend/os/}, %r{^/os/}]
|
|
|
|
add_group "Requirements", %r{^/requirements/}
|
|
|
|
add_group "Scripts", [
|
|
|
|
%r{^/brew.rb$},
|
|
|
|
%r{^/build.rb$},
|
|
|
|
%r{^/postinstall.rb$},
|
|
|
|
%r{^/test.rb$},
|
2016-02-06 22:45:37 +01:00
|
|
|
]
|
2015-07-27 21:50:30 +01:00
|
|
|
end
|