mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/rake/*: Updated to rake 0.9.5
* test/rake/*: ditto. * NEWS: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
40bae2f67c
commit
d1d4490a57
18 changed files with 181 additions and 41 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Fri Nov 30 04:16:29 2012 Eric Hodel <drbrain@segment7.net>
|
||||||
|
|
||||||
|
* lib/rake/*: Updated to rake 0.9.5
|
||||||
|
* test/rake/*: ditto.
|
||||||
|
* NEWS: ditto.
|
||||||
|
|
||||||
Fri Nov 30 02:53:47 2012 Aaron Patterson <aaron@tenderlovemaking.com>
|
Fri Nov 30 02:53:47 2012 Aaron Patterson <aaron@tenderlovemaking.com>
|
||||||
|
|
||||||
* vm.c: add a return hook when a method raises an exception.
|
* vm.c: add a return hook when a method raises an exception.
|
||||||
|
|
6
NEWS
6
NEWS
|
@ -269,14 +269,14 @@ with all sufficient information, see the ChangeLog file.
|
||||||
* Pathname#find returns an enumerator if no block is given.
|
* Pathname#find returns an enumerator if no block is given.
|
||||||
|
|
||||||
* rake
|
* rake
|
||||||
* rake has been updated to version 0.9.4.
|
* rake has been updated to version 0.9.5.
|
||||||
|
|
||||||
This version is backwards-compatible with previous rake versions and
|
This version is backwards-compatible with previous rake versions and
|
||||||
contains many bug fixes.
|
contains many bug fixes.
|
||||||
|
|
||||||
See
|
See
|
||||||
http://rake.rubyforge.org/doc/release_notes/rake-0_9_4_rdoc.html for a list
|
http://rake.rubyforge.org/doc/release_notes/rake-0_9_5_rdoc.html for a list
|
||||||
of changes in rake 0.9.3 and 0.9.4.
|
of changes in rake 0.9.3, 0.9.4 and 0.9.5.
|
||||||
|
|
||||||
* rdoc
|
* rdoc
|
||||||
* rdoc has been updated to version 4.0
|
* rdoc has been updated to version 4.0
|
||||||
|
|
|
@ -43,6 +43,7 @@ require 'rake/win32'
|
||||||
require 'rake/task_argument_error'
|
require 'rake/task_argument_error'
|
||||||
require 'rake/rule_recursion_overflow_error'
|
require 'rake/rule_recursion_overflow_error'
|
||||||
require 'rake/rake_module'
|
require 'rake/rake_module'
|
||||||
|
require 'rake/trace_output'
|
||||||
require 'rake/pseudo_status'
|
require 'rake/pseudo_status'
|
||||||
require 'rake/task_arguments'
|
require 'rake/task_arguments'
|
||||||
require 'rake/invocation_chain'
|
require 'rake/invocation_chain'
|
||||||
|
|
|
@ -5,6 +5,7 @@ require 'rake/task_manager'
|
||||||
require 'rake/file_list'
|
require 'rake/file_list'
|
||||||
require 'rake/thread_pool'
|
require 'rake/thread_pool'
|
||||||
require 'rake/thread_history_display'
|
require 'rake/thread_history_display'
|
||||||
|
require 'rake/trace_output'
|
||||||
require 'rake/win32'
|
require 'rake/win32'
|
||||||
|
|
||||||
module Rake
|
module Rake
|
||||||
|
@ -17,6 +18,7 @@ module Rake
|
||||||
#
|
#
|
||||||
class Application
|
class Application
|
||||||
include TaskManager
|
include TaskManager
|
||||||
|
include TraceOutput
|
||||||
|
|
||||||
# The name of the application (typically 'rake')
|
# The name of the application (typically 'rake')
|
||||||
attr_reader :name
|
attr_reader :name
|
||||||
|
@ -176,7 +178,7 @@ module Rake
|
||||||
if options.backtrace
|
if options.backtrace
|
||||||
trace ex.backtrace.join("\n")
|
trace ex.backtrace.join("\n")
|
||||||
else
|
else
|
||||||
trace Backtrace.collapse(ex.backtrace)
|
trace Backtrace.collapse(ex.backtrace).join("\n")
|
||||||
end
|
end
|
||||||
trace "Tasks: #{ex.chain}" if has_chain?(ex)
|
trace "Tasks: #{ex.chain}" if has_chain?(ex)
|
||||||
trace "(See full trace by running task with --trace)" unless options.backtrace
|
trace "(See full trace by running task with --trace)" unless options.backtrace
|
||||||
|
@ -314,9 +316,9 @@ module Rake
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def trace(*str)
|
def trace(*strings)
|
||||||
options.trace_output ||= $stderr
|
options.trace_output ||= $stderr
|
||||||
options.trace_output.puts(*str)
|
trace_on(options.trace_output, *strings)
|
||||||
end
|
end
|
||||||
|
|
||||||
def sort_options(options)
|
def sort_options(options)
|
||||||
|
@ -336,7 +338,7 @@ module Rake
|
||||||
options.show_all_tasks = value
|
options.show_all_tasks = value
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
['--backtrace [OUT]', "Enable full backtrace. OUT can be stderr (default) or stdout.",
|
['--backtrace=[OUT]', "Enable full backtrace. OUT can be stderr (default) or stdout.",
|
||||||
lambda { |value|
|
lambda { |value|
|
||||||
options.backtrace = true
|
options.backtrace = true
|
||||||
select_trace_output(options, 'backtrace', value)
|
select_trace_output(options, 'backtrace', value)
|
||||||
|
@ -467,7 +469,7 @@ module Rake
|
||||||
select_tasks_to_show(options, :tasks, value)
|
select_tasks_to_show(options, :tasks, value)
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
['--trace', '-t [OUT]', "Turn on invoke/execute tracing, enable full backtrace. OUT can be stderr (default) or stdout.",
|
['--trace=[OUT]', '-t', "Turn on invoke/execute tracing, enable full backtrace. OUT can be stderr (default) or stdout.",
|
||||||
lambda { |value|
|
lambda { |value|
|
||||||
options.trace = true
|
options.trace = true
|
||||||
options.backtrace = true
|
options.backtrace = true
|
||||||
|
|
|
@ -385,7 +385,7 @@ module Rake
|
||||||
end
|
end
|
||||||
|
|
||||||
# Get a sorted list of files matching the pattern. This method
|
# Get a sorted list of files matching the pattern. This method
|
||||||
# should be prefered to Dir[pattern] and Dir.glob[pattern] because
|
# should be prefered to Dir[pattern] and Dir.glob(pattern) because
|
||||||
# the files returned are guaranteed to be sorted.
|
# the files returned are guaranteed to be sorted.
|
||||||
def glob(pattern, *args)
|
def glob(pattern, *args)
|
||||||
Dir.glob(pattern, *args).sort
|
Dir.glob(pattern, *args).sort
|
||||||
|
|
|
@ -105,7 +105,7 @@ module Rake
|
||||||
|
|
||||||
# Argument description (nil if none).
|
# Argument description (nil if none).
|
||||||
def arg_description # :nodoc:
|
def arg_description # :nodoc:
|
||||||
@arg_names ? "[#{(arg_names || []).join(',')}]" : nil
|
@arg_names ? "[#{arg_names.join(',')}]" : nil
|
||||||
end
|
end
|
||||||
|
|
||||||
# Name of arguments for this task.
|
# Name of arguments for this task.
|
||||||
|
@ -182,18 +182,19 @@ module Rake
|
||||||
if application.options.always_multitask
|
if application.options.always_multitask
|
||||||
invoke_prerequisites_concurrently(task_args, invocation_chain)
|
invoke_prerequisites_concurrently(task_args, invocation_chain)
|
||||||
else
|
else
|
||||||
prerequisite_tasks.each { |prereq|
|
prerequisite_tasks.each { |p|
|
||||||
prereq_args = task_args.new_scope(prereq.arg_names)
|
prereq_args = task_args.new_scope(p.arg_names)
|
||||||
prereq.invoke_with_call_chain(prereq_args, invocation_chain)
|
p.invoke_with_call_chain(prereq_args, invocation_chain)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Invoke all the prerequisites of a task in parallel.
|
# Invoke all the prerequisites of a task in parallel.
|
||||||
def invoke_prerequisites_concurrently(args, invocation_chain) # :nodoc:
|
def invoke_prerequisites_concurrently(task_args, invocation_chain) # :nodoc:
|
||||||
futures = @prerequisites.collect do |p|
|
futures = prerequisite_tasks.collect do |p|
|
||||||
|
prereq_args = task_args.new_scope(p.arg_names)
|
||||||
application.thread_pool.future(p) do |r|
|
application.thread_pool.future(p) do |r|
|
||||||
application[r, @scope].invoke_with_call_chain(args, invocation_chain)
|
r.invoke_with_call_chain(prereq_args, invocation_chain)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
futures.each { |f| f.value }
|
futures.each { |f| f.value }
|
||||||
|
|
19
lib/rake/trace_output.rb
Normal file
19
lib/rake/trace_output.rb
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
module Rake
|
||||||
|
module TraceOutput
|
||||||
|
|
||||||
|
# Write trace output to output stream +out+.
|
||||||
|
#
|
||||||
|
# The write is done as a single IO call (to print) to lessen the
|
||||||
|
# chance that the trace output is interrupted by other tasks also
|
||||||
|
# producing output.
|
||||||
|
def trace_on(out, *strings)
|
||||||
|
sep = $\ || "\n"
|
||||||
|
if strings.empty?
|
||||||
|
output = sep
|
||||||
|
else
|
||||||
|
output = strings.map { |s| s.end_with?(sep) ? s : s + sep }.join
|
||||||
|
end
|
||||||
|
out.print(output)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,10 +1,13 @@
|
||||||
module Rake
|
module Rake
|
||||||
|
VERSION = '0.9.5'
|
||||||
|
|
||||||
module Version # :nodoc: all
|
module Version # :nodoc: all
|
||||||
|
MAJOR, MINOR, BUILD, = Rake::VERSION.split '.'
|
||||||
|
|
||||||
NUMBERS = [
|
NUMBERS = [
|
||||||
MAJOR = 0,
|
MAJOR,
|
||||||
MINOR = 9,
|
MINOR,
|
||||||
BUILD = 4,
|
BUILD,
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
VERSION = "0.9.4"
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -31,6 +31,19 @@ class Rake::TestCase < MiniTest::Unit::TestCase
|
||||||
def setup
|
def setup
|
||||||
ARGV.clear
|
ARGV.clear
|
||||||
|
|
||||||
|
test_dir = File.basename File.dirname File.expand_path __FILE__
|
||||||
|
|
||||||
|
@rake_root = if test_dir == 'test' then
|
||||||
|
# rake repository
|
||||||
|
File.expand_path '../../', __FILE__
|
||||||
|
else
|
||||||
|
# ruby repository
|
||||||
|
File.expand_path '../../../', __FILE__
|
||||||
|
end
|
||||||
|
|
||||||
|
@rake_exec = File.join @rake_root, 'bin', 'rake'
|
||||||
|
@rake_lib = File.join @rake_root, 'lib'
|
||||||
|
|
||||||
@orig_PWD = Dir.pwd
|
@orig_PWD = Dir.pwd
|
||||||
@orig_APPDATA = ENV['APPDATA']
|
@orig_APPDATA = ENV['APPDATA']
|
||||||
@orig_HOME = ENV['HOME']
|
@orig_HOME = ENV['HOME']
|
||||||
|
|
|
@ -309,6 +309,37 @@ class TestRakeApplication < Rake::TestCase
|
||||||
assert @app.options.trace
|
assert @app.options.trace
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_handle_options_trace_default_is_stderr
|
||||||
|
ARGV.clear
|
||||||
|
ARGV << "--trace"
|
||||||
|
|
||||||
|
@app.handle_options
|
||||||
|
|
||||||
|
assert_equal STDERR, @app.options.trace_output
|
||||||
|
assert @app.options.trace
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_handle_options_trace_overrides_to_stdout
|
||||||
|
ARGV.clear
|
||||||
|
ARGV << "--trace=stdout"
|
||||||
|
|
||||||
|
@app.handle_options
|
||||||
|
|
||||||
|
assert_equal STDOUT, @app.options.trace_output
|
||||||
|
assert @app.options.trace
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_handle_options_trace_does_not_eat_following_task_names
|
||||||
|
assert !@app.options.trace
|
||||||
|
|
||||||
|
ARGV.clear
|
||||||
|
ARGV << "--trace" << "sometask"
|
||||||
|
|
||||||
|
@app.handle_options
|
||||||
|
assert ARGV.include?("sometask")
|
||||||
|
assert @app.options.trace
|
||||||
|
end
|
||||||
|
|
||||||
def test_good_run
|
def test_good_run
|
||||||
ran = false
|
ran = false
|
||||||
|
|
||||||
|
|
|
@ -228,7 +228,7 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_trace_with_stdout
|
def test_trace_with_stdout
|
||||||
flags('--trace=stdout', '-tstdout', '-t stdout') do |opts|
|
flags('--trace=stdout', '-tstdout') do |opts|
|
||||||
assert opts.trace, "should enable trace option"
|
assert opts.trace, "should enable trace option"
|
||||||
assert opts.backtrace, "should enabled backtrace option"
|
assert opts.backtrace, "should enabled backtrace option"
|
||||||
assert_equal $stdout, opts.trace_output
|
assert_equal $stdout, opts.trace_output
|
||||||
|
@ -238,7 +238,7 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_trace_with_stderr
|
def test_trace_with_stderr
|
||||||
flags('--trace=stderr', '-tstderr', '-t stderr') do |opts|
|
flags('--trace=stderr', '-tstderr') do |opts|
|
||||||
assert opts.trace, "should enable trace option"
|
assert opts.trace, "should enable trace option"
|
||||||
assert opts.backtrace, "should enabled backtrace option"
|
assert opts.backtrace, "should enabled backtrace option"
|
||||||
assert_equal $stderr, opts.trace_output
|
assert_equal $stderr, opts.trace_output
|
||||||
|
@ -254,13 +254,21 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
assert_match(/un(known|recognized).*\btrace\b.*xyzzy/i, ex.message)
|
assert_match(/un(known|recognized).*\btrace\b.*xyzzy/i, ex.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_trace_with_following_task_name
|
||||||
|
flags(['--trace', 'taskname'], ['-t', 'taskname']) do |opts|
|
||||||
|
assert opts.trace, "should enable trace option"
|
||||||
|
assert opts.backtrace, "should enabled backtrace option"
|
||||||
|
assert_equal $stderr, opts.trace_output
|
||||||
|
assert Rake::FileUtilsExt.verbose_flag
|
||||||
|
assert_equal ['taskname'], @app.top_level_tasks
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_backtrace
|
def test_backtrace
|
||||||
flags('--backtrace') do |opts|
|
flags('--backtrace') do |opts|
|
||||||
assert opts.backtrace, "should enable backtrace option"
|
assert opts.backtrace, "should enable backtrace option"
|
||||||
assert_equal $stderr, opts.trace_output
|
assert_equal $stderr, opts.trace_output
|
||||||
assert ! opts.trace, "should not enable trace option"
|
assert ! opts.trace, "should not enable trace option"
|
||||||
assert ! Rake::FileUtilsExt.verbose_flag
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -269,7 +277,6 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
assert opts.backtrace, "should enable backtrace option"
|
assert opts.backtrace, "should enable backtrace option"
|
||||||
assert_equal $stdout, opts.trace_output
|
assert_equal $stdout, opts.trace_output
|
||||||
assert ! opts.trace, "should not enable trace option"
|
assert ! opts.trace, "should not enable trace option"
|
||||||
assert ! Rake::FileUtilsExt.verbose_flag
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -278,7 +285,6 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
assert opts.backtrace, "should enable backtrace option"
|
assert opts.backtrace, "should enable backtrace option"
|
||||||
assert_equal $stderr, opts.trace_output
|
assert_equal $stderr, opts.trace_output
|
||||||
assert ! opts.trace, "should not enable trace option"
|
assert ! opts.trace, "should not enable trace option"
|
||||||
assert ! Rake::FileUtilsExt.verbose_flag
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -289,6 +295,15 @@ class TestRakeApplicationOptions < Rake::TestCase
|
||||||
assert_match(/un(known|recognized).*\bbacktrace\b.*xyzzy/i, ex.message)
|
assert_match(/un(known|recognized).*\bbacktrace\b.*xyzzy/i, ex.message)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_backtrace_with_following_task_name
|
||||||
|
flags(['--backtrace', 'taskname']) do |opts|
|
||||||
|
assert ! opts.trace, "should enable trace option"
|
||||||
|
assert opts.backtrace, "should enabled backtrace option"
|
||||||
|
assert_equal $stderr, opts.trace_output
|
||||||
|
assert_equal ['taskname'], @app.top_level_tasks
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_trace_rules
|
def test_trace_rules
|
||||||
flags('--rules') do |opts|
|
flags('--rules') do |opts|
|
||||||
assert opts.trace_rules
|
assert opts.trace_rules
|
||||||
|
|
|
@ -4,9 +4,9 @@ require 'open3'
|
||||||
class TestRakeBacktrace < Rake::TestCase
|
class TestRakeBacktrace < Rake::TestCase
|
||||||
# TODO: factor out similar code in test_rake_functional.rb
|
# TODO: factor out similar code in test_rake_functional.rb
|
||||||
def rake(*args)
|
def rake(*args)
|
||||||
lib = File.expand_path('../../../lib', __FILE__)
|
Open3.popen3(RUBY, "-I", @rake_lib, @rake_exec, *args) { |_, _, err, _|
|
||||||
bin_rake = File.expand_path('../../../bin/rake', __FILE__)
|
err.read
|
||||||
Open3.popen3(RUBY, "-I", lib, bin_rake, *args) { |_, _, err, _| err.read }
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def invoke(task_name)
|
def invoke(task_name)
|
||||||
|
|
|
@ -116,7 +116,7 @@ class TestRakeFileTask < Rake::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_phony
|
def load_phony
|
||||||
load File.expand_path('../../../lib/rake/phony.rb', __FILE__)
|
load File.join(@rake_lib, "rake/phony.rb")
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,9 +5,9 @@ require 'open3'
|
||||||
class TestRakeFunctional < Rake::TestCase
|
class TestRakeFunctional < Rake::TestCase
|
||||||
|
|
||||||
def setup
|
def setup
|
||||||
@rake_path = File.expand_path("../../../bin/rake", __FILE__)
|
super
|
||||||
lib_path = File.expand_path("../../../lib", __FILE__)
|
|
||||||
@ruby_options = ["-I#{lib_path}", "-I."]
|
@ruby_options = ["-I#{@rake_lib}", "-I."]
|
||||||
@verbose = ENV['VERBOSE']
|
@verbose = ENV['VERBOSE']
|
||||||
|
|
||||||
if @verbose
|
if @verbose
|
||||||
|
@ -17,8 +17,6 @@ class TestRakeFunctional < Rake::TestCase
|
||||||
puts @__name__
|
puts @__name__
|
||||||
puts '-' * 80
|
puts '-' * 80
|
||||||
end
|
end
|
||||||
|
|
||||||
super
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_rake_default
|
def test_rake_default
|
||||||
|
@ -466,7 +464,7 @@ class TestRakeFunctional < Rake::TestCase
|
||||||
# command line ruby options are included. Output is captured in
|
# command line ruby options are included. Output is captured in
|
||||||
# @out and @err
|
# @out and @err
|
||||||
def rake(*rake_options)
|
def rake(*rake_options)
|
||||||
run_ruby @ruby_options + [@rake_path] + rake_options
|
run_ruby @ruby_options + [@rake_exec] + rake_options
|
||||||
end
|
end
|
||||||
|
|
||||||
# Low level ruby command runner ...
|
# Low level ruby command runner ...
|
||||||
|
|
|
@ -10,7 +10,7 @@ class TestRakeRakeTestLoader < Rake::TestCase
|
||||||
|
|
||||||
ARGV.replace %w[foo.rb test_*.rb -v]
|
ARGV.replace %w[foo.rb test_*.rb -v]
|
||||||
|
|
||||||
load File.expand_path('../../../lib/rake/rake_test_loader.rb', __FILE__)
|
load File.join(@rake_lib, 'rake/rake_test_loader.rb')
|
||||||
|
|
||||||
assert_equal %w[-v], ARGV
|
assert_equal %w[-v], ARGV
|
||||||
ensure
|
ensure
|
||||||
|
|
|
@ -4,9 +4,9 @@ require 'open3'
|
||||||
class TestRakeReduceCompat < Rake::TestCase
|
class TestRakeReduceCompat < Rake::TestCase
|
||||||
# TODO: factor out similar code in test_rake_functional.rb
|
# TODO: factor out similar code in test_rake_functional.rb
|
||||||
def rake(*args)
|
def rake(*args)
|
||||||
lib = File.expand_path('../../../lib', __FILE__)
|
Open3.popen3(RUBY, "-I", @rake_lib, @rake_exec, *args) { |_, out, _, _|
|
||||||
bin_rake = File.expand_path('../../../bin/rake', __FILE__)
|
out.read
|
||||||
Open3.popen3(RUBY, "-I", lib, bin_rake, *args) { |_, out, _, _| out.read }
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
def invoke_normal(task_name)
|
def invoke_normal(task_name)
|
||||||
|
|
|
@ -142,7 +142,7 @@ class TestRakeTaskWithArguments < Rake::TestCase
|
||||||
assert_equal "1.2", value
|
assert_equal "1.2", value
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_args_not_passed_if_no_prereq_names
|
def test_args_not_passed_if_no_prereq_names_on_task
|
||||||
pre = task(:pre) { |t, args|
|
pre = task(:pre) { |t, args|
|
||||||
assert_equal({}, args.to_hash)
|
assert_equal({}, args.to_hash)
|
||||||
assert_equal "bill", args.name
|
assert_equal "bill", args.name
|
||||||
|
@ -151,6 +151,15 @@ class TestRakeTaskWithArguments < Rake::TestCase
|
||||||
t.invoke("bill", "1.2")
|
t.invoke("bill", "1.2")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_args_not_passed_if_no_prereq_names_on_multitask
|
||||||
|
pre = task(:pre) { |t, args|
|
||||||
|
assert_equal({}, args.to_hash)
|
||||||
|
assert_equal "bill", args.name
|
||||||
|
}
|
||||||
|
t = multitask(:t, [:name, :rev] => [:pre])
|
||||||
|
t.invoke("bill", "1.2")
|
||||||
|
end
|
||||||
|
|
||||||
def test_args_not_passed_if_no_arg_names
|
def test_args_not_passed_if_no_arg_names
|
||||||
pre = task(:pre, :rev) { |t, args|
|
pre = task(:pre, :rev) { |t, args|
|
||||||
assert_equal({}, args.to_hash)
|
assert_equal({}, args.to_hash)
|
||||||
|
@ -170,4 +179,3 @@ class TestRakeTaskWithArguments < Rake::TestCase
|
||||||
# HACK no assertions
|
# HACK no assertions
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
43
test/rake/test_trace_output.rb
Normal file
43
test/rake/test_trace_output.rb
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
require File.expand_path('../helper', __FILE__)
|
||||||
|
require 'stringio'
|
||||||
|
|
||||||
|
class TestTraceOutput < Rake::TestCase
|
||||||
|
include Rake::TraceOutput
|
||||||
|
|
||||||
|
class PrintSpy
|
||||||
|
attr_reader :result, :calls
|
||||||
|
def initialize
|
||||||
|
@result = ""
|
||||||
|
@calls = 0
|
||||||
|
end
|
||||||
|
def print(string)
|
||||||
|
@result << string
|
||||||
|
@calls += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_trace_issues_single_io_for_args_with_empty_args
|
||||||
|
spy = PrintSpy.new
|
||||||
|
trace_on(spy)
|
||||||
|
assert_equal "\n", spy.result
|
||||||
|
assert_equal 1, spy.calls
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_trace_issues_single_io_for_args_multiple_strings
|
||||||
|
spy = PrintSpy.new
|
||||||
|
trace_on(spy, "HI\n", "LO")
|
||||||
|
assert_equal "HI\nLO\n", spy.result
|
||||||
|
assert_equal 1, spy.calls
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_trace_issues_single_io_for_args_multiple_strings_and_alternate_sep
|
||||||
|
old_sep = $\
|
||||||
|
$\ = "\r"
|
||||||
|
spy = PrintSpy.new
|
||||||
|
trace_on(spy, "HI\r", "LO")
|
||||||
|
assert_equal "HI\rLO\r", spy.result
|
||||||
|
assert_equal 1, spy.calls
|
||||||
|
ensure
|
||||||
|
$\ = old_sep
|
||||||
|
end
|
||||||
|
end
|
Loading…
Add table
Add a link
Reference in a new issue