gemrage 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +6 -0
  3. data/VERSION +1 -1
  4. data/gemrage.gemspec +160 -2
  5. data/lib/rubygems/commands/scan_command.rb +26 -7
  6. data/spec/spec_helper.rb +2 -1
  7. data/vendor/ruby/1.8/bin/launchy +19 -0
  8. data/vendor/ruby/1.8/bin/rake +19 -0
  9. data/vendor/ruby/1.8/cache/configuration-1.1.0.gem +0 -0
  10. data/vendor/ruby/1.8/cache/launchy-0.3.7.gem +0 -0
  11. data/vendor/ruby/1.8/cache/rake-0.8.7.gem +0 -0
  12. data/vendor/ruby/1.8/gems/configuration-1.1.0/README +197 -0
  13. data/vendor/ruby/1.8/gems/configuration-1.1.0/README.erb +69 -0
  14. data/vendor/ruby/1.8/gems/configuration-1.1.0/Rakefile +241 -0
  15. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/a.rb +5 -0
  16. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/b.rb +19 -0
  17. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/c.rb +8 -0
  18. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/d.rb +5 -0
  19. data/vendor/ruby/1.8/gems/configuration-1.1.0/config/e.rb +13 -0
  20. data/vendor/ruby/1.8/gems/configuration-1.1.0/configuration.gemspec +28 -0
  21. data/vendor/ruby/1.8/gems/configuration-1.1.0/lib/configuration.rb +199 -0
  22. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/a.rb +11 -0
  23. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/b.rb +11 -0
  24. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/c.rb +11 -0
  25. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/d.rb +14 -0
  26. data/vendor/ruby/1.8/gems/configuration-1.1.0/samples/e.rb +12 -0
  27. data/vendor/ruby/1.8/gems/launchy-0.3.7/HISTORY +71 -0
  28. data/vendor/ruby/1.8/gems/launchy-0.3.7/LICENSE +16 -0
  29. data/vendor/ruby/1.8/gems/launchy-0.3.7/README +53 -0
  30. data/vendor/ruby/1.8/gems/launchy-0.3.7/Rakefile +62 -0
  31. data/vendor/ruby/1.8/gems/launchy-0.3.7/bin/launchy +12 -0
  32. data/vendor/ruby/1.8/gems/launchy-0.3.7/gemspec.rb +41 -0
  33. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/application.rb +178 -0
  34. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/browser.rb +98 -0
  35. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/command_line.rb +48 -0
  36. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/paths.rb +53 -0
  37. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy/version.rb +17 -0
  38. data/vendor/ruby/1.8/gems/launchy-0.3.7/lib/launchy.rb +53 -0
  39. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/application_spec.rb +62 -0
  40. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/browser_spec.rb +58 -0
  41. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/launchy_spec.rb +18 -0
  42. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/paths_spec.rb +15 -0
  43. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/spec_helper.rb +5 -0
  44. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/tattle-host-os.yml +427 -0
  45. data/vendor/ruby/1.8/gems/launchy-0.3.7/spec/version_spec.rb +11 -0
  46. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/announce.rake +39 -0
  47. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/config.rb +107 -0
  48. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/distribution.rake +46 -0
  49. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/documentation.rake +32 -0
  50. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/rspec.rake +37 -0
  51. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/rubyforge.rake +52 -0
  52. data/vendor/ruby/1.8/gems/launchy-0.3.7/tasks/utils.rb +80 -0
  53. data/vendor/ruby/1.8/gems/rake-0.8.7/CHANGES +440 -0
  54. data/vendor/ruby/1.8/gems/rake-0.8.7/MIT-LICENSE +21 -0
  55. data/vendor/ruby/1.8/gems/rake-0.8.7/README +196 -0
  56. data/vendor/ruby/1.8/gems/rake-0.8.7/Rakefile +430 -0
  57. data/vendor/ruby/1.8/gems/rake-0.8.7/TODO +20 -0
  58. data/vendor/ruby/1.8/gems/rake-0.8.7/bin/rake +31 -0
  59. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/command_line_usage.rdoc +102 -0
  60. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/Rakefile1 +38 -0
  61. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/Rakefile2 +35 -0
  62. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/a.c +6 -0
  63. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/b.c +6 -0
  64. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/example/main.c +11 -0
  65. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/glossary.rdoc +51 -0
  66. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/jamis.rb +591 -0
  67. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/proto_rake.rdoc +127 -0
  68. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rake.1.gz +0 -0
  69. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rakefile.rdoc +534 -0
  70. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/rational.rdoc +151 -0
  71. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.4.14.rdoc +23 -0
  72. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.4.15.rdoc +35 -0
  73. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.0.rdoc +53 -0
  74. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.3.rdoc +78 -0
  75. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.5.4.rdoc +46 -0
  76. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.6.0.rdoc +141 -0
  77. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.0.rdoc +119 -0
  78. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.1.rdoc +59 -0
  79. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.2.rdoc +121 -0
  80. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.7.3.rdoc +47 -0
  81. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.0.rdoc +114 -0
  82. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.2.rdoc +165 -0
  83. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.3.rdoc +112 -0
  84. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.4.rdoc +147 -0
  85. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.5.rdoc +53 -0
  86. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.6.rdoc +55 -0
  87. data/vendor/ruby/1.8/gems/rake-0.8.7/doc/release_notes/rake-0.8.7.rdoc +55 -0
  88. data/vendor/ruby/1.8/gems/rake-0.8.7/install.rb +88 -0
  89. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/alt_system.rb +108 -0
  90. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/classic_namespace.rb +8 -0
  91. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/clean.rb +33 -0
  92. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/compositepublisher.rb +24 -0
  93. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/ftptools.rb +153 -0
  94. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/publisher.rb +75 -0
  95. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  96. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/sshpublisher.rb +47 -0
  97. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/contrib/sys.rb +209 -0
  98. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/gempackagetask.rb +97 -0
  99. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/loaders/makefile.rb +42 -0
  100. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/packagetask.rb +184 -0
  101. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb +5 -0
  102. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/rdoctask.rb +209 -0
  103. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/ruby182_test_unit_fix.rb +23 -0
  104. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/runtest.rb +23 -0
  105. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/tasklib.rb +23 -0
  106. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb +161 -0
  107. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake/win32.rb +55 -0
  108. data/vendor/ruby/1.8/gems/rake-0.8.7/lib/rake.rb +2506 -0
  109. data/vendor/ruby/1.8/gems/rake-0.8.7/test/capture_stdout.rb +26 -0
  110. data/vendor/ruby/1.8/gems/rake-0.8.7/test/check_expansion.rb +5 -0
  111. data/vendor/ruby/1.8/gems/rake-0.8.7/test/check_no_expansion.rb +5 -0
  112. data/vendor/ruby/1.8/gems/rake-0.8.7/test/contrib/test_sys.rb +47 -0
  113. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/chains/Rakefile +15 -0
  114. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/default/Rakefile +19 -0
  115. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/dryrun/Rakefile +22 -0
  116. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/file_creation_task/Rakefile +33 -0
  117. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/imports/Rakefile +19 -0
  118. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/imports/deps.mf +1 -0
  119. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/multidesc/Rakefile +17 -0
  120. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/namespace/Rakefile +57 -0
  121. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/rakelib/test1.rb +3 -0
  122. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/rbext/rakefile.rb +3 -0
  123. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/sample.mf +14 -0
  124. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/statusreturn/Rakefile +8 -0
  125. data/vendor/ruby/1.8/gems/rake-0.8.7/test/data/unittest/Rakefile +1 -0
  126. data/vendor/ruby/1.8/gems/rake-0.8.7/test/filecreation.rb +32 -0
  127. data/vendor/ruby/1.8/gems/rake-0.8.7/test/functional.rb +15 -0
  128. data/vendor/ruby/1.8/gems/rake-0.8.7/test/in_environment.rb +30 -0
  129. data/vendor/ruby/1.8/gems/rake-0.8.7/test/rake_test_setup.rb +24 -0
  130. data/vendor/ruby/1.8/gems/rake-0.8.7/test/reqfile.rb +3 -0
  131. data/vendor/ruby/1.8/gems/rake-0.8.7/test/reqfile2.rb +3 -0
  132. data/vendor/ruby/1.8/gems/rake-0.8.7/test/session_functional.rb +339 -0
  133. data/vendor/ruby/1.8/gems/rake-0.8.7/test/shellcommand.rb +3 -0
  134. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_application.rb +675 -0
  135. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_clean.rb +14 -0
  136. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_definitions.rb +85 -0
  137. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_earlytime.rb +35 -0
  138. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_extension.rb +63 -0
  139. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_file_creation_task.rb +62 -0
  140. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_file_task.rb +143 -0
  141. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_filelist.rb +623 -0
  142. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_fileutils.rb +251 -0
  143. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_ftp.rb +59 -0
  144. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_invocation_chain.rb +81 -0
  145. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_makefile_loader.rb +26 -0
  146. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_multitask.rb +45 -0
  147. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_namespace.rb +55 -0
  148. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_package_task.rb +118 -0
  149. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_pathmap.rb +210 -0
  150. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_pseudo_status.rb +26 -0
  151. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rake.rb +41 -0
  152. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rdoc_task.rb +88 -0
  153. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_require.rb +35 -0
  154. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_rules.rb +349 -0
  155. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_task_arguments.rb +89 -0
  156. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_task_manager.rb +173 -0
  157. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_tasklib.rb +12 -0
  158. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_tasks.rb +374 -0
  159. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_test_task.rb +77 -0
  160. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_top_level_functions.rb +86 -0
  161. data/vendor/ruby/1.8/gems/rake-0.8.7/test/test_win32.rb +72 -0
  162. data/vendor/ruby/1.8/specifications/configuration-1.1.0.gemspec +27 -0
  163. data/vendor/ruby/1.8/specifications/launchy-0.3.7.gemspec +44 -0
  164. data/vendor/ruby/1.8/specifications/rake-0.8.7.gemspec +32 -0
  165. metadata +163 -5
