elliottcable-echoe 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)