diff options
author | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-25 07:03:36 +0000 |
---|---|---|
committer | drbrain <drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-11-25 07:03:36 +0000 |
commit | 3908d5d3303dbd3f20f106aa71b5c094b67ac577 (patch) | |
tree | c607909aa5a9b12e6c134cf6268b56db02881fc0 | |
parent | f20f84d60a467c1bc8a0ca81fe2788fa4c8079f8 (diff) | |
download | ruby-3908d5d3303dbd3f20f106aa71b5c094b67ac577.tar.gz |
* lib/rake: Update to rake 10.4.0
* test/rake: ditto.
* NEWS: ditto.
* test/lib/minitest/unit.rb: Add compatibility shim for minitest 5.
This only provides minitest 5 unit test naming compatibility.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | lib/rake.rb | 3 | ||||
-rw-r--r-- | lib/rake/application.rb | 10 | ||||
-rw-r--r-- | lib/rake/contrib/.document | 1 | ||||
-rw-r--r-- | lib/rake/ext/time.rb | 5 | ||||
-rw-r--r-- | lib/rake/file_task.rb | 2 | ||||
-rw-r--r-- | lib/rake/late_time.rb | 17 | ||||
-rw-r--r-- | lib/rake/packagetask.rb | 5 | ||||
-rw-r--r-- | lib/rake/task_manager.rb | 2 | ||||
-rw-r--r-- | test/lib/minitest/unit.rb | 2 | ||||
-rw-r--r-- | test/rake/helper.rb | 4 | ||||
-rw-r--r-- | test/rake/support/rakefile_definitions.rb | 2 | ||||
-rw-r--r-- | test/rake/test_rake_application.rb | 22 | ||||
-rw-r--r-- | test/rake/test_rake_definitions.rb | 5 | ||||
-rw-r--r-- | test/rake/test_rake_file_task.rb | 12 | ||||
-rw-r--r-- | test/rake/test_rake_late_time.rb | 18 | ||||
-rw-r--r-- | test/rake/test_rake_thread_pool.rb | 1 |
18 files changed, 90 insertions, 35 deletions
@@ -1,3 +1,12 @@ +Tue Nov 25 15:59:46 2014 Eric Hodel <drbrain@segment7.net> + + * lib/rake: Update to rake 10.4.0 + * test/rake: ditto. + * NEWS: ditto. + + * test/lib/minitest/unit.rb: Add compatibility shim for minitest 5. + This only provides minitest 5 unit test naming compatibility. + Tue Nov 25 15:26:33 2014 Nobuyoshi Nakada <nobu@ruby-lang.org> * tool/vcs.rb (get_revisions): use Time.new instead of Time.mktime @@ -180,6 +180,11 @@ with all sufficient information, see the ChangeLog file. * New methods: * Pathname#birthtime +* Rake + * Updated to Rake 10.4.0. For full release notes see: + + http://docs.seattlerb.org/rake/History_rdoc.html#label-10.4.0 + * RubyGems * Updated to RubyGems 2.4.2. For full release notes see: diff --git a/lib/rake.rb b/lib/rake.rb index 47cce17064..ab04a7f385 100644 --- a/lib/rake.rb +++ b/lib/rake.rb @@ -21,7 +21,7 @@ #++ module Rake - VERSION = '10.3.2' + VERSION = '10.4.0' end require 'rake/version' @@ -63,6 +63,7 @@ require 'rake/file_utils_ext' require 'rake/file_list' require 'rake/default_loader' require 'rake/early_time' +require 'rake/late_time' require 'rake/name_space' require 'rake/task_manager' require 'rake/application' diff --git a/lib/rake/application.rb b/lib/rake/application.rb index 795b4685d4..96f907b077 100644 --- a/lib/rake/application.rb +++ b/lib/rake/application.rb @@ -20,6 +20,9 @@ module Rake include TaskManager include TraceOutput + # The command-line arguments rake is using (defaults to ARGV) + attr_reader :argv # :nodoc: + # The name of the application (typically 'rake') attr_reader :name @@ -45,6 +48,7 @@ module Rake # Initialize a Rake::Application object. def initialize super + @argv = ARGV.dup @name = 'rake' @rakefiles = DEFAULT_RAKEFILES.dup @rakefile = nil @@ -73,6 +77,8 @@ module Rake # call +top_level+ to run your top level tasks. def run standard_exception_handling do + @argv = argv + init load_rakefile top_level @@ -633,7 +639,7 @@ module Rake standard_rake_options.each { |args| opts.on(*args) } opts.environment('RAKEOPT') - end.parse! + end.parse! @argv end # Similar to the regular Ruby +require+ command, but will check @@ -729,7 +735,7 @@ module Rake # Environmental assignments are processed at this time as well. def collect_command_line_tasks # :nodoc: @top_level_tasks = [] - ARGV.each do |arg| + @argv.each do |arg| if arg =~ /^(\w+)=(.*)$/m ENV[$1] = $2 else diff --git a/lib/rake/contrib/.document b/lib/rake/contrib/.document index 8b13789179..e69de29bb2 100644 --- a/lib/rake/contrib/.document +++ b/lib/rake/contrib/.document @@ -1 +0,0 @@ - diff --git a/lib/rake/ext/time.rb b/lib/rake/ext/time.rb index c058649b7e..d3b8cf9dc1 100644 --- a/lib/rake/ext/time.rb +++ b/lib/rake/ext/time.rb @@ -1,12 +1,13 @@ #-- -# Extensions to time to allow comparisons with an early time class. +# Extensions to time to allow comparisons with early and late time classes. require 'rake/early_time' +require 'rake/late_time' class Time # :nodoc: all alias rake_original_time_compare :<=> def <=>(other) - if Rake::EarlyTime === other + if Rake::EarlyTime === other || Rake::LateTime === other - other.<=>(self) else rake_original_time_compare(other) diff --git a/lib/rake/file_task.rb b/lib/rake/file_task.rb index 11823bbe46..4c9b04074f 100644 --- a/lib/rake/file_task.rb +++ b/lib/rake/file_task.rb @@ -21,7 +21,7 @@ module Rake if File.exist?(name) File.mtime(name.to_s) else - Rake::EARLY + Rake::LATE end end diff --git a/lib/rake/late_time.rb b/lib/rake/late_time.rb new file mode 100644 index 0000000000..d959a7821f --- /dev/null +++ b/lib/rake/late_time.rb @@ -0,0 +1,17 @@ +module Rake + # LateTime is a fake timestamp that occurs _after_ any other time value. + class LateTime + include Comparable + include Singleton + + def <=>(other) + 1 + end + + def to_s + '<LATE TIME>' + end + end + + LATE = LateTime.instance +end diff --git a/lib/rake/packagetask.rb b/lib/rake/packagetask.rb index e862952c05..249ee72b11 100644 --- a/lib/rake/packagetask.rb +++ b/lib/rake/packagetask.rb @@ -143,10 +143,7 @@ module Rake end end - directory package_dir - - file package_dir_path => @package_files do - mkdir_p package_dir rescue nil + directory package_dir_path => @package_files do @package_files.each do |fn| f = File.join(package_dir_path, fn) fdir = File.dirname(f) diff --git a/lib/rake/task_manager.rb b/lib/rake/task_manager.rb index 221c68cec4..cbb9f5ee2f 100644 --- a/lib/rake/task_manager.rb +++ b/lib/rake/task_manager.rb @@ -111,7 +111,7 @@ module Rake if args.empty? task_name = key arg_names = [] - deps = value + deps = value || [] else task_name = args.shift arg_names = key diff --git a/test/lib/minitest/unit.rb b/test/lib/minitest/unit.rb index 665e61446e..0a6558dfbb 100644 --- a/test/lib/minitest/unit.rb +++ b/test/lib/minitest/unit.rb @@ -1412,6 +1412,8 @@ module MiniTest include MiniTest::Assertions end # class TestCase end # class Unit + + Test = Unit::TestCase end # module MiniTest Minitest = MiniTest # :nodoc: because ugh... I typo this all the time diff --git a/test/rake/helper.rb b/test/rake/helper.rb index 526eb306fe..ac1205a642 100644 --- a/test/rake/helper.rb +++ b/test/rake/helper.rb @@ -2,7 +2,7 @@ require 'rubygems' $:.unshift File.expand_path('../../lib', __FILE__) begin - gem 'minitest', '~> 4' + gem 'minitest', '~> 5' rescue Gem::LoadError end @@ -21,7 +21,7 @@ rescue NoMethodError, LoadError require 'test/support/rakefile_definitions' end -class Rake::TestCase < MiniTest::Unit::TestCase +class Rake::TestCase < Minitest::Test include FileCreation include Rake::DSL diff --git a/test/rake/support/rakefile_definitions.rb b/test/rake/support/rakefile_definitions.rb index d4311425f1..a637c7e943 100644 --- a/test/rake/support/rakefile_definitions.rb +++ b/test/rake/support/rakefile_definitions.rb @@ -460,7 +460,7 @@ end TEST_TASK open 'a_test.rb', 'w' do |io| io << "require 'minitest/autorun'\n" - io << "class ExitTaskTest < MiniTest::Unit::TestCase\n" + io << "class ExitTaskTest < Minitest::Test\n" io << " def test_exit\n" io << " assert false, 'this should fail'\n" io << " end\n" diff --git a/test/rake/test_rake_application.rb b/test/rake/test_rake_application.rb index f52040471b..19e5005989 100644 --- a/test/rake/test_rake_application.rb +++ b/test/rake/test_rake_application.rb @@ -10,9 +10,9 @@ class TestRakeApplication < Rake::TestCase end def setup_command_line(*options) - ARGV.clear + @app.argv.clear options.each do |option| - ARGV << option + @app.argv << option end end @@ -268,7 +268,7 @@ class TestRakeApplication < Rake::TestCase end def test_load_rakefile_not_found - ARGV.clear + @app.argv.clear Dir.chdir @tempdir ENV['RAKE_SYSTEM'] = 'not_exist' @@ -378,7 +378,7 @@ class TestRakeApplication < Rake::TestCase @app.handle_options - assert !ARGV.include?(valid_option) + assert !@app.argv.include?(valid_option) assert @app.options.trace end @@ -406,14 +406,14 @@ class TestRakeApplication < Rake::TestCase setup_command_line("--trace", "sometask") @app.handle_options - assert ARGV.include?("sometask") + assert @app.argv.include?("sometask") assert @app.options.trace end def test_good_run ran = false - ARGV << '--rakelib=""' + @app.argv << '--rakelib=""' @app.options.silent = true @@ -468,7 +468,7 @@ class TestRakeApplication < Rake::TestCase } assert_match(/see full trace/i, err) ensure - ARGV.clear + @app.argv.clear end def test_bad_run_with_trace @@ -479,7 +479,7 @@ class TestRakeApplication < Rake::TestCase } refute_match(/see full trace/i, err) ensure - ARGV.clear + @app.argv.clear end def test_bad_run_with_backtrace @@ -492,7 +492,7 @@ class TestRakeApplication < Rake::TestCase } refute_match(/see full trace/, err) ensure - ARGV.clear + @app.argv.clear end CustomError = Class.new(RuntimeError) @@ -549,7 +549,7 @@ class TestRakeApplication < Rake::TestCase end assert_match(/Secondary Error/, err) ensure - ARGV.clear + @app.argv.clear end def test_run_with_bad_options @@ -559,7 +559,7 @@ class TestRakeApplication < Rake::TestCase capture_io { @app.run } } ensure - ARGV.clear + @app.argv.clear end def test_standard_exception_handling_invalid_option diff --git a/test/rake/test_rake_definitions.rb b/test/rake/test_rake_definitions.rb index 4b2de9d1d2..ee474cb7c8 100644 --- a/test/rake/test_rake_definitions.rb +++ b/test/rake/test_rake_definitions.rb @@ -59,6 +59,11 @@ class TestRakeDefinitions < Rake::TestCase assert_raises(RuntimeError) { Task[:x].invoke } end + def test_falsey_dependencies + task :x => nil + assert_equal [], Task[:x].prerequisites + end + def test_implicit_file_dependencies runs = [] create_existing_file diff --git a/test/rake/test_rake_file_task.rb b/test/rake/test_rake_file_task.rb index a6a9fa2c51..a249511442 100644 --- a/test/rake/test_rake_file_task.rb +++ b/test/rake/test_rake_file_task.rb @@ -24,6 +24,7 @@ class TestRakeFileTask < Rake::TestCase File.delete(ftask.name) rescue nil assert ftask.needed?, "file should be needed" + assert_equal Rake::LATE, ftask.timestamp open(ftask.name, "w") { |f| f.puts "HI" } @@ -84,19 +85,14 @@ class TestRakeFileTask < Rake::TestCase end def test_existing_file_depends_on_non_existing_file - @ran = false - create_file(OLDFILE) delete_file(NEWFILE) - file NEWFILE do - @ran = true - end - - file OLDFILE => NEWFILE + file NEWFILE do |t| @runs << t.name end + file OLDFILE => NEWFILE do |t| @runs << t.name end Task[OLDFILE].invoke - assert @ran + assert_equal [NEWFILE, OLDFILE], @runs end def test_needed_eh_build_all diff --git a/test/rake/test_rake_late_time.rb b/test/rake/test_rake_late_time.rb new file mode 100644 index 0000000000..4b910a7085 --- /dev/null +++ b/test/rake/test_rake_late_time.rb @@ -0,0 +1,18 @@ +require File.expand_path('../helper', __FILE__) + +class TestRakeLateTime < Rake::TestCase + def test_late_time_comparisons + late = Rake::LATE + assert_equal late, late + assert late >= Time.now + assert late > Time.now + assert late != Time.now + assert Time.now < late + assert Time.now <= late + assert Time.now != late + end + + def test_to_s + assert_equal '<LATE TIME>', Rake::LATE.to_s + end +end diff --git a/test/rake/test_rake_thread_pool.rb b/test/rake/test_rake_thread_pool.rb index 421c38d90d..35a1fe9d1c 100644 --- a/test/rake/test_rake_thread_pool.rb +++ b/test/rake/test_rake_thread_pool.rb @@ -1,6 +1,5 @@ require File.expand_path('../helper', __FILE__) require 'rake/thread_pool' -require 'test/unit/assertions' class TestRakeTestThreadPool < Rake::TestCase include Rake |