elliottcable-echoe 3.1.1

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