summaryrefslogtreecommitdiff
path: root/test/rake
diff options
context:
space:
mode:
Diffstat (limited to 'test/rake')
-rw-r--r--test/rake/capture_stdout.rb24
-rw-r--r--test/rake/check_expansion.rb5
-rw-r--r--test/rake/check_no_expansion.rb5
-rw-r--r--test/rake/contrib/test_ftp.rb55
-rw-r--r--test/rake/data/chains/Rakefile15
-rw-r--r--test/rake/data/default/Rakefile19
-rw-r--r--test/rake/data/dryrun/Rakefile22
-rw-r--r--test/rake/data/file_creation_task/Rakefile33
-rw-r--r--test/rake/data/imports/Rakefile19
-rw-r--r--test/rake/data/imports/deps.mf1
-rw-r--r--test/rake/data/multidesc/Rakefile17
-rw-r--r--test/rake/data/namespace/Rakefile57
-rw-r--r--test/rake/data/rakelib/test1.rake3
-rw-r--r--test/rake/data/rbext/rakefile.rb3
-rw-r--r--test/rake/data/sample.mf14
-rw-r--r--test/rake/data/statusreturn/Rakefile8
-rw-r--r--test/rake/data/unittest/Rakefile1
-rw-r--r--test/rake/data/unittest/subdir/.gitignore2
-rw-r--r--test/rake/filecreation.rb30
-rw-r--r--test/rake/in_environment.rb30
-rw-r--r--test/rake/rake_test_setup.rb9
-rw-r--r--test/rake/reqfile.rb3
-rw-r--r--test/rake/reqfile2.rb3
-rw-r--r--test/rake/reqfile3.rb3
-rwxr-xr-xtest/rake/shellcommand.rb3
-rw-r--r--test/rake/test_application.rb687
-rw-r--r--test/rake/test_clean.rb12
-rw-r--r--test/rake/test_definitions.rb81
-rw-r--r--test/rake/test_earlytime.rb33
-rw-r--r--test/rake/test_extension.rb61
-rw-r--r--test/rake/test_file_creation_task.rb60
-rw-r--r--test/rake/test_file_task.rb139
-rw-r--r--test/rake/test_filelist.rb625
-rw-r--r--test/rake/test_fileutils.rb262
-rw-r--r--test/rake/test_invocation_chain.rb75
-rw-r--r--test/rake/test_makefile_loader.rb24
-rw-r--r--test/rake/test_multitask.rb43
-rw-r--r--test/rake/test_namespace.rb44
-rw-r--r--test/rake/test_package_task.rb105
-rw-r--r--test/rake/test_pathmap.rb207
-rw-r--r--test/rake/test_pseudo_status.rb23
-rw-r--r--test/rake/test_rake.rb39
-rw-r--r--test/rake/test_rdoc_task.rb84
-rw-r--r--test/rake/test_require.rb32
-rw-r--r--test/rake/test_rules.rb345
-rw-r--r--test/rake/test_task_arguments.rb87
-rw-r--r--test/rake/test_task_manager.rb170
-rw-r--r--test/rake/test_tasklib.rb10
-rw-r--r--test/rake/test_tasks.rb369
-rw-r--r--test/rake/test_test_task.rb81
-rw-r--r--test/rake/test_top_level_functions.rb91
-rw-r--r--test/rake/test_win32.rb68
52 files changed, 0 insertions, 4241 deletions
diff --git a/test/rake/capture_stdout.rb b/test/rake/capture_stdout.rb
deleted file mode 100644
index f54ec42f69..0000000000
--- a/test/rake/capture_stdout.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require 'stringio'
-
-# Mix-in for capturing standard output.
-module CaptureStdout
- def capture_stdout
- s = StringIO.new
- oldstdout = $stdout
- $stdout = s
- yield
- s.string
- ensure
- $stdout = oldstdout
- end
-
- def capture_stderr
- s = StringIO.new
- oldstderr = $stderr
- $stderr = s
- yield
- s.string
- ensure
- $stderr = oldstderr
- end
-end
diff --git a/test/rake/check_expansion.rb b/test/rake/check_expansion.rb
deleted file mode 100644
index 659cf71e51..0000000000
--- a/test/rake/check_expansion.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-if ARGV[0] != ARGV[1]
- exit 1
-else
- exit 0
-end
diff --git a/test/rake/check_no_expansion.rb b/test/rake/check_no_expansion.rb
deleted file mode 100644
index 24f586a7f5..0000000000
--- a/test/rake/check_no_expansion.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-if ARGV[0] != ARGV[1]
- exit 0
-else
- exit 1
-end
diff --git a/test/rake/contrib/test_ftp.rb b/test/rake/contrib/test_ftp.rb
deleted file mode 100644
index 0346dd71ca..0000000000
--- a/test/rake/contrib/test_ftp.rb
+++ /dev/null
@@ -1,55 +0,0 @@
-require 'date'
-require 'time'
-require 'test/unit'
-require 'rake/contrib/ftptools'
-
-class Rake::TestFtpFile < Test::Unit::TestCase
- class FakeDate
- def self.today
- Date.new(2003,10,3)
- end
- def self.now
- Time.local(2003,10,3,12,00,00)
- end
- end
-
- def setup
- Rake::FtpFile.class_eval { @date_class = FakeDate; @time_class = FakeDate }
- end
-
- def test_general
- file = Rake::FtpFile.new("here", "-rw-r--r-- 1 a279376 develop 121770 Mar 6 14:50 wiki.pl")
- assert_equal "wiki.pl", file.name
- assert_equal "here/wiki.pl", file.path
- assert_equal "a279376", file.owner
- assert_equal "develop", file.group
- assert_equal 0644, file.mode
- assert_equal 121770, file.size
- assert_equal Time.mktime(2003,3,6,14,50,0,0), file.time
- assert ! file.directory?
- assert ! file.symlink?
- end
-
- def test_far_date
- file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 2001 vss")
- assert_equal Time.mktime(2001,11,26,0,0,0,0), file.time
- end
-
- def test_close_date
- file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 15:35 vss")
- assert_equal Time.mktime(2002,11,26,15,35,0,0), file.time
- end
-
- def test_directory
- file = Rake::FtpFile.new(".", "drwxrwxr-x 9 a279376 develop 4096 Mar 13 14:32 working")
- assert file.directory?
- assert !file.symlink?
- end
-
- def test_symlink
- file = Rake::FtpFile.new(".", "lrwxrwxrwx 1 a279376 develop 64 Mar 26 2002 xtrac -> /home/a279376/working/ics/development/java/com/fmr/fwp/ics/xtrac")
- assert_equal 'xtrac', file.name
- assert file.symlink?
- assert !file.directory?
- end
-end
diff --git a/test/rake/data/chains/Rakefile b/test/rake/data/chains/Rakefile
deleted file mode 100644
index 31bdc2578d..0000000000
--- a/test/rake/data/chains/Rakefile
+++ /dev/null
@@ -1,15 +0,0 @@
-# -*- ruby -*-
-
-task :default => "play.app"
-
-file "play.scpt" => "base" do |t|
- cp t.prerequisites.first, t.name
-end
-
-rule ".app" => ".scpt" do |t|
- cp t.source, t.name
-end
-
-file 'base' do
- touch 'base'
-end
diff --git a/test/rake/data/default/Rakefile b/test/rake/data/default/Rakefile
deleted file mode 100644
index 22ed5e0ca9..0000000000
--- a/test/rake/data/default/Rakefile
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env ruby
-
-if ENV['TESTTOPSCOPE']
- puts "TOPSCOPE"
-end
-
-task :default do
- puts "DEFAULT"
-end
-
-task :other => [:default] do
- puts "OTHER"
-end
-
-task :task_scope do
- if ENV['TESTTASKSCOPE']
- puts "TASKSCOPE"
- end
-end
diff --git a/test/rake/data/dryrun/Rakefile b/test/rake/data/dryrun/Rakefile
deleted file mode 100644
index 0a68a0d606..0000000000
--- a/test/rake/data/dryrun/Rakefile
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-
-task :default => ["temp_main"]
-
-file "temp_main" => [:all_apps] do touch "temp_main" end
-
-task :all_apps => [:one, :two]
-task :one => ["temp_one"]
-task :two => ["temp_two"]
-
-file "temp_one" do |t|
- touch "temp_one"
-end
-file "temp_two" do |t|
- touch "temp_two"
-end
-
-task :clean do
- ["temp_one", "temp_two", "temp_main"].each do |file|
- rm_f file
- end
-end
diff --git a/test/rake/data/file_creation_task/Rakefile b/test/rake/data/file_creation_task/Rakefile
deleted file mode 100644
index 94641b6972..0000000000
--- a/test/rake/data/file_creation_task/Rakefile
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env ruby
-
-N = 2
-
-task :default => :run
-
-BUILD_DIR = 'build'
-task :clean do
- rm_rf 'build'
- rm_rf 'src'
-end
-
-task :run
-
-TARGET_DIR = 'build/copies'
-
-FileList['src/*'].each do |src|
- directory TARGET_DIR
- target = File.join TARGET_DIR, File.basename(src)
- file target => [src, TARGET_DIR] do
- cp src, target
- # sleep 3 if src !~ /foo#{N-1}$/ # I'm commenting out this sleep, it doesn't seem to do anything.
- end
- task :run => target
-end
-
-task :prep => :clean do
- mkdir_p 'src'
- N.times do |n|
- puts "DBG: Touching src/foo#{n}"
- touch "src/foo#{n}"
- end
-end
diff --git a/test/rake/data/imports/Rakefile b/test/rake/data/imports/Rakefile
deleted file mode 100644
index 6a60f612bc..0000000000
--- a/test/rake/data/imports/Rakefile
+++ /dev/null
@@ -1,19 +0,0 @@
-# -*- ruby -*-
-
-require 'rake/loaders/makefile'
-
-task :default
-
-task :other do
- puts "OTHER"
-end
-
-file "dynamic_deps" do |t|
- open(t.name, "w") do |f| f.puts "puts 'DYNAMIC'" end
-end
-
-import "dynamic_deps"
-import "static_deps"
-import "static_deps"
-import "deps.mf"
-puts "FIRST"
diff --git a/test/rake/data/imports/deps.mf b/test/rake/data/imports/deps.mf
deleted file mode 100644
index 04643d0d8e..0000000000
--- a/test/rake/data/imports/deps.mf
+++ /dev/null
@@ -1 +0,0 @@
-default: other
diff --git a/test/rake/data/multidesc/Rakefile b/test/rake/data/multidesc/Rakefile
deleted file mode 100644
index 5342481922..0000000000
--- a/test/rake/data/multidesc/Rakefile
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env ruby
-
-task :b
-
-desc "A"
-task :a
-
-desc "B"
-task :b
-
-desc "A2"
-task :a
-
-task :c
-
-desc "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-task :d
diff --git a/test/rake/data/namespace/Rakefile b/test/rake/data/namespace/Rakefile
deleted file mode 100644
index 6de98edae9..0000000000
--- a/test/rake/data/namespace/Rakefile
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env ruby
-
-desc "copy"
-task :copy do
- puts "COPY"
-end
-
-namespace "nest" do
- desc "nest copy"
- task :copy do
- puts "NEST COPY"
- end
- task :xx => :copy
-end
-
-anon_ns = namespace do
- desc "anonymous copy task"
- task :copy do
- puts "ANON COPY"
- end
-end
-
-desc "Top level task to run the anonymous version of copy"
-task :anon => anon_ns[:copy]
-
-namespace "very" do
- namespace "nested" do
- task "run" => "rake:copy"
- end
-end
-
-namespace "a" do
- desc "Run task in the 'a' namespace"
- task "run" do
- puts "IN A"
- end
-end
-
-namespace "b" do
- desc "Run task in the 'b' namespace"
- task "run" => "a:run" do
- puts "IN B"
- end
-end
-
-namespace "file1" do
- file "xyz.rb" do
- puts "XYZ1"
- end
-end
-
-namespace "file2" do
- file "xyz.rb" do
- puts "XYZ2"
- end
-end
-
diff --git a/test/rake/data/rakelib/test1.rake b/test/rake/data/rakelib/test1.rake
deleted file mode 100644
index bb1c419b40..0000000000
--- a/test/rake/data/rakelib/test1.rake
+++ /dev/null
@@ -1,3 +0,0 @@
-task :default do
- puts "TEST1"
-end
diff --git a/test/rake/data/rbext/rakefile.rb b/test/rake/data/rbext/rakefile.rb
deleted file mode 100644
index 670604d733..0000000000
--- a/test/rake/data/rbext/rakefile.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-task :default do
- puts "OK"
-end
diff --git a/test/rake/data/sample.mf b/test/rake/data/sample.mf
deleted file mode 100644
index 778e9d456f..0000000000
--- a/test/rake/data/sample.mf
+++ /dev/null
@@ -1,14 +0,0 @@
-# Comments
-a: a1 a2 a3 a4
-b: b1 b2 b3 \
- b4 b5 b6\
-# Mid: Comment
-b7
-
- a : a5 a6 a7
-c: c1
-d: d1 d2 \
-
-e f : e1 f1
-
-g\ 0: g1 g\ 2 g\ 3 g4
diff --git a/test/rake/data/statusreturn/Rakefile b/test/rake/data/statusreturn/Rakefile
deleted file mode 100644
index 68023052f8..0000000000
--- a/test/rake/data/statusreturn/Rakefile
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/usr/bin/env ruby
-
-task :exit5 do
- exit(5)
-end
-
-task :normal do
-end
diff --git a/test/rake/data/unittest/Rakefile b/test/rake/data/unittest/Rakefile
deleted file mode 100644
index 9c3b8ac11c..0000000000
--- a/test/rake/data/unittest/Rakefile
+++ /dev/null
@@ -1 +0,0 @@
-# Empty Rakefile for Unit Test
diff --git a/test/rake/data/unittest/subdir/.gitignore b/test/rake/data/unittest/subdir/.gitignore
deleted file mode 100644
index d6b7ef32c8..0000000000
--- a/test/rake/data/unittest/subdir/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
diff --git a/test/rake/filecreation.rb b/test/rake/filecreation.rb
deleted file mode 100644
index e4c6e347da..0000000000
--- a/test/rake/filecreation.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-module FileCreation
- OLDFILE = "testdata/old"
- NEWFILE = "testdata/new"
-
- def create_timed_files(oldfile, *newfiles)
- return if File.exist?(oldfile) && newfiles.all? { |newfile| File.exist?(newfile) }
- old_time = create_file(oldfile)
- newfiles.each do |newfile|
- while create_file(newfile) <= old_time
- sleep(0.1)
- File.delete(newfile) rescue nil
- end
- end
- end
-
- def create_dir(dirname)
- FileUtils.mkdir_p(dirname) unless File.exist?(dirname)
- File.stat(dirname).mtime
- end
-
- def create_file(name)
- create_dir(File.dirname(name))
- FileUtils.touch(name) unless File.exist?(name)
- File.stat(name).mtime
- end
-
- def delete_file(name)
- File.delete(name) rescue nil
- end
-end
diff --git a/test/rake/in_environment.rb b/test/rake/in_environment.rb
deleted file mode 100644
index f0a340fac9..0000000000
--- a/test/rake/in_environment.rb
+++ /dev/null
@@ -1,30 +0,0 @@
-module InEnvironment
- private
-
- # Create an environment for a test. At the completion of the yielded
- # block, the environment is restored to its original conditions.
- def in_environment(settings)
- original_settings = set_env(settings)
- yield
- ensure
- set_env(original_settings) if original_settings
- end
-
- # Set the environment according to the settings hash.
- def set_env(settings) # :nodoc:
- result = {}
- settings.each do |k, v|
- result[k] = ENV[k]
- if k == 'PWD'
- result[k] = Dir.pwd
- Dir.chdir(v)
- elsif v.nil?
- ENV.delete(k)
- else
- ENV[k] = v
- end
- end
- result
- end
-
-end
diff --git a/test/rake/rake_test_setup.rb b/test/rake/rake_test_setup.rb
deleted file mode 100644
index de94d56b40..0000000000
--- a/test/rake/rake_test_setup.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# Common setup for all test files.
-
-# require 'flexmock/test_unit'
-
-module TestMethods
- def assert_exception(ex, msg=nil, &block)
- assert_raise(ex, msg, &block)
- end
-end
diff --git a/test/rake/reqfile.rb b/test/rake/reqfile.rb
deleted file mode 100644
index 5372544b66..0000000000
--- a/test/rake/reqfile.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# For --require testing
-
-TESTING_REQUIRE << 1
diff --git a/test/rake/reqfile2.rb b/test/rake/reqfile2.rb
deleted file mode 100644
index 65993907ac..0000000000
--- a/test/rake/reqfile2.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# For --require testing
-
-TESTING_REQUIRE << 2
diff --git a/test/rake/reqfile3.rb b/test/rake/reqfile3.rb
deleted file mode 100644
index 11fc16b2ab..0000000000
--- a/test/rake/reqfile3.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-# For --require testing
-
-TESTING_REQUIRE << 3
diff --git a/test/rake/shellcommand.rb b/test/rake/shellcommand.rb
deleted file mode 100755
index 58db8a0871..0000000000
--- a/test/rake/shellcommand.rb
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env ruby
-
-exit((ARGV[0] || "0").to_i)
diff --git a/test/rake/test_application.rb b/test/rake/test_application.rb
deleted file mode 100644
index 77f9859b24..0000000000
--- a/test/rake/test_application.rb
+++ /dev/null
@@ -1,687 +0,0 @@
-require 'test/unit'
-require 'rake'
-require_relative 'capture_stdout'
-require_relative 'in_environment'
-
-TESTING_REQUIRE = [ ]
-
-######################################################################
-class Rake::TestApplication < Test::Unit::TestCase
- include CaptureStdout
- include InEnvironment
- BASEDIR = File.dirname(__FILE__)
-
- def defmock(*names, &block)
- class << (@mock ||= Object.new); self; end.class_eval do
- names.each do |name|
- define_method(name, block)
- end
- end
- @mock
- end
-
- def setup
- @app = Rake::Application.new
- @app.options.rakelib = []
- end
-
- def test_constant_warning
- err = capture_stderr do @app.instance_eval { const_warning("Task") } end
- assert_match(/warning/i, err)
- assert_match(/deprecated/i, err)
- assert_match(/Task/i, err)
- end
-
- def test_display_tasks
- @app.options.show_task_pattern = //
- @app.last_description = "COMMENT"
- @app.define_task(Rake::Task, "t")
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- assert_match(/^rake t/, out)
- assert_match(/# COMMENT/, out)
- end
-
- def test_display_tasks_with_long_comments
- in_environment('RAKE_COLUMNS' => '80') do
- @app.options.show_task_pattern = //
- @app.last_description = "1234567890" * 8
- @app.define_task(Rake::Task, "t")
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- assert_match(/^rake t/, out)
- assert_match(/# 12345678901234567890123456789012345678901234567890123456789012345\.\.\./, out)
- end
- end
-
- def test_display_tasks_with_task_name_wider_than_tty_display
- in_environment('RAKE_COLUMNS' => '80') do
- @app.options.show_task_pattern = //
- description = "something short"
- task_name = "task name" * 80
- @app.last_description = "something short"
- @app.define_task(Rake::Task, task_name )
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- # Ensure the entire task name is output and we end up showing no description
- assert_match(/rake #{task_name} # .../, out)
- end
- end
-
- def test_display_tasks_with_very_long_task_name_to_a_non_tty_shows_name_and_comment
- @app.options.show_task_pattern = //
- @app.tty_output = false
- description = "something short"
- task_name = "task name" * 80
- @app.last_description = "something short"
- @app.define_task(Rake::Task, task_name )
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- # Ensure the entire task name is output and we end up showing no description
- assert_match(/rake #{task_name} # #{description}/, out)
- end
-
- def test_display_tasks_with_long_comments_to_a_non_tty_shows_entire_comment
- @app.options.show_task_pattern = //
- @app.tty_output = false
- @app.last_description = "1234567890" * 8
- @app.define_task(Rake::Task, "t")
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- assert_match(/^rake t/, out)
- assert_match(/# #{@app.last_description}/, out)
- end
-
- def test_display_tasks_with_long_comments_to_a_non_tty_with_columns_set_truncates_comments
- in_environment("RAKE_COLUMNS" => '80') do
- @app.options.show_task_pattern = //
- @app.tty_output = false
- @app.last_description = "1234567890" * 8
- @app.define_task(Rake::Task, "t")
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- assert_match(/^rake t/, out)
- assert_match(/# 12345678901234567890123456789012345678901234567890123456789012345\.\.\./, out)
- end
- end
-
- def test_display_tasks_with_full_descriptions
- @app.options.show_task_pattern = //
- @app.options.full_description = true
- @app.last_description = "COMMENT"
- @app.define_task(Rake::Task, "t")
- out = capture_stdout do @app.instance_eval { display_tasks_and_comments } end
- assert_match(/^rake t$/, out)
- assert_match(/^ {4}COMMENT$/, out)
- end
-
- def test_finding_rakefile
- in_environment("PWD" => File.join(BASEDIR, "data/unittest")) do
- assert_match(/Rakefile/i, @app.instance_eval { have_rakefile })
- end
- end
-
- def test_not_finding_rakefile
- @app.instance_eval { @rakefiles = ['NEVER_FOUND'] }
- assert( ! @app.instance_eval do have_rakefile end )
- assert_nil @app.rakefile
- end
-
- def test_load_rakefile
- in_environment("PWD" => File.join(BASEDIR, "data/unittest")) do
- @app.instance_eval do
- handle_options
- options.silent = true
- load_rakefile
- end
- assert_equal "rakefile", @app.rakefile.downcase
- assert_match(%r(unittest$), Dir.pwd)
- end
- end
-
- def test_load_rakefile_from_subdir
- in_environment("PWD" => File.join(BASEDIR, "data/unittest/subdir")) do
- @app.instance_eval do
- handle_options
- options.silent = true
- load_rakefile
- end
- assert_equal "rakefile", @app.rakefile.downcase
- assert_match(%r(unittest$), Dir.pwd)
- end
- end
-
- def test_load_rakefile_not_found
- in_environment("PWD" => "/", "RAKE_SYSTEM" => 'not_exist') do
- @app.instance_eval do
- handle_options
- options.silent = true
- end
- ex = assert_raise(RuntimeError) do
- @app.instance_eval do raw_load_rakefile end
- end
- assert_match(/no rakefile found/i, ex.message)
- end
- end
-
- def test_load_from_system_rakefile
- system_dir = File.expand_path('../data/default', __FILE__)
- in_environment('RAKE_SYSTEM' => system_dir) do
- @app.options.rakelib = []
- @app.instance_eval do
- handle_options
- options.silent = true
- options.load_system = true
- options.rakelib = []
- load_rakefile
- end
- assert_equal system_dir, @app.system_dir
- assert_nil @app.rakefile
- end
- end
-
- def test_windows
- assert ! (@app.windows? && @app.unix?)
- end
-
- def test_loading_imports
- args = []
- mock = defmock(:load) {|*a| args << a}
- @app.instance_eval do
- add_loader("dummy", mock)
- add_import("x.dummy")
- load_imports
- end
- assert_equal([["x.dummy"]], args)
- end
-
- def test_building_imported_files_on_demand
- args = []
- callback = false
- mock = defmock(:load) {|*a| args << a}
- @app.instance_eval do
- intern(Rake::Task, "x.dummy").enhance do callback = true end
- add_loader("dummy", mock)
- add_import("x.dummy")
- load_imports
- end
- assert_equal([["x.dummy"]], args)
- assert(callback)
- end
-
- def test_handle_options_should_strip_options_from_ARGV
- assert !@app.options.trace
-
- valid_option = '--trace'
- ARGV.clear
- ARGV << valid_option
-
- @app.handle_options
-
- assert !ARGV.include?(valid_option)
- assert @app.options.trace
- end
-
- def test_good_run
- ran = false
- ARGV.clear
- ARGV << '--rakelib=""'
- @app.options.silent = true
- @app.instance_eval do
- intern(Rake::Task, "default").enhance { ran = true }
- end
- in_environment("PWD" => File.join(BASEDIR, "data/default")) do
- @app.run
- end
- assert ran
- end
-
- def test_display_task_run
- ran = false
- ARGV.clear
- ARGV << '-f' << '-s' << '--tasks' << '--rakelib=""'
- @app.last_description = "COMMENT"
- @app.define_task(Rake::Task, "default")
- out = capture_stdout { @app.run }
- assert @app.options.show_tasks
- assert ! ran
- assert_match(/rake default/, out)
- assert_match(/# COMMENT/, out)
- end
-
- def test_display_prereqs
- ran = false
- ARGV.clear
- ARGV << '-f' << '-s' << '--prereqs' << '--rakelib=""'
- @app.last_description = "COMMENT"
- t = @app.define_task(Rake::Task, "default")
- t.enhance([:a, :b])
- @app.define_task(Rake::Task, "a")
- @app.define_task(Rake::Task, "b")
- out = capture_stdout { @app.run }
- assert @app.options.show_prereqs
- assert ! ran
- assert_match(/rake a$/, out)
- assert_match(/rake b$/, out)
- assert_match(/rake default\n( *(a|b)\n){2}/m, out)
- end
-
- def test_bad_run
- @app.intern(Rake::Task, "default").enhance { fail }
- ARGV.clear
- ARGV << '-f' << '-s' << '--rakelib=""'
- assert_raise(SystemExit) {
- err = capture_stderr { @app.run }
- assert_match(/see full trace/, err)
- }
- ensure
- ARGV.clear
- end
-
- def test_bad_run_with_trace
- @app.intern(Rake::Task, "default").enhance { fail }
- ARGV.clear
- ARGV << '-f' << '-s' << '-t'
- assert_raise(SystemExit) {
- err = capture_stderr { capture_stdout { @app.run } }
- assert_no_match(/see full trace/, err)
- }
- ensure
- ARGV.clear
- end
-
- def test_run_with_bad_options
- @app.intern(Rake::Task, "default").enhance { fail }
- ARGV.clear
- ARGV << '-f' << '-s' << '--xyzzy'
- assert_raise(SystemExit) {
- err = capture_stderr { capture_stdout { @app.run } }
- }
- ensure
- ARGV.clear
- end
-end
-
-
-######################################################################
-class Rake::TestApplicationOptions < Test::Unit::TestCase
- include CaptureStdout
-
- def setup
- clear_argv
- RakeFileUtils.verbose_flag = false
- RakeFileUtils.nowrite_flag = false
- TESTING_REQUIRE.clear
- end
-
- def teardown
- clear_argv
- RakeFileUtils.verbose_flag = false
- RakeFileUtils.nowrite_flag = false
- end
-
- def clear_argv
- while ! ARGV.empty?
- ARGV.pop
- end
- end
-
- def test_default_options
- opts = command_line
- assert_nil opts.classic_namespace
- assert_nil opts.dryrun
- assert_nil opts.full_description
- assert_nil opts.ignore_system
- assert_nil opts.load_system
- assert_nil opts.nosearch
- assert_equal ['rakelib'], opts.rakelib
- assert_nil opts.show_prereqs
- assert_nil opts.show_task_pattern
- assert_nil opts.show_tasks
- assert_nil opts.silent
- assert_nil opts.trace
- assert_equal ['rakelib'], opts.rakelib
- assert ! RakeFileUtils.verbose_flag
- assert ! RakeFileUtils.nowrite_flag
- end
-
- def test_dry_run
- flags('--dry-run', '-n') do |opts|
- assert opts.dryrun
- assert opts.trace
- assert RakeFileUtils.verbose_flag
- assert RakeFileUtils.nowrite_flag
- end
- end
-
- def test_describe
- flags('--describe') do |opts|
- assert opts.full_description
- assert opts.show_tasks
- assert_equal(//.to_s, opts.show_task_pattern.to_s)
- end
- end
-
- def test_describe_with_pattern
- flags('--describe=X') do |opts|
- assert opts.full_description
- assert opts.show_tasks
- assert_equal(/X/.to_s, opts.show_task_pattern.to_s)
- end
- end
-
- def test_execute
- $xyzzy = 0
- flags('--execute=$xyzzy=1', '-e $xyzzy=1') do |opts|
- assert_equal 1, $xyzzy
- assert_equal :exit, @exit
- $xyzzy = 0
- end
- end
-
- def test_execute_and_continue
- $xyzzy = 0
- flags('--execute-continue=$xyzzy=1', '-E $xyzzy=1') do |opts|
- assert_equal 1, $xyzzy
- assert_not_equal :exit, @exit
- $xyzzy = 0
- end
- end
-
- def test_execute_and_print
- $xyzzy = 0
- flags('--execute-print=$xyzzy="pugh"', '-p $xyzzy="pugh"') do |opts|
- assert_equal 'pugh', $xyzzy
- assert_equal :exit, @exit
- assert_match(/^pugh$/, @out)
- $xyzzy = 0
- end
- end
-
- def test_help
- flags('--help', '-H', '-h') do |opts|
- assert_match(/\Arake/, @out)
- assert_match(/\boptions\b/, @out)
- assert_match(/\btargets\b/, @out)
- assert_equal :exit, @exit
- assert_equal :exit, @exit
- end
- end
-
- def test_libdir
- flags(['--libdir', 'xx'], ['-I', 'xx'], ['-Ixx']) do |opts|
- $:.include?('xx')
- end
- ensure
- $:.delete('xx')
- end
-
- def test_rakefile
- flags(['--rakefile', 'RF'], ['--rakefile=RF'], ['-f', 'RF'], ['-fRF']) do |opts|
- assert_equal ['RF'], @app.instance_eval { @rakefiles }
- end
- end
-
- def test_rakelib
- flags(['--rakelibdir', 'A:B:C'], ['--rakelibdir=A:B:C'], ['-R', 'A:B:C'], ['-RA:B:C']) do |opts|
- assert_equal ['A', 'B', 'C'], opts.rakelib
- end
- end
-
- def test_require
- flags(['--require', File.expand_path('../reqfile', __FILE__)],
- "-r#{File.expand_path('../reqfile2', __FILE__)}",
- "-r#{File.expand_path('../reqfile3', __FILE__)}") do |opts|
- end
- assert TESTING_REQUIRE.include?(1)
- assert TESTING_REQUIRE.include?(2)
- assert TESTING_REQUIRE.include?(3)
- assert_equal 3, TESTING_REQUIRE.size
- end
-
- def test_missing_require
- ex = assert_raise(LoadError) do
- flags(['--require', File.expand_path('../missing', __FILE__)]) do |opts|
- end
- end
- assert_match(/no such file/, ex.message)
- assert_match(/#{File.basename(File.dirname(__FILE__))}\/missing/, ex.message)
- end
-
- def test_prereqs
- flags('--prereqs', '-P') do |opts|
- assert opts.show_prereqs
- end
- end
-
- def test_quiet
- flags('--quiet', '-q') do |opts|
- assert ! RakeFileUtils.verbose_flag
- assert ! opts.silent
- end
- end
-
- def test_no_search
- flags('--nosearch', '--no-search', '-N') do |opts|
- assert opts.nosearch
- end
- end
-
- def test_silent
- flags('--silent', '-s') do |opts|
- assert ! RakeFileUtils.verbose_flag
- assert opts.silent
- end
- end
-
- def test_system
- flags('--system', '-g') do |opts|
- assert opts.load_system
- end
- end
-
- def test_no_system
- flags('--no-system', '-G') do |opts|
- assert opts.ignore_system
- end
- end
-
- def test_trace
- flags('--trace', '-t') do |opts|
- assert opts.trace
- assert RakeFileUtils.verbose_flag
- assert ! RakeFileUtils.nowrite_flag
- end
- end
-
- def test_trace_rules
- flags('--rules') do |opts|
- assert opts.trace_rules
- end
- end
-
- def test_tasks
- flags('--tasks', '-T') do |opts|
- assert opts.show_tasks
- assert_equal(//.to_s, opts.show_task_pattern.to_s)
- end
- flags(['--tasks', 'xyz'], ['-Txyz']) do |opts|
- assert opts.show_tasks
- assert_equal(/xyz/, opts.show_task_pattern)
- end
- end
-
- def test_verbose
- flags('--verbose', '-V') do |opts|
- assert RakeFileUtils.verbose_flag
- assert ! opts.silent
- end
- end
-
- def test_version
- flags('--version', '-V') do |opts|
- assert_match(/\bversion\b/, @out)
- assert_match(/\b#{RAKEVERSION}\b/, @out)
- assert_equal :exit, @exit
- end
- end
-
- def test_classic_namespace
- flags(['--classic-namespace'], ['-C', '-T', '-P', '-n', '-s', '-t']) do |opts|
- assert opts.classic_namespace
- assert_equal opts.show_tasks, $show_tasks
- assert_equal opts.show_prereqs, $show_prereqs
- assert_equal opts.trace, $trace
- assert_equal opts.dryrun, $dryrun
- assert_equal opts.silent, $silent
- end
- end
-
- def test_bad_option
- capture_stderr do
- ex = assert_raise(OptionParser::InvalidOption) do
- flags('--bad-option')
- end
- if ex.message =~ /^While/ # Ruby 1.9 error message
- assert_match(/while parsing/i, ex.message)
- else # Ruby 1.8 error message
- assert_match(/(invalid|unrecognized) option/i, ex.message)
- assert_match(/--bad-option/, ex.message)
- end
- end
- end
-
- def test_task_collection
- command_line("a", "b")
- assert_equal ["a", "b"], @tasks.sort
- end
-
- def test_default_task_collection
- command_line()
- assert_equal ["default"], @tasks
- end
-
- def test_environment_definition
- ENV.delete('TESTKEY')
- command_line("a", "TESTKEY=12")
- assert_equal ["a"], @tasks.sort
- assert '12', ENV['TESTKEY']
- end
-
- private
-
- def flags(*sets)
- sets.each do |set|
- ARGV.clear
- @out = capture_stdout {
- @exit = catch(:system_exit) { opts = command_line(*set) }
- }
- yield(@app.options) if block_given?
- end
- end
-
- def command_line(*options)
- options.each do |opt| ARGV << opt end
- @app = Rake::Application.new
- def @app.exit(*args)
- throw :system_exit, :exit
- end
- @app.instance_eval do
- handle_options
- collect_tasks
- end
- @tasks = @app.top_level_tasks
- @app.options
- end
-end
-
-class Rake::TestTaskArgumentParsing < Test::Unit::TestCase
- def setup
- @app = Rake::Application.new
- end
-
- def test_name_only
- name, args = @app.parse_task_string("name")
- assert_equal "name", name
- assert_equal [], args
- end
-
- def test_empty_args
- name, args = @app.parse_task_string("name[]")
- assert_equal "name", name
- assert_equal [], args
- end
-
- def test_one_argument
- name, args = @app.parse_task_string("name[one]")
- assert_equal "name", name
- assert_equal ["one"], args
- end
-
- def test_two_arguments
- name, args = @app.parse_task_string("name[one,two]")
- assert_equal "name", name
- assert_equal ["one", "two"], args
- end
-
- def test_can_handle_spaces_between_args
- name, args = @app.parse_task_string("name[one, two,\tthree , \tfour]")
- assert_equal "name", name
- assert_equal ["one", "two", "three", "four"], args
- end
-
- def test_keeps_embedded_spaces
- name, args = @app.parse_task_string("name[a one ana, two]")
- assert_equal "name", name
- assert_equal ["a one ana", "two"], args
- end
-
-end
-
-class Rake::TestTaskArgumentParsing < Test::Unit::TestCase
- include InEnvironment
-
- def test_terminal_width_using_env
- app = Rake::Application.new
- in_environment('RAKE_COLUMNS' => '1234') do
- assert_equal 1234, app.terminal_width
- end
- end
-
- def test_terminal_width_using_stty
- app = Rake::Application.new
- def app.unix?() true end
- def app.dynamic_width_stty() 1235 end
- def app.dynamic_width_tput() 0 end
- in_environment('RAKE_COLUMNS' => nil) do
- assert_equal 1235, app.terminal_width
- end
- end
-
- def test_terminal_width_using_tput
- app = Rake::Application.new
- def app.unix?() true end
- def app.dynamic_width_stty() 0 end
- def app.dynamic_width_tput() 1236 end
- in_environment('RAKE_COLUMNS' => nil) do
- assert_equal 1236, app.terminal_width
- end
- end
-
- def test_terminal_width_using_hardcoded_80
- app = Rake::Application.new
- def app.unix?() false end
- in_environment('RAKE_COLUMNS' => nil) do
- assert_equal 80, app.terminal_width
- end
- end
-
- def test_terminal_width_with_failure
- app = Rake::Application.new
- called = false
- class << app; self; end.class_eval do
- define_method(:unix?) {|*a|
- called = a
- raise RuntimeError
- }
- end
- in_environment('RAKE_COLUMNS' => nil) do
- assert_equal 80, app.terminal_width
- end
- assert_equal([], called)
- end
-end
diff --git a/test/rake/test_clean.rb b/test/rake/test_clean.rb
deleted file mode 100644
index 0e8b81c2c7..0000000000
--- a/test/rake/test_clean.rb
+++ /dev/null
@@ -1,12 +0,0 @@
-require 'test/unit'
-require 'rake/clean'
-
-class Rake::TestClean < Test::Unit::TestCase
- include Rake
- def test_clean
- assert Task['clean'], "Should define clean"
- assert Task['clobber'], "Should define clobber"
- assert Task['clobber'].prerequisites.include?("clean"),
- "Clobber should require clean"
- end
-end
diff --git a/test/rake/test_definitions.rb b/test/rake/test_definitions.rb
deleted file mode 100644
index 164958ecd5..0000000000
--- a/test/rake/test_definitions.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-require 'test/unit'
-require 'fileutils'
-require 'rake'
-require_relative 'filecreation'
-
-######################################################################
-class Rake::TestDefinitions < Test::Unit::TestCase
- include Rake
-
- EXISTINGFILE = "testdata/existing"
-
- def setup
- Task.clear
- end
-
- def test_task
- done = false
- task :one => [:two] do done = true end
- task :two
- task :three => [:one, :two]
- check_tasks(:one, :two, :three)
- assert done, "Should be done"
- end
-
- def test_file_task
- done = false
- file "testdata/one" => "testdata/two" do done = true end
- file "testdata/two"
- file "testdata/three" => ["testdata/one", "testdata/two"]
- check_tasks("testdata/one", "testdata/two", "testdata/three")
- assert done, "Should be done"
- end
-
- def check_tasks(n1, n2, n3)
- t = Task[n1]
- assert Task === t, "Should be a Task"
- assert_equal n1.to_s, t.name
- assert_equal [n2.to_s], t.prerequisites.collect{|n| n.to_s}
- t.invoke
- t2 = Task[n2]
- assert_equal FileList[], t2.prerequisites
- t3 = Task[n3]
- assert_equal [n1.to_s, n2.to_s], t3.prerequisites.collect{|n|n.to_s}
- end
-
- def test_incremental_definitions
- runs = []
- task :t1 => [:t2] do runs << "A"; 4321 end
- task :t1 => [:t3] do runs << "B"; 1234 end
- task :t1 => [:t3]
- task :t2
- task :t3
- Task[:t1].invoke
- assert_equal ["A", "B"], runs
- assert_equal ["t2", "t3"], Task[:t1].prerequisites
- end
-
- def test_missing_dependencies
- task :x => ["testdata/missing"]
- assert_raise(RuntimeError) { Task[:x].invoke }
- end
-
- def test_implicit_file_dependencies
- runs = []
- create_existing_file
- task :y => [EXISTINGFILE] do |t| runs << t.name end
- Task[:y].invoke
- assert_equal runs, ['y']
- end
-
- private # ----------------------------------------------------------
-
- def create_existing_file
- Dir.mkdir File.dirname(EXISTINGFILE) unless
- File.exist?(File.dirname(EXISTINGFILE))
- open(EXISTINGFILE, "w") do |f| f.puts "HI" end unless
- File.exist?(EXISTINGFILE)
- end
-
-end
-
diff --git a/test/rake/test_earlytime.rb b/test/rake/test_earlytime.rb
deleted file mode 100644
index a228146679..0000000000
--- a/test/rake/test_earlytime.rb
+++ /dev/null
@@ -1,33 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-class Rake::TestEarlyTime < Test::Unit::TestCase
- def test_create
- early = Rake::EarlyTime.instance
- time = Time.mktime(1970, 1, 1, 0, 0, 0)
- assert early <= Time.now
- assert early < Time.now
- assert early != Time.now
- assert Time.now > early
- assert Time.now >= early
- assert Time.now != early
- end
-
- def test_equality
- early = Rake::EarlyTime.instance
- assert_equal early, early, "two early times should be equal"
- end
-
- def test_original_time_compare_is_not_messed_up
- t1 = Time.mktime(1970, 1, 1, 0, 0, 0)
- t2 = Time.now
- assert t1 < t2
- assert t2 > t1
- assert t1 == t1
- assert t2 == t2
- end
-
- def test_to_s
- assert_equal "<EARLY TIME>", Rake::EARLY.to_s
- end
-end
diff --git a/test/rake/test_extension.rb b/test/rake/test_extension.rb
deleted file mode 100644
index 94348aafa6..0000000000
--- a/test/rake/test_extension.rb
+++ /dev/null
@@ -1,61 +0,0 @@
-require 'test/unit'
-require 'rake'
-require 'stringio'
-
-######################################################################
-class Rake::TestExtension < Test::Unit::TestCase
-
- module Redirect
- def error_redirect
- old_err = $stderr
- result = StringIO.new
- $stderr = result
- yield
- result
- ensure
- $stderr = old_err
- end
- end
-
- class Sample
- extend Redirect
-
- def duplicate_method
- :original
- end
-
- OK_ERRS = error_redirect do
- rake_extension("a") do
- def ok_method
- end
- end
- end
-
-
- DUP_ERRS = error_redirect do
- rake_extension("duplicate_method") do
- def duplicate_method
- :override
- end
- end
- end
- end
-
- def test_methods_actually_exist
- sample = Sample.new
- sample.ok_method
- sample.duplicate_method
- end
-
- def test_no_warning_when_defining_ok_method
- assert_equal "", Sample::OK_ERRS.string
- end
-
- def test_extension_complains_when_a_method_that_is_present
- assert_match(/warning:/i, Sample::DUP_ERRS.string)
- assert_match(/already exists/i, Sample::DUP_ERRS.string)
- assert_match(/duplicate_method/i, Sample::DUP_ERRS.string)
- assert_equal :original, Sample.new.duplicate_method
- end
-
-end
diff --git a/test/rake/test_file_creation_task.rb b/test/rake/test_file_creation_task.rb
deleted file mode 100644
index 1f2af90399..0000000000
--- a/test/rake/test_file_creation_task.rb
+++ /dev/null
@@ -1,60 +0,0 @@
-require 'test/unit'
-require 'fileutils'
-require 'rake'
-require_relative 'filecreation'
-
-######################################################################
-class Rake::TestFileCreationTask < Test::Unit::TestCase
- include Rake
- include FileCreation
-
- DUMMY_DIR = 'testdata/dummy_dir'
-
- def setup
- Task.clear
- end
-
- def teardown
- FileUtils.rm_rf DUMMY_DIR
- end
-
- def test_file_needed
- create_dir DUMMY_DIR
- fc_task = Task[DUMMY_DIR]
- assert_equal DUMMY_DIR, fc_task.name
- FileUtils.rm_rf fc_task.name
- assert fc_task.needed?, "file should be needed"
- FileUtils.mkdir fc_task.name
- assert_equal nil, fc_task.prerequisites.collect{|n| Task[n].timestamp}.max
- assert ! fc_task.needed?, "file should not be needed"
- end
-
- def test_directory
- directory DUMMY_DIR
- fc_task = Task[DUMMY_DIR]
- assert_equal DUMMY_DIR, fc_task.name
- assert FileCreationTask === fc_task
- end
-
- def test_no_retriggers_on_filecreate_task
- create_timed_files(OLDFILE, NEWFILE)
- t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
- t2 = Rake.application.intern(FileCreationTask, NEWFILE)
- assert ! t2.needed?, "Should not need to build new file"
- assert ! t1.needed?, "Should not need to rebuild old file because of new"
- end
-
- def test_no_retriggers_on_file_task
- create_timed_files(OLDFILE, NEWFILE)
- t1 = Rake.application.intern(FileCreationTask, OLDFILE).enhance([NEWFILE])
- t2 = Rake.application.intern(FileCreationTask, NEWFILE)
- assert ! t2.needed?, "Should not need to build new file"
- assert ! t1.needed?, "Should not need to rebuild old file because of new"
- end
-
- def test_very_early_timestamp
- t1 = Rake.application.intern(FileCreationTask, OLDFILE)
- assert t1.timestamp < Time.now
- assert t1.timestamp < Time.now - 1000000
- end
-end
diff --git a/test/rake/test_file_task.rb b/test/rake/test_file_task.rb
deleted file mode 100644
index 1b0c0a5614..0000000000
--- a/test/rake/test_file_task.rb
+++ /dev/null
@@ -1,139 +0,0 @@
-require 'test/unit'
-require 'fileutils'
-require 'rake'
-require_relative 'filecreation'
-
-######################################################################
-class Rake::TestFileTask < Test::Unit::TestCase
- include Rake
- include FileCreation
-
- def setup
- Task.clear
- @runs = Array.new
- FileUtils.rm_f NEWFILE
- FileUtils.rm_f OLDFILE
- end
-
- def test_file_need
- name = "testdata/dummy"
- file name
- ftask = Task[name]
- assert_equal name.to_s, ftask.name
- File.delete(ftask.name) rescue nil
- assert ftask.needed?, "file should be needed"
- open(ftask.name, "w") { |f| f.puts "HI" }
- assert_equal nil, ftask.prerequisites.collect{|n| Task[n].timestamp}.max
- assert ! ftask.needed?, "file should not be needed"
- File.delete(ftask.name) rescue nil
- end
-
- def test_file_times_new_depends_on_old
- create_timed_files(OLDFILE, NEWFILE)
-
- t1 = Rake.application.intern(FileTask, NEWFILE).enhance([OLDFILE])
- t2 = Rake.application.intern(FileTask, OLDFILE)
- assert ! t2.needed?, "Should not need to build old file"
- assert ! t1.needed?, "Should not need to rebuild new file because of old"
- end
-
- def test_file_times_old_depends_on_new
- create_timed_files(OLDFILE, NEWFILE)
-
- t1 = Rake.application.intern(FileTask,OLDFILE).enhance([NEWFILE])
- t2 = Rake.application.intern(FileTask, NEWFILE)
- assert ! t2.needed?, "Should not need to build new file"
- preq_stamp = t1.prerequisites.collect{|t| Task[t].timestamp}.max
- assert_equal t2.timestamp, preq_stamp
- assert t1.timestamp < preq_stamp, "T1 should be older"
- assert t1.needed?, "Should need to rebuild old file because of new"
- end
-
- def test_file_depends_on_task_depend_on_file
- create_timed_files(OLDFILE, NEWFILE)
-
- file NEWFILE => [:obj] do |t| @runs << t.name end
- task :obj => [OLDFILE] do |t| @runs << t.name end
- file OLDFILE do |t| @runs << t.name end
-
- Task[:obj].invoke
- Task[NEWFILE].invoke
- assert ! @runs.include?(NEWFILE)
- end
-
- def test_existing_file_depends_on_non_existing_file
- create_file(OLDFILE)
- delete_file(NEWFILE)
- file NEWFILE
- file OLDFILE => NEWFILE
- assert_nothing_raised do Task[OLDFILE].invoke end
- end
-
- # I have currently disabled this test. I'm not convinced that
- # deleting the file target on failure is always the proper thing to
- # do. I'm willing to hear input on this topic.
- def ztest_file_deletes_on_failure
- task :obj
- file NEWFILE => [:obj] do |t|
- FileUtils.touch NEWFILE
- fail "Ooops"
- end
- assert Task[NEWFILE]
- begin
- Task[NEWFILE].invoke
- rescue Exception
- end
- assert( ! File.exist?(NEWFILE), "NEWFILE should be deleted")
- end
-
-end
-
-######################################################################
-class Rake::TestDirectoryTask < Test::Unit::TestCase
- include Rake
-
- def setup
- rm_rf "testdata", :verbose=>false
- end
-
- def teardown
- rm_rf "testdata", :verbose=>false
- end
-
- def test_directory
- desc "DESC"
- directory "testdata/a/b/c"
- assert_equal FileCreationTask, Task["testdata"].class
- assert_equal FileCreationTask, Task["testdata/a"].class
- assert_equal FileCreationTask, Task["testdata/a/b/c"].class
- assert_nil Task["testdata"].comment
- assert_equal "DESC", Task["testdata/a/b/c"].comment
- assert_nil Task["testdata/a/b"].comment
- verbose(false) {
- Task['testdata/a/b'].invoke
- }
- assert File.exist?("testdata/a/b")
- assert ! File.exist?("testdata/a/b/c")
- end
-
- if Rake::Win32.windows?
- def test_directory_win32
- desc "WIN32 DESC"
- FileUtils.mkdir_p("testdata")
- Dir.chdir("testdata") do
- directory 'c:/testdata/a/b/c'
- assert_equal FileCreationTask, Task['c:/testdata'].class
- assert_equal FileCreationTask, Task['c:/testdata/a'].class
- assert_equal FileCreationTask, Task['c:/testdata/a/b/c'].class
- assert_nil Task['c:/testdata'].comment
- assert_equal "WIN32 DESC", Task['c:/testdata/a/b/c'].comment
- assert_nil Task['c:/testdata/a/b'].comment
- verbose(false) {
- Task['c:/testdata/a/b'].invoke
- }
- assert File.exist?('c:/testdata/a/b')
- assert ! File.exist?('c:/testdata/a/b/c')
- end
- end
- end
-end
diff --git a/test/rake/test_filelist.rb b/test/rake/test_filelist.rb
deleted file mode 100644
index 08456a4da8..0000000000
--- a/test/rake/test_filelist.rb
+++ /dev/null
@@ -1,625 +0,0 @@
-require 'test/unit'
-require 'tmpdir'
-require 'rake'
-
-require_relative 'capture_stdout'
-
-class Rake::TestFileList < Test::Unit::TestCase
- FileList = Rake::FileList
- include CaptureStdout
-
- def setup
- @oldwd = Dir.pwd
- @tmpwd = Dir.mktmpdir
- Dir.chdir(@tmpwd)
- create_test_data
- end
-
- def teardown
-# FileList.select_default_ignore_patterns
- FileUtils.rm_rf("testdata")
- Dir.chdir(@oldwd)
- FileUtils.rm_rf(@tmpwd)
- end
-
- def test_delgating_methods_do_not_include_to_a_or_to_ary
- assert ! FileList::DELEGATING_METHODS.include?("to_a"), "should not include to_a"
- assert ! FileList::DELEGATING_METHODS.include?(:to_a), "should not include to_a"
- assert ! FileList::DELEGATING_METHODS.include?("to_ary"), "should not include to_ary"
- assert ! FileList::DELEGATING_METHODS.include?(:to_ary), "should not include to_ary"
- end
-
- def test_create
- fl = FileList.new
- assert_equal 0, fl.size
- end
-
- def test_create_with_args
- fl = FileList.new("testdata/*.c", "x")
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
- fl.sort
- end
-
- def test_create_with_block
- fl = FileList.new { |f| f.include("x") }
- assert_equal ["x"], fl.resolve
- end
-
- def test_create_with_brackets
- fl = FileList["testdata/*.c", "x"]
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
- fl.sort
- end
-
- def test_create_with_brackets_and_filelist
- fl = FileList[FileList["testdata/*.c", "x"]]
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
- fl.sort
- end
-
- def test_include_with_another_array
- fl = FileList.new.include(["x", "y", "z"])
- assert_equal ["x", "y", "z"].sort, fl.sort
- end
-
- def test_include_with_another_filelist
- fl = FileList.new.include(FileList["testdata/*.c", "x"])
- assert_equal ["testdata/abc.c", "testdata/x.c", "testdata/xyz.c", "x"].sort,
- fl.sort
- end
-
- def test_append
- fl = FileList.new
- fl << "a.rb" << "b.rb"
- assert_equal ['a.rb', 'b.rb'], fl
- end
-
- def test_add_many
- fl = FileList.new
- fl.include %w(a d c)
- fl.include('x', 'y')
- assert_equal ['a', 'd', 'c', 'x', 'y'], fl
- assert_equal ['a', 'd', 'c', 'x', 'y'], fl.resolve
- end
-
- def test_add_return
- f = FileList.new
- g = f << "x"
- assert_equal f.object_id, g.object_id
- h = f.include("y")
- assert_equal f.object_id, h.object_id
- end
-
- def test_match
- fl = FileList.new
- fl.include(File.expand_path('../test*.rb', __FILE__))
- assert fl.include?(__FILE__)
- assert fl.size > 3
- fl.each { |fn| assert_match(/\.rb$/, fn) }
- end
-
- def test_add_matching
- fl = FileList.new
- fl << "a.java"
- fl.include(File.dirname(__FILE__)+"/*.rb")
- assert_equal "a.java", fl[0]
- assert fl.size > 2
- assert fl.include?(__FILE__)
- end
-
- def test_multiple_patterns
- create_test_data
- fl = FileList.new
- fl.include('*.c', '*xist*')
- assert_equal [], fl
- fl.include('testdata/*.c', 'testdata/*xist*')
- assert_equal [
- 'testdata/x.c', 'testdata/xyz.c', 'testdata/abc.c', 'testdata/existing'
- ].sort, fl.sort
- end
-
- def test_square_bracket_pattern
- fl = FileList.new
- fl.include("testdata/abc.[ch]")
- assert fl.size == 2
- assert fl.include?("testdata/abc.c")
- assert fl.include?("testdata/abc.h")
- end
-
- def test_curly_bracket_pattern
- fl = FileList.new
- fl.include("testdata/abc.{c,h}")
- assert fl.size == 2
- assert fl.include?("testdata/abc.c")
- assert fl.include?("testdata/abc.h")
- end
-
- def test_reject
- fl = FileList.new
- fl.include %w(testdata/x.c testdata/abc.c testdata/xyz.c testdata/existing)
- fl.reject! { |fn| fn =~ %r{/x} }
- assert_equal [
- 'testdata/abc.c', 'testdata/existing'
- ], fl
- end
-
- def test_exclude
- fl = FileList['testdata/x.c', 'testdata/abc.c', 'testdata/xyz.c', 'testdata/existing']
- fl.each { |fn| touch fn, :verbose => false }
- x = fl.exclude(%r{/x.+\.})
- assert_equal FileList, x.class
- assert_equal %w(testdata/x.c testdata/abc.c testdata/existing), fl
- assert_equal fl.object_id, x.object_id
- fl.exclude('testdata/*.c')
- assert_equal ['testdata/existing'], fl
- fl.exclude('testdata/existing')
- assert_equal [], fl
- end
-
- def test_excluding_via_block
- fl = FileList['testdata/a.c', 'testdata/b.c', 'testdata/xyz.c']
- fl.exclude { |fn| fn.pathmap('%n') == 'xyz' }
- assert fl.exclude?("xyz.c"), "Should exclude xyz.c"
- assert_equal ['testdata/a.c', 'testdata/b.c'], fl
- end
-
- def test_exclude_return_on_create
- fl = FileList['testdata/*'].exclude(/.*\.[hcx]$/)
- assert_equal ['testdata/existing', 'testdata/cfiles'].sort, fl.sort
- assert_equal FileList, fl.class
- end
-
- def test_exclude_with_string_return_on_create
- fl = FileList['testdata/*'].exclude('testdata/abc.c')
- assert_equal %w(testdata/existing testdata/cfiles testdata/x.c testdata/abc.h testdata/abc.x testdata/xyz.c).sort, fl.sort
- assert_equal FileList, fl.class
- end
-
- def test_default_exclude
- fl = FileList.new
- fl.clear_exclude
- fl.include("**/*~", "**/*.bak", "**/core")
- assert fl.member?("testdata/core"), "Should include core"
- assert fl.member?("testdata/x.bak"), "Should include .bak files"
- end
-
- def test_unique
- fl = FileList.new
- fl << "x.c" << "a.c" << "b.rb" << "a.c"
- assert_equal ['x.c', 'a.c', 'b.rb', 'a.c'], fl
- fl.uniq!
- assert_equal ['x.c', 'a.c', 'b.rb'], fl
- end
-
- def test_to_string
- fl = FileList.new
- fl << "a.java" << "b.java"
- assert_equal "a.java b.java", fl.to_s
- assert_equal "a.java b.java", "#{fl}"
- end
-
- def test_to_array
- fl = FileList['a.java', 'b.java']
- assert_equal ['a.java', 'b.java'], fl.to_a
- assert_equal Array, fl.to_a.class
- assert_equal ['a.java', 'b.java'], fl.to_ary
- assert_equal Array, fl.to_ary.class
- end
-
- def test_to_s_pending
- fl = FileList['testdata/abc.*']
- result = fl.to_s
- assert_match(%r{testdata/abc\.c}, result)
- assert_match(%r{testdata/abc\.h}, result)
- assert_match(%r{testdata/abc\.x}, result)
- assert_match(%r{(testdata/abc\..\b ?){2}}, result)
- end
-
- def test_inspect_pending
- fl = FileList['testdata/abc.*']
- result = fl.inspect
- assert_match(%r{"testdata/abc\.c"}, result)
- assert_match(%r{"testdata/abc\.h"}, result)
- assert_match(%r{"testdata/abc\.x"}, result)
- assert_match(%r|^\[("testdata/abc\..", ){2}"testdata/abc\.."\]$|, result)
- end
-
- def test_sub
- fl = FileList["testdata/*.c"]
- f2 = fl.sub(/\.c$/, ".o")
- assert_equal FileList, f2.class
- assert_equal ["testdata/abc.o", "testdata/x.o", "testdata/xyz.o"].sort,
- f2.sort
- f3 = fl.gsub(/\.c$/, ".o")
- assert_equal FileList, f3.class
- assert_equal ["testdata/abc.o", "testdata/x.o", "testdata/xyz.o"].sort,
- f3.sort
- end
-
- def test_claim_to_be_a_kind_of_array
- fl = FileList['testdata/*.c']
- assert fl.is_a?(Array)
- assert fl.kind_of?(Array)
- end
-
- def test_claim_to_be_a_kind_of_filelist
- fl = FileList['testdata/*.c']
- assert fl.is_a?(FileList)
- assert fl.kind_of?(FileList)
- end
-
- def test_claim_to_be_a_filelist_instance
- fl = FileList['testdata/*.c']
- assert fl.instance_of?(FileList)
- end
-
- def test_dont_claim_to_be_an_array_instance
- fl = FileList['testdata/*.c']
- assert ! fl.instance_of?(Array)
- end
-
- def test_sub!
- f = "x/a.c"
- fl = FileList[f, "x/b.c"]
- res = fl.sub!(/\.c$/, ".o")
- assert_equal ["x/a.o", "x/b.o"].sort, fl.sort
- assert_equal "x/a.c", f
- assert_equal fl.object_id, res.object_id
- end
-
- def test_sub_with_block
- fl = FileList["src/org/onestepback/a.java", "src/org/onestepback/b.java"]
-# The block version doesn't work the way I want it to ...
-# f2 = fl.sub(%r{^src/(.*)\.java$}) { |x| "classes/" + $1 + ".class" }
- f2 = fl.sub(%r{^src/(.*)\.java$}, "classes/\\1.class")
- assert_equal [
- "classes/org/onestepback/a.class",
- "classes/org/onestepback/b.class"
- ].sort,
- f2.sort
- end
-
- def test_string_ext
- assert_equal "one.net", "one.two".ext("net")
- assert_equal "one.net", "one.two".ext(".net")
- assert_equal "one.net", "one".ext("net")
- assert_equal "one.net", "one".ext(".net")
- assert_equal "one.two.net", "one.two.c".ext(".net")
- assert_equal "one/two.net", "one/two.c".ext(".net")
- assert_equal "one.x/two.net", "one.x/two.c".ext(".net")
- assert_equal "one.x/two.net", "one.x/two".ext(".net")
- assert_equal ".onerc.net", ".onerc.dot".ext("net")
- assert_equal ".onerc.net", ".onerc".ext("net")
- assert_equal ".a/.onerc.net", ".a/.onerc".ext("net")
- assert_equal "one", "one.two".ext('')
- assert_equal "one", "one.two".ext
- assert_equal ".one", ".one.two".ext
- assert_equal ".one", ".one".ext
- assert_equal ".", ".".ext("c")
- assert_equal "..", "..".ext("c")
- # These only need to work in windows
- if Rake::Win32.windows?
- assert_equal "one.x\\two.net", "one.x\\two.c".ext(".net")
- assert_equal "one.x\\two.net", "one.x\\two".ext(".net")
- end
- end
-
- def test_filelist_ext
- assert_equal FileList['one.c', '.one.c'],
- FileList['one.net', '.one'].ext('c')
- end
-
- def test_gsub
- create_test_data
- fl = FileList["testdata/*.c"]
- f2 = fl.gsub(/a/, "A")
- assert_equal ["testdAtA/Abc.c", "testdAtA/x.c", "testdAtA/xyz.c"].sort,
- f2.sort
- end
-
- def test_gsub!
- create_test_data
- f = FileList["testdata/*.c"]
- f.gsub!(/a/, "A")
- assert_equal ["testdAtA/Abc.c", "testdAtA/x.c", "testdAtA/xyz.c"].sort,
- f.sort
- end
-
- def test_egrep_with_output
- files = FileList[File.expand_path('../test*.rb', __FILE__)]
- the_line_number = __LINE__ + 1
- out = capture_stdout do files.egrep(/PUGH/) end
- assert_match(/:#{the_line_number}:/, out)
- end
-
- def test_egrep_with_block
- files = FileList[File.expand_path('../test*.rb', __FILE__)]
- found = false
- the_line_number = __LINE__ + 1
- files.egrep(/XYZZY/) do |fn, ln, line |
- assert_equal __FILE__, fn
- assert_equal the_line_number, ln
- assert_match(/files\.egrep/, line)
- found = true
- end
- assert found, "should have found a matching line"
- end
-
- def test_existing
- fl = FileList['testdata/abc.c', 'testdata/notthere.c']
- assert_equal ["testdata/abc.c"], fl.existing
- assert fl.existing.is_a?(FileList)
- end
-
- def test_existing!
- fl = FileList['testdata/abc.c', 'testdata/notthere.c']
- result = fl.existing!
- assert_equal ["testdata/abc.c"], fl
- assert_equal fl.object_id, result.object_id
- end
-
- def test_ignore_special
- f = FileList['testdata/*']
- assert ! f.include?("testdata/CVS"), "Should not contain CVS"
- assert ! f.include?("testdata/.svn"), "Should not contain .svn"
- assert ! f.include?("testdata/.dummy"), "Should not contain dot files"
- assert ! f.include?("testdata/x.bak"), "Should not contain .bak files"
- assert ! f.include?("testdata/x~"), "Should not contain ~ files"
- assert ! f.include?("testdata/core"), "Should not contain core files"
- end
-
- def test_clear_ignore_patterns
- f = FileList['testdata/*', 'testdata/.svn']
- f.clear_exclude
- assert f.include?("testdata/abc.c")
- assert f.include?("testdata/xyz.c")
- assert f.include?("testdata/CVS")
- assert f.include?("testdata/.svn")
- assert f.include?("testdata/x.bak")
- assert f.include?("testdata/x~")
- end
-
- def test_exclude_with_alternate_file_seps
- fl = FileList.new
- assert fl.exclude?("x/CVS/y")
- assert fl.exclude?("x\\CVS\\y")
- assert fl.exclude?("x/.svn/y")
- assert fl.exclude?("x\\.svn\\y")
- assert fl.exclude?("x/core")
- assert fl.exclude?("x\\core")
- end
-
- def test_add_default_exclude_list
- fl = FileList.new
- fl.exclude(/~\d+$/)
- assert fl.exclude?("x/CVS/y")
- assert fl.exclude?("x\\CVS\\y")
- assert fl.exclude?("x/.svn/y")
- assert fl.exclude?("x\\.svn\\y")
- assert fl.exclude?("x/core")
- assert fl.exclude?("x\\core")
- assert fl.exclude?("x/abc~1")
- end
-
- def test_basic_array_functions
- f = FileList['b', 'c', 'a']
- assert_equal 'b', f.first
- assert_equal 'b', f[0]
- assert_equal 'a', f.last
- assert_equal 'a', f[2]
- assert_equal 'a', f[-1]
- assert_equal ['a', 'b', 'c'], f.sort
- f.sort!
- assert_equal ['a', 'b', 'c'], f
- end
-
- def test_flatten
- assert_equal ['a', 'testdata/x.c', 'testdata/xyz.c', 'testdata/abc.c'].sort,
- ['a', FileList['testdata/*.c']].flatten.sort
- end
-
- def test_clone_and_dup
- a = FileList['a', 'b', 'c']
- c = a.clone
- d = a.dup
- a << 'd'
- assert_equal ['a', 'b', 'c', 'd'], a
- assert_equal ['a', 'b', 'c'], c
- assert_equal ['a', 'b', 'c'], d
- end
-
- def test_dup_and_clone_replicate_taint
- a = FileList['a', 'b', 'c']
- a.taint
- c = a.clone
- d = a.dup
- assert c.tainted?, "Clone should be tainted"
- assert d.tainted?, "Dup should be tainted"
- end
-
- def test_duped_items_will_thaw
- a = FileList['a', 'b', 'c']
- a.freeze
- d = a.dup
- d << 'more'
- assert_equal ['a', 'b', 'c', 'more'], d
- end
-
- def test_cloned_items_stay_frozen
- a = FileList['a', 'b', 'c']
- a.freeze
- c = a.clone
- assert_raise(TypeError, RuntimeError) do
- c << 'more'
- end
- end
-
- def test_array_comparisons
- fl = FileList['b', 'b']
- a = ['b', 'a']
- b = ['b', 'b']
- c = ['b', 'c']
- assert_equal( 1, fl <=> a )
- assert_equal( 0, fl <=> b )
- assert_equal( -1, fl <=> c )
- assert_equal( -1, a <=> fl )
- assert_equal( 0, b <=> fl )
- assert_equal( 1, c <=> fl )
- end
-
- def test_array_equality
- a = FileList['a', 'b']
- b = ['a', 'b']
- assert a == b
- assert b == a
-# assert a.eql?(b)
-# assert b.eql?(a)
- assert ! a.equal?(b)
- assert ! b.equal?(a)
- end
-
- def test_enumeration_methods
- a = FileList['a', 'b']
- b = a.collect { |it| it.upcase }
- assert_equal ['A', 'B'], b
- assert_equal FileList, b.class
-
- b = a.map { |it| it.upcase }
- assert_equal ['A', 'B'], b
- assert_equal FileList, b.class
-
- b = a.sort
- assert_equal ['a', 'b'], b
- assert_equal FileList, b.class
-
- b = a.sort_by { |it| it }
- assert_equal ['a', 'b'], b
- assert_equal FileList, b.class
-
- b = a.find_all { |it| it == 'b'}
- assert_equal ['b'], b
- assert_equal FileList, b.class
-
- b = a.select { |it| it.size == 1 }
- assert_equal ['a', 'b'], b
- assert_equal FileList, b.class
-
- b = a.reject { |it| it == 'b' }
- assert_equal ['a'], b
- assert_equal FileList, b.class
-
- b = a.grep(/./)
- assert_equal ['a', 'b'], b
- assert_equal FileList, b.class
-
- b = a.partition { |it| it == 'b' }
- assert_equal [['b'], ['a']], b
- assert_equal Array, b.class
- assert_equal FileList, b[0].class
- assert_equal FileList, b[1].class
-
- b = a.zip(['x', 'y']).to_a
- assert_equal [['a', 'x'], ['b', 'y']], b
- assert_equal Array, b.class
- assert_equal Array, b[0].class
- assert_equal Array, b[1].class
- end
-
- def test_array_operators
- a = ['a', 'b']
- b = ['c', 'd']
- f = FileList['x', 'y']
- g = FileList['w', 'z']
-
- r = f + g
- assert_equal ['x', 'y', 'w', 'z'], r
- assert_equal FileList, r.class
-
- r = a + g
- assert_equal ['a', 'b', 'w', 'z'], r
- assert_equal Array, r.class
-
- r = f + b
- assert_equal ['x', 'y', 'c', 'd'], r
- assert_equal FileList, r.class
-
- r = FileList['w', 'x', 'y', 'z'] - f
- assert_equal ['w', 'z'], r
- assert_equal FileList, r.class
-
- r = FileList['w', 'x', 'y', 'z'] & f
- assert_equal ['x', 'y'], r
- assert_equal FileList, r.class
-
- r = f * 2
- assert_equal ['x', 'y', 'x', 'y'], r
- assert_equal FileList, r.class
-
- r = f * ','
- assert_equal 'x,y', r
- assert_equal String, r.class
-
- r = f | ['a', 'x']
- assert_equal ['a', 'x', 'y'].sort, r.sort
- assert_equal FileList, r.class
- end
-
- def test_other_array_returning_methods
- f = FileList['a', nil, 'b']
- r = f.compact
- assert_equal ['a', 'b'], r
- assert_equal FileList, r.class
-
- f = FileList['a', 'b']
- r = f.concat(['x', 'y'])
- assert_equal ['a', 'b', 'x', 'y'], r
- assert_equal FileList, r.class
-
- f = FileList['a', ['b', 'c'], FileList['d', 'e']]
- r = f.flatten
- assert_equal ['a', 'b', 'c', 'd', 'e'], r
- assert_equal FileList, r.class
-
- f = FileList['a', 'b', 'a']
- r = f.uniq
- assert_equal ['a', 'b'], r
- assert_equal FileList, r.class
-
- f = FileList['a', 'b', 'c', 'd']
- r = f.values_at(1,3)
- assert_equal ['b', 'd'], r
- assert_equal FileList, r.class
- end
-
- def test_file_utils_can_use_filelists
- cfiles = FileList['testdata/*.c']
-
- cp cfiles, @cdir, :verbose => false
-
- assert File.exist?(File.join(@cdir, 'abc.c'))
- assert File.exist?(File.join(@cdir, 'xyz.c'))
- assert File.exist?(File.join(@cdir, 'x.c'))
- end
-
- def create_test_data
- verbose(false) do
-
- mkdir "testdata" unless File.exist? "testdata"
- mkdir "testdata/CVS" rescue nil
- mkdir "testdata/.svn" rescue nil
- @cdir = "testdata/cfiles"
- mkdir @cdir rescue nil
- touch "testdata/.dummy"
- touch "testdata/x.bak"
- touch "testdata/x~"
- touch "testdata/core"
- touch "testdata/x.c"
- touch "testdata/xyz.c"
- touch "testdata/abc.c"
- touch "testdata/abc.h"
- touch "testdata/abc.x"
- touch "testdata/existing"
- end
- end
-
-end
diff --git a/test/rake/test_fileutils.rb b/test/rake/test_fileutils.rb
deleted file mode 100644
index 1664ec80c3..0000000000
--- a/test/rake/test_fileutils.rb
+++ /dev/null
@@ -1,262 +0,0 @@
-require 'rake'
-require 'test/unit'
-require_relative 'filecreation'
-require 'fileutils'
-require 'stringio'
-
-class Rake::TestFileUtils < Test::Unit::TestCase
- include FileCreation
- BASEDIR = File.dirname(__FILE__)
- ShellCommand = "#{BASEDIR}/shellcommand.rb"
- ENV_RUBY = ENV['RUBY']
-
- def setup
- if ruby = ENV_RUBY
- @oldruby = FileUtils.class_eval {remove_const :RUBY}
- FileUtils.class_eval {const_set(:RUBY, ruby)}
- else
- @oldruby = nil
- end
- end
-
- def teardown
- FileUtils.rm_rf("testdata")
- FileUtils::LN_SUPPORTED[0] = true
- if @oldruby
- ruby = @oldruby
- FileUtils.class_eval {remove_const :RUBY}
- FileUtils.class_eval {const_set(:RUBY, ruby)}
- end
- end
-
- def test_rm_one_file
- create_file("testdata/a")
- FileUtils.rm_rf "testdata/a"
- assert ! File.exist?("testdata/a")
- end
-
- def test_rm_two_files
- create_file("testdata/a")
- create_file("testdata/b")
- FileUtils.rm_rf ["testdata/a", "testdata/b"]
- assert ! File.exist?("testdata/a")
- assert ! File.exist?("testdata/b")
- end
-
- def test_rm_filelist
- list = Rake::FileList.new << "testdata/a" << "testdata/b"
- list.each { |fn| create_file(fn) }
- FileUtils.rm_r list
- assert ! File.exist?("testdata/a")
- assert ! File.exist?("testdata/b")
- end
-
- def test_ln
- create_dir("testdata")
- open("testdata/a", "w") { |f| f.puts "TEST_LN" }
- RakeFileUtils.safe_ln("testdata/a", "testdata/b", :verbose => false)
- assert_equal "TEST_LN\n", open("testdata/b") { |f| f.read }
- end
-
- class BadLink
- include RakeFileUtils
- attr_reader :cp_args
- def initialize(klass)
- @failure_class = klass
- end
- def cp(*args)
- @cp_args = args
- end
- def ln(*args)
- fail @failure_class, "ln not supported"
- end
- public :safe_ln
- end
-
- def test_safe_ln_failover_to_cp_on_standard_error
- FileUtils::LN_SUPPORTED[0] = true
- c = BadLink.new(StandardError)
- c.safe_ln "a", "b"
- assert_equal ['a', 'b'], c.cp_args
- c.safe_ln "x", "y"
- assert_equal ['x', 'y'], c.cp_args
- end
-
- def test_safe_ln_failover_to_cp_on_not_implemented_error
- FileUtils::LN_SUPPORTED[0] = true
- c = BadLink.new(NotImplementedError)
- c.safe_ln "a", "b"
- assert_equal ['a', 'b'], c.cp_args
- end
-
- def test_safe_ln_fails_on_script_error
- FileUtils::LN_SUPPORTED[0] = true
- c = BadLink.new(ScriptError)
- assert_raise(ScriptError) do c.safe_ln "a", "b" end
- end
-
- def test_verbose
- verbose true
- assert_equal true, verbose
- verbose false
- assert_equal false, verbose
- verbose(true) {
- assert_equal true, verbose
- }
- assert_equal false, verbose
- end
-
- def test_nowrite
- nowrite true
- assert_equal true, nowrite
- nowrite false
- assert_equal false, nowrite
- nowrite(true){
- assert_equal true, nowrite
- }
- assert_equal false, nowrite
- end
-
- def test_file_utils_methods_are_available_at_top_level
- create_file("testdata/a")
- verbose(false) do
- rm_rf "testdata/a"
- end
- assert ! File.exist?("testdata/a")
- end
-
- def test_fileutils_methods_dont_leak
- obj = Object.new
- assert_raise(NoMethodError) { obj.copy } # from FileUtils
- assert_raise(NoMethodError) { obj.ruby } # from RubyFileUtils
- end
-
- def test_sh
- verbose(false) { sh %{#{RUBY} #{ShellCommand}} }
- assert true, "should not fail"
- end
-
- # If the :sh method is invoked directly from a test unit instance
- # (under mini/test), the mini/test version of fail is invoked rather
- # than the kernel version of fail. So we run :sh from within a
- # non-test class to avoid the problem.
- class Sh
- include FileUtils
- def run(*args)
- sh(*args)
- end
- def self.run(*args)
- new.run(*args)
- end
- end
-
- def test_sh_with_a_single_string_argument
- ENV['RAKE_TEST_SH'] = 'someval'
- verbose(false) {
- sh %{#{RUBY} #{BASEDIR}/check_expansion.rb #{env_var} someval}
- }
- end
-
- def test_sh_with_multiple_arguments
- ENV['RAKE_TEST_SH'] = 'someval'
- verbose(false) {
- Sh.run RUBY, File.expand_path('../check_no_expansion.rb', __FILE__), env_var, 'someval'
- }
- end
-
- def test_sh_failure
- assert_raise(RuntimeError) {
- verbose(false) { Sh.run "#{RUBY} #{File.expand_path('../shellcommand.rb', __FILE__)} 1" }
- }
- end
-
- def test_sh_special_handling
- count = 0
- verbose(false) {
- sh(%{#{RUBY} #{ShellCommand}}) do |ok, res|
- assert(ok)
- assert_equal 0, res.exitstatus
- count += 1
- end
- sh(%{#{RUBY} #{ShellCommand} 1}) do |ok, res|
- assert(!ok)
- assert_equal 1, res.exitstatus
- count += 1
- end
- }
- assert_equal 2, count, "Block count should be 2"
- end
-
- def test_sh_noop
- verbose(false) { sh %{#{ShellCommand} 1}, :noop=>true }
- assert true, "should not fail"
- end
-
- def test_sh_bad_option
- ex = assert_raise(ArgumentError) {
- verbose(false) { sh %{#{ShellCommand}}, :bad_option=>true }
- }
- assert_match(/bad_option/, ex.message)
- end
-
- def test_sh_verbose
- out = redirect_stderr {
- verbose(true) {
- sh %{#{ShellCommand}}, :noop=>true
- }
- }
- assert_match(/^#{Regexp.quote(ShellCommand)}$/o, out)
- end
-
- def test_sh_no_verbose
- out = redirect_stderr {
- verbose(false) {
- sh %{#{ShellCommand}}, :noop=>true
- }
- }
- assert_equal '', out
- end
-
- def test_ruby_with_a_single_string_argument
- ENV['RAKE_TEST_SH'] = 'someval'
- verbose(false) {
- ruby %{#{BASEDIR}/check_expansion.rb #{env_var} someval}
- }
- end
-
- def test_ruby_with_multiple_arguments
- ENV['RAKE_TEST_SH'] = 'someval'
- verbose(false) {
- ruby "#{BASEDIR}/check_no_expansion.rb", env_var, 'someval'
- }
- end
-
- def test_split_all
- assert_equal ['a'], RakeFileUtils.split_all('a')
- assert_equal ['..'], RakeFileUtils.split_all('..')
- assert_equal ['/'], RakeFileUtils.split_all('/')
- assert_equal ['a', 'b'], RakeFileUtils.split_all('a/b')
- assert_equal ['/', 'a', 'b'], RakeFileUtils.split_all('/a/b')
- assert_equal ['..', 'a', 'b'], RakeFileUtils.split_all('../a/b')
- end
-
- private
-
- def redirect_stderr
- old_err = $stderr
- $stderr = StringIO.new
- yield
- $stderr.string
- ensure
- $stderr = old_err
- end
-
- def windows?
- ! File::ALT_SEPARATOR.nil?
- end
-
- def env_var
- windows? ? '%RAKE_TEST_SH%' : '$RAKE_TEST_SH'
- end
-
-end
diff --git a/test/rake/test_invocation_chain.rb b/test/rake/test_invocation_chain.rb
deleted file mode 100644
index 2b06493773..0000000000
--- a/test/rake/test_invocation_chain.rb
+++ /dev/null
@@ -1,75 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-######################################################################
-class Rake::TestAnEmptyInvocationChain < Test::Unit::TestCase
-
- def setup
- @empty = Rake::InvocationChain::EMPTY
- end
-
- def test_should_be_able_to_add_members
- assert_nothing_raised do
- @empty.append("A")
- end
- end
-
- def test_to_s
- assert_equal "TOP", @empty.to_s
- end
-end
-
-######################################################################
-class Rake::TestAnInvocationChainWithOneMember < Test::Unit::TestCase
-
- def setup
- @empty = Rake::InvocationChain::EMPTY
- @first_member = "A"
- @chain = @empty.append(@first_member)
- end
-
- def test_should_report_first_member_as_a_member
- assert @chain.member?(@first_member)
- end
-
- def test_should_fail_when_adding_original_member
- ex = assert_raise RuntimeError do
- @chain.append(@first_member)
- end
- assert_match(/circular +dependency/i, ex.message)
- assert_match(/A.*=>.*A/, ex.message)
- end
-
- def test_to_s
- assert_equal "TOP => A", @chain.to_s
- end
-
-end
-
-######################################################################
-class Rake::TestAnInvocationChainWithMultipleMember < Test::Unit::TestCase
-
- def setup
- @first_member = "A"
- @second_member = "B"
- ch = Rake::InvocationChain::EMPTY.append(@first_member)
- @chain = ch.append(@second_member)
- end
-
- def test_should_report_first_member_as_a_member
- assert @chain.member?(@first_member)
- end
-
- def test_should_report_second_member_as_a_member
- assert @chain.member?(@second_member)
- end
-
- def test_should_fail_when_adding_original_member
- ex = assert_raise RuntimeError do
- @chain.append(@first_member)
- end
- assert_match(/A.*=>.*B.*=>.*A/, ex.message)
- end
-end
-
-
diff --git a/test/rake/test_makefile_loader.rb b/test/rake/test_makefile_loader.rb
deleted file mode 100644
index 15933b1f9b..0000000000
--- a/test/rake/test_makefile_loader.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require 'test/unit'
-require 'rake'
-require 'rake/loaders/makefile'
-
-class Rake::TestMakefileLoader < Test::Unit::TestCase
- include Rake
-
- def test_parse
- Task.clear
- loader = Rake::MakefileLoader.new
- loader.load("#{File.dirname(__FILE__)}/data/sample.mf")
- %w(a b c d).each do |t|
- assert Task.task_defined?(t), "#{t} should be a defined task"
- end
- assert_equal %w(a1 a2 a3 a4 a5 a6 a7).sort, Task['a'].prerequisites.sort
- assert_equal %w(b1 b2 b3 b4 b5 b6 b7).sort, Task['b'].prerequisites.sort
- assert_equal %w(c1).sort, Task['c'].prerequisites.sort
- assert_equal %w(d1 d2).sort, Task['d'].prerequisites.sort
- assert_equal %w(e1 f1).sort, Task['e'].prerequisites.sort
- assert_equal %w(e1 f1).sort, Task['f'].prerequisites.sort
- assert_equal ["g1", "g 2", "g 3", "g4"].sort, Task['g 0'].prerequisites.sort
- assert_equal 7, Task.tasks.size
- end
-end
diff --git a/test/rake/test_multitask.rb b/test/rake/test_multitask.rb
deleted file mode 100644
index 9711e7e77e..0000000000
--- a/test/rake/test_multitask.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-######################################################################
-class Rake::TestMultiTask < Test::Unit::TestCase
- include Rake
-
- def setup
- Task.clear
- @runs = Array.new
- end
-
- def test_running_multitasks
- task :a do 3.times do |i| @runs << "A#{i}"; sleep 0.01; end end
- task :b do 3.times do |i| @runs << "B#{i}"; sleep 0.01; end end
- multitask :both => [:a, :b]
- Task[:both].invoke
- assert_equal 6, @runs.size
- assert @runs.index("A0") < @runs.index("A1")
- assert @runs.index("A1") < @runs.index("A2")
- assert @runs.index("B0") < @runs.index("B1")
- assert @runs.index("B1") < @runs.index("B2")
- end
-
- def test_all_multitasks_wait_on_slow_prerequisites
- task :slow do 3.times do |i| @runs << "S#{i}"; sleep 0.05 end end
- task :a => [:slow] do 3.times do |i| @runs << "A#{i}"; sleep 0.01 end end
- task :b => [:slow] do 3.times do |i| @runs << "B#{i}"; sleep 0.01 end end
- multitask :both => [:a, :b]
- Task[:both].invoke
- assert_equal 9, @runs.size
- assert @runs.index("S0") < @runs.index("S1")
- assert @runs.index("S1") < @runs.index("S2")
- assert @runs.index("S2") < @runs.index("A0")
- assert @runs.index("S2") < @runs.index("B0")
- assert @runs.index("A0") < @runs.index("A1")
- assert @runs.index("A1") < @runs.index("A2")
- assert @runs.index("B0") < @runs.index("B1")
- assert @runs.index("B1") < @runs.index("B2")
- end
-end
-
-
diff --git a/test/rake/test_namespace.rb b/test/rake/test_namespace.rb
deleted file mode 100644
index bd513b6a10..0000000000
--- a/test/rake/test_namespace.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-class Rake::TestNameSpace < Test::Unit::TestCase
-
- class TM
- include Rake::TaskManager
- end
-
- def test_namespace_creation
- mgr = TM.new
- ns = Rake::NameSpace.new(mgr, [])
- assert_not_nil ns
- end
-
- def test_namespace_lookup
- mgr = TM.new
- ns = mgr.in_namespace("n") do
- mgr.define_task(Rake::Task, "t")
- end
-
- assert_not_nil ns["t"]
- assert_equal mgr["n:t"], ns["t"]
- end
-
- def test_namespace_reports_tasks_it_owns
- mgr = TM.new
- nns = nil
- ns = mgr.in_namespace("n") do
- mgr.define_task(Rake::Task, :x)
- mgr.define_task(Rake::Task, :y)
- nns = mgr.in_namespace("nn") do
- mgr.define_task(Rake::Task, :z)
- end
- end
- mgr.in_namespace("m") do
- mgr.define_task(Rake::Task, :x)
- end
-
- assert_equal ["n:nn:z", "n:x", "n:y"],
- ns.tasks.map { |tsk| tsk.name }
- assert_equal ["n:nn:z"], nns.tasks.map {|t| t.name}
- end
-end
diff --git a/test/rake/test_package_task.rb b/test/rake/test_package_task.rb
deleted file mode 100644
index 68037390da..0000000000
--- a/test/rake/test_package_task.rb
+++ /dev/null
@@ -1,105 +0,0 @@
-require 'test/unit'
-require 'rake/packagetask'
-
-class Rake::TestPackageTask < Test::Unit::TestCase
- include Rake
-
- def test_create
- pkg = Rake::PackageTask.new("pkgr", "1.2.3") { |p|
- p.package_files << "install.rb"
- p.package_files.include(
- '[A-Z]*',
- 'bin/**/*',
- 'lib/**/*.rb',
- 'test/**/*.rb',
- 'doc/**/*',
- 'build/rubyapp.rb',
- '*.blurb')
- p.package_files.exclude(/\bCVS\b/)
- p.package_files.exclude(/~$/)
- p.package_dir = 'pkg'
- p.need_tar = true
- p.need_tar_gz = true
- p.need_tar_bz2 = true
- p.need_zip = true
- }
- assert_equal "pkg", pkg.package_dir
- assert pkg.package_files.include?("bin/rake")
- assert "pkgr", pkg.name
- assert "1.2.3", pkg.version
- assert Task[:package]
- assert Task['pkg/pkgr-1.2.3.tgz']
- assert Task['pkg/pkgr-1.2.3.tar.gz']
- assert Task['pkg/pkgr-1.2.3.tar.bz2']
- assert Task['pkg/pkgr-1.2.3.zip']
- assert Task["pkg/pkgr-1.2.3"]
- assert Task[:clobber_package]
- assert Task[:repackage]
- end
-
- def test_missing_version
- assert_raise(RuntimeError) {
- pkg = Rake::PackageTask.new("pkgr") { |p| }
- }
- end
-
- def test_no_version
- pkg = Rake::PackageTask.new("pkgr", :noversion) { |p| }
- assert "pkgr", pkg.send(:package_name)
- end
-
- def test_clone
- pkg = Rake::PackageTask.new("x", :noversion)
- p2 = pkg.clone
- pkg.package_files << "y"
- p2.package_files << "x"
- assert_equal ["y"], pkg.package_files
- assert_equal ["x"], p2.package_files
- end
-end
-
-
-require 'rake/gempackagetask'
-
-class Rake::TestGemPackageTask < Test::Unit::TestCase
- def test_gem_package
- gem = Gem::Specification.new do |g|
- g.name = "pkgr"
- g.version = "1.2.3"
- g.files = FileList["x"].resolve
- end
- pkg = Rake::GemPackageTask.new(gem) do |p|
- p.package_files << "y"
- end
- assert_equal ["x", "y"], pkg.package_files
- assert_equal "pkgr-1.2.3.gem", pkg.gem_file
- end
-
- def test_gem_package_with_current_platform
- gem = Gem::Specification.new do |g|
- g.name = "pkgr"
- g.version = "1.2.3"
- g.files = FileList["x"].resolve
- g.platform = Gem::Platform::CURRENT
- end
- pkg = Rake::GemPackageTask.new(gem) do |p|
- p.package_files << "y"
- end
- assert_equal ["x", "y"], pkg.package_files
- assert_match(/^pkgr-1\.2\.3-(\S+)\.gem$/, pkg.gem_file)
- end
-
- def test_gem_package_with_ruby_platform
- gem = Gem::Specification.new do |g|
- g.name = "pkgr"
- g.version = "1.2.3"
- g.files = FileList["x"].resolve
- g.platform = Gem::Platform::RUBY
- end
- pkg = Rake::GemPackageTask.new(gem) do |p|
- p.package_files << "y"
- end
- assert_equal ["x", "y"], pkg.package_files
- assert_equal "pkgr-1.2.3.gem", pkg.gem_file
- end
-end
diff --git a/test/rake/test_pathmap.rb b/test/rake/test_pathmap.rb
deleted file mode 100644
index 257529ab87..0000000000
--- a/test/rake/test_pathmap.rb
+++ /dev/null
@@ -1,207 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-# ====================================================================
-class Rake::TestPathMap < Test::Unit::TestCase
-
- def test_returns_self_with_no_args
- assert_equal "abc.rb", "abc.rb".pathmap
- end
-
- def test_s_returns_file_separator
- sep = File::ALT_SEPARATOR || File::SEPARATOR
- assert_equal sep, "abc.rb".pathmap("%s")
- assert_equal sep, "".pathmap("%s")
- assert_equal "a#{sep}b", "a/b".pathmap("%d%s%f")
- end
-
- def test_f_returns_basename
- assert_equal "abc.rb", "abc.rb".pathmap("%f")
- assert_equal "abc.rb", "this/is/a/dir/abc.rb".pathmap("%f")
- assert_equal "abc.rb", "/this/is/a/dir/abc.rb".pathmap("%f")
- end
-
- def test_n_returns_basename_without_extension
- assert_equal "abc", "abc.rb".pathmap("%n")
- assert_equal "abc", "abc".pathmap("%n")
- assert_equal "abc", "this/is/a/dir/abc.rb".pathmap("%n")
- assert_equal "abc", "/this/is/a/dir/abc.rb".pathmap("%n")
- assert_equal "abc", "/this/is/a/dir/abc".pathmap("%n")
- end
-
- def test_d_returns_dirname
- assert_equal ".", "abc.rb".pathmap("%d")
- assert_equal "/", "/abc".pathmap("%d")
- assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%d")
- assert_equal "/this/is/a/dir", "/this/is/a/dir/abc.rb".pathmap("%d")
- end
-
- def test_9d_returns_partial_dirname
- assert_equal "this/is", "this/is/a/dir/abc.rb".pathmap("%2d")
- assert_equal "this", "this/is/a/dir/abc.rb".pathmap("%1d")
- assert_equal ".", "this/is/a/dir/abc.rb".pathmap("%0d")
- assert_equal "dir", "this/is/a/dir/abc.rb".pathmap("%-1d")
- assert_equal "a/dir", "this/is/a/dir/abc.rb".pathmap("%-2d")
- assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%100d")
- assert_equal "this/is/a/dir", "this/is/a/dir/abc.rb".pathmap("%-100d")
- end
-
- def test_x_returns_extension
- assert_equal "", "abc".pathmap("%x")
- assert_equal ".rb", "abc.rb".pathmap("%x")
- assert_equal ".rb", "abc.xyz.rb".pathmap("%x")
- assert_equal "", ".depends".pathmap("%x")
- assert_equal "", "dir/.depends".pathmap("%x")
- end
-
- def test_X_returns_everything_but_extension
- assert_equal "abc", "abc".pathmap("%X")
- assert_equal "abc", "abc.rb".pathmap("%X")
- assert_equal "abc.xyz", "abc.xyz.rb".pathmap("%X")
- assert_equal "ab.xyz", "ab.xyz.rb".pathmap("%X")
- assert_equal "a.xyz", "a.xyz.rb".pathmap("%X")
- assert_equal "abc", "abc.rb".pathmap("%X")
- assert_equal "ab", "ab.rb".pathmap("%X")
- assert_equal "a", "a.rb".pathmap("%X")
- assert_equal ".depends", ".depends".pathmap("%X")
- assert_equal "a/dir/.depends", "a/dir/.depends".pathmap("%X")
- assert_equal "/.depends", "/.depends".pathmap("%X")
- end
-
- def test_p_returns_entire_pathname
- assert_equal "abc.rb", "abc.rb".pathmap("%p")
- assert_equal "this/is/a/dir/abc.rb", "this/is/a/dir/abc.rb".pathmap("%p")
- assert_equal "/this/is/a/dir/abc.rb", "/this/is/a/dir/abc.rb".pathmap("%p")
- end
-
- def test_dash_returns_empty_string
- assert_equal "", "abc.rb".pathmap("%-")
- assert_equal "abc.rb", "abc.rb".pathmap("%X%-%x")
- end
-
- def test_percent_percent_returns_percent
- assert_equal "a%b", "".pathmap("a%%b")
- end
-
- def test_undefined_percent_causes_error
- ex = assert_raise(ArgumentError) {
- "dir/abc.rb".pathmap("%z")
- }
- end
-
- def test_pattern_returns_substitutions
- assert_equal "bin/org/osb",
- "src/org/osb/Xyz.java".pathmap("%{src,bin}d")
- end
-
- def test_pattern_can_use_backreferences
- assert_equal "dir/hi/is", "dir/this/is".pathmap("%{t(hi)s,\\1}p")
- end
-
- def test_pattern_with_star_replacement_string_uses_block
- assert_equal "src/ORG/osb",
- "src/org/osb/Xyz.java".pathmap("%{/org,*}d") { |d| d.upcase }
- assert_equal "Xyz.java",
- "src/org/osb/Xyz.java".pathmap("%{.*,*}f") { |f| f.capitalize }
- end
-
- def test_pattern_with_no_replacement_nor_block_substitutes_empty_string
- assert_equal "bc.rb", "abc.rb".pathmap("%{a}f")
- end
-
- def test_pattern_works_with_certain_valid_operators
- assert_equal "dir/xbc.rb", "dir/abc.rb".pathmap("%{a,x}p")
- assert_equal "d1r", "dir/abc.rb".pathmap("%{i,1}d")
- assert_equal "xbc.rb", "dir/abc.rb".pathmap("%{a,x}f")
- assert_equal ".Rb", "dir/abc.rb".pathmap("%{r,R}x")
- assert_equal "xbc", "dir/abc.rb".pathmap("%{a,x}n")
- end
-
- def test_multiple_patterns
- assert_equal "this/is/b/directory/abc.rb",
- "this/is/a/dir/abc.rb".pathmap("%{a,b;dir,\\0ectory}p")
- end
-
- def test_partial_directory_selection_works_with_patterns
- assert_equal "this/is/a/long",
- "this/is/a/really/long/path/ok.rb".pathmap("%{/really/,/}5d")
- end
-
- def test_pattern_with_invalid_operator
- ex = assert_raise(ArgumentError) do
- "abc.xyz".pathmap("%{src,bin}z")
- end
- assert_match(/unknown.*pathmap.*spec.*z/i, ex.message)
- end
-
- def test_works_with_windows_separators
- if File::ALT_SEPARATOR
- assert_equal "abc", 'dir\abc.rb'.pathmap("%n")
- assert_equal 'this\is\a\dir',
- 'this\is\a\dir\abc.rb'.pathmap("%d")
- end
- end
-
- def test_complex_patterns
- sep = "".pathmap("%s")
- assert_equal "dir/abc.rb", "dir/abc.rb".pathmap("%d/%n%x")
- assert_equal "./abc.rb", "abc.rb".pathmap("%d/%n%x")
- assert_equal "Your file extension is '.rb'",
- "dir/abc.rb".pathmap("Your file extension is '%x'")
- assert_equal "bin/org/onstepback/proj/A.class",
- "src/org/onstepback/proj/A.java".pathmap("%{src,bin}d/%n.class")
- assert_equal "src_work/bin/org/onstepback/proj/A.class",
- "src_work/src/org/onstepback/proj/A.java".pathmap('%{\bsrc\b,bin}X.class')
- assert_equal ".depends.bak", ".depends".pathmap("%X.bak")
- assert_equal "d#{sep}a/b/c#{sep}file.txt", "a/b/c/d/file.txt".pathmap("%-1d%s%3d%s%f")
- end
-end
-
-class Rake::TestPathMapExplode < Test::Unit::TestCase
- def setup
- String.class_eval { public :pathmap_explode }
- end
-
- def teardown
- String.class_eval { protected :pathmap_explode }
- end
-
- def test_explode
- assert_equal ['a'], 'a'.pathmap_explode
- assert_equal ['a', 'b'], 'a/b'.pathmap_explode
- assert_equal ['a', 'b', 'c'], 'a/b/c'.pathmap_explode
- assert_equal ['/', 'a'], '/a'.pathmap_explode
- assert_equal ['/', 'a', 'b'], '/a/b'.pathmap_explode
- assert_equal ['/', 'a', 'b', 'c'], '/a/b/c'.pathmap_explode
- if File::ALT_SEPARATOR
- assert_equal ['c:.', 'a'], 'c:a'.pathmap_explode
- assert_equal ['c:.', 'a', 'b'], 'c:a/b'.pathmap_explode
- assert_equal ['c:.', 'a', 'b', 'c'], 'c:a/b/c'.pathmap_explode
- assert_equal ['c:/', 'a'], 'c:/a'.pathmap_explode
- assert_equal ['c:/', 'a', 'b'], 'c:/a/b'.pathmap_explode
- assert_equal ['c:/', 'a', 'b', 'c'], 'c:/a/b/c'.pathmap_explode
- end
- end
-end
-
-class Rake::TestPathMapPartial < Test::Unit::TestCase
- def test_pathmap_partial
- @path = "1/2/file"
- def @path.call(n)
- pathmap_partial(n)
- end
- assert_equal("1", @path.call(1))
- assert_equal("1/2", @path.call(2))
- assert_equal("1/2", @path.call(3))
- assert_equal(".", @path.call(0))
- assert_equal("2", @path.call(-1))
- assert_equal("1/2", @path.call(-2))
- assert_equal("1/2", @path.call(-3))
- end
-end
-
-class Rake::TestFileListPathMap < Test::Unit::TestCase
- def test_file_list_supports_pathmap
- assert_equal ['a', 'b'], FileList['dir/a.rb', 'dir/b.rb'].pathmap("%n")
- end
-end
diff --git a/test/rake/test_pseudo_status.rb b/test/rake/test_pseudo_status.rb
deleted file mode 100644
index 8bafd5f80a..0000000000
--- a/test/rake/test_pseudo_status.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-require_relative 'capture_stdout'
-
-class Rake::TestPseudoStatus < Test::Unit::TestCase
- def test_with_zero_exit_status
- s = Rake::PseudoStatus.new
- assert_equal 0, s.exitstatus
- assert_equal 0, s.to_i
- assert_equal 0, s >> 8
- assert ! s.stopped?
- assert s.exited?
- end
- def test_with_99_exit_status
- s = Rake::PseudoStatus.new(99)
- assert_equal 99, s.exitstatus
- assert_equal 25344, s.to_i
- assert_equal 99, s >> 8
- assert ! s.stopped?
- assert s.exited?
- end
-end
diff --git a/test/rake/test_rake.rb b/test/rake/test_rake.rb
deleted file mode 100644
index 52230fe148..0000000000
--- a/test/rake/test_rake.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-class Rake::TestRake < Test::Unit::TestCase
- def test_each_dir_parent
- assert_equal ['a'], alldirs('a')
- assert_equal ['a/b', 'a'], alldirs('a/b')
- assert_equal ['/a/b', '/a', '/'], alldirs('/a/b')
- if File.dirname("c:/foo") == "c:"
- # Under Unix
- assert_equal ['c:/a/b', 'c:/a', 'c:'], alldirs('c:/a/b')
- assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
- else
- # Under Windows
- assert_equal ['c:/a/b', 'c:/a', 'c:/'], alldirs('c:/a/b')
- assert_equal ['c:a/b', 'c:a'], alldirs('c:a/b')
- end
- end
-
- def alldirs(fn)
- result = []
- Rake.each_dir_parent(fn) { |d| result << d }
- result
- end
-
- def test_can_override_application
- old_app = Rake.application
- fake_app = Object.new
- Rake.application = fake_app
- assert_equal fake_app, Rake.application
- ensure
- Rake.application = old_app
- end
-
- def test_original_dir_reports_current_dir
- assert_equal Dir.pwd, Rake.original_dir
- end
-
-end
diff --git a/test/rake/test_rdoc_task.rb b/test/rake/test_rdoc_task.rb
deleted file mode 100644
index 362c2c6800..0000000000
--- a/test/rake/test_rdoc_task.rb
+++ /dev/null
@@ -1,84 +0,0 @@
-require 'test/unit'
-require 'rake/rdoctask'
-
-class Rake::TestRDocTask < Test::Unit::TestCase
- include Rake
-
- def setup
- Task.clear
- end
-
- def test_tasks_creation
- Rake::RDocTask.new
- assert Task[:rdoc]
- assert Task[:clobber_rdoc]
- assert Task[:rerdoc]
- end
-
- def test_tasks_creation_with_custom_name_symbol
- rd = Rake::RDocTask.new(:rdoc_dev)
- assert Task[:rdoc_dev]
- assert Task[:clobber_rdoc_dev]
- assert Task[:rerdoc_dev]
- assert_equal :rdoc_dev, rd.name
- end
-
- def test_tasks_creation_with_custom_name_string
- rd = Rake::RDocTask.new("rdoc_dev")
- assert Task[:rdoc_dev]
- assert Task[:clobber_rdoc_dev]
- assert Task[:rerdoc_dev]
- assert_equal "rdoc_dev", rd.name
- end
-
- def test_tasks_creation_with_custom_name_hash
- options = { :rdoc => "rdoc", :clobber_rdoc => "rdoc:clean", :rerdoc => "rdoc:force" }
- rd = Rake::RDocTask.new(options)
- assert Task[:"rdoc"]
- assert Task[:"rdoc:clean"]
- assert Task[:"rdoc:force"]
- assert_raises(RuntimeError) { Task[:clobber_rdoc] }
- assert_equal options, rd.name
- end
-
- def test_tasks_creation_with_custom_name_hash_will_use_default_if_an_option_isnt_given
- rd = Rake::RDocTask.new(:clobber_rdoc => "rdoc:clean")
- assert Task[:rdoc]
- assert Task[:"rdoc:clean"]
- assert Task[:rerdoc]
- end
-
- def test_tasks_creation_with_custom_name_hash_raises_exception_if_invalid_option_given
- assert_raises(ArgumentError) do
- Rake::RDocTask.new(:foo => "bar")
- end
-
- begin
- Rake::RDocTask.new(:foo => "bar")
- rescue ArgumentError => e
- assert_match(/foo/, e.message)
- end
- end
-
- def test_inline_source_is_enabled_by_default
- rd = Rake::RDocTask.new
- assert rd.option_list.include?('--inline-source')
- end
-
- def test_inline_source_option_is_only_appended_if_option_not_already_given
- rd = Rake::RDocTask.new
- rd.options << '--inline-source'
- assert_equal 1, rd.option_list.grep('--inline-source').size
-
- rd = Rake::RDocTask.new
- rd.options << '-S'
- assert_equal 1, rd.option_list.grep('-S').size
- assert_equal 0, rd.option_list.grep('--inline-source').size
- end
-
- def test_inline_source_option_can_be_disabled
- rd = Rake::RDocTask.new
- rd.inline_source = false
- assert !rd.option_list.include?('--inline-source')
- end
-end
diff --git a/test/rake/test_require.rb b/test/rake/test_require.rb
deleted file mode 100644
index 8e6e2e9d5b..0000000000
--- a/test/rake/test_require.rb
+++ /dev/null
@@ -1,32 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-# ====================================================================
-class Rake::TestRequire < Test::Unit::TestCase
- RakeLibDir = File.dirname(__FILE__) + '/data/rakelib'
-
- def test_can_load_rake_library
- app = Rake::Application.new
- assert app.instance_eval {
- rake_require("test1", [RakeLibDir], [])
- }
- end
-
- def test_wont_reload_rake_library
- app = Rake::Application.new
- assert ! app.instance_eval {
- rake_require("test2", [RakeLibDir], ['test2'])
- }
- end
-
- def test_throws_error_if_library_not_found
- app = Rake::Application.new
- ex = assert_raise(LoadError) {
- assert app.instance_eval {
- rake_require("testx", [RakeLibDir], [])
- }
- }
- assert_match(/x/, ex.message)
- end
-end
-
diff --git a/test/rake/test_rules.rb b/test/rake/test_rules.rb
deleted file mode 100644
index 6e4f22424d..0000000000
--- a/test/rake/test_rules.rb
+++ /dev/null
@@ -1,345 +0,0 @@
-require 'test/unit'
-require 'fileutils'
-require 'rake'
-require_relative 'filecreation'
-
-######################################################################
-class Rake::TestRules < Test::Unit::TestCase
- include Rake
- include FileCreation
-
- SRCFILE = "testdata/abc.c"
- SRCFILE2 = "testdata/xyz.c"
- FTNFILE = "testdata/abc.f"
- OBJFILE = "testdata/abc.o"
- FOOFILE = "testdata/foo"
- DOTFOOFILE = "testdata/.foo"
-
- def setup
- Task.clear
- @runs = []
- end
-
- def teardown
- FileList['testdata/*'].uniq.each do |f| rm_r(f, :verbose=>false) end
- end
-
- def test_multiple_rules1
- create_file(FTNFILE)
- delete_file(SRCFILE)
- delete_file(OBJFILE)
- rule(/\.o$/ => ['.c']) do @runs << :C end
- rule(/\.o$/ => ['.f']) do @runs << :F end
- t = Task[OBJFILE]
- t.invoke
- Task[OBJFILE].invoke
- assert_equal [:F], @runs
- end
-
- def test_multiple_rules2
- create_file(FTNFILE)
- delete_file(SRCFILE)
- delete_file(OBJFILE)
- rule(/\.o$/ => ['.f']) do @runs << :F end
- rule(/\.o$/ => ['.c']) do @runs << :C end
- Task[OBJFILE].invoke
- assert_equal [:F], @runs
- end
-
- def test_create_with_source
- create_file(SRCFILE)
- rule(/\.o$/ => ['.c']) do |t|
- @runs << t.name
- assert_equal OBJFILE, t.name
- assert_equal SRCFILE, t.source
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
-
- def test_single_dependent
- create_file(SRCFILE)
- rule(/\.o$/ => '.c') do |t|
- @runs << t.name
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
-
- def test_rule_can_be_created_by_string
- create_file(SRCFILE)
- rule '.o' => ['.c'] do |t|
- @runs << t.name
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
-
- def test_rule_prereqs_can_be_created_by_string
- create_file(SRCFILE)
- rule '.o' => '.c' do |t|
- @runs << t.name
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
-
- def test_plain_strings_as_dependents_refer_to_files
- create_file(SRCFILE)
- rule '.o' => SRCFILE do |t|
- @runs << t.name
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
-
- def test_file_names_beginning_with_dot_can_be_tricked_into_refering_to_file
- verbose(false) do
- chdir("testdata") do
- create_file('.foo')
- rule '.o' => "./.foo" do |t|
- @runs << t.name
- end
- Task[OBJFILE].invoke
- assert_equal [OBJFILE], @runs
- end
- end
- end
-
- def test_file_names_beginning_with_dot_can_be_wrapped_in_lambda
- verbose(false) do
- chdir("testdata") do
- create_file(".foo")
- rule '.o' => lambda{".foo"} do |t|
- @runs << "#{t.name} - #{t.source}"
- end
- Task[OBJFILE].invoke
- assert_equal ["#{OBJFILE} - .foo"], @runs
- end
- end
- end
-
- def test_file_names_containing_percent_can_be_wrapped_in_lambda
- verbose(false) do
- chdir("testdata") do
- create_file("foo%x")
- rule '.o' => lambda{"foo%x"} do |t|
- @runs << "#{t.name} - #{t.source}"
- end
- Task[OBJFILE].invoke
- assert_equal ["#{OBJFILE} - foo%x"], @runs
- end
- end
- end
-
- def test_non_extension_rule_name_refers_to_file
- verbose(false) do
- chdir("testdata") do
- create_file("abc.c")
- rule "abc" => '.c' do |t|
- @runs << t.name
- end
- Task["abc"].invoke
- assert_equal ["abc"], @runs
- end
- end
- end
-
- def test_pathmap_automatically_applies_to_name
- verbose(false) do
- chdir("testdata") do
- create_file("zzabc.c")
- rule ".o" => 'zz%{x,a}n.c' do |t|
- @runs << "#{t.name} - #{t.source}"
- end
- Task["xbc.o"].invoke
- assert_equal ["xbc.o - zzabc.c"], @runs
- end
- end
- end
-
- def test_plain_strings_are_just_filenames
- verbose(false) do
- chdir("testdata") do
- create_file("plainname")
- rule ".o" => 'plainname' do |t|
- @runs << "#{t.name} - #{t.source}"
- end
- Task["xbc.o"].invoke
- assert_equal ["xbc.o - plainname"], @runs
- end
- end
- end
-
- def test_rule_runs_when_explicit_task_has_no_actions
- create_file(SRCFILE)
- create_file(SRCFILE2)
- delete_file(OBJFILE)
- rule '.o' => '.c' do |t|
- @runs << t.source
- end
- file OBJFILE => [SRCFILE2]
- Task[OBJFILE].invoke
- assert_equal [SRCFILE], @runs
- end
-
- def test_close_matches_on_name_do_not_trigger_rule
- create_file("testdata/x.c")
- rule '.o' => ['.c'] do |t|
- @runs << t.name
- end
- assert_raise(RuntimeError) { Task['testdata/x.obj'].invoke }
- assert_raise(RuntimeError) { Task['testdata/x.xyo'].invoke }
- end
-
- def test_rule_rebuilds_obj_when_source_is_newer
- create_timed_files(OBJFILE, SRCFILE)
- rule(/\.o$/ => ['.c']) do
- @runs << :RULE
- end
- Task[OBJFILE].invoke
- assert_equal [:RULE], @runs
- end
-
- def test_rule_with_two_sources_runs_if_both_sources_are_present
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
- rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
- @runs << :RULE
- end
- Task[OBJFILE].invoke
- assert_equal [:RULE], @runs
- end
-
- def test_rule_with_two_sources_but_one_missing_does_not_run
- create_timed_files(OBJFILE, SRCFILE)
- delete_file(SRCFILE2)
- rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
- @runs << :RULE
- end
- Task[OBJFILE].invoke
- assert_equal [], @runs
- end
-
- def test_rule_with_two_sources_builds_both_sources
- task 'x.aa'
- task 'x.bb'
- rule '.a' => '.aa' do
- @runs << "A"
- end
- rule '.b' => '.bb' do
- @runs << "B"
- end
- rule ".c" => ['.a', '.b'] do
- @runs << "C"
- end
- Task["x.c"].invoke
- assert_equal ["A", "B", "C"], @runs.sort
- end
-
- def test_second_rule_runs_when_first_rule_doesnt
- create_timed_files(OBJFILE, SRCFILE)
- delete_file(SRCFILE2)
- rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
- @runs << :RULE1
- end
- rule OBJFILE => [lambda{SRCFILE}] do
- @runs << :RULE2
- end
- Task[OBJFILE].invoke
- assert_equal [:RULE2], @runs
- end
-
- def test_second_rule_doest_run_if_first_triggers
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
- rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
- @runs << :RULE1
- end
- rule OBJFILE => [lambda{SRCFILE}] do
- @runs << :RULE2
- end
- Task[OBJFILE].invoke
- assert_equal [:RULE1], @runs
- end
-
- def test_second_rule_doest_run_if_first_triggers_with_reversed_rules
- create_timed_files(OBJFILE, SRCFILE, SRCFILE2)
- rule OBJFILE => [lambda{SRCFILE}] do
- @runs << :RULE1
- end
- rule OBJFILE => [lambda{SRCFILE}, lambda{SRCFILE2}] do
- @runs << :RULE2
- end
- Task[OBJFILE].invoke
- assert_equal [:RULE1], @runs
- end
-
- def test_rule_with_proc_dependent_will_trigger
- ran = false
- mkdir_p("testdata/src/jw")
- create_file("testdata/src/jw/X.java")
- rule %r(classes/.*\.class) => [
- proc { |fn| fn.pathmap("%{classes,testdata/src}d/%n.java") }
- ] do |task|
- assert_equal task.name, 'classes/jw/X.class'
- assert_equal task.source, 'testdata/src/jw/X.java'
- @runs << :RULE
- end
- Task['classes/jw/X.class'].invoke
- assert_equal [:RULE], @runs
- ensure
- rm_r("testdata/src", :verbose=>false) rescue nil
- end
-
- def test_proc_returning_lists_are_flattened_into_prereqs
- ran = false
- mkdir_p("testdata/flatten")
- create_file("testdata/flatten/a.txt")
- task 'testdata/flatten/b.data' do |t|
- ran = true
- touch t.name, :verbose => false
- end
- rule '.html' =>
- proc { |fn|
- [
- fn.ext("txt"),
- "testdata/flatten/b.data"
- ]
- } do |task|
- end
- Task['testdata/flatten/a.html'].invoke
- assert ran, "Should have triggered flattened dependency"
- ensure
- rm_r("testdata/flatten", :verbose=>false) rescue nil
- end
-
- def test_recursive_rules_will_work_as_long_as_they_terminate
- actions = []
- create_file("testdata/abc.xml")
- rule '.y' => '.xml' do actions << 'y' end
- rule '.c' => '.y' do actions << 'c'end
- rule '.o' => '.c' do actions << 'o'end
- rule '.exe' => '.o' do actions << 'exe'end
- Task["testdata/abc.exe"].invoke
- assert_equal ['y', 'c', 'o', 'exe'], actions
- end
-
- def test_recursive_rules_that_dont_terminate_will_overflow
- create_file("testdata/a.a")
- prev = 'a'
- ('b'..'z').each do |letter|
- rule ".#{letter}" => ".#{prev}" do |t| puts "#{t.name}" end
- prev = letter
- end
- ex = assert_raise(Rake::RuleRecursionOverflowError) {
- Task["testdata/a.z"].invoke
- }
- assert_match(/a\.z => testdata\/a.y/, ex.message)
- end
-
- def test_rules_with_bad_dependents_will_fail
- rule "a" => [ 1 ] do |t| puts t.name end
- assert_raise(RuntimeError) do Task['a'].invoke end
- end
-
-end
-
diff --git a/test/rake/test_task_arguments.rb b/test/rake/test_task_arguments.rb
deleted file mode 100644
index deb5f19ea2..0000000000
--- a/test/rake/test_task_arguments.rb
+++ /dev/null
@@ -1,87 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-######################################################################
-class Rake::TestTaskArguments < Test::Unit::TestCase
- def teardown
- ENV.delete('rev')
- ENV.delete('VER')
- end
-
- def test_empty_arg_list_is_empty
- ta = Rake::TaskArguments.new([], [])
- assert_equal({}, ta.to_hash)
- end
-
- def test_multiple_values_in_args
- ta = Rake::TaskArguments.new([:a, :b, :c], [:one, :two, :three])
- assert_equal({:a => :one, :b => :two, :c => :three}, ta.to_hash)
- end
-
- def test_to_s
- ta = Rake::TaskArguments.new([:a, :b, :c], [1, 2, 3])
- assert_equal ta.to_hash.inspect, ta.to_s
- assert_equal ta.to_hash.inspect, ta.inspect
- end
-
- def test_enumerable_behavior
- ta = Rake::TaskArguments.new([:a, :b, :c], [1, 2 ,3])
- assert_equal [10, 20, 30], ta.collect { |k,v| v * 10 }.sort
- end
-
- def test_named_args
- ta = Rake::TaskArguments.new(["aa", "bb"], [1, 2])
- assert_equal 1, ta.aa
- assert_equal 1, ta[:aa]
- assert_equal 1, ta["aa"]
- assert_equal 2, ta.bb
- assert_nil ta.cc
- end
-
- def test_args_knows_its_names
- ta = Rake::TaskArguments.new(["aa", "bb"], [1, 2])
- assert_equal ["aa", "bb"], ta.names
- end
-
- def test_extra_names_are_nil
- ta = Rake::TaskArguments.new(["aa", "bb", "cc"], [1, 2])
- assert_nil ta.cc
- end
-
- def test_args_can_reference_env_values
- ta = Rake::TaskArguments.new(["aa"], [1])
- ENV['rev'] = "1.2"
- ENV['VER'] = "2.3"
- assert_equal "1.2", ta.rev
- assert_equal "2.3", ta.ver
- end
-
- def test_creating_new_argument_scopes
- parent = Rake::TaskArguments.new(['p'], [1])
- child = parent.new_scope(['c', 'p'])
- assert_equal({:p=>1}, child.to_hash)
- assert_equal 1, child.p
- assert_equal 1, child["p"]
- assert_equal 1, child[:p]
- assert_nil child.c
- end
-
- def test_child_hides_parent_arg_names
- parent = Rake::TaskArguments.new(['aa'], [1])
- child = Rake::TaskArguments.new(['aa'], [2], parent)
- assert_equal 2, child.aa
- end
-
- def test_default_arguments_values_can_be_merged
- ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
- ta.with_defaults({ :aa => 'default_val' })
- assert_equal 'default_val', ta[:aa]
- assert_equal 'original_val', ta[:bb]
- end
-
- def test_default_arguements_that_dont_match_names_are_ignored
- ta = Rake::TaskArguments.new(["aa", "bb"], [nil, "original_val"])
- ta.with_defaults({ "cc" => "default_val" })
- assert_nil ta[:cc]
- end
-end
diff --git a/test/rake/test_task_manager.rb b/test/rake/test_task_manager.rb
deleted file mode 100644
index 94c30d9c82..0000000000
--- a/test/rake/test_task_manager.rb
+++ /dev/null
@@ -1,170 +0,0 @@
-require 'test/unit'
-require 'rake'
-
-class Rake::TestTaskManager < Test::Unit::TestCase
- class TaskManager
- include Rake::TaskManager
- end
-
- def setup
- @tm = TaskManager.new
- end
-
- def test_create_task_manager
- assert_not_nil @tm
- assert_equal [], @tm.tasks
- end
-
- def test_define_task
- t = @tm.define_task(Rake::Task, :t)
- assert_equal "t", t.name
- assert_equal @tm, t.application
- end
-
- def test_name_lookup
- t = @tm.define_task(Rake::Task, :t)
- assert_equal t, @tm[:t]
- end
-
- def test_namespace_task_create
- @tm.in_namespace("x") do
- t = @tm.define_task(Rake::Task, :t)
- assert_equal "x:t", t.name
- end
- assert_equal ["x:t"], @tm.tasks.collect { |t| t.name }
- end
-
- def test_anonymous_namespace
- anon_ns = @tm.in_namespace(nil) do
- t = @tm.define_task(Rake::Task, :t)
- assert_equal "_anon_1:t", t.name
- end
- task = anon_ns[:t]
- assert_equal "_anon_1:t", task.name
- end
-
- def test_create_filetask_in_namespace
- @tm.in_namespace("x") do
- t = @tm.define_task(Rake::FileTask, "fn")
- assert_equal "fn", t.name
- end
- assert_equal ["fn"], @tm.tasks.collect { |t| t.name }
- end
-
- def test_namespace_yields_same_namespace_as_returned
- yielded_namespace = nil
- returned_namespace = @tm.in_namespace("x") do |ns|
- yielded_namespace = ns
- end
- assert_equal returned_namespace, yielded_namespace
- end
-
- def test_name_lookup_with_implicit_file_tasks
- t = @tm["README"]
- assert_equal "README", t.name
- assert Rake::FileTask === t
- end
-
- def test_name_lookup_with_nonexistent_task
- assert_raise(RuntimeError) {
- t = @tm["DOES NOT EXIST"]
- }
- end
-
- def test_name_lookup_in_multiple_scopes
- aa = nil
- bb = nil
- xx = @tm.define_task(Rake::Task, :xx)
- top_z = @tm.define_task(Rake::Task, :z)
- @tm.in_namespace("a") do
- aa = @tm.define_task(Rake::Task, :aa)
- mid_z = @tm.define_task(Rake::Task, :z)
- @tm.in_namespace("b") do
- bb = @tm.define_task(Rake::Task, :bb)
- bot_z = @tm.define_task(Rake::Task, :z)
-
- assert_equal ["a", "b"], @tm.current_scope
-
- assert_equal bb, @tm["a:b:bb"]
- assert_equal aa, @tm["a:aa"]
- assert_equal xx, @tm["xx"]
- assert_equal bot_z, @tm["z"]
- assert_equal mid_z, @tm["^z"]
- assert_equal top_z, @tm["^^z"]
- assert_equal top_z, @tm["rake:z"]
- end
-
- assert_equal ["a"], @tm.current_scope
-
- assert_equal bb, @tm["a:b:bb"]
- assert_equal aa, @tm["a:aa"]
- assert_equal xx, @tm["xx"]
- assert_equal bb, @tm["b:bb"]
- assert_equal aa, @tm["aa"]
- assert_equal mid_z, @tm["z"]
- assert_equal top_z, @tm["^z"]
- assert_equal top_z, @tm["rake:z"]
- end
-
- assert_equal [], @tm.current_scope
-
- assert_equal [], xx.scope
- assert_equal ['a'], aa.scope
- assert_equal ['a', 'b'], bb.scope
- end
-
- def test_lookup_with_explicit_scopes
- t1, t2, t3, s = (0...4).collect { nil }
- t1 = @tm.define_task(Rake::Task, :t)
- @tm.in_namespace("a") do
- t2 = @tm.define_task(Rake::Task, :t)
- s = @tm.define_task(Rake::Task, :s)
- @tm.in_namespace("b") do
- t3 = @tm.define_task(Rake::Task, :t)
- end
- end
- assert_equal t1, @tm[:t, []]
- assert_equal t2, @tm[:t, ["a"]]
- assert_equal t3, @tm[:t, ["a", "b"]]
- assert_equal s, @tm[:s, ["a", "b"]]
- assert_equal s, @tm[:s, ["a"]]
- end
-
- def test_correctly_scoped_prerequisites_are_invoked
- values = []
- @tm = Rake::Application.new
- @tm.define_task(Rake::Task, :z) do values << "top z" end
- @tm.in_namespace("a") do
- @tm.define_task(Rake::Task, :z) do values << "next z" end
- @tm.define_task(Rake::Task, :x => :z)
- end
-
- @tm["a:x"].invoke
- assert_equal ["next z"], values
- end
-
-end
-
-class Rake::TestTaskManagerArgumentResolution < Test::Unit::TestCase
- TaskManager = Rake::TestTaskManager::TaskManager
-
- def test_good_arg_patterns
- assert_equal [:t, [], []], task(:t)
- assert_equal [:t, [], [:x]], task(:t => :x)
- assert_equal [:t, [], [:x, :y]], task(:t => [:x, :y])
-
- assert_equal [:t, [:a, :b], []], task(:t, :a, :b)
- assert_equal [:t, [], [:x]], task(:t, :needs => :x)
- assert_equal [:t, [:a, :b], [:x]], task(:t, :a, :b, :needs => :x)
- assert_equal [:t, [:a, :b], [:x, :y]], task(:t, :a, :b, :needs => [:x, :y])
-
- assert_equal [:t, [:a, :b], []], task(:t, [:a, :b])
- assert_equal [:t, [:a, :b], [:x]], task(:t, [:a, :b] => :x)
- assert_equal [:t, [:a, :b], [:x, :y]], task(:t, [:a, :b] => [:x, :y])
- end
-
- def task(*args)
- tm = TaskManager.new
- tm.resolve_args(args)
- end
-end
diff --git a/test/rake/test_tasklib.rb b/test/rake/test_tasklib.rb
deleted file mode 100644
index c8b9cecdb2..0000000000
--- a/test/rake/test_tasklib.rb
+++ /dev/null
@@ -1,10 +0,0 @@
-require 'test/unit'
-require 'rake/tasklib'
-
-
-class Rake::TestTaskLib < Test::Unit::TestCase
- def test_paste
- tl = Rake::TaskLib.new
- assert_equal :ab, tl.paste(:a, :b)
- end
-end
diff --git a/test/rake/test_tasks.rb b/test/rake/test_tasks.rb
deleted file mode 100644
index a042ec4fc2..0000000000
--- a/test/rake/test_tasks.rb
+++ /dev/null
@@ -1,369 +0,0 @@
-require 'test/unit'
-require 'fileutils'
-require 'rake'
-require_relative 'filecreation'
-require_relative 'capture_stdout'
-
-######################################################################
-class Rake::TestTasks < Test::Unit::TestCase
- include CaptureStdout
- include Rake
-
- def setup
- Task.clear
- end
-
- def test_create
- arg = nil
- t = task(:name) { |task| arg = task; 1234 }
- assert_equal "name", t.name
- assert_equal [], t.prerequisites
- assert t.needed?
- t.execute(0)
- assert_equal t, arg
- assert_nil t.source
- assert_equal [], t.sources
- end
-
- def test_inspect
- t = task(:foo, :needs => [:bar, :baz])
- assert_equal "<Rake::Task foo => [bar, baz]>", t.inspect
- end
-
- def test_invoke
- runlist = []
- t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
- t2 = task(:t2) { |t| runlist << t.name }
- t3 = task(:t3) { |t| runlist << t.name }
- assert_equal ["t2", "t3"], t1.prerequisites
- t1.invoke
- assert_equal ["t2", "t3", "t1"], runlist
- end
-
- def test_invoke_with_circular_dependencies
- runlist = []
- t1 = task(:t1 => [:t2]) { |t| runlist << t.name; 3321 }
- t2 = task(:t2 => [:t1]) { |t| runlist << t.name }
- assert_equal ["t2"], t1.prerequisites
- assert_equal ["t1"], t2.prerequisites
- ex = assert_raise RuntimeError do
- t1.invoke
- end
- assert_match(/circular dependency/i, ex.message)
- assert_match(/t1 => t2 => t1/, ex.message)
- end
-
- def test_dry_run_prevents_actions
- Rake.application.options.dryrun = true
- runlist = []
- t1 = task(:t1) { |t| runlist << t.name; 3321 }
- out = capture_stdout { t1.invoke }
- assert_match(/execute .*t1/i, out)
- assert_match(/dry run/i, out)
- assert_no_match(/invoke/i, out)
- assert_equal [], runlist
- ensure
- Rake.application.options.dryrun = false
- end
-
- def test_tasks_can_be_traced
- Rake.application.options.trace = true
- t1 = task(:t1)
- out = capture_stdout {
- t1.invoke
- }
- assert_match(/invoke t1/i, out)
- assert_match(/execute t1/i, out)
- ensure
- Rake.application.options.trace = false
- end
-
- def test_no_double_invoke
- runlist = []
- t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
- t2 = task(:t2 => [:t3]) { |t| runlist << t.name }
- t3 = task(:t3) { |t| runlist << t.name }
- t1.invoke
- assert_equal ["t3", "t2", "t1"], runlist
- end
-
- def test_can_double_invoke_with_reenable
- runlist = []
- t1 = task(:t1) { |t| runlist << t.name }
- t1.invoke
- t1.reenable
- t1.invoke
- assert_equal ["t1", "t1"], runlist
- end
-
- def test_clear
- t = task("t" => "a") { }
- t.clear
- assert t.prerequisites.empty?, "prerequisites should be empty"
- assert t.actions.empty?, "actions should be empty"
- end
-
- def test_clear_prerequisites
- t = task("t" => ["a", "b"])
- assert_equal ['a', 'b'], t.prerequisites
- t.clear_prerequisites
- assert_equal [], t.prerequisites
- end
-
- def test_clear_actions
- t = task("t") { }
- t.clear_actions
- assert t.actions.empty?, "actions should be empty"
- end
-
- def test_find
- task :tfind
- assert_equal "tfind", Task[:tfind].name
- ex = assert_raise(RuntimeError) { Task[:leaves] }
- assert_equal "Don't know how to build task 'leaves'", ex.message
- end
-
- def test_defined
- assert ! Task.task_defined?(:a)
- task :a
- assert Task.task_defined?(:a)
- end
-
- def test_multi_invocations
- runs = []
- p = proc do |t| runs << t.name end
- task({:t1=>[:t2,:t3]}, &p)
- task({:t2=>[:t3]}, &p)
- task(:t3, &p)
- Task[:t1].invoke
- assert_equal ["t1", "t2", "t3"], runs.sort
- end
-
- def test_task_list
- task :t2
- task :t1 => [:t2]
- assert_equal ["t1", "t2"], Task.tasks.collect {|t| t.name}
- end
-
- def test_task_gives_name_on_to_s
- task :abc
- assert_equal "abc", Task[:abc].to_s
- end
-
- def test_symbols_can_be_prerequisites
- task :a => :b
- assert_equal ["b"], Task[:a].prerequisites
- end
-
- def test_strings_can_be_prerequisites
- task :a => "b"
- assert_equal ["b"], Task[:a].prerequisites
- end
-
- def test_arrays_can_be_prerequisites
- task :a => ["b", "c"]
- assert_equal ["b", "c"], Task[:a].prerequisites
- end
-
- def test_filelists_can_be_prerequisites
- task :a => FileList.new.include("b", "c")
- assert_equal ["b", "c"], Task[:a].prerequisites
- end
-
- def test_investigation_output
- t1 = task(:t1 => [:t2, :t3]) { |t| runlist << t.name; 3321 }
- task(:t2)
- task(:t3)
- out = t1.investigation
- assert_match(/class:\s*Rake::Task/, out)
- assert_match(/needed:\s*true/, out)
- assert_match(/pre-requisites:\s*--t[23]/, out)
- end
-
-
- def test_extended_comments
- desc %{
- This is a comment.
-
- And this is the extended comment.
- name -- Name of task to execute.
- rev -- Software revision to use.
- }
- t = task(:t, :name, :rev)
- assert_equal "[name,rev]", t.arg_description
- assert_equal "This is a comment.", t.comment
- assert_match(/^\s*name -- Name/, t.full_comment)
- assert_match(/^\s*rev -- Software/, t.full_comment)
- assert_match(/\A\s*This is a comment\.$/, t.full_comment)
- end
-
- def test_multiple_comments
- desc "line one"
- t = task(:t)
- desc "line two"
- task(:t)
- assert_equal "line one / line two", t.comment
- end
-
- def test_settable_comments
- t = task(:t)
- t.comment = "HI"
- assert_equal "HI", t.comment
- end
-end
-
-######################################################################
-class Rake::TestTaskWithArguments < Test::Unit::TestCase
- include CaptureStdout
- include Rake
-
- def setup
- Task.clear
- end
-
- def test_no_args_given
- t = task :t
- assert_equal [], t.arg_names
- end
-
- def test_args_given
- t = task :t, :a, :b
- assert_equal [:a, :b], t.arg_names
- end
-
- def test_name_and_needs
- t = task(:t => [:pre])
- assert_equal "t", t.name
- assert_equal [], t.arg_names
- assert_equal ["pre"], t.prerequisites
- end
-
- def test_name_and_explicit_needs
- t = task(:t, :needs => [:pre])
- assert_equal "t", t.name
- assert_equal [], t.arg_names
- assert_equal ["pre"], t.prerequisites
- end
-
- def test_name_args_and_explicit_needs
- t = task(:t, :x, :y, :needs => [:pre])
- assert_equal "t", t.name
- assert_equal [:x, :y], t.arg_names
- assert_equal ["pre"], t.prerequisites
- end
-
- def test_illegal_keys_in_task_name_hash
- assert_raise RuntimeError do
- t = task(:t, :x, :y => 1, :needs => [:pre])
- end
- end
-
- def test_arg_list_is_empty_if_no_args_given
- t = task(:t) { |tt, args| assert_equal({}, args.to_hash) }
- t.invoke(1, 2, 3)
- end
-
- def test_tasks_can_access_arguments_as_hash
- t = task :t, :a, :b, :c do |tt, args|
- assert_equal({:a => 1, :b => 2, :c => 3}, args.to_hash)
- assert_equal 1, args[:a]
- assert_equal 2, args[:b]
- assert_equal 3, args[:c]
- assert_equal 1, args.a
- assert_equal 2, args.b
- assert_equal 3, args.c
- end
- t.invoke(1, 2, 3)
- end
-
- def test_actions_of_various_arity_are_ok_with_args
- notes = []
- t = task(:t, :x) do
- notes << :a
- end
- t.enhance do | |
- notes << :b
- end
- t.enhance do |task|
- notes << :c
- assert_kind_of Task, task
- end
- t.enhance do |t2, args|
- notes << :d
- assert_equal t, t2
- assert_equal({:x => 1}, args.to_hash)
- end
- assert_nothing_raised do t.invoke(1) end
- assert_equal [:a, :b, :c, :d], notes
- end
-
- def test_arguments_are_passed_to_block
- t = task(:t, :a, :b) { |tt, args|
- assert_equal( { :a => 1, :b => 2 }, args.to_hash )
- }
- t.invoke(1, 2)
- end
-
- def test_extra_parameters_are_ignored
- t = task(:t, :a) { |tt, args|
- assert_equal 1, args.a
- assert_nil args.b
- }
- t.invoke(1, 2)
- end
-
- def test_arguments_are_passed_to_all_blocks
- counter = 0
- t = task :t, :a
- task :t do |tt, args|
- assert_equal 1, args.a
- counter += 1
- end
- task :t do |tt, args|
- assert_equal 1, args.a
- counter += 1
- end
- t.invoke(1)
- assert_equal 2, counter
- end
-
- def test_block_with_no_parameters_is_ok
- t = task(:t) { }
- t.invoke(1, 2)
- end
-
- def test_name_with_args
- desc "T"
- t = task(:tt, :a, :b)
- assert_equal "tt", t.name
- assert_equal "T", t.comment
- assert_equal "[a,b]", t.arg_description
- assert_equal "tt[a,b]", t.name_with_args
- assert_equal [:a, :b],t.arg_names
- end
-
- def test_named_args_are_passed_to_prereqs
- value = nil
- pre = task(:pre, :rev) { |t, args| value = args.rev }
- t = task(:t, :name, :rev, :needs => [:pre])
- t.invoke("bill", "1.2")
- assert_equal "1.2", value
- end
-
- def test_args_not_passed_if_no_prereq_names
- pre = task(:pre) { |t, args|
- assert_equal({}, args.to_hash)
- assert_equal "bill", args.name
- }
- t = task(:t, :name, :rev, :needs => [:pre])
- t.invoke("bill", "1.2")
- end
-
- def test_args_not_passed_if_no_arg_names
- pre = task(:pre, :rev) { |t, args|
- assert_equal({}, args.to_hash)
- }
- t = task(:t, :needs => [:pre])
- t.invoke("bill", "1.2")
- end
-end
diff --git a/test/rake/test_test_task.rb b/test/rake/test_test_task.rb
deleted file mode 100644
index a0dc7a0717..0000000000
--- a/test/rake/test_test_task.rb
+++ /dev/null
@@ -1,81 +0,0 @@
-require 'tmpdir'
-require 'test/unit'
-require 'rake/testtask'
-
-class Rake::TestTestTask < Test::Unit::TestCase
- include Rake
-
- def setup
- @oldwd = Dir.pwd
- @tmpwd = Dir.mktmpdir
- Dir.chdir(@tmpwd)
- Task.clear
- ENV.delete('TEST')
- open('install.rb', 'w') {}
- end
-
- def teardown
- FileUtils.rm_rf("testdata")
- Dir.chdir(@oldwd)
- FileUtils.rm_rf(@tmpwd)
- end
-
- def test_no_task
- assert ! Task.task_defined?(:test)
- end
-
- def test_defaults
- tt = Rake::TestTask.new do |t| end
- assert_not_nil tt
- assert_equal :test, tt.name
- assert_equal ['lib'], tt.libs
- assert_equal 'test/test*.rb', tt.pattern
- assert_equal false, tt.verbose
- assert Task.task_defined?(:test)
- end
-
- def test_non_defaults
- tt = Rake::TestTask.new(:example) do |t|
- t.libs = ['src', 'ext']
- t.pattern = 'test/tc_*.rb'
- t.verbose = true
- end
- assert_not_nil tt
- assert_equal :example, tt.name
- assert_equal ['src', 'ext'], tt.libs
- assert_equal 'test/tc_*.rb', tt.pattern
- assert_equal true, tt.verbose
- assert Task.task_defined?(:example)
- end
-
- def test_pattern
- tt = Rake::TestTask.new do |t|
- t.pattern = '*.rb'
- end
- assert_equal ['install.rb'], tt.file_list.to_a
- end
-
- def test_env_test
- ENV['TEST'] = 'testfile.rb'
- tt = Rake::TestTask.new do |t|
- t.pattern = '*'
- end
- assert_equal ["testfile.rb"], tt.file_list.to_a
- end
-
- def test_test_files
- tt = Rake::TestTask.new do |t|
- t.test_files = FileList['a.rb', 'b.rb']
- end
- assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
- end
-
- def test_both_pattern_and_test_files
- tt = Rake::TestTask.new do |t|
- t.test_files = FileList['a.rb', 'b.rb']
- t.pattern = '*.rb'
- end
- assert_equal ['a.rb', 'b.rb', 'install.rb'], tt.file_list.to_a
- end
-
-end
diff --git a/test/rake/test_top_level_functions.rb b/test/rake/test_top_level_functions.rb
deleted file mode 100644
index 12a8cd1e36..0000000000
--- a/test/rake/test_top_level_functions.rb
+++ /dev/null
@@ -1,91 +0,0 @@
-require 'test/unit'
-require_relative 'capture_stdout'
-require 'rake'
-
-class Rake::TestTopLevelFunctions < Test::Unit::TestCase
- include CaptureStdout
-
- def setup
- super
- @app = Rake.application
- Rake.application = @mock = Object.new
- end
-
- def teardown
- Rake.application = @app
- super
- end
-
- def defmock(sym, &block)
- class << @mock; self; end.class_eval do
- define_method(sym, block)
- end
- end
-
- def test_namespace
- args = []
- defmock(:in_namespace) {|a, *| args << a}
- namespace "xyz" do end
- assert_equal(["xyz"], args)
- end
-
- def test_import
- args = []
- defmock(:add_import) {|a| args << a}
- import('x', 'y', 'z')
- assert_equal(['x', 'y', 'z'], args)
- end
-
- def test_when_writing
- out = capture_stdout do
- when_writing("NOTWRITING") do
- puts "WRITING"
- end
- end
- assert_equal "WRITING\n", out
- end
-
- def test_when_not_writing
- RakeFileUtils.nowrite_flag = true
- out = capture_stdout do
- when_writing("NOTWRITING") do
- puts "WRITING"
- end
- end
- assert_equal "DRYRUN: NOTWRITING\n", out
- ensure
- RakeFileUtils.nowrite_flag = false
- end
-
- def test_missing_constants_task
- args = []
- defmock(:const_warning) {|a| args << a}
- Object.const_missing(:Task)
- assert_equal([:Task], args)
- end
-
- def test_missing_constants_file_task
- args = []
- defmock(:const_warning) {|a| args << a}
- Object.const_missing(:FileTask)
- assert_equal([:FileTask], args)
- end
-
- def test_missing_constants_file_creation_task
- args = []
- defmock(:const_warning) {|a| args << a}
- Object.const_missing(:FileCreationTask)
- assert_equal([:FileCreationTask], args)
- end
-
- def test_missing_constants_rake_app
- args = []
- defmock(:const_warning) {|a| args << a}
- Object.const_missing(:RakeApp)
- assert_equal([:RakeApp], args)
- end
-
- def test_missing_other_constant
- assert_raise(NameError) do Object.const_missing(:Xyz) end
- end
-end
diff --git a/test/rake/test_win32.rb b/test/rake/test_win32.rb
deleted file mode 100644
index 07db16c140..0000000000
--- a/test/rake/test_win32.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-require 'test/unit'
-require_relative 'in_environment'
-
-require 'rake'
-
-class Rake::TestWin32 < Test::Unit::TestCase
- include InEnvironment
-
- Win32 = Rake::Win32
-
- def test_win32_system_dir_uses_home_if_defined
- in_environment('RAKE_SYSTEM' => nil, 'HOME' => 'C:\\HP') do
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
- end
- end
-
- def test_win32_system_dir_uses_homedrive_homepath_when_no_home_defined
- in_environment(
- 'RAKE_SYSTEM' => nil,
- 'HOME' => nil,
- 'HOMEDRIVE' => "C:",
- 'HOMEPATH' => "\\HP"
- ) do
- assert_equal "C:/HP/Rake", Win32.win32_system_dir
- end
- end
-
- def test_win32_system_dir_uses_appdata_when_no_home_or_home_combo
- in_environment(
- 'RAKE_SYSTEM' => nil,
- 'HOME' => nil,
- 'HOMEDRIVE' => nil,
- 'HOMEPATH' => nil,
- 'APPDATA' => "C:\\Documents and Settings\\HP\\Application Data"
- ) do
- assert_equal "C:/Documents and Settings/HP/Application Data/Rake", Win32.win32_system_dir
- end
- end
-
- def test_win32_system_dir_fallback_to_userprofile_otherwise
- in_environment(
- 'RAKE_SYSTEM' => nil,
- 'HOME' => nil,
- 'HOMEDRIVE' => nil,
- 'HOMEPATH' => nil,
- 'APPDATA' => nil,
- 'USERPROFILE' => "C:\\Documents and Settings\\HP"
- ) do
- assert_equal "C:/Documents and Settings/HP/Rake", Win32.win32_system_dir
- end
- end
-
- def test_win32_system_dir_nil_of_no_env_vars
- in_environment(
- 'RAKE_SYSTEM' => nil,
- 'HOME' => nil,
- 'HOMEDRIVE' => nil,
- "HOMEPATH" => nil,
- 'APPDATA' => nil,
- "USERPROFILE" => nil
- ) do
- assert_raise(Rake::Win32::Win32HomeError) do
- Win32.win32_system_dir
- end
- end
- end
-
-end if Rake::Win32.windows?