rubygems-update 2.1.11 → 2.2.0.rc.1
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.autotest +37 -12
- data/History.txt +99 -2
- data/MIT.txt +1 -0
- data/Manifest.txt +59 -19
- data/Rakefile +4 -6
- data/lib/gauntlet_rubygems.rb +1 -1
- data/lib/rubygems.rb +102 -80
- data/lib/rubygems/available_set.rb +2 -2
- data/lib/rubygems/basic_specification.rb +97 -8
- data/lib/rubygems/commands/install_command.rb +58 -15
- data/lib/rubygems/commands/list_command.rb +1 -7
- data/lib/rubygems/commands/outdated_command.rb +1 -1
- data/lib/rubygems/commands/pristine_command.rb +14 -1
- data/lib/rubygems/commands/push_command.rb +9 -4
- data/lib/rubygems/commands/query_command.rb +33 -17
- data/lib/rubygems/commands/search_command.rb +0 -6
- data/lib/rubygems/commands/specification_command.rb +1 -1
- data/lib/rubygems/commands/unpack_command.rb +1 -1
- data/lib/rubygems/commands/update_command.rb +4 -1
- data/lib/rubygems/commands/which_command.rb +5 -8
- data/lib/rubygems/compatibility.rb +3 -0
- data/lib/rubygems/core_ext/kernel_gem.rb +6 -0
- data/lib/rubygems/defaults.rb +19 -0
- data/lib/rubygems/dependency_installer.rb +28 -9
- data/lib/rubygems/doctor.rb +17 -11
- data/lib/rubygems/errors.rb +16 -3
- data/lib/rubygems/exceptions.rb +52 -5
- data/lib/rubygems/ext.rb +1 -2
- data/lib/rubygems/ext/build_error.rb +6 -0
- data/lib/rubygems/ext/builder.rb +50 -17
- data/lib/rubygems/ext/cmake_builder.rb +1 -1
- data/lib/rubygems/ext/configure_builder.rb +1 -3
- data/lib/rubygems/ext/ext_conf_builder.rb +9 -3
- data/lib/rubygems/ext/rake_builder.rb +2 -5
- data/lib/rubygems/gemcutter_utilities.rb +8 -1
- data/lib/rubygems/installer.rb +14 -4
- data/lib/rubygems/installer_test_case.rb +0 -5
- data/lib/rubygems/package.rb +11 -2
- data/lib/rubygems/psych_additions.rb +1 -1
- data/lib/rubygems/rdoc.rb +1 -1
- data/lib/rubygems/remote_fetcher.rb +3 -3
- data/lib/rubygems/request.rb +16 -8
- data/lib/rubygems/request_set.rb +133 -42
- data/lib/rubygems/request_set/gem_dependency_api.rb +493 -11
- data/lib/rubygems/request_set/lockfile.rb +579 -0
- data/lib/rubygems/requirement.rb +58 -30
- data/lib/rubygems/resolver.rb +471 -0
- data/lib/rubygems/resolver/activation_request.rb +165 -0
- data/lib/rubygems/resolver/api_set.rb +110 -0
- data/lib/rubygems/resolver/api_specification.rb +79 -0
- data/lib/rubygems/resolver/best_set.rb +31 -0
- data/lib/rubygems/resolver/composed_set.rb +39 -0
- data/lib/rubygems/resolver/conflict.rb +122 -0
- data/lib/rubygems/{dependency_resolver → resolver}/current_set.rb +1 -4
- data/lib/rubygems/{dependency_resolver → resolver}/dependency_request.rb +37 -7
- data/lib/rubygems/resolver/git_set.rb +119 -0
- data/lib/rubygems/resolver/git_specification.rb +35 -0
- data/lib/rubygems/resolver/index_set.rb +74 -0
- data/lib/rubygems/resolver/index_specification.rb +69 -0
- data/lib/rubygems/resolver/installed_specification.rb +40 -0
- data/lib/rubygems/{dependency_resolver → resolver}/installer_set.rb +18 -17
- data/lib/rubygems/resolver/local_specification.rb +16 -0
- data/lib/rubygems/resolver/lock_set.rb +78 -0
- data/lib/rubygems/resolver/lock_specification.rb +58 -0
- data/lib/rubygems/resolver/requirement_list.rb +81 -0
- data/lib/rubygems/resolver/set.rb +27 -0
- data/lib/rubygems/resolver/spec_specification.rb +58 -0
- data/lib/rubygems/resolver/specification.rb +89 -0
- data/lib/rubygems/resolver/stats.rb +44 -0
- data/lib/rubygems/resolver/vendor_set.rb +83 -0
- data/lib/rubygems/resolver/vendor_specification.rb +24 -0
- data/lib/rubygems/security/trust_dir.rb +16 -2
- data/lib/rubygems/source.rb +71 -18
- data/lib/rubygems/source/git.rb +218 -0
- data/lib/rubygems/source/installed.rb +8 -1
- data/lib/rubygems/source/local.rb +14 -8
- data/lib/rubygems/source/lock.rb +48 -0
- data/lib/rubygems/source/specific_file.rb +14 -3
- data/lib/rubygems/source/vendor.rb +27 -0
- data/lib/rubygems/source_list.rb +74 -12
- data/lib/rubygems/spec_fetcher.rb +36 -4
- data/lib/rubygems/specification.rb +214 -65
- data/lib/rubygems/stub_specification.rb +57 -1
- data/lib/rubygems/syck_hack.rb +3 -3
- data/lib/rubygems/test_case.rb +226 -59
- data/lib/rubygems/test_utilities.rb +198 -0
- data/lib/rubygems/uninstaller.rb +22 -10
- data/lib/rubygems/uri_formatter.rb +20 -0
- data/lib/rubygems/user_interaction.rb +193 -71
- data/lib/rubygems/util.rb +121 -0
- data/lib/rubygems/util/list.rb +4 -0
- data/lib/rubygems/util/stringio.rb +34 -0
- data/lib/rubygems/validator.rb +6 -2
- data/lib/rubygems/version.rb +4 -8
- data/test/rubygems/test_bundled_ca.rb +1 -1
- data/test/rubygems/test_gem.rb +137 -29
- data/test/rubygems/test_gem_available_set.rb +19 -0
- data/test/rubygems/test_gem_commands_build_command.rb +1 -1
- data/test/rubygems/test_gem_commands_cert_command.rb +2 -2
- data/test/rubygems/test_gem_commands_cleanup_command.rb +13 -13
- data/test/rubygems/test_gem_commands_dependency_command.rb +24 -34
- data/test/rubygems/test_gem_commands_fetch_command.rb +43 -48
- data/test/rubygems/test_gem_commands_install_command.rb +244 -279
- data/test/rubygems/test_gem_commands_list_command.rb +3 -3
- data/test/rubygems/test_gem_commands_outdated_command.rb +7 -12
- data/test/rubygems/test_gem_commands_pristine_command.rb +73 -27
- data/test/rubygems/test_gem_commands_push_command.rb +76 -8
- data/test/rubygems/test_gem_commands_query_command.rb +239 -49
- data/test/rubygems/test_gem_commands_sources_command.rb +10 -43
- data/test/rubygems/test_gem_commands_specification_command.rb +24 -47
- data/test/rubygems/test_gem_commands_stale_command.rb +2 -2
- data/test/rubygems/test_gem_commands_uninstall_command.rb +3 -3
- data/test/rubygems/test_gem_commands_unpack_command.rb +16 -30
- data/test/rubygems/test_gem_commands_update_command.rb +149 -134
- data/test/rubygems/test_gem_commands_which_command.rb +4 -2
- data/test/rubygems/test_gem_dependency_installer.rb +68 -0
- data/test/rubygems/test_gem_dependency_list.rb +17 -17
- data/test/rubygems/test_gem_dependency_resolution_error.rb +28 -0
- data/test/rubygems/test_gem_doctor.rb +1 -1
- data/test/rubygems/test_gem_ext_builder.rb +178 -8
- data/test/rubygems/test_gem_ext_cmake_builder.rb +1 -7
- data/test/rubygems/test_gem_ext_configure_builder.rb +8 -10
- data/test/rubygems/test_gem_ext_ext_conf_builder.rb +18 -21
- data/test/rubygems/test_gem_ext_rake_builder.rb +1 -3
- data/test/rubygems/test_gem_impossible_dependencies_error.rb +10 -6
- data/test/rubygems/test_gem_indexer.rb +6 -6
- data/test/rubygems/test_gem_installer.rb +29 -10
- data/test/rubygems/test_gem_local_remote_options.rb +1 -1
- data/test/rubygems/test_gem_package.rb +18 -0
- data/test/rubygems/test_gem_rdoc.rb +1 -1
- data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
- data/test/rubygems/test_gem_request.rb +37 -10
- data/test/rubygems/test_gem_request_set.rb +271 -9
- data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +684 -0
- data/test/rubygems/test_gem_request_set_lockfile.rb +849 -0
- data/test/rubygems/test_gem_requirement.rb +21 -0
- data/test/rubygems/{test_gem_dependency_resolver.rb → test_gem_resolver.rb} +231 -70
- data/test/rubygems/test_gem_resolver_activation_request.rb +63 -0
- data/test/rubygems/test_gem_resolver_api_set.rb +167 -0
- data/test/rubygems/test_gem_resolver_api_specification.rb +104 -0
- data/test/rubygems/test_gem_resolver_best_set.rb +30 -0
- data/test/rubygems/test_gem_resolver_conflict.rb +75 -0
- data/test/rubygems/test_gem_resolver_dependency_request.rb +20 -0
- data/test/rubygems/test_gem_resolver_git_set.rb +148 -0
- data/test/rubygems/test_gem_resolver_git_specification.rb +100 -0
- data/test/rubygems/test_gem_resolver_index_set.rb +28 -0
- data/test/rubygems/test_gem_resolver_index_specification.rb +89 -0
- data/test/rubygems/test_gem_resolver_installed_specification.rb +49 -0
- data/test/rubygems/test_gem_resolver_installer_set.rb +22 -0
- data/test/rubygems/test_gem_resolver_local_specification.rb +45 -0
- data/test/rubygems/test_gem_resolver_lock_set.rb +57 -0
- data/test/rubygems/test_gem_resolver_lock_specification.rb +87 -0
- data/test/rubygems/test_gem_resolver_requirement_list.rb +20 -0
- data/test/rubygems/test_gem_resolver_specification.rb +32 -0
- data/test/rubygems/test_gem_resolver_vendor_set.rb +67 -0
- data/test/rubygems/test_gem_resolver_vendor_specification.rb +83 -0
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +54 -64
- data/test/rubygems/test_gem_source_git.rb +231 -0
- data/test/rubygems/test_gem_source_list.rb +24 -0
- data/test/rubygems/test_gem_source_local.rb +1 -1
- data/test/rubygems/test_gem_source_lock.rb +114 -0
- data/test/rubygems/test_gem_source_vendor.rb +27 -0
- data/test/rubygems/test_gem_spec_fetcher.rb +116 -61
- data/test/rubygems/test_gem_specification.rb +526 -94
- data/test/rubygems/test_gem_stub_specification.rb +123 -10
- data/test/rubygems/test_gem_uninstaller.rb +28 -2
- data/test/rubygems/test_gem_util.rb +31 -0
- data/test/rubygems/test_gem_validator.rb +9 -0
- data/util/update_bundled_ca_certificates.rb +8 -1
- metadata +89 -29
- metadata.gz.sig +2 -4
- data/lib/rubygems/dependency_resolver.rb +0 -254
- data/lib/rubygems/dependency_resolver/activation_request.rb +0 -109
- data/lib/rubygems/dependency_resolver/api_set.rb +0 -65
- data/lib/rubygems/dependency_resolver/api_specification.rb +0 -39
- data/lib/rubygems/dependency_resolver/composed_set.rb +0 -18
- data/lib/rubygems/dependency_resolver/dependency_conflict.rb +0 -85
- data/lib/rubygems/dependency_resolver/index_set.rb +0 -64
- data/lib/rubygems/dependency_resolver/index_specification.rb +0 -60
- data/lib/rubygems/dependency_resolver/installed_specification.rb +0 -52
- data/test/rubygems/test_gem_dependency_resolver_api_specification.rb +0 -33
- data/test/rubygems/test_gem_dependency_resolver_dependency_conflict.rb +0 -36
- data/test/rubygems/test_gem_dependency_resolver_index_set.rb +0 -53
- data/test/rubygems/test_gem_dependency_resolver_index_specification.rb +0 -73
- data/test/rubygems/test_gem_dependency_resolver_installed_specification.rb +0 -19
- data/test/rubygems/test_gem_dependency_resolver_installer_set.rb +0 -28
@@ -57,13 +57,7 @@ install (FILES test.txt DESTINATION bin)
|
|
57
57
|
shell_error_msg = %r{(CMake Error: .*)}
|
58
58
|
sh_prefix_cmake = "cmake . -DCMAKE_INSTALL_PREFIX="
|
59
59
|
|
60
|
-
|
61
|
-
|
62
|
-
#{Regexp.escape sh_prefix_cmake}#{Regexp.escape @dest_path}
|
63
|
-
#{shell_error_msg}
|
64
|
-
)
|
65
|
-
|
66
|
-
assert_match expected, error.message
|
60
|
+
assert_match 'cmake failed', error.message
|
67
61
|
|
68
62
|
assert_match %r%^#{sh_prefix_cmake}#{Regexp.escape @dest_path}%, output
|
69
63
|
assert_match %r%#{shell_error_msg}%, output
|
@@ -6,7 +6,8 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
6
6
|
def setup
|
7
7
|
super
|
8
8
|
|
9
|
-
@makefile_body =
|
9
|
+
@makefile_body =
|
10
|
+
"clean:\n\t@echo ok\nall:\n\t@echo ok\ninstall:\n\t@echo ok"
|
10
11
|
|
11
12
|
@ext = File.join @tempdir, 'ext'
|
12
13
|
@dest_path = File.join @tempdir, 'prefix'
|
@@ -30,6 +31,8 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
30
31
|
|
31
32
|
assert_equal "sh ./configure --prefix=#{@dest_path}", output.shift
|
32
33
|
assert_equal "", output.shift
|
34
|
+
assert_contains_make_command 'clean', output.shift
|
35
|
+
assert_match(/^ok$/m, output.shift)
|
33
36
|
assert_contains_make_command '', output.shift
|
34
37
|
assert_match(/^ok$/m, output.shift)
|
35
38
|
assert_contains_make_command 'install', output.shift
|
@@ -49,13 +52,7 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
49
52
|
shell_error_msg = %r{(\./configure: .*)|((?:Can't|cannot) open \./configure(?:: No such file or directory)?)}
|
50
53
|
sh_prefix_configure = "sh ./configure --prefix="
|
51
54
|
|
52
|
-
|
53
|
-
|
54
|
-
#{Regexp.escape sh_prefix_configure}#{Regexp.escape @dest_path}
|
55
|
-
(?:.*?: )?#{shell_error_msg}
|
56
|
-
)
|
57
|
-
|
58
|
-
assert_match expected, error.message
|
55
|
+
assert_match 'configure failed', error.message
|
59
56
|
|
60
57
|
assert_equal "#{sh_prefix_configure}#{@dest_path}", output.shift
|
61
58
|
assert_match %r(#{shell_error_msg}), output.shift
|
@@ -76,8 +73,9 @@ class TestGemExtConfigureBuilder < Gem::TestCase
|
|
76
73
|
Gem::Ext::ConfigureBuilder.build nil, nil, @dest_path, output
|
77
74
|
end
|
78
75
|
|
79
|
-
assert_contains_make_command '', output[0]
|
80
|
-
assert_contains_make_command '
|
76
|
+
assert_contains_make_command 'clean', output[0]
|
77
|
+
assert_contains_make_command '', output[2]
|
78
|
+
assert_contains_make_command 'install', output[4]
|
81
79
|
end
|
82
80
|
|
83
81
|
end
|
@@ -35,8 +35,9 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
35
35
|
|
36
36
|
assert_match(/^#{Gem.ruby} extconf.rb/, output[0])
|
37
37
|
assert_equal "creating Makefile\n", output[1]
|
38
|
-
assert_contains_make_command '', output[2]
|
39
|
-
assert_contains_make_command '
|
38
|
+
assert_contains_make_command 'clean', output[2]
|
39
|
+
assert_contains_make_command '', output[4]
|
40
|
+
assert_contains_make_command 'install', output[6]
|
40
41
|
assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
|
41
42
|
end
|
42
43
|
|
@@ -54,8 +55,9 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
54
55
|
end
|
55
56
|
|
56
57
|
assert_equal "creating Makefile\n", output[1]
|
57
|
-
assert_contains_make_command '', output[2]
|
58
|
-
assert_contains_make_command '
|
58
|
+
assert_contains_make_command 'clean', output[2]
|
59
|
+
assert_contains_make_command '', output[4]
|
60
|
+
assert_contains_make_command 'install', output[6]
|
59
61
|
ensure
|
60
62
|
RbConfig::CONFIG['configure_args'] = configure_args
|
61
63
|
end
|
@@ -77,8 +79,8 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
77
79
|
end
|
78
80
|
end
|
79
81
|
|
80
|
-
assert_equal "creating Makefile\n",
|
81
|
-
assert_contains_make_command '', output[2]
|
82
|
+
assert_equal "creating Makefile\n", output[1]
|
83
|
+
assert_contains_make_command 'clean', output[2]
|
82
84
|
ensure
|
83
85
|
RbConfig::CONFIG['configure_args'] = configure_args
|
84
86
|
ENV['make'] = env_make
|
@@ -103,10 +105,7 @@ class TestGemExtExtConfBuilder < Gem::TestCase
|
|
103
105
|
end
|
104
106
|
end
|
105
107
|
|
106
|
-
|
107
|
-
|
108
|
-
#{Gem.ruby} extconf.rb.*
|
109
|
-
checking for main\(\) in .*?nonexistent/m, error.message)
|
108
|
+
assert_equal 'extconf failed, exit code 1', error.message
|
110
109
|
|
111
110
|
assert_equal("#{Gem.ruby} extconf.rb", output[0])
|
112
111
|
end
|
@@ -130,6 +129,7 @@ ruby =
|
|
130
129
|
|
131
130
|
open 'Makefile', 'w' do |io|
|
132
131
|
io.write <<-Makefile
|
132
|
+
clean: ruby
|
133
133
|
all: ruby
|
134
134
|
install: ruby
|
135
135
|
|
@@ -147,8 +147,9 @@ end
|
|
147
147
|
Gem::Ext::ExtConfBuilder.build 'extconf.rb', nil, @dest_path, output
|
148
148
|
end
|
149
149
|
|
150
|
-
assert_contains_make_command '', output[2]
|
151
|
-
assert_contains_make_command '
|
150
|
+
assert_contains_make_command 'clean', output[2]
|
151
|
+
assert_contains_make_command '', output[4]
|
152
|
+
assert_contains_make_command 'install', output[6]
|
152
153
|
assert_empty Dir.glob(File.join(@ext, 'siteconf*.rb'))
|
153
154
|
end
|
154
155
|
|
@@ -163,6 +164,7 @@ end
|
|
163
164
|
makefile.puts "# π"
|
164
165
|
makefile.puts "RUBYARCHDIR = $(foo)$(target_prefix)"
|
165
166
|
makefile.puts "RUBYLIBDIR = $(bar)$(target_prefix)"
|
167
|
+
makefile.puts "clean:"
|
166
168
|
makefile.puts "all:"
|
167
169
|
makefile.puts "install:"
|
168
170
|
end
|
@@ -171,8 +173,9 @@ end
|
|
171
173
|
Gem::Ext::ExtConfBuilder.make @ext, output
|
172
174
|
end
|
173
175
|
|
174
|
-
assert_contains_make_command '', output[0]
|
175
|
-
assert_contains_make_command '
|
176
|
+
assert_contains_make_command 'clean', output[0]
|
177
|
+
assert_contains_make_command '', output[2]
|
178
|
+
assert_contains_make_command 'install', output[4]
|
176
179
|
end
|
177
180
|
|
178
181
|
def test_class_make_no_Makefile
|
@@ -182,13 +185,7 @@ end
|
|
182
185
|
end
|
183
186
|
end
|
184
187
|
|
185
|
-
|
186
|
-
Makefile not found:
|
187
|
-
|
188
|
-
output
|
189
|
-
EOF
|
190
|
-
|
191
|
-
assert_equal expected, error.message
|
188
|
+
assert_equal 'Makefile not found', error.message
|
192
189
|
end
|
193
190
|
|
194
191
|
end
|
@@ -56,9 +56,7 @@ class TestGemExtRakeBuilder < Gem::TestCase
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
assert_match %r%^rake failed
|
60
|
-
assert_match %r%^#{Regexp.escape @@ruby} mkrf_conf\.rb%, error.message
|
61
|
-
assert_match %r%^#{Regexp.escape rake} RUBYARCHDIR=#{Regexp.escape @dest_path} RUBYLIBDIR=#{Regexp.escape @dest_path}%, error.message
|
59
|
+
assert_match %r%^rake failed%, error.message
|
62
60
|
end
|
63
61
|
end
|
64
62
|
|
@@ -15,10 +15,10 @@ class TestGemImpossibleDependenciesError < Gem::TestCase
|
|
15
15
|
net_ssh_2_6_5 =
|
16
16
|
dependency_request dep('net-ssh', '~> 2.2.2'), 'net-ssh', '2.6.5', request
|
17
17
|
|
18
|
-
conflict1 = Gem::
|
18
|
+
conflict1 = Gem::Resolver::Conflict.new \
|
19
19
|
net_ssh_2_6_5, net_ssh_2_6_5.requester
|
20
20
|
|
21
|
-
conflict2 = Gem::
|
21
|
+
conflict2 = Gem::Resolver::Conflict.new \
|
22
22
|
net_ssh_2_2_2, net_ssh_2_2_2.requester
|
23
23
|
|
24
24
|
conflicts << [net_ssh_2_6_5.requester.spec, conflict1]
|
@@ -28,10 +28,14 @@ class TestGemImpossibleDependenciesError < Gem::TestCase
|
|
28
28
|
|
29
29
|
expected = <<-EXPECTED
|
30
30
|
rye-0.9.8 requires net-ssh (>= 2.0.13) but it conflicted:
|
31
|
-
Activated net-ssh-2.6.5
|
32
|
-
net-ssh-2.6.5, rye-0.9.8
|
33
|
-
|
34
|
-
net-ssh-2.2.
|
31
|
+
Activated net-ssh-2.6.5 via:
|
32
|
+
net-ssh-2.6.5 (>= 2.0.13), rye-0.9.8 (= 0.9.8)
|
33
|
+
instead of (~> 2.2.2) via:
|
34
|
+
net-ssh-2.6.5 (>= 2.0.13), rye-0.9.8 (= 0.9.8)
|
35
|
+
Activated net-ssh-2.2.2 via:
|
36
|
+
net-ssh-2.2.2 (>= 2.0.13), rye-0.9.8 (= 0.9.8)
|
37
|
+
instead of (>= 2.6.5) via:
|
38
|
+
net-ssh-2.2.2 (>= 2.0.13), rye-0.9.8 (= 0.9.8)
|
35
39
|
EXPECTED
|
36
40
|
|
37
41
|
assert_equal expected, error.message
|
@@ -13,15 +13,15 @@ class TestGemIndexer < Gem::TestCase
|
|
13
13
|
util_clear_gems
|
14
14
|
util_make_gems
|
15
15
|
|
16
|
-
@d2_0 =
|
16
|
+
@d2_0 = util_spec 'd', '2.0' do |s|
|
17
17
|
s.date = Gem::Specification::TODAY - 86400 * 3
|
18
18
|
end
|
19
19
|
util_build_gem @d2_0
|
20
20
|
|
21
|
-
@d2_0_a =
|
21
|
+
@d2_0_a = util_spec 'd', '2.0.a'
|
22
22
|
util_build_gem @d2_0_a
|
23
23
|
|
24
|
-
@d2_0_b =
|
24
|
+
@d2_0_b = util_spec 'd', '2.0.b'
|
25
25
|
util_build_gem @d2_0_b
|
26
26
|
|
27
27
|
@default = new_default_spec 'default', 2
|
@@ -292,7 +292,7 @@ class TestGemIndexer < Gem::TestCase
|
|
292
292
|
def with_system_gems
|
293
293
|
Gem::Specification.reset
|
294
294
|
|
295
|
-
sys_gem =
|
295
|
+
sys_gem = util_spec 'systemgem', '1.0'
|
296
296
|
util_build_gem sys_gem
|
297
297
|
Gem::Specification.add_spec sys_gem
|
298
298
|
yield
|
@@ -311,11 +311,11 @@ class TestGemIndexer < Gem::TestCase
|
|
311
311
|
assert File.directory?(quickdir)
|
312
312
|
assert File.directory?(marshal_quickdir)
|
313
313
|
|
314
|
-
@d2_1 =
|
314
|
+
@d2_1 = util_spec 'd', '2.1'
|
315
315
|
util_build_gem @d2_1
|
316
316
|
@d2_1_tuple = [@d2_1.name, @d2_1.version, @d2_1.original_platform]
|
317
317
|
|
318
|
-
@d2_1_a =
|
318
|
+
@d2_1_a = util_spec 'd', '2.2.a'
|
319
319
|
util_build_gem @d2_1_a
|
320
320
|
@d2_1_a_tuple = [@d2_1_a.name, @d2_1_a.version, @d2_1_a.original_platform]
|
321
321
|
|
@@ -185,7 +185,7 @@ gem 'other', version
|
|
185
185
|
end unless Gem.win_platform?
|
186
186
|
|
187
187
|
def test_ensure_dependency
|
188
|
-
|
188
|
+
util_spec 'a'
|
189
189
|
|
190
190
|
dep = Gem::Dependency.new 'a', '>= 2'
|
191
191
|
assert @installer.ensure_dependency(@spec, dep)
|
@@ -606,7 +606,7 @@ gem 'other', version
|
|
606
606
|
end
|
607
607
|
|
608
608
|
def test_initialize
|
609
|
-
spec =
|
609
|
+
spec = util_spec 'a' do |s| s.platform = Gem::Platform.new 'mswin32' end
|
610
610
|
gem = File.join @tempdir, spec.file_name
|
611
611
|
|
612
612
|
Dir.mkdir util_inst_bindir
|
@@ -645,9 +645,11 @@ gem 'other', version
|
|
645
645
|
cache_file = File.join @gemhome, 'cache', @spec.file_name
|
646
646
|
stub_exe = File.join @gemhome, 'bin', 'executable'
|
647
647
|
rakefile = File.join gemdir, 'ext', 'a', 'Rakefile'
|
648
|
+
spec_file = File.join @gemhome, 'specifications', @spec.spec_name
|
648
649
|
|
649
650
|
Gem.pre_install do |installer|
|
650
651
|
refute_path_exists cache_file, 'cache file must not exist yet'
|
652
|
+
refute_path_exists spec_file, 'spec file must not exist yet'
|
651
653
|
true
|
652
654
|
end
|
653
655
|
|
@@ -655,11 +657,13 @@ gem 'other', version
|
|
655
657
|
assert_path_exists gemdir, 'gem install dir must exist'
|
656
658
|
assert_path_exists rakefile, 'gem executable must exist'
|
657
659
|
refute_path_exists stub_exe, 'gem executable must not exist'
|
660
|
+
refute_path_exists spec_file, 'spec file must not exist yet'
|
658
661
|
true
|
659
662
|
end
|
660
663
|
|
661
664
|
Gem.post_install do |installer|
|
662
665
|
assert_path_exists cache_file, 'cache file must exist'
|
666
|
+
assert_path_exists spec_file, 'spec file must exist'
|
663
667
|
end
|
664
668
|
|
665
669
|
@newspec = nil
|
@@ -937,7 +941,7 @@ gem 'other', version
|
|
937
941
|
assert_match %r|I am a shiny gem!|, @ui.output
|
938
942
|
end
|
939
943
|
|
940
|
-
def
|
944
|
+
def test_install_extension_dir
|
941
945
|
gemhome2 = "#{@gemhome}2"
|
942
946
|
|
943
947
|
@spec.extensions << "extconf.rb"
|
@@ -1004,6 +1008,10 @@ gem 'other', version
|
|
1004
1008
|
skip '1.9.2 and earlier mkmf.rb does not create TOUCH' if
|
1005
1009
|
RUBY_VERSION < '1.9.3'
|
1006
1010
|
|
1011
|
+
if RUBY_VERSION == "1.9.3" and RUBY_PATCHLEVEL <= 194
|
1012
|
+
skip "TOUCH was introduced into 1.9.3 after p194"
|
1013
|
+
end
|
1014
|
+
|
1007
1015
|
@spec.require_paths = ["."]
|
1008
1016
|
|
1009
1017
|
@spec.extensions << "extconf.rb"
|
@@ -1038,13 +1046,19 @@ gem 'other', version
|
|
1038
1046
|
puts '-' * 78
|
1039
1047
|
puts File.read File.join(@gemhome, 'gems', 'a-2', 'Makefile')
|
1040
1048
|
puts '-' * 78
|
1041
|
-
|
1042
|
-
|
1049
|
+
|
1050
|
+
path = File.join(@gemhome, 'gems', 'a-2', 'gem_make.out')
|
1051
|
+
|
1052
|
+
if File.exists?(path)
|
1053
|
+
puts File.read(path)
|
1054
|
+
puts '-' * 78
|
1055
|
+
end
|
1056
|
+
|
1043
1057
|
raise
|
1044
1058
|
end
|
1045
1059
|
|
1046
1060
|
def test_installation_satisfies_dependency_eh
|
1047
|
-
|
1061
|
+
util_spec 'a'
|
1048
1062
|
|
1049
1063
|
dep = Gem::Dependency.new 'a', '>= 2'
|
1050
1064
|
assert @installer.installation_satisfies_dependency?(dep)
|
@@ -1113,7 +1127,7 @@ gem 'other', version
|
|
1113
1127
|
end
|
1114
1128
|
|
1115
1129
|
def test_pre_install_checks_wrong_rubygems_version
|
1116
|
-
spec =
|
1130
|
+
spec = util_spec 'old_rubygems_required', '1' do |s|
|
1117
1131
|
s.required_rubygems_version = '< 0'
|
1118
1132
|
end
|
1119
1133
|
|
@@ -1346,7 +1360,12 @@ gem 'other', version
|
|
1346
1360
|
@installer.write_spec
|
1347
1361
|
|
1348
1362
|
assert_path_exists @spec.spec_file
|
1349
|
-
|
1363
|
+
|
1364
|
+
loaded = Gem::Specification.load @spec.spec_file
|
1365
|
+
|
1366
|
+
assert_equal @spec, loaded
|
1367
|
+
|
1368
|
+
assert_equal Gem.rubygems_version, @spec.installed_by_version
|
1350
1369
|
end
|
1351
1370
|
|
1352
1371
|
def test_write_spec_writes_cached_spec
|
@@ -1395,7 +1414,7 @@ gem 'other', version
|
|
1395
1414
|
end
|
1396
1415
|
|
1397
1416
|
def old_ruby_required
|
1398
|
-
spec =
|
1417
|
+
spec = util_spec 'old_ruby_required', '1' do |s|
|
1399
1418
|
s.required_ruby_version = '= 1.4.6'
|
1400
1419
|
end
|
1401
1420
|
|
@@ -1405,7 +1424,7 @@ gem 'other', version
|
|
1405
1424
|
end
|
1406
1425
|
|
1407
1426
|
def util_execless
|
1408
|
-
@spec =
|
1427
|
+
@spec = util_spec 'z'
|
1409
1428
|
util_build_gem @spec
|
1410
1429
|
|
1411
1430
|
@installer = util_installer @spec, @gemhome
|
@@ -396,6 +396,24 @@ class TestGemPackage < Gem::Package::TarTestCase
|
|
396
396
|
"#{@destination} is not allowed", e.message)
|
397
397
|
end
|
398
398
|
|
399
|
+
def test_extract_tar_gz_directory
|
400
|
+
package = Gem::Package.new @gem
|
401
|
+
|
402
|
+
tgz_io = util_tar_gz do |tar|
|
403
|
+
tar.mkdir 'lib', 0755
|
404
|
+
tar.add_file 'lib/foo.rb', 0644 do |io| io.write 'hi' end
|
405
|
+
tar.mkdir 'lib/foo', 0755
|
406
|
+
end
|
407
|
+
|
408
|
+
package.extract_tar_gz tgz_io, @destination
|
409
|
+
|
410
|
+
extracted = File.join @destination, 'lib/foo.rb'
|
411
|
+
assert_path_exists extracted
|
412
|
+
|
413
|
+
extracted = File.join @destination, 'lib/foo'
|
414
|
+
assert_path_exists extracted
|
415
|
+
end
|
416
|
+
|
399
417
|
def test_extract_tar_gz_dot_slash
|
400
418
|
package = Gem::Package.new @gem
|
401
419
|
|
@@ -165,7 +165,7 @@ gems:
|
|
165
165
|
def test_api_endpoint
|
166
166
|
uri = URI.parse "http://gems.example.com/foo"
|
167
167
|
target = MiniTest::Mock.new
|
168
|
-
target.expect :target, "
|
168
|
+
target.expect :target, "blah.com"
|
169
169
|
|
170
170
|
dns = MiniTest::Mock.new
|
171
171
|
dns.expect :getresource, target, [String, Object]
|
@@ -12,8 +12,9 @@ class TestGemRequest < Gem::TestCase
|
|
12
12
|
super
|
13
13
|
|
14
14
|
@proxy_uri = "http://localhost:1234"
|
15
|
+
@uri = URI('http://example')
|
15
16
|
|
16
|
-
@request = Gem::Request.new
|
17
|
+
@request = Gem::Request.new @uri, nil, nil, nil
|
17
18
|
end
|
18
19
|
|
19
20
|
def teardown
|
@@ -25,7 +26,7 @@ class TestGemRequest < Gem::TestCase
|
|
25
26
|
def test_initialize_proxy
|
26
27
|
proxy_uri = 'http://proxy.example.com'
|
27
28
|
|
28
|
-
request = Gem::Request.new
|
29
|
+
request = Gem::Request.new @uri, nil, nil, proxy_uri
|
29
30
|
|
30
31
|
assert_equal proxy_uri, request.proxy_uri.to_s
|
31
32
|
end
|
@@ -33,7 +34,7 @@ class TestGemRequest < Gem::TestCase
|
|
33
34
|
def test_initialize_proxy_URI
|
34
35
|
proxy_uri = 'http://proxy.example.com'
|
35
36
|
|
36
|
-
request = Gem::Request.new
|
37
|
+
request = Gem::Request.new @uri, nil, nil, URI(proxy_uri)
|
37
38
|
|
38
39
|
assert_equal proxy_uri, request.proxy_uri.to_s
|
39
40
|
end
|
@@ -43,7 +44,7 @@ class TestGemRequest < Gem::TestCase
|
|
43
44
|
ENV['http_proxy_user'] = 'foo'
|
44
45
|
ENV['http_proxy_pass'] = 'bar'
|
45
46
|
|
46
|
-
request = Gem::Request.new
|
47
|
+
request = Gem::Request.new @uri, nil, nil, nil
|
47
48
|
|
48
49
|
proxy = request.proxy_uri
|
49
50
|
|
@@ -51,6 +52,32 @@ class TestGemRequest < Gem::TestCase
|
|
51
52
|
assert_equal 'bar', proxy.password
|
52
53
|
end
|
53
54
|
|
55
|
+
def test_initialize_proxy_ENV_https
|
56
|
+
ENV['https_proxy'] = @proxy_uri
|
57
|
+
|
58
|
+
request = Gem::Request.new URI('https://example'), nil, nil, nil
|
59
|
+
|
60
|
+
proxy = request.proxy_uri
|
61
|
+
|
62
|
+
assert_equal URI(@proxy_uri), proxy
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_get_proxy_from_env_fallback
|
66
|
+
ENV['http_proxy'] = @proxy_uri
|
67
|
+
|
68
|
+
proxy = @request.get_proxy_from_env 'https'
|
69
|
+
|
70
|
+
assert_equal URI(@proxy_uri), proxy
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_get_proxy_from_env_https
|
74
|
+
ENV['https_proxy'] = @proxy_uri
|
75
|
+
|
76
|
+
proxy = @request.get_proxy_from_env 'https'
|
77
|
+
|
78
|
+
assert_equal URI(@proxy_uri), proxy
|
79
|
+
end
|
80
|
+
|
54
81
|
def test_get_proxy_from_env_domain
|
55
82
|
ENV['http_proxy'] = @proxy_uri
|
56
83
|
ENV['http_proxy_user'] = 'foo\user'
|
@@ -125,7 +152,7 @@ class TestGemRequest < Gem::TestCase
|
|
125
152
|
end
|
126
153
|
|
127
154
|
def test_user_agent
|
128
|
-
ua = Gem::Request.new(
|
155
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
129
156
|
|
130
157
|
assert_match %r%^RubyGems/\S+ \S+ Ruby/\S+ \(.*?\)%, ua
|
131
158
|
assert_match %r%RubyGems/#{Regexp.escape Gem::VERSION}%, ua
|
@@ -140,7 +167,7 @@ class TestGemRequest < Gem::TestCase
|
|
140
167
|
Object.send :remove_const, :RUBY_ENGINE if defined?(RUBY_ENGINE)
|
141
168
|
Object.send :const_set, :RUBY_ENGINE, 'vroom'
|
142
169
|
|
143
|
-
ua = Gem::Request.new(
|
170
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
144
171
|
|
145
172
|
assert_match %r%\) vroom%, ua
|
146
173
|
ensure
|
@@ -153,7 +180,7 @@ class TestGemRequest < Gem::TestCase
|
|
153
180
|
Object.send :remove_const, :RUBY_ENGINE if defined?(RUBY_ENGINE)
|
154
181
|
Object.send :const_set, :RUBY_ENGINE, 'ruby'
|
155
182
|
|
156
|
-
ua = Gem::Request.new(
|
183
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
157
184
|
|
158
185
|
assert_match %r%\)%, ua
|
159
186
|
ensure
|
@@ -166,7 +193,7 @@ class TestGemRequest < Gem::TestCase
|
|
166
193
|
Object.send :remove_const, :RUBY_PATCHLEVEL
|
167
194
|
Object.send :const_set, :RUBY_PATCHLEVEL, 5
|
168
195
|
|
169
|
-
ua = Gem::Request.new(
|
196
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
170
197
|
|
171
198
|
assert_match %r% patchlevel 5\)%, ua
|
172
199
|
ensure
|
@@ -181,7 +208,7 @@ class TestGemRequest < Gem::TestCase
|
|
181
208
|
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
182
209
|
Object.send :const_set, :RUBY_REVISION, 6
|
183
210
|
|
184
|
-
ua = Gem::Request.new(
|
211
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
185
212
|
|
186
213
|
assert_match %r% revision 6\)%, ua
|
187
214
|
assert_match %r%Ruby/#{Regexp.escape RUBY_VERSION}dev%, ua
|
@@ -196,7 +223,7 @@ class TestGemRequest < Gem::TestCase
|
|
196
223
|
Object.send :const_set, :RUBY_PATCHLEVEL, -1
|
197
224
|
Object.send :remove_const, :RUBY_REVISION if defined?(RUBY_REVISION)
|
198
225
|
|
199
|
-
ua = Gem::Request.new(
|
226
|
+
ua = Gem::Request.new(@uri, nil, nil, nil).user_agent
|
200
227
|
|
201
228
|
assert_match %r%\(#{Regexp.escape RUBY_RELEASE_DATE}\)%, ua
|
202
229
|
ensure
|