diff options
author | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-04-04 12:31:31 +0000 |
---|---|---|
committer | hsbt <hsbt@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-04-04 12:31:31 +0000 |
commit | c4ee0df8ba2cf7cc6aaa785c8df20a91b1719021 (patch) | |
tree | 06beca468cce4a75a3e9890d18aa001ef2c41e54 /test/rake/test_rake_functional.rb | |
parent | 8c0b2a286080609613b6b007e030ff7c7adaa23c (diff) |
* lib/rake/*: Gemify rake [fix GH-862][Feature #11025]
* test/rake/*: ditto.
* tool/rbinstall.rb: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rake/test_rake_functional.rb')
-rw-r--r-- | test/rake/test_rake_functional.rb | 482 |
1 files changed, 0 insertions, 482 deletions
diff --git a/test/rake/test_rake_functional.rb b/test/rake/test_rake_functional.rb deleted file mode 100644 index bf7ba92f75..0000000000 --- a/test/rake/test_rake_functional.rb +++ /dev/null @@ -1,482 +0,0 @@ -require File.expand_path('../helper', __FILE__) -require 'fileutils' -require 'open3' - -class TestRakeFunctional < Rake::TestCase - include RubyRunner - - def setup - super - - if @verbose - puts - puts - puts '-' * 80 - puts @__name__ - puts '-' * 80 - end - end - - def test_rake_default - rakefile_default - - rake - - assert_match(/^DEFAULT$/, @out) - end - - def test_rake_error_on_bad_task - rakefile_default - - rake '-t', 'xyz' - - assert_match(/rake aborted/, @err) - end - - def test_env_available_at_top_scope - rakefile_default - - rake "TESTTOPSCOPE=1" - - assert_match(/^TOPSCOPE$/, @out) - end - - def test_env_available_at_task_scope - rakefile_default - - rake 'TESTTASKSCOPE=1', 'task_scope' - - assert_match(/^TASKSCOPE$/, @out) - end - - def test_multi_desc - ENV['RAKE_COLUMNS'] = '80' - rakefile_multidesc - - rake "-T" - - assert_match %r{^rake a *# A / A2 *$}, @out - assert_match %r{^rake b *# B *$}, @out - refute_match %r{^rake c}, @out - assert_match %r{^rake d *# x{65}\.\.\.$}, @out - end - - def test_long_description - rakefile_multidesc - - rake "--describe" - - assert_match %r{^rake a\n *A\n *A2 *$}m, @out - assert_match %r{^rake b\n *B *$}m, @out - assert_match %r{^rake d\n *x{80}}m, @out - refute_match %r{^rake c\n}m, @out - end - - def test_proper_namespace_access - rakefile_access - - rake - - refute_match %r{^BAD:}, @out - end - - def test_rbext - rakefile_rbext - - rake "-N" - - assert_match %r{^OK$}, @out - end - - def test_system - rake_system_dir - - rake '-g', "sys1" - - assert_match %r{^SYS1}, @out - end - - def test_system_excludes_rakelib_files_too - rake_system_dir - - rake '-g', "sys1", '-T', 'extra' - - refute_match %r{extra:extra}, @out - end - - def test_by_default_rakelib_files_are_included - rake_system_dir - rakefile_extra - - rake '-T', 'extra', '--trace' - - assert_match %r{extra:extra}, @out - end - - def test_implicit_system - rake_system_dir - Dir.chdir @tempdir - - rake "sys1", "--trace" - - assert_match %r{^SYS1}, @out - end - - def test_no_system - rake_system_dir - rakefile_extra - - rake '-G', "sys1" - - assert_match %r{^Don't know how to build task}, @err # emacs wart: ' - end - - def test_nosearch_with_rakefile_uses_local_rakefile - rakefile_default - - rake "--nosearch" - - assert_match %r{^DEFAULT}, @out - end - - def test_nosearch_without_rakefile_finds_system - rakefile_nosearch - rake_system_dir - - rake "--nosearch", "sys1" - - assert_match %r{^SYS1}, @out - end - - def test_nosearch_without_rakefile_and_no_system_fails - rakefile_nosearch - ENV['RAKE_SYSTEM'] = 'not_exist' - - rake "--nosearch" - - assert_match %r{^No Rakefile found}, @err - end - - def test_invalid_command_line_options - rakefile_default - - rake "--bad-options" - - assert_match %r{invalid +option}i, @err - end - - def test_inline_verbose_default_should_show_command - rakefile_verbose - - rake "inline_verbose_default" - - assert_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_inline_verbose_true_should_show_command - rakefile_verbose - - rake "inline_verbose_true" - - assert_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_inline_verbose_false_should_not_show_command - rakefile_verbose - - rake "inline_verbose_false" - - refute_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_block_verbose_false_should_not_show_command - rakefile_verbose - - rake "block_verbose_false" - - refute_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_block_verbose_true_should_show_command - rakefile_verbose - - rake "block_verbose_true" - - assert_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_standalone_verbose_true_should_show_command - rakefile_verbose - - rake "standalone_verbose_true" - - assert_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_standalone_verbose_false_should_not_show_command - rakefile_verbose - - rake "standalone_verbose_false" - - refute_match(/#{Regexp.quote(RUBY)} -e/, @err) - end - - def test_dry_run - rakefile_default - - rake "-n", "other" - - assert_match %r{Execute \(dry run\) default}, @err - assert_match %r{Execute \(dry run\) other}, @err - refute_match %r{DEFAULT}, @out - refute_match %r{OTHER}, @out - end - - # Test for the trace/dry_run bug found by Brian Chandler - def test_dry_run_bug - rakefile_dryrun - - rake - - FileUtils.rm_f 'temp_one' - - rake "--dry-run" - - refute_match(/No such file/, @out) - end - - # Test for the trace/dry_run bug found by Brian Chandler - def test_trace_bug - rakefile_dryrun - - rake - - FileUtils.rm_f 'temp_one' - - rake "--trace" - - refute_match(/No such file/, @out) - end - - def test_imports - rakefile_imports - - rake - - assert File.exist?(File.join(@tempdir, 'dynamic_deps')), - "'dynamic_deps' file should exist" - assert_match(/^FIRST$\s+^DYNAMIC$\s+^STATIC$\s+^OTHER$/, @out) - end - - def test_regenerate_imports - rakefile_regenerate_imports - - rake - - assert_match(/^INITIAL\s+^REGENERATED$/, @out) - end - - def test_rules_chaining_to_file_task - rakefile_chains - - rake - - assert File.exist?(File.join(@tempdir, 'play.app')), - "'play.app' file should exist" - end - - def test_file_creation_task - rakefile_file_creation - - rake "prep" - rake "run" - rake "run" - - assert(@err !~ /^cp src/, "Should not recopy data") - end - - def test_dash_f_with_no_arg_foils_rakefile_lookup - rakefile_rakelib - - rake '-I', 'rakelib', '-rtest1', '-f' - - assert_match(/^TEST1$/, @out) - end - - def test_dot_rake_files_can_be_loaded_with_dash_r - rakefile_rakelib - - rake '-I', 'rakelib', '-rtest2', '-f' - - assert_empty @err - assert_match(/^TEST2$/, @out) - end - - def test_can_invoke_task_in_toplevel_namespace - rakefile_namespace - - rake "copy" - - assert_match(/^COPY$/, @out) - end - - def test_can_invoke_task_in_nested_namespace - rakefile_namespace - - rake "nest:copy" - - assert_match(/^NEST COPY$/, @out) - end - - def test_tasks_can_reference_task_in_same_namespace - rakefile_namespace - - rake "nest:xx" - - assert_match(/^NEST COPY$/m, @out) - end - - def test_tasks_can_reference_task_in_other_namespaces - rakefile_namespace - - rake "b:run" - - assert_match(/^IN A\nIN B$/m, @out) - end - - def test_anonymous_tasks_can_be_invoked_indirectly - rakefile_namespace - - rake "anon" - - assert_match(/^ANON COPY$/m, @out) - end - - def test_rake_namespace_refers_to_toplevel - rakefile_namespace - - rake "very:nested:run" - - assert_match(/^COPY$/m, @out) - end - - def test_file_task_are_not_scoped_by_namespaces - rakefile_namespace - - rake "xyz.rb" - - assert_match(/^XYZ1\nXYZ2$/m, @out) - end - - def test_file_task_dependencies_scoped_by_namespaces - rakefile_namespace - - rake "scopedep.rb" - - assert_match(/^PREPARE\nSCOPEDEP$/m, @out) - end - - def test_test_task_descriptions - rakefile_test_task - - rake "-T" - - assert_match(/custom test task description/, @out) - end - - def test_comment_before_task_acts_like_desc - rakefile_comments - - rake "-T" - - refute_match(/comment for t1/, @out) - end - - def test_comment_separated_from_task_by_blank_line_is_not_picked_up - rakefile_comments - - rake "-T" - - refute_match("t2", @out) - end - - def test_comment_after_desc_is_ignored - rakefile_comments - - rake "-T" - - assert_match("override comment for t3", @out) - end - - def test_comment_before_desc_is_ignored - rakefile_comments - - rake "-T" - - assert_match("override comment for t4", @out) - end - - def test_correct_number_of_tasks_reported - rakefile_comments - - rake "-T" - - assert_equal(2, @out.split(/\n/).grep(/t\d/).size) - end - - def test_file_list_is_requirable_separately - ruby '-rrake/file_list', '-e', 'puts Rake::FileList["a"].size' - assert_equal "1\n", @out - end - - def can_detect_signals? - system RUBY, '-e', 'Process.kill "TERM", $$' - status = $? - if @verbose - puts " SIG status = #{$?.inspect}" - puts " SIG status.respond_to?(:signaled?) = " + - "#{$?.respond_to?(:signaled?).inspect}" - puts " SIG status.signaled? = #{status.signaled?}" if - status.respond_to?(:signaled?) - end - status.respond_to?(:signaled?) && status.signaled? - end - - def test_signal_propagation_in_tests - if can_detect_signals? - rakefile_test_signal - rake - assert_match(/ATEST/, @out) - refute_match(/BTEST/, @out) - else - skip "Signal detect seems broken on this system" - end - end - - def test_failing_test_sets_exit_status - skip if uncertain_exit_status? - rakefile_failing_test_task - rake - assert @exit.exitstatus > 0, "should be non-zero" - end - - def test_stand_alone_filelist - rakefile_stand_alone_filelist - - run_ruby @ruby_options + ["stand_alone_filelist.rb"] - - assert_match(/^stand_alone_filelist\.rb$/, @out) - assert_equal 0, @exit.exitstatus unless uncertain_exit_status? - end - - private - - # We are unable to accurately verify that Rake returns a proper - # error exit status using popen3 in Ruby 1.8.7 and JRuby. This - # predicate function can be used to skip tests or assertions as - # needed. - def uncertain_exit_status? - RUBY_VERSION < "1.9" || defined?(JRUBY_VERSION) - end - -end |