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,251 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rake'
4
+ require 'test/unit'
5
+ require 'test/filecreation'
6
+ require 'fileutils'
7
+ require 'stringio'
8
+ require 'test/rake_test_setup'
9
+
10
+ class TestFileUtils < Test::Unit::TestCase
11
+ include FileCreation
12
+ include TestMethods
13
+
14
+ def setup
15
+ File.chmod(0750,"test/shellcommand.rb")
16
+ end
17
+
18
+ def teardown
19
+ FileUtils.rm_rf("testdata")
20
+ FileUtils::LN_SUPPORTED[0] = true
21
+ end
22
+
23
+ def test_rm_one_file
24
+ create_file("testdata/a")
25
+ FileUtils.rm_rf "testdata/a"
26
+ assert ! File.exist?("testdata/a")
27
+ end
28
+
29
+ def test_rm_two_files
30
+ create_file("testdata/a")
31
+ create_file("testdata/b")
32
+ FileUtils.rm_rf ["testdata/a", "testdata/b"]
33
+ assert ! File.exist?("testdata/a")
34
+ assert ! File.exist?("testdata/b")
35
+ end
36
+
37
+ def test_rm_filelist
38
+ list = Rake::FileList.new << "testdata/a" << "testdata/b"
39
+ list.each { |fn| create_file(fn) }
40
+ FileUtils.rm_r list
41
+ assert ! File.exist?("testdata/a")
42
+ assert ! File.exist?("testdata/b")
43
+ end
44
+
45
+ def test_ln
46
+ create_dir("testdata")
47
+ open("testdata/a", "w") { |f| f.puts "TEST_LN" }
48
+ RakeFileUtils.safe_ln("testdata/a", "testdata/b", :verbose => false)
49
+ assert_equal "TEST_LN\n", open("testdata/b") { |f| f.read }
50
+ end
51
+
52
+ class BadLink
53
+ include RakeFileUtils
54
+ attr_reader :cp_args
55
+ def initialize(klass)
56
+ @failure_class = klass
57
+ end
58
+ def cp(*args)
59
+ @cp_args = args
60
+ end
61
+ def ln(*args)
62
+ fail @failure_class, "ln not supported"
63
+ end
64
+ public :safe_ln
65
+ end
66
+
67
+ def test_safe_ln_failover_to_cp_on_standard_error
68
+ FileUtils::LN_SUPPORTED[0] = true
69
+ c = BadLink.new(StandardError)
70
+ c.safe_ln "a", "b"
71
+ assert_equal ['a', 'b'], c.cp_args
72
+ c.safe_ln "x", "y"
73
+ assert_equal ['x', 'y'], c.cp_args
74
+ end
75
+
76
+ def test_safe_ln_failover_to_cp_on_not_implemented_error
77
+ FileUtils::LN_SUPPORTED[0] = true
78
+ c = BadLink.new(NotImplementedError)
79
+ c.safe_ln "a", "b"
80
+ assert_equal ['a', 'b'], c.cp_args
81
+ end
82
+
83
+ def test_safe_ln_fails_on_script_error
84
+ FileUtils::LN_SUPPORTED[0] = true
85
+ c = BadLink.new(ScriptError)
86
+ assert_exception(ScriptError) do c.safe_ln "a", "b" end
87
+ end
88
+
89
+ def test_verbose
90
+ verbose true
91
+ assert_equal true, verbose
92
+ verbose false
93
+ assert_equal false, verbose
94
+ verbose(true) {
95
+ assert_equal true, verbose
96
+ }
97
+ assert_equal false, verbose
98
+ end
99
+
100
+ def test_nowrite
101
+ nowrite true
102
+ assert_equal true, nowrite
103
+ nowrite false
104
+ assert_equal false, nowrite
105
+ nowrite(true){
106
+ assert_equal true, nowrite
107
+ }
108
+ assert_equal false, nowrite
109
+ end
110
+
111
+ def test_file_utils_methods_are_available_at_top_level
112
+ create_file("testdata/a")
113
+ rm_rf "testdata/a"
114
+ assert ! File.exist?("testdata/a")
115
+ end
116
+
117
+ def test_fileutils_methods_dont_leak
118
+ obj = Object.new
119
+ assert_exception(NoMethodError) { obj.copy } # from FileUtils
120
+ assert_exception(NoMethodError) { obj.ruby } # from RubyFileUtils
121
+ end
122
+
123
+ def test_sh
124
+ verbose(false) { sh %{ruby test/shellcommand.rb} }
125
+ assert true, "should not fail"
126
+ end
127
+
128
+ # If the :sh method is invoked directly from a test unit instance
129
+ # (under mini/test), the mini/test version of fail is invoked rather
130
+ # than the kernel version of fail. So we run :sh from within a
131
+ # non-test class to avoid the problem.
132
+ class Sh
133
+ include FileUtils
134
+ def run(*args)
135
+ sh(*args)
136
+ end
137
+ def self.run(*args)
138
+ new.run(*args)
139
+ end
140
+ end
141
+
142
+ def test_sh_with_a_single_string_argument
143
+ ENV['RAKE_TEST_SH'] = 'someval'
144
+ verbose(false) {
145
+ sh %{ruby test/check_expansion.rb #{env_var} someval}
146
+ }
147
+ end
148
+
149
+ def test_sh_with_multiple_arguments
150
+ ENV['RAKE_TEST_SH'] = 'someval'
151
+ verbose(false) {
152
+ Sh.run 'ruby', 'test/check_no_expansion.rb', env_var, 'someval'
153
+ }
154
+ end
155
+
156
+ def test_sh_failure
157
+ assert_exception(RuntimeError) {
158
+ verbose(false) { Sh.run %{ruby test/shellcommand.rb 1} }
159
+ }
160
+ end
161
+
162
+ def test_sh_special_handling
163
+ count = 0
164
+ verbose(false) {
165
+ sh(%{ruby test/shellcommand.rb}) do |ok, res|
166
+ assert(ok)
167
+ assert_equal 0, res.exitstatus
168
+ count += 1
169
+ end
170
+ sh(%{ruby test/shellcommand.rb 1}) do |ok, res|
171
+ assert(!ok)
172
+ assert_equal 1, res.exitstatus
173
+ count += 1
174
+ end
175
+ }
176
+ assert_equal 2, count, "Block count should be 2"
177
+ end
178
+
179
+ def test_sh_noop
180
+ verbose(false) { sh %{test/shellcommand.rb 1}, :noop=>true }
181
+ assert true, "should not fail"
182
+ end
183
+
184
+ def test_sh_bad_option
185
+ ex = assert_exception(ArgumentError) {
186
+ verbose(false) { sh %{test/shellcommand.rb}, :bad_option=>true }
187
+ }
188
+ assert_match(/bad_option/, ex.message)
189
+ end
190
+
191
+ def test_sh_verbose
192
+ out = redirect_stderr {
193
+ verbose(true) {
194
+ sh %{test/shellcommand.rb}, :noop=>true
195
+ }
196
+ }
197
+ assert_match(/^test\/shellcommand\.rb$/, out)
198
+ end
199
+
200
+ def test_sh_no_verbose
201
+ out = redirect_stderr {
202
+ verbose(false) {
203
+ sh %{test/shellcommand.rb}, :noop=>true
204
+ }
205
+ }
206
+ assert_equal '', out
207
+ end
208
+
209
+ def test_ruby_with_a_single_string_argument
210
+ ENV['RAKE_TEST_SH'] = 'someval'
211
+ verbose(false) {
212
+ ruby %{test/check_expansion.rb #{env_var} someval}
213
+ }
214
+ end
215
+
216
+ def test_ruby_with_multiple_arguments
217
+ ENV['RAKE_TEST_SH'] = 'someval'
218
+ verbose(false) {
219
+ ruby 'test/check_no_expansion.rb', env_var, 'someval'
220
+ }
221
+ end
222
+
223
+ def test_split_all
224
+ assert_equal ['a'], RakeFileUtils.split_all('a')
225
+ assert_equal ['..'], RakeFileUtils.split_all('..')
226
+ assert_equal ['/'], RakeFileUtils.split_all('/')
227
+ assert_equal ['a', 'b'], RakeFileUtils.split_all('a/b')
228
+ assert_equal ['/', 'a', 'b'], RakeFileUtils.split_all('/a/b')
229
+ assert_equal ['..', 'a', 'b'], RakeFileUtils.split_all('../a/b')
230
+ end
231
+
232
+ private
233
+
234
+ def redirect_stderr
235
+ old_err = $stderr
236
+ $stderr = StringIO.new
237
+ yield
238
+ $stderr.string
239
+ ensure
240
+ $stderr = old_err
241
+ end
242
+
243
+ def windows?
244
+ ! File::ALT_SEPARATOR.nil?
245
+ end
246
+
247
+ def env_var
248
+ windows? ? '%RAKE_TEST_SH%' : '$RAKE_TEST_SH'
249
+ end
250
+
251
+ end
@@ -0,0 +1,59 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'date'
4
+ require 'time'
5
+ require 'test/unit'
6
+ require 'rake/contrib/ftptools'
7
+
8
+ class FakeDate
9
+ def self.today
10
+ Date.new(2003,10,3)
11
+ end
12
+ def self.now
13
+ Time.local(2003,10,3,12,00,00)
14
+ end
15
+ end
16
+
17
+
18
+ class TestFtpFile < Test::Unit::TestCase
19
+
20
+ def setup
21
+ Rake::FtpFile.class_eval { @date_class = FakeDate; @time_class = FakeDate }
22
+ end
23
+
24
+ def test_general
25
+ file = Rake::FtpFile.new("here", "-rw-r--r-- 1 a279376 develop 121770 Mar 6 14:50 wiki.pl")
26
+ assert_equal "wiki.pl", file.name
27
+ assert_equal "here/wiki.pl", file.path
28
+ assert_equal "a279376", file.owner
29
+ assert_equal "develop", file.group
30
+ assert_equal 0644, file.mode
31
+ assert_equal 121770, file.size
32
+ assert_equal Time.mktime(2003,3,6,14,50,0,0), file.time
33
+ assert ! file.directory?
34
+ assert ! file.symlink?
35
+ end
36
+
37
+ def test_far_date
38
+ file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 2001 vss")
39
+ assert_equal Time.mktime(2001,11,26,0,0,0,0), file.time
40
+ end
41
+
42
+ def test_close_date
43
+ file = Rake::FtpFile.new(".", "drwxr-xr-x 3 a279376 develop 4096 Nov 26 15:35 vss")
44
+ assert_equal Time.mktime(2002,11,26,15,35,0,0), file.time
45
+ end
46
+
47
+ def test_directory
48
+ file = Rake::FtpFile.new(".", "drwxrwxr-x 9 a279376 develop 4096 Mar 13 14:32 working")
49
+ assert file.directory?
50
+ assert !file.symlink?
51
+ end
52
+
53
+ def test_symlink
54
+ file = Rake::FtpFile.new(".", "lrwxrwxrwx 1 a279376 develop 64 Mar 26 2002 xtrac -> /home/a279376/working/ics/development/java/com/fmr/fwp/ics/xtrac")
55
+ assert_equal 'xtrac', file.name
56
+ assert file.symlink?
57
+ assert !file.directory?
58
+ end
59
+ end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+ require 'test/rake_test_setup'
6
+
7
+ ######################################################################
8
+ class TestAnEmptyInvocationChain < Test::Unit::TestCase
9
+ include TestMethods
10
+
11
+ def setup
12
+ @empty = Rake::InvocationChain::EMPTY
13
+ end
14
+
15
+ def test_should_be_able_to_add_members
16
+ assert_nothing_raised do
17
+ @empty.append("A")
18
+ end
19
+ end
20
+
21
+ def test_to_s
22
+ assert_equal "TOP", @empty.to_s
23
+ end
24
+ end
25
+
26
+ ######################################################################
27
+ class TestAnInvocationChainWithOneMember < Test::Unit::TestCase
28
+ include TestMethods
29
+
30
+ def setup
31
+ @empty = Rake::InvocationChain::EMPTY
32
+ @first_member = "A"
33
+ @chain = @empty.append(@first_member)
34
+ end
35
+
36
+ def test_should_report_first_member_as_a_member
37
+ assert @chain.member?(@first_member)
38
+ end
39
+
40
+ def test_should_fail_when_adding_original_member
41
+ ex = assert_exception RuntimeError do
42
+ @chain.append(@first_member)
43
+ end
44
+ assert_match(/circular +dependency/i, ex.message)
45
+ assert_match(/A.*=>.*A/, ex.message)
46
+ end
47
+
48
+ def test_to_s
49
+ assert_equal "TOP => A", @chain.to_s
50
+ end
51
+
52
+ end
53
+
54
+ ######################################################################
55
+ class TestAnInvocationChainWithMultipleMember < Test::Unit::TestCase
56
+ include TestMethods
57
+
58
+ def setup
59
+ @first_member = "A"
60
+ @second_member = "B"
61
+ ch = Rake::InvocationChain::EMPTY.append(@first_member)
62
+ @chain = ch.append(@second_member)
63
+ end
64
+
65
+ def test_should_report_first_member_as_a_member
66
+ assert @chain.member?(@first_member)
67
+ end
68
+
69
+ def test_should_report_second_member_as_a_member
70
+ assert @chain.member?(@second_member)
71
+ end
72
+
73
+ def test_should_fail_when_adding_original_member
74
+ ex = assert_exception RuntimeError do
75
+ @chain.append(@first_member)
76
+ end
77
+ assert_match(/A.*=>.*B.*=>.*A/, ex.message)
78
+ end
79
+ end
80
+
81
+
@@ -0,0 +1,26 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+ require 'rake/loaders/makefile'
6
+
7
+ class TestMakefileLoader < Test::Unit::TestCase
8
+ include Rake
9
+
10
+ def test_parse
11
+ Task.clear
12
+ loader = Rake::MakefileLoader.new
13
+ loader.load("test/data/sample.mf")
14
+ %w(a b c d).each do |t|
15
+ assert Task.task_defined?(t), "#{t} should be a defined task"
16
+ end
17
+ assert_equal %w(a1 a2 a3 a4 a5 a6 a7).sort, Task['a'].prerequisites.sort
18
+ assert_equal %w(b1 b2 b3 b4 b5 b6 b7).sort, Task['b'].prerequisites.sort
19
+ assert_equal %w(c1).sort, Task['c'].prerequisites.sort
20
+ assert_equal %w(d1 d2).sort, Task['d'].prerequisites.sort
21
+ assert_equal %w(e1 f1).sort, Task['e'].prerequisites.sort
22
+ assert_equal %w(e1 f1).sort, Task['f'].prerequisites.sort
23
+ assert_equal ["g1", "g 2", "g 3", "g4"].sort, Task['g 0'].prerequisites.sort
24
+ assert_equal 7, Task.tasks.size
25
+ end
26
+ end
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake'
5
+
6
+ ######################################################################
7
+ class TestMultiTask < Test::Unit::TestCase
8
+ include Rake
9
+
10
+ def setup
11
+ Task.clear
12
+ @runs = Array.new
13
+ end
14
+
15
+ def test_running_multitasks
16
+ task :a do 3.times do |i| @runs << "A#{i}"; sleep 0.01; end end
17
+ task :b do 3.times do |i| @runs << "B#{i}"; sleep 0.01; end end
18
+ multitask :both => [:a, :b]
19
+ Task[:both].invoke
20
+ assert_equal 6, @runs.size
21
+ assert @runs.index("A0") < @runs.index("A1")
22
+ assert @runs.index("A1") < @runs.index("A2")
23
+ assert @runs.index("B0") < @runs.index("B1")
24
+ assert @runs.index("B1") < @runs.index("B2")
25
+ end
26
+
27
+ def test_all_multitasks_wait_on_slow_prerequisites
28
+ task :slow do 3.times do |i| @runs << "S#{i}"; sleep 0.05 end end
29
+ task :a => [:slow] do 3.times do |i| @runs << "A#{i}"; sleep 0.01 end end
30
+ task :b => [:slow] do 3.times do |i| @runs << "B#{i}"; sleep 0.01 end end
31
+ multitask :both => [:a, :b]
32
+ Task[:both].invoke
33
+ assert_equal 9, @runs.size
34
+ assert @runs.index("S0") < @runs.index("S1")
35
+ assert @runs.index("S1") < @runs.index("S2")
36
+ assert @runs.index("S2") < @runs.index("A0")
37
+ assert @runs.index("S2") < @runs.index("B0")
38
+ assert @runs.index("A0") < @runs.index("A1")
39
+ assert @runs.index("A1") < @runs.index("A2")
40
+ assert @runs.index("B0") < @runs.index("B1")
41
+ assert @runs.index("B1") < @runs.index("B2")
42
+ end
43
+ end
44
+
45
+
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ begin
4
+ require 'rubygems'
5
+ rescue LoadError
6
+ # got no gems
7
+ end
8
+
9
+ require 'test/unit'
10
+ require 'flexmock/test_unit'
11
+ require 'rake'
12
+ require 'test/rake_test_setup'
13
+
14
+ class TestNameSpace < Test::Unit::TestCase
15
+ include TestMethods
16
+
17
+ class TM
18
+ include Rake::TaskManager
19
+ end
20
+
21
+ def test_namespace_creation
22
+ mgr = TM.new
23
+ ns = Rake::NameSpace.new(mgr, [])
24
+ assert_not_nil ns
25
+ end
26
+
27
+ def test_namespace_lookup
28
+ mgr = TM.new
29
+ ns = mgr.in_namespace("n") do
30
+ mgr.define_task(Rake::Task, "t")
31
+ end
32
+
33
+ assert_not_nil ns["t"]
34
+ assert_equal mgr["n:t"], ns["t"]
35
+ end
36
+
37
+ def test_namespace_reports_tasks_it_owns
38
+ mgr = TM.new
39
+ nns = nil
40
+ ns = mgr.in_namespace("n") do
41
+ mgr.define_task(Rake::Task, :x)
42
+ mgr.define_task(Rake::Task, :y)
43
+ nns = mgr.in_namespace("nn") do
44
+ mgr.define_task(Rake::Task, :z)
45
+ end
46
+ end
47
+ mgr.in_namespace("m") do
48
+ mgr.define_task(Rake::Task, :x)
49
+ end
50
+
51
+ assert_equal ["n:nn:z", "n:x", "n:y"],
52
+ ns.tasks.map { |tsk| tsk.name }
53
+ assert_equal ["n:nn:z"], nns.tasks.map {|t| t.name}
54
+ end
55
+ end
@@ -0,0 +1,118 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'test/unit'
4
+ require 'rake/packagetask'
5
+ require 'test/rake_test_setup'
6
+
7
+ class TestPackageTask < Test::Unit::TestCase
8
+ include Rake
9
+ include TestMethods
10
+
11
+ def test_create
12
+ pkg = Rake::PackageTask.new("pkgr", "1.2.3") { |p|
13
+ p.package_files << "install.rb"
14
+ p.package_files.include(
15
+ '[A-Z]*',
16
+ 'bin/**/*',
17
+ 'lib/**/*.rb',
18
+ 'test/**/*.rb',
19
+ 'doc/**/*',
20
+ 'build/rubyapp.rb',
21
+ '*.blurb')
22
+ p.package_files.exclude(/\bCVS\b/)
23
+ p.package_files.exclude(/~$/)
24
+ p.package_dir = 'pkg'
25
+ p.need_tar = true
26
+ p.need_tar_gz = true
27
+ p.need_tar_bz2 = true
28
+ p.need_zip = true
29
+ }
30
+ assert_equal "pkg", pkg.package_dir
31
+ assert pkg.package_files.include?("bin/rake")
32
+ assert "pkgr", pkg.name
33
+ assert "1.2.3", pkg.version
34
+ assert Task[:package]
35
+ assert Task['pkg/pkgr-1.2.3.tgz']
36
+ assert Task['pkg/pkgr-1.2.3.tar.gz']
37
+ assert Task['pkg/pkgr-1.2.3.tar.bz2']
38
+ assert Task['pkg/pkgr-1.2.3.zip']
39
+ assert Task["pkg/pkgr-1.2.3"]
40
+ assert Task[:clobber_package]
41
+ assert Task[:repackage]
42
+ end
43
+
44
+ def test_missing_version
45
+ assert_exception(RuntimeError) {
46
+ pkg = Rake::PackageTask.new("pkgr") { |p| }
47
+ }
48
+ end
49
+
50
+ def test_no_version
51
+ pkg = Rake::PackageTask.new("pkgr", :noversion) { |p| }
52
+ assert "pkgr", pkg.send(:package_name)
53
+ end
54
+
55
+ def test_clone
56
+ pkg = Rake::PackageTask.new("x", :noversion)
57
+ p2 = pkg.clone
58
+ pkg.package_files << "y"
59
+ p2.package_files << "x"
60
+ assert_equal ["y"], pkg.package_files
61
+ assert_equal ["x"], p2.package_files
62
+ end
63
+ end
64
+
65
+
66
+ begin
67
+ require 'rubygems'
68
+ require 'rake/gempackagetask'
69
+ rescue Exception
70
+ puts "WARNING: RubyGems not installed"
71
+ end
72
+
73
+ if ! defined?(Gem)
74
+ puts "WARNING: Unable to test GemPackaging ... requires RubyGems"
75
+ else
76
+ class TestGemPackageTask < Test::Unit::TestCase
77
+ def test_gem_package
78
+ gem = Gem::Specification.new do |g|
79
+ g.name = "pkgr"
80
+ g.version = "1.2.3"
81
+ g.files = FileList["x"].resolve
82
+ end
83
+ pkg = Rake::GemPackageTask.new(gem) do |p|
84
+ p.package_files << "y"
85
+ end
86
+ assert_equal ["x", "y"], pkg.package_files
87
+ assert_equal "pkgr-1.2.3.gem", pkg.gem_file
88
+ end
89
+
90
+ def test_gem_package_with_current_platform
91
+ gem = Gem::Specification.new do |g|
92
+ g.name = "pkgr"
93
+ g.version = "1.2.3"
94
+ g.files = FileList["x"].resolve
95
+ g.platform = Gem::Platform::CURRENT
96
+ end
97
+ pkg = Rake::GemPackageTask.new(gem) do |p|
98
+ p.package_files << "y"
99
+ end
100
+ assert_equal ["x", "y"], pkg.package_files
101
+ assert_match(/^pkgr-1\.2\.3-(\S+)\.gem$/, pkg.gem_file)
102
+ end
103
+
104
+ def test_gem_package_with_ruby_platform
105
+ gem = Gem::Specification.new do |g|
106
+ g.name = "pkgr"
107
+ g.version = "1.2.3"
108
+ g.files = FileList["x"].resolve
109
+ g.platform = Gem::Platform::RUBY
110
+ end
111
+ pkg = Rake::GemPackageTask.new(gem) do |p|
112
+ p.package_files << "y"
113
+ end
114
+ assert_equal ["x", "y"], pkg.package_files
115
+ assert_equal "pkgr-1.2.3.gem", pkg.gem_file
116
+ end
117
+ end
118
+ end