124 lines
2.6 KiB
Ruby
124 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
$:.unshift File.expand_path("../../lib", __FILE__)
|
|
|
|
require 'coveralls'
|
|
Coveralls.wear!
|
|
|
|
gem "minitest", "~> 5"
|
|
require "minitest/autorun"
|
|
require "rake"
|
|
require "tmpdir"
|
|
|
|
require_relative "support/file_creation"
|
|
require_relative "support/ruby_runner"
|
|
require_relative "support/rakefile_definitions"
|
|
|
|
class Rake::TestCase < Minitest::Test
|
|
include FileCreation
|
|
|
|
include Rake::DSL
|
|
|
|
class TaskManager
|
|
include Rake::TaskManager
|
|
end
|
|
|
|
RUBY = Gem.ruby
|
|
|
|
def setup
|
|
ARGV.clear
|
|
|
|
@verbose = ENV["VERBOSE"]
|
|
|
|
@rake_root = File.expand_path "../../", __FILE__
|
|
@rake_exec = File.join @rake_root, "exe", "rake"
|
|
@rake_lib = File.join @rake_root, "lib"
|
|
@ruby_options = ["-I#{@rake_lib}", "-I."]
|
|
|
|
@orig_pwd = Dir.pwd
|
|
@orig_appdata = ENV["APPDATA"]
|
|
@orig_home = ENV["HOME"]
|
|
@orig_homedrive = ENV["HOMEDRIVE"]
|
|
@orig_homepath = ENV["HOMEPATH"]
|
|
@orig_rake_columns = ENV["RAKE_COLUMNS"]
|
|
@orig_rake_system = ENV["RAKE_SYSTEM"]
|
|
@orig_rakeopt = ENV["RAKEOPT"]
|
|
@orig_userprofile = ENV["USERPROFILE"]
|
|
ENV.delete "RAKE_COLUMNS"
|
|
ENV.delete "RAKE_SYSTEM"
|
|
ENV.delete "RAKEOPT"
|
|
|
|
tmpdir = Dir.chdir Dir.tmpdir do Dir.pwd end
|
|
@tempdir = File.join tmpdir, "test_rake_#{$$}"
|
|
|
|
FileUtils.mkdir_p @tempdir
|
|
|
|
Dir.chdir @tempdir
|
|
|
|
Rake.application = Rake::Application.new
|
|
Rake::TaskManager.record_task_metadata = true
|
|
RakeFileUtils.verbose_flag = false
|
|
end
|
|
|
|
def teardown
|
|
Dir.chdir @orig_pwd
|
|
FileUtils.rm_rf @tempdir
|
|
|
|
if @orig_appdata
|
|
ENV["APPDATA"] = @orig_appdata
|
|
else
|
|
ENV.delete "APPDATA"
|
|
end
|
|
|
|
ENV["HOME"] = @orig_home
|
|
ENV["HOMEDRIVE"] = @orig_homedrive
|
|
ENV["HOMEPATH"] = @orig_homepath
|
|
ENV["RAKE_COLUMNS"] = @orig_rake_columns
|
|
ENV["RAKE_SYSTEM"] = @orig_rake_system
|
|
ENV["RAKEOPT"] = @orig_rakeopt
|
|
ENV["USERPROFILE"] = @orig_userprofile
|
|
end
|
|
|
|
def ignore_deprecations
|
|
Rake.application.options.ignore_deprecate = true
|
|
yield
|
|
ensure
|
|
Rake.application.options.ignore_deprecate = false
|
|
end
|
|
|
|
def rake_system_dir
|
|
@system_dir = "system"
|
|
|
|
FileUtils.mkdir_p @system_dir
|
|
|
|
open File.join(@system_dir, "sys1.rake"), "w" do |io|
|
|
io << <<-SYS
|
|
task "sys1" do
|
|
puts "SYS1"
|
|
end
|
|
SYS
|
|
end
|
|
|
|
ENV["RAKE_SYSTEM"] = @system_dir
|
|
end
|
|
|
|
def rakefile(contents)
|
|
open "Rakefile", "w" do |io|
|
|
io << contents
|
|
end
|
|
end
|
|
|
|
def jruby?
|
|
defined?(JRUBY_VERSION)
|
|
end
|
|
|
|
def jruby17?
|
|
jruby? && (JRUBY_VERSION < "9.0.0.0")
|
|
end
|
|
|
|
def jruby9?
|
|
jruby? && (JRUBY_VERSION >= "9.0.0.0")
|
|
end
|
|
|
|
include RakefileDefinitions
|
|
end
|