rubygems-update 0.9.5 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- data/ChangeLog +135 -0
- data/Rakefile +3 -1
- data/lib/rubygems.rb +27 -38
- data/lib/rubygems/commands/install_command.rb +2 -0
- data/lib/rubygems/commands/mirror_command.rb +8 -2
- data/lib/rubygems/commands/query_command.rb +3 -1
- data/lib/rubygems/commands/server_command.rb +3 -3
- data/lib/rubygems/commands/unpack_command.rb +11 -4
- data/lib/rubygems/commands/update_command.rb +114 -108
- data/lib/rubygems/defaults.rb +46 -0
- data/lib/rubygems/dependency_installer.rb +13 -2
- data/lib/rubygems/indexer.rb +1 -1
- data/lib/rubygems/install_update_options.rb +7 -0
- data/lib/rubygems/installer.rb +66 -11
- data/lib/rubygems/package.rb +2 -1
- data/lib/rubygems/platform.rb +24 -30
- data/lib/rubygems/remote_fetcher.rb +7 -3
- data/lib/rubygems/require_paths_builder.rb +15 -0
- data/lib/rubygems/rubygems_version.rb +1 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/server.rb +18 -3
- data/lib/rubygems/source_index.rb +20 -23
- data/lib/rubygems/source_info_cache.rb +3 -3
- data/lib/rubygems/specification.rb +64 -31
- data/lib/rubygems/uninstaller.rb +1 -1
- data/lib/rubygems/validator.rb +3 -2
- data/lib/rubygems/version.rb +10 -3
- data/setup.rb +30 -6
- data/test/gemutilities.rb +23 -13
- data/test/gemutilities.rbc +0 -0
- data/test/mockgemui.rbc +0 -0
- data/test/test_gem.rb +46 -76
- data/test/test_gem.rbc +0 -0
- data/test/test_gem_commands_build_command.rb +12 -12
- data/test/test_gem_commands_dependency_command.rb +10 -10
- data/test/test_gem_commands_mirror_command.rb +9 -4
- data/test/test_gem_commands_query_command.rb +7 -3
- data/test/test_gem_commands_server_command.rb +27 -0
- data/test/test_gem_commands_unpack_command.rb +20 -2
- data/test/test_gem_format.rb +1 -1
- data/test/test_gem_indexer.rb +5 -5
- data/test/test_gem_install_update_options.rb +1 -1
- data/test/test_gem_installer.rb +149 -60
- data/test/test_gem_platform.rb +19 -0
- data/test/test_gem_remote_fetcher.rb +19 -2
- data/test/test_gem_server.rb +44 -1
- data/test/test_gem_source_index.rb +2 -2
- data/test/test_gem_specification.rb +300 -168
- data/test/test_gem_version.rb +15 -0
- data/test/test_kernel.rb +19 -19
- metadata +46 -42
- data/lib/rubygems/remote_installer.rb +0 -195
- data/test/test_gem_remote_installer.rb +0 -161
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
|
3
|
+
require 'rubygems/commands/server_command'
|
4
|
+
|
5
|
+
class TestGemCommandsServerCommand < RubyGemTestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
super
|
9
|
+
|
10
|
+
@cmd = Gem::Commands::ServerCommand.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_handle_options
|
14
|
+
@cmd.send :handle_options, %w[-p 8808 --no-daemon]
|
15
|
+
|
16
|
+
assert_equal false, @cmd.options[:daemon]
|
17
|
+
assert_equal @gemhome, @cmd.options[:gemdir]
|
18
|
+
assert_equal 8808, @cmd.options[:port]
|
19
|
+
|
20
|
+
@cmd.send :handle_options, %w[-p 9999 -d /nonexistent --daemon]
|
21
|
+
|
22
|
+
assert_equal true, @cmd.options[:daemon]
|
23
|
+
assert_equal '/nonexistent', @cmd.options[:gemdir]
|
24
|
+
assert_equal 9999, @cmd.options[:port]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
@@ -7,7 +7,9 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase
|
|
7
7
|
def setup
|
8
8
|
super
|
9
9
|
|
10
|
-
@
|
10
|
+
Dir.chdir @tempdir do
|
11
|
+
@cmd = Gem::Commands::UnpackCommand.new
|
12
|
+
end
|
11
13
|
end
|
12
14
|
|
13
15
|
def test_execute
|
@@ -15,13 +17,29 @@ class TestGemCommandsUnpackCommand < RubyGemTestCase
|
|
15
17
|
|
16
18
|
@cmd.options[:args] = %w[a]
|
17
19
|
|
20
|
+
use_ui @ui do
|
21
|
+
Dir.chdir @tempdir do
|
22
|
+
@cmd.execute
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
assert File.exist?(File.join(@tempdir, 'a-2'))
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_execute_with_target_option
|
30
|
+
util_make_gems
|
31
|
+
|
32
|
+
target = 'with_target'
|
33
|
+
@cmd.options[:args] = %w[a]
|
34
|
+
@cmd.options[:target] = target
|
35
|
+
|
18
36
|
use_ui @ui do
|
19
37
|
Dir.chdir @tempdir do
|
20
38
|
@cmd.execute
|
21
39
|
end
|
22
40
|
end
|
23
41
|
|
24
|
-
assert File.exist?(File.join(@tempdir, 'a-
|
42
|
+
assert File.exist?(File.join(@tempdir, target, 'a-2'))
|
25
43
|
end
|
26
44
|
|
27
45
|
def test_execute_exact_match
|
data/test/test_gem_format.rb
CHANGED
data/test/test_gem_indexer.rb
CHANGED
@@ -53,16 +53,16 @@ class TestGemIndexer < RubyGemTestCase
|
|
53
53
|
assert_indexed quickdir, "index"
|
54
54
|
assert_indexed quickdir, "index.rz"
|
55
55
|
|
56
|
-
assert_indexed quickdir, "#{@
|
57
|
-
assert_indexed quickdir, "#{@
|
58
|
-
assert_indexed quickdir, "#{@
|
56
|
+
assert_indexed quickdir, "#{@a1.full_name}.gemspec.rz"
|
57
|
+
assert_indexed quickdir, "#{@a2.full_name}.gemspec.rz"
|
58
|
+
assert_indexed quickdir, "#{@b2.full_name}.gemspec.rz"
|
59
59
|
assert_indexed quickdir, "#{@c1_2.full_name}.gemspec.rz"
|
60
60
|
|
61
61
|
assert_indexed quickdir, "#{@pl1.original_name}.gemspec.rz"
|
62
62
|
deny_indexed quickdir, "#{@pl1.full_name}.gemspec.rz"
|
63
63
|
|
64
|
-
assert_indexed marshal_quickdir, "#{@
|
65
|
-
assert_indexed marshal_quickdir, "#{@
|
64
|
+
assert_indexed marshal_quickdir, "#{@a1.full_name}.gemspec.rz"
|
65
|
+
assert_indexed marshal_quickdir, "#{@a2.full_name}.gemspec.rz"
|
66
66
|
|
67
67
|
deny_indexed quickdir, "#{@c1_2.full_name}.gemspec"
|
68
68
|
deny_indexed marshal_quickdir, "#{@c1_2.full_name}.gemspec"
|
@@ -16,7 +16,7 @@ class TestGemInstallUpdateOptions < RubyGemTestCase
|
|
16
16
|
@cmd.add_install_update_options
|
17
17
|
|
18
18
|
args = %w[-i /install_to --rdoc --ri -E -f -t -w -P HighSecurity
|
19
|
-
--ignore-dependencies --include-dependencies]
|
19
|
+
--ignore-dependencies --format-exec --include-dependencies]
|
20
20
|
|
21
21
|
assert @cmd.handles?(args)
|
22
22
|
end
|
data/test/test_gem_installer.rb
CHANGED
@@ -9,11 +9,13 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
|
|
9
9
|
require 'rubygems/installer'
|
10
10
|
|
11
11
|
class Gem::Installer
|
12
|
+
attr_accessor :gem_dir
|
13
|
+
|
12
14
|
attr_writer :format
|
13
|
-
attr_writer :gem_dir
|
14
15
|
attr_writer :gem_home
|
15
16
|
attr_writer :env_shebang
|
16
17
|
attr_writer :ignore_dependencies
|
18
|
+
attr_writer :format_executable
|
17
19
|
attr_writer :security_policy
|
18
20
|
attr_writer :spec
|
19
21
|
attr_writer :wrappers
|
@@ -37,11 +39,11 @@ class TestGemInstaller < RubyGemTestCase
|
|
37
39
|
@installer.spec = @spec
|
38
40
|
end
|
39
41
|
|
40
|
-
def util_gem_dir(version = '
|
42
|
+
def util_gem_dir(version = '2')
|
41
43
|
File.join @gemhome, "gems", "a-#{version}" # HACK
|
42
44
|
end
|
43
45
|
|
44
|
-
def util_gem_bindir(version = '
|
46
|
+
def util_gem_bindir(version = '2')
|
45
47
|
File.join util_gem_dir(version), "bin"
|
46
48
|
end
|
47
49
|
|
@@ -49,18 +51,19 @@ class TestGemInstaller < RubyGemTestCase
|
|
49
51
|
File.join @gemhome, "bin"
|
50
52
|
end
|
51
53
|
|
52
|
-
def util_make_exec(version = '
|
54
|
+
def util_make_exec(version = '2', shebang = "#!/usr/bin/ruby")
|
53
55
|
@spec.executables = ["my_exec"]
|
54
56
|
|
55
57
|
FileUtils.mkdir_p util_gem_bindir(version)
|
56
|
-
exec_file =
|
57
|
-
File.
|
58
|
+
exec_file = @installer.formatted_program_filename "my_exec"
|
59
|
+
exec_path = File.join util_gem_bindir(version), exec_file
|
60
|
+
File.open exec_path, 'w' do |f|
|
58
61
|
f.puts shebang
|
59
62
|
end
|
60
63
|
end
|
61
64
|
|
62
65
|
def test_app_script_text
|
63
|
-
util_make_exec '
|
66
|
+
util_make_exec '2', ''
|
64
67
|
|
65
68
|
expected = <<-EOF
|
66
69
|
#!#{Gem.ruby}
|
@@ -144,15 +147,15 @@ load 'my_exec'
|
|
144
147
|
end
|
145
148
|
|
146
149
|
def test_ensure_dependency
|
147
|
-
dep = Gem::Dependency.new 'a', '>=
|
150
|
+
dep = Gem::Dependency.new 'a', '>= 2'
|
148
151
|
assert @installer.ensure_dependency(@spec, dep)
|
149
152
|
|
150
|
-
dep = Gem::Dependency.new 'b', '>
|
153
|
+
dep = Gem::Dependency.new 'b', '> 2'
|
151
154
|
e = assert_raise Gem::InstallError do
|
152
155
|
@installer.ensure_dependency @spec, dep
|
153
156
|
end
|
154
157
|
|
155
|
-
assert_equal 'a requires b (>
|
158
|
+
assert_equal 'a requires b (> 2)', e.message
|
156
159
|
end
|
157
160
|
|
158
161
|
def test_expand_and_validate_gem_dir
|
@@ -226,7 +229,32 @@ load 'my_exec'
|
|
226
229
|
"You may need to remove this file if you broke the test once"
|
227
230
|
end
|
228
231
|
|
229
|
-
def
|
232
|
+
def test_generate_bin_bindir
|
233
|
+
@installer.wrappers = true
|
234
|
+
|
235
|
+
@spec.executables = ["my_exec"]
|
236
|
+
@spec.bindir = '.'
|
237
|
+
|
238
|
+
exec_file = @installer.formatted_program_filename "my_exec"
|
239
|
+
exec_path = File.join util_gem_dir(@spec.version), exec_file
|
240
|
+
File.open exec_path, 'w' do |f|
|
241
|
+
f.puts '#!/usr/bin/ruby'
|
242
|
+
end
|
243
|
+
|
244
|
+
@installer.gem_dir = util_gem_dir
|
245
|
+
|
246
|
+
@installer.generate_bin
|
247
|
+
|
248
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
249
|
+
installed_exec = File.join(util_inst_bindir, "my_exec")
|
250
|
+
assert_equal true, File.exist?(installed_exec)
|
251
|
+
assert_equal(0100755, File.stat(installed_exec).mode) unless win_platform?
|
252
|
+
|
253
|
+
wrapper = File.read installed_exec
|
254
|
+
assert_match %r|generated by RubyGems|, wrapper
|
255
|
+
end
|
256
|
+
|
257
|
+
def test_generate_bin_script
|
230
258
|
@installer.wrappers = true
|
231
259
|
util_make_exec
|
232
260
|
@installer.gem_dir = util_gem_dir
|
@@ -241,7 +269,36 @@ load 'my_exec'
|
|
241
269
|
assert_match %r|generated by RubyGems|, wrapper
|
242
270
|
end
|
243
271
|
|
244
|
-
def
|
272
|
+
def test_generate_bin_script_format
|
273
|
+
@installer.format_executable = true
|
274
|
+
@installer.wrappers = true
|
275
|
+
util_make_exec
|
276
|
+
@installer.gem_dir = util_gem_dir
|
277
|
+
|
278
|
+
Gem::Installer.exec_format = 'foo-%s-bar'
|
279
|
+
@installer.generate_bin
|
280
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
281
|
+
installed_exec = File.join util_inst_bindir, 'foo-my_exec-bar'
|
282
|
+
assert_equal true, File.exist?(installed_exec)
|
283
|
+
ensure
|
284
|
+
Gem::Installer.exec_format = nil
|
285
|
+
end
|
286
|
+
|
287
|
+
def test_generate_bin_script_format_disabled
|
288
|
+
@installer.wrappers = true
|
289
|
+
util_make_exec
|
290
|
+
@installer.gem_dir = util_gem_dir
|
291
|
+
|
292
|
+
Gem::Installer.exec_format = 'foo-%s-bar'
|
293
|
+
@installer.generate_bin
|
294
|
+
assert_equal true, File.directory?(util_inst_bindir)
|
295
|
+
installed_exec = File.join util_inst_bindir, 'my_exec'
|
296
|
+
assert_equal true, File.exist?(installed_exec)
|
297
|
+
ensure
|
298
|
+
Gem::Installer.exec_format = nil
|
299
|
+
end
|
300
|
+
|
301
|
+
def test_generate_bin_script_install_dir
|
245
302
|
@installer.wrappers = true
|
246
303
|
@spec.executables = ["my_exec"]
|
247
304
|
|
@@ -265,13 +322,13 @@ load 'my_exec'
|
|
265
322
|
assert_match %r|generated by RubyGems|, wrapper
|
266
323
|
end
|
267
324
|
|
268
|
-
def
|
325
|
+
def test_generate_bin_script_no_execs
|
269
326
|
@installer.wrappers = true
|
270
327
|
@installer.generate_bin
|
271
328
|
assert_equal false, File.exist?(util_inst_bindir)
|
272
329
|
end
|
273
330
|
|
274
|
-
def
|
331
|
+
def test_generate_bin_script_no_perms
|
275
332
|
@installer.wrappers = true
|
276
333
|
util_make_exec
|
277
334
|
|
@@ -286,7 +343,30 @@ load 'my_exec'
|
|
286
343
|
File.chmod 0700, util_inst_bindir unless $DEBUG
|
287
344
|
end
|
288
345
|
|
289
|
-
def
|
346
|
+
def test_generate_bin_script_no_shebang
|
347
|
+
@installer.wrappers = true
|
348
|
+
@spec.executables = ["my_exec"]
|
349
|
+
|
350
|
+
gem_dir = File.join @gemhome, 'gems', @spec.full_name
|
351
|
+
gem_bindir = File.join gem_dir, 'bin'
|
352
|
+
FileUtils.mkdir_p gem_bindir
|
353
|
+
File.open File.join(gem_bindir, "my_exec"), 'w' do |f|
|
354
|
+
f.puts "blah blah blah"
|
355
|
+
end
|
356
|
+
|
357
|
+
@installer.generate_bin
|
358
|
+
|
359
|
+
installed_exec = File.join @gemhome, 'bin', 'my_exec'
|
360
|
+
assert_equal true, File.exist?(installed_exec)
|
361
|
+
assert_equal 0100755, File.stat(installed_exec).mode unless win_platform?
|
362
|
+
|
363
|
+
wrapper = File.read installed_exec
|
364
|
+
assert_match %r|generated by RubyGems|, wrapper
|
365
|
+
# HACK some gems don't have #! in their executables, restore 2008/06
|
366
|
+
#assert_no_match %r|generated by RubyGems|, wrapper
|
367
|
+
end
|
368
|
+
|
369
|
+
def test_generate_bin_symlink
|
290
370
|
return if win_platform? #Windows FS do not support symlinks
|
291
371
|
|
292
372
|
@installer.wrappers = false
|
@@ -301,13 +381,13 @@ load 'my_exec'
|
|
301
381
|
File.readlink(installed_exec))
|
302
382
|
end
|
303
383
|
|
304
|
-
def
|
384
|
+
def test_generate_bin_symlink_no_execs
|
305
385
|
@installer.wrappers = false
|
306
386
|
@installer.generate_bin
|
307
387
|
assert_equal false, File.exist?(util_inst_bindir)
|
308
388
|
end
|
309
389
|
|
310
|
-
def
|
390
|
+
def test_generate_bin_symlink_no_perms
|
311
391
|
@installer.wrappers = false
|
312
392
|
util_make_exec
|
313
393
|
@installer.gem_dir = util_gem_dir
|
@@ -323,7 +403,7 @@ load 'my_exec'
|
|
323
403
|
File.chmod 0700, util_inst_bindir unless $DEBUG
|
324
404
|
end
|
325
405
|
|
326
|
-
def
|
406
|
+
def test_generate_bin_symlink_update_newer
|
327
407
|
return if win_platform? #Windows FS do not support symlinks
|
328
408
|
|
329
409
|
@installer.wrappers = false
|
@@ -338,22 +418,22 @@ load 'my_exec'
|
|
338
418
|
@spec = Gem::Specification.new do |s|
|
339
419
|
s.files = ['lib/code.rb']
|
340
420
|
s.name = "a"
|
341
|
-
s.version = "
|
421
|
+
s.version = "3"
|
342
422
|
s.summary = "summary"
|
343
423
|
s.description = "desc"
|
344
424
|
s.require_path = 'lib'
|
345
425
|
end
|
346
426
|
|
347
|
-
util_make_exec '
|
348
|
-
@installer.gem_dir = File.join util_gem_dir('
|
427
|
+
util_make_exec '3'
|
428
|
+
@installer.gem_dir = File.join util_gem_dir('3')
|
349
429
|
@installer.generate_bin
|
350
430
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
351
|
-
assert_equal(File.join(util_gem_bindir('
|
431
|
+
assert_equal(File.join(util_gem_bindir('3'), "my_exec"),
|
352
432
|
File.readlink(installed_exec),
|
353
433
|
"Ensure symlink moved to latest version")
|
354
434
|
end
|
355
435
|
|
356
|
-
def
|
436
|
+
def test_generate_bin_symlink_update_older
|
357
437
|
return if win_platform? #Windows FS do not support symlinks
|
358
438
|
|
359
439
|
@installer.wrappers = false
|
@@ -368,25 +448,25 @@ load 'my_exec'
|
|
368
448
|
spec = Gem::Specification.new do |s|
|
369
449
|
s.files = ['lib/code.rb']
|
370
450
|
s.name = "a"
|
371
|
-
s.version = "
|
451
|
+
s.version = "1"
|
372
452
|
s.summary = "summary"
|
373
453
|
s.description = "desc"
|
374
454
|
s.require_path = 'lib'
|
375
455
|
end
|
376
456
|
|
377
|
-
util_make_exec '
|
378
|
-
@installer.gem_dir = util_gem_dir('
|
457
|
+
util_make_exec '1'
|
458
|
+
@installer.gem_dir = util_gem_dir('1')
|
379
459
|
@installer.spec = spec
|
380
460
|
|
381
461
|
@installer.generate_bin
|
382
462
|
|
383
463
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
384
|
-
assert_equal(File.join(util_gem_dir('
|
464
|
+
assert_equal(File.join(util_gem_dir('2'), "bin", "my_exec"),
|
385
465
|
File.readlink(installed_exec),
|
386
466
|
"Ensure symlink not moved")
|
387
467
|
end
|
388
468
|
|
389
|
-
def
|
469
|
+
def test_generate_bin_symlink_update_remove_wrapper
|
390
470
|
return if win_platform? #Windows FS do not support symlinks
|
391
471
|
|
392
472
|
@installer.wrappers = true
|
@@ -400,25 +480,25 @@ load 'my_exec'
|
|
400
480
|
@spec = Gem::Specification.new do |s|
|
401
481
|
s.files = ['lib/code.rb']
|
402
482
|
s.name = "a"
|
403
|
-
s.version = "
|
483
|
+
s.version = "3"
|
404
484
|
s.summary = "summary"
|
405
485
|
s.description = "desc"
|
406
486
|
s.require_path = 'lib'
|
407
487
|
end
|
408
488
|
|
409
489
|
@installer.wrappers = false
|
410
|
-
util_make_exec '
|
411
|
-
@installer.gem_dir = util_gem_dir '
|
490
|
+
util_make_exec '3'
|
491
|
+
@installer.gem_dir = util_gem_dir '3'
|
412
492
|
@installer.generate_bin
|
413
493
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
414
|
-
assert_equal(File.join(util_gem_dir('
|
494
|
+
assert_equal(File.join(util_gem_dir('3'), "bin", "my_exec"),
|
415
495
|
File.readlink(installed_exec),
|
416
496
|
"Ensure symlink moved to latest version")
|
417
497
|
end
|
418
498
|
|
419
|
-
def
|
420
|
-
|
421
|
-
|
499
|
+
def test_generate_bin_symlink_win32
|
500
|
+
old_win_platform = Gem.win_platform?
|
501
|
+
Gem.win_platform = true
|
422
502
|
@installer.wrappers = false
|
423
503
|
util_make_exec
|
424
504
|
@installer.gem_dir = util_gem_dir
|
@@ -431,16 +511,13 @@ load 'my_exec'
|
|
431
511
|
installed_exec = File.join(util_inst_bindir, "my_exec")
|
432
512
|
assert_equal true, File.exist?(installed_exec)
|
433
513
|
|
434
|
-
assert_match(/Unable to use symlinks on
|
514
|
+
assert_match(/Unable to use symlinks on Windows, installing wrapper/i,
|
435
515
|
@ui.error)
|
436
|
-
|
437
|
-
expected_mode = win_platform? ? 0100644 : 0100755
|
438
|
-
assert_equal expected_mode, File.stat(installed_exec).mode
|
439
516
|
|
440
517
|
wrapper = File.read installed_exec
|
441
518
|
assert_match(/generated by RubyGems/, wrapper)
|
442
519
|
ensure
|
443
|
-
|
520
|
+
Gem.win_platform = old_win_platform
|
444
521
|
end
|
445
522
|
|
446
523
|
def test_generate_bin_uses_default_shebang
|
@@ -457,6 +534,19 @@ load 'my_exec'
|
|
457
534
|
assert_match(/#{default_shebang}/, shebang_line)
|
458
535
|
end
|
459
536
|
|
537
|
+
def test_initialize
|
538
|
+
spec = quick_gem 'a' do |s| s.platform = Gem::Platform.new 'mswin32' end
|
539
|
+
gem = File.join @tempdir, "#{spec.full_name}.gem"
|
540
|
+
|
541
|
+
util_build_gem spec
|
542
|
+
FileUtils.mv File.join(@gemhome, 'cache', "#{spec.full_name}.gem"),
|
543
|
+
@tempdir
|
544
|
+
|
545
|
+
installer = Gem::Installer.new gem
|
546
|
+
|
547
|
+
assert_equal File.join(@gemhome, 'gems', spec.full_name), installer.gem_dir
|
548
|
+
end
|
549
|
+
|
460
550
|
def test_install
|
461
551
|
util_setup_gem
|
462
552
|
|
@@ -521,7 +611,7 @@ load 'my_exec'
|
|
521
611
|
installer.install
|
522
612
|
end
|
523
613
|
|
524
|
-
gem_dir = File.join(@gemhome, 'gems', 'old_ruby_required-
|
614
|
+
gem_dir = File.join(@gemhome, 'gems', 'old_ruby_required-1')
|
525
615
|
assert File.exist?(gem_dir)
|
526
616
|
end
|
527
617
|
|
@@ -608,8 +698,8 @@ load 'my_exec'
|
|
608
698
|
end
|
609
699
|
|
610
700
|
def test_install_wrong_rubygems_version
|
611
|
-
spec = quick_gem 'old_rubygems_required', '
|
612
|
-
s.required_rubygems_version = '< 0
|
701
|
+
spec = quick_gem 'old_rubygems_required', '1' do |s|
|
702
|
+
s.required_rubygems_version = '< 0'
|
613
703
|
end
|
614
704
|
|
615
705
|
util_build_gem spec
|
@@ -621,21 +711,21 @@ load 'my_exec'
|
|
621
711
|
e = assert_raise Gem::InstallError do
|
622
712
|
@installer.install
|
623
713
|
end
|
624
|
-
assert_equal 'old_rubygems_required requires RubyGems version < 0
|
714
|
+
assert_equal 'old_rubygems_required requires RubyGems version < 0',
|
625
715
|
e.message
|
626
716
|
end
|
627
717
|
end
|
628
718
|
|
629
719
|
def test_installation_satisfies_dependency_eh
|
630
|
-
dep = Gem::Dependency.new 'a', '>=
|
720
|
+
dep = Gem::Dependency.new 'a', '>= 2'
|
631
721
|
assert @installer.installation_satisfies_dependency?(dep)
|
632
722
|
|
633
|
-
dep = Gem::Dependency.new 'a', '>
|
723
|
+
dep = Gem::Dependency.new 'a', '> 2'
|
634
724
|
assert ! @installer.installation_satisfies_dependency?(dep)
|
635
725
|
end
|
636
726
|
|
637
727
|
def test_shebang
|
638
|
-
util_make_exec '
|
728
|
+
util_make_exec '2', "#!/usr/bin/ruby"
|
639
729
|
|
640
730
|
shebang = @installer.shebang 'my_exec'
|
641
731
|
|
@@ -643,7 +733,7 @@ load 'my_exec'
|
|
643
733
|
end
|
644
734
|
|
645
735
|
def test_shebang_arguments
|
646
|
-
util_make_exec '
|
736
|
+
util_make_exec '2', "#!/usr/bin/ruby -ws"
|
647
737
|
|
648
738
|
shebang = @installer.shebang 'my_exec'
|
649
739
|
|
@@ -651,14 +741,14 @@ load 'my_exec'
|
|
651
741
|
end
|
652
742
|
|
653
743
|
def test_shebang_empty
|
654
|
-
util_make_exec '
|
744
|
+
util_make_exec '2', ''
|
655
745
|
|
656
746
|
shebang = @installer.shebang 'my_exec'
|
657
747
|
assert_equal "#!#{Gem.ruby}", shebang
|
658
748
|
end
|
659
749
|
|
660
750
|
def test_shebang_env
|
661
|
-
util_make_exec '
|
751
|
+
util_make_exec '2', "#!/usr/bin/env ruby"
|
662
752
|
|
663
753
|
shebang = @installer.shebang 'my_exec'
|
664
754
|
|
@@ -666,7 +756,7 @@ load 'my_exec'
|
|
666
756
|
end
|
667
757
|
|
668
758
|
def test_shebang_env_arguments
|
669
|
-
util_make_exec '
|
759
|
+
util_make_exec '2', "#!/usr/bin/env ruby -ws"
|
670
760
|
|
671
761
|
shebang = @installer.shebang 'my_exec'
|
672
762
|
|
@@ -674,7 +764,7 @@ load 'my_exec'
|
|
674
764
|
end
|
675
765
|
|
676
766
|
def test_shebang_env_shebang
|
677
|
-
util_make_exec '
|
767
|
+
util_make_exec '2', ''
|
678
768
|
@installer.env_shebang = true
|
679
769
|
|
680
770
|
shebang = @installer.shebang 'my_exec'
|
@@ -682,7 +772,7 @@ load 'my_exec'
|
|
682
772
|
end
|
683
773
|
|
684
774
|
def test_shebang_nested
|
685
|
-
util_make_exec '
|
775
|
+
util_make_exec '2', "#!/opt/local/ruby/bin/ruby"
|
686
776
|
|
687
777
|
shebang = @installer.shebang 'my_exec'
|
688
778
|
|
@@ -690,7 +780,7 @@ load 'my_exec'
|
|
690
780
|
end
|
691
781
|
|
692
782
|
def test_shebang_nested_arguments
|
693
|
-
util_make_exec '
|
783
|
+
util_make_exec '2', "#!/opt/local/ruby/bin/ruby -ws"
|
694
784
|
|
695
785
|
shebang = @installer.shebang 'my_exec'
|
696
786
|
|
@@ -698,7 +788,7 @@ load 'my_exec'
|
|
698
788
|
end
|
699
789
|
|
700
790
|
def test_shebang_version
|
701
|
-
util_make_exec '
|
791
|
+
util_make_exec '2', "#!/usr/bin/ruby18"
|
702
792
|
|
703
793
|
shebang = @installer.shebang 'my_exec'
|
704
794
|
|
@@ -706,7 +796,7 @@ load 'my_exec'
|
|
706
796
|
end
|
707
797
|
|
708
798
|
def test_shebang_version_arguments
|
709
|
-
util_make_exec '
|
799
|
+
util_make_exec '2', "#!/usr/bin/ruby18 -ws"
|
710
800
|
|
711
801
|
shebang = @installer.shebang 'my_exec'
|
712
802
|
|
@@ -714,7 +804,7 @@ load 'my_exec'
|
|
714
804
|
end
|
715
805
|
|
716
806
|
def test_shebang_version_env
|
717
|
-
util_make_exec '
|
807
|
+
util_make_exec '2', "#!/usr/bin/env ruby18"
|
718
808
|
|
719
809
|
shebang = @installer.shebang 'my_exec'
|
720
810
|
|
@@ -722,7 +812,7 @@ load 'my_exec'
|
|
722
812
|
end
|
723
813
|
|
724
814
|
def test_shebang_version_env_arguments
|
725
|
-
util_make_exec '
|
815
|
+
util_make_exec '2', "#!/usr/bin/env ruby18 -ws"
|
726
816
|
|
727
817
|
shebang = @installer.shebang 'my_exec'
|
728
818
|
|
@@ -756,7 +846,7 @@ load 'my_exec'
|
|
756
846
|
end
|
757
847
|
|
758
848
|
def old_ruby_required
|
759
|
-
spec = quick_gem 'old_ruby_required', '
|
849
|
+
spec = quick_gem 'old_ruby_required', '1' do |s|
|
760
850
|
s.required_ruby_version = '= 1.4.6'
|
761
851
|
end
|
762
852
|
|
@@ -793,4 +883,3 @@ load 'my_exec'
|
|
793
883
|
|
794
884
|
end
|
795
885
|
|
796
|
-
|