@@ -0,0 +1,339 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'rubygems'
5
+ rescue LoadError => ex
6
+ end
7
+ require 'test/unit'
8
+ require 'fileutils'
9
+ require 'session'
10
+ require 'test/in_environment'
11
+ require 'test/rake_test_setup'
12
+
13
+ # Version 2.1.9 of session has a bug where the @debug instance
14
+ # variable is not initialized, causing warning messages. This snippet
15
+ # of code fixes that problem.
16
+ module Session
17
+ class AbstractSession
18
+ alias old_initialize initialize
19
+ def initialize(*args)
20
+ @debug = nil
21
+ old_initialize(*args)
22
+ end
23
+ end
24
+ end
25
+
26
+ class FunctionalTest < Test::Unit::TestCase
27
+ include InEnvironment
28
+ include TestMethods
29
+
30
+ RUBY_COMMAND = 'ruby'
31
+
32
+ def setup
33
+ @rake_path = File.expand_path("bin/rake")
34
+ lib_path = File.expand_path("lib")
35
+ @ruby_options = "-I#{lib_path} -I."
36
+ @verbose = ! ENV['VERBOSE'].nil?
37
+ if @verbose
38
+ puts
39
+ puts
40
+ puts "--------------------------------------------------------------------"
41
+ puts name
42
+ puts "--------------------------------------------------------------------"
43
+ end
44
+ end
45
+
46
+ def test_rake_default
47
+ Dir.chdir("test/data/default") do rake end
48
+ assert_match(/^DEFAULT$/, @out)
49
+ assert_status
50
+ end
51
+
52
+ def test_rake_error_on_bad_task
53
+ Dir.chdir("test/data/default") do rake "xyz" end
54
+ assert_match(/rake aborted/, @err)
55
+ assert_status(1)
56
+ end
57
+
58
+ def test_env_availabe_at_top_scope
59
+ Dir.chdir("test/data/default") do rake "TESTTOPSCOPE=1" end
60
+ assert_match(/^TOPSCOPE$/, @out)
61
+ assert_status
62
+ end
63
+
64
+ def test_env_availabe_at_task_scope
65
+ Dir.chdir("test/data/default") do rake "TESTTASKSCOPE=1 task_scope" end
66
+ assert_match(/^TASKSCOPE$/, @out)
67
+ assert_status
68
+ end
69
+
70
+ def test_multi_desc
71
+ in_environment(
72
+ 'RAKE_COLUMNS' => "80",
73
+ "PWD" => "test/data/multidesc"
74
+ ) do
75
+ rake "-T"
76
+ end
77
+ assert_match %r{^rake a *# A / A2 *$}, @out
78
+ assert_match %r{^rake b *# B *$}, @out
79
+ assert_no_match %r{^rake c}, @out
80
+ assert_match %r{^rake d *# x{65}\.\.\.$}, @out
81
+ end
82
+
83
+ def test_long_description
84
+ in_environment("PWD" => "test/data/multidesc") do
85
+ rake "--describe"
86
+ end
87
+ assert_match %r{^rake a\n *A / A2 *$}m, @out
88
+ assert_match %r{^rake b\n *B *$}m, @out
89
+ assert_match %r{^rake d\n *x{80}}m, @out
90
+ assert_no_match %r{^rake c\n}m, @out
91
+ end
92
+
93
+ def test_rbext
94
+ in_environment("PWD" => "test/data/rbext") do
95
+ rake "-N"
96
+ end
97
+ assert_match %r{^OK$}, @out
98
+ end
99
+
100
+ def test_system
101
+ in_environment('RAKE_SYSTEM' => 'test/data/sys') do
102
+ rake '-g', "sys1"
103
+ end
104
+ assert_match %r{^SYS1}, @out
105
+ end
106
+
107
+ def test_system_excludes_rakelib_files_too
108
+ in_environment('RAKE_SYSTEM' => 'test/data/sys') do
109
+ rake '-g', "sys1", '-T', 'extra'
110
+ end
111
+ assert_no_match %r{extra:extra}, @out
112
+ end
113
+
114
+ def test_by_default_rakelib_files_are_include
115
+ in_environment('RAKE_SYSTEM' => 'test/data/sys') do
116
+ rake '-T', 'extra'
117
+ end
118
+ assert_match %r{extra:extra}, @out
119
+ end
120
+
121
+ def test_implicit_system
122
+ in_environment('RAKE_SYSTEM' => File.expand_path('test/data/sys'), "PWD" => "/") do
123
+ rake "sys1", "--trace"
124
+ end
125
+ assert_match %r{^SYS1}, @out
126
+ end
127
+
128
+ def test_no_system
129
+ in_environment('RAKE_SYSTEM' => 'test/data/sys') do
130
+ rake '-G', "sys1"
131
+ end
132
+ assert_match %r{^Don't know how to build task}, @err # emacs wart: '
133
+ end
134
+
135
+ def test_nosearch_with_rakefile_uses_local_rakefile
136
+ in_environment("PWD" => "test/data/default") do
137
+ rake "--nosearch"
138
+ end
139
+ assert_match %r{^DEFAULT}, @out
140
+ end
141
+
142
+ def test_nosearch_without_rakefile_finds_system
143
+ in_environment(
144
+ "PWD" => "test/data/nosearch",
145
+ "RAKE_SYSTEM" => File.expand_path("test/data/sys")
146
+ ) do
147
+ rake "--nosearch", "sys1"
148
+ end
149
+ assert_match %r{^SYS1}, @out
150
+ end
151
+
152
+ def test_nosearch_without_rakefile_and_no_system_fails
153
+ in_environment("PWD" => "test/data/nosearch", "RAKE_SYSTEM" => "not_exist") do
154
+ rake "--nosearch"
155
+ end
156
+ assert_match %r{^No Rakefile found}, @err
157
+ end
158
+
159
+ def test_dry_run
160
+ in_environment("PWD" => "test/data/default") do rake "-n", "other" end
161
+ assert_match %r{Execute \(dry run\) default}, @out
162
+ assert_match %r{Execute \(dry run\) other}, @out
163
+ assert_no_match %r{DEFAULT}, @out
164
+ assert_no_match %r{OTHER}, @out
165
+ end
166
+
167
+ # Test for the trace/dry_run bug found by Brian Chandler
168
+ def test_dry_run_bug
169
+ in_environment("PWD" => "test/data/dryrun") do
170
+ rake
171
+ end
172
+ FileUtils.rm_f "test/data/dryrun/temp_one"
173
+ in_environment("PWD" => "test/data/dryrun") do
174
+ rake "--dry-run"
175
+ end
176
+ assert_no_match(/No such file/, @out)
177
+ assert_status
178
+ end
179
+
180
+ # Test for the trace/dry_run bug found by Brian Chandler
181
+ def test_trace_bug
182
+ in_environment("PWD" => "test/data/dryrun") do
183
+ rake
184
+ end
185
+ FileUtils.rm_f "test/data/dryrun/temp_one"
186
+ in_environment("PWD" => "test/data/dryrun") do
187
+ rake "--trace"
188
+ end
189
+ assert_no_match(/No such file/, @out)
190
+ assert_status
191
+ end
192
+
193
+ def test_imports
194
+ open("test/data/imports/static_deps", "w") do |f|
195
+ f.puts 'puts "STATIC"'
196
+ end
197
+ FileUtils.rm_f "test/data/imports/dynamic_deps"
198
+ in_environment("PWD" => "test/data/imports") do
199
+ rake
200
+ end
201
+ assert File.exist?("test/data/imports/dynamic_deps"),
202
+ "'dynamic_deps' file should exist"
203
+ assert_match(/^FIRST$\s+^DYNAMIC$\s+^STATIC$\s+^OTHER$/, @out)
204
+ assert_status
205
+ FileUtils.rm_f "test/data/imports/dynamic_deps"
206
+ FileUtils.rm_f "test/data/imports/static_deps"
207
+ end
208
+
209
+ def test_rules_chaining_to_file_task
210
+ remove_chaining_files
211
+ in_environment("PWD" => "test/data/chains") do
212
+ rake
213
+ end
214
+ assert File.exist?("test/data/chains/play.app"),
215
+ "'play.app' file should exist"
216
+ assert_status
217
+ remove_chaining_files
218
+ end
219
+
220
+ def test_file_creation_task
221
+ in_environment("PWD" => "test/data/file_creation_task") do
222
+ rake "prep"
223
+ rake "run"
224
+ rake "run"
225
+ end
226
+ assert(@err !~ /^cp src/, "Should not recopy data")
227
+ end
228
+
229
+ def test_dash_f_with_no_arg_foils_rakefile_lookup
230
+ rake "-I test/data/rakelib -rtest1 -f"
231
+ assert_match(/^TEST1$/, @out)
232
+ end
233
+
234
+ def test_dot_rake_files_can_be_loaded_with_dash_r
235
+ rake "-I test/data/rakelib -rtest2 -f"
236
+ assert_match(/^TEST2$/, @out)
237
+ end
238
+
239
+ def test_can_invoke_task_in_toplevel_namespace
240
+ in_environment("PWD" => "test/data/namespace") do
241
+ rake "copy"
242
+ end
243
+ assert_match(/^COPY$/, @out)
244
+ end
245
+
246
+ def test_can_invoke_task_in_nested_namespace
247
+ in_environment("PWD" => "test/data/namespace") do
248
+ rake "nest:copy"
249
+ assert_match(/^NEST COPY$/, @out)
250
+ end
251
+ end
252
+
253
+ def test_tasks_can_reference_task_in_same_namespace
254
+ in_environment("PWD" => "test/data/namespace") do
255
+ rake "nest:xx"
256
+ assert_match(/^NEST COPY$/m, @out)
257
+ end
258
+ end
259
+
260
+ def test_tasks_can_reference_task_in_other_namespaces
261
+ in_environment("PWD" => "test/data/namespace") do
262
+ rake "b:run"
263
+ assert_match(/^IN A\nIN B$/m, @out)
264
+ end
265
+ end
266
+
267
+ def test_anonymous_tasks_can_be_invoked_indirectly
268
+ in_environment("PWD" => "test/data/namespace") do
269
+ rake "anon"
270
+ assert_match(/^ANON COPY$/m, @out)
271
+ end
272
+ end
273
+
274
+ def test_rake_namespace_refers_to_toplevel
275
+ in_environment("PWD" => "test/data/namespace") do
276
+ rake "very:nested:run"
277
+ assert_match(/^COPY$/m, @out)
278
+ end
279
+ end
280
+
281
+ def test_file_task_are_not_scoped_by_namespaces
282
+ in_environment("PWD" => "test/data/namespace") do
283
+ rake "xyz.rb"
284
+ assert_match(/^XYZ1\nXYZ2$/m, @out)
285
+ end
286
+ end
287
+
288
+ def test_rake_returns_status_error_values
289
+ in_environment("PWD" => "test/data/statusreturn") do
290
+ rake "exit5"
291
+ assert_status(5)
292
+ end
293
+ end
294
+
295
+ def test_rake_returns_no_status_error_on_normal_exit
296
+ in_environment("PWD" => "test/data/statusreturn") do
297
+ rake "normal"
298
+ assert_status(0)
299
+ end
300
+ end
301
+
302
+ private
303
+
304
+ def remove_chaining_files
305
+ %w(play.scpt play.app base).each do |fn|
306
+ FileUtils.rm_f File.join("test/data/chains", fn)
307
+ end
308
+ end
309
+
310
+ class << self
311
+ def format_command
312
+ @format_command ||= lambda { |ruby_options, rake_path, options|
313
+ "ruby #{ruby_options} #{rake_path} #{options}"
314
+ }
315
+ end
316
+
317
+ def format_command=(fmt_command)
318
+ @format_command = fmt_command
319
+ end
320
+ end
321
+
322
+ def rake(*option_list)
323
+ options = option_list.join(' ')
324
+ shell = Session::Shell.new
325
+ command = self.class.format_command[@ruby_options, @rake_path, options]
326
+ puts "COMMAND: [#{command}]" if @verbose
327
+ @out, @err = shell.execute command
328
+ @status = shell.exit_status
329
+ puts "STATUS: [#{@status}]" if @verbose
330
+ puts "OUTPUT: [#{@out}]" if @verbose
331
+ puts "ERROR: [#{@err}]" if @verbose
332
+ puts "PWD: [#{Dir.pwd}]" if @verbose
333
+ shell.close
334
+ end
335
+
336
+ def assert_status(expected_status=0)
337
+ assert_equal expected_status, @status
338
+ end
339
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ exit((ARGV[0] || "0").to_i)