rubygems-update 2.7.4 → 2.7.5
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.
Potentially problematic release.
This version of rubygems-update might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +5 -8
- data/Manifest.txt +2 -1
- data/Rakefile +7 -0
- data/bundler/CHANGELOG.md +13 -0
- data/bundler/bundler.gemspec +2 -0
- data/bundler/lib/bundler/cli/gem.rb +1 -1
- data/bundler/lib/bundler/cli/init.rb +1 -5
- data/bundler/lib/bundler/cli/update.rb +3 -1
- data/bundler/lib/bundler/definition.rb +1 -1
- data/bundler/lib/bundler/resolver.rb +4 -1
- data/bundler/lib/bundler/source/rubygems.rb +2 -4
- data/bundler/lib/bundler/templates/.document +1 -0
- data/bundler/lib/bundler/templates/Executable +11 -3
- data/bundler/lib/bundler/templates/newgem/{.travis.yml.tt → travis.yml.tt} +0 -0
- data/bundler/lib/bundler/version.rb +1 -1
- data/lib/rubygems.rb +5 -5
- data/lib/rubygems/commands/generate_index_command.rb +1 -1
- data/lib/rubygems/commands/setup_command.rb +12 -6
- data/lib/rubygems/commands/unpack_command.rb +2 -2
- data/lib/rubygems/config_file.rb +1 -1
- data/lib/rubygems/ext/builder.rb +1 -1
- data/lib/rubygems/indexer.rb +5 -4
- data/lib/rubygems/installer.rb +9 -4
- data/lib/rubygems/package.rb +2 -2
- data/lib/rubygems/package/file_source.rb +2 -2
- data/lib/rubygems/package/old.rb +1 -1
- data/lib/rubygems/request_set/lockfile.rb +1 -1
- data/lib/rubygems/security.rb +1 -1
- data/lib/rubygems/security/trust_dir.rb +1 -1
- data/lib/rubygems/source.rb +1 -1
- data/lib/rubygems/specification.rb +4 -0
- data/lib/rubygems/stub_specification.rb +2 -0
- data/lib/rubygems/test_case.rb +14 -8
- data/lib/rubygems/test_utilities.rb +1 -1
- data/lib/rubygems/util.rb +2 -1
- data/lib/rubygems/validator.rb +3 -3
- data/test/rubygems/test_gem.rb +17 -14
- data/test/rubygems/test_gem_commands_cleanup_command.rb +1 -1
- data/test/rubygems/test_gem_commands_install_command.rb +1 -0
- data/test/rubygems/test_gem_commands_push_command.rb +5 -5
- data/test/rubygems/test_gem_commands_setup_command.rb +20 -20
- data/test/rubygems/test_gem_commands_uninstall_command.rb +2 -2
- data/test/rubygems/test_gem_dependency_installer.rb +1 -1
- data/test/rubygems/test_gem_doctor.rb +2 -2
- data/test/rubygems/test_gem_ext_builder.rb +6 -6
- data/test/rubygems/test_gem_gemcutter_utilities.rb +4 -4
- data/test/rubygems/test_gem_indexer.rb +1 -2
- data/test/rubygems/test_gem_install_update_options.rb +2 -0
- data/test/rubygems/test_gem_installer.rb +5 -1
- data/test/rubygems/test_gem_package.rb +15 -15
- data/test/rubygems/test_gem_package_old.rb +1 -1
- data/test/rubygems/test_gem_rdoc.rb +2 -0
- data/test/rubygems/test_gem_remote_fetcher.rb +1 -1
- data/test/rubygems/test_gem_request_connection_pools.rb +6 -7
- data/test/rubygems/test_gem_request_set.rb +7 -7
- data/test/rubygems/test_gem_request_set_lockfile.rb +4 -4
- data/test/rubygems/test_gem_request_set_lockfile_parser.rb +1 -1
- data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
- data/test/rubygems/test_gem_resolver_git_specification.rb +1 -1
- data/test/rubygems/test_gem_server.rb +4 -4
- data/test/rubygems/test_gem_source.rb +3 -3
- data/test/rubygems/test_gem_source_git.rb +1 -1
- data/test/rubygems/test_gem_specification.rb +21 -17
- data/test/rubygems/test_gem_stub_specification.rb +7 -7
- data/test/rubygems/test_gem_util.rb +23 -0
- data/test/rubygems/test_gem_version.rb +11 -0
- data/test/rubygems/test_require.rb +15 -21
- metadata +4 -3
@@ -70,7 +70,7 @@ class TestGemResolverGitSpecification < Gem::TestCase
|
|
70
70
|
Dir.chdir 'git/a' do
|
71
71
|
FileUtils.mkdir_p 'ext/lib'
|
72
72
|
|
73
|
-
open 'ext/extconf.rb', 'w' do |io|
|
73
|
+
File.open 'ext/extconf.rb', 'w' do |io|
|
74
74
|
io.puts 'require "mkmf"'
|
75
75
|
io.puts 'create_makefile "a"'
|
76
76
|
end
|
@@ -100,7 +100,7 @@ class TestGemServer < Gem::TestCase
|
|
100
100
|
specs_dir = File.join dir, 'specifications'
|
101
101
|
FileUtils.mkdir_p specs_dir
|
102
102
|
|
103
|
-
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
103
|
+
File.open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
104
104
|
io.write spec.to_ruby
|
105
105
|
end
|
106
106
|
|
@@ -198,7 +198,7 @@ class TestGemServer < Gem::TestCase
|
|
198
198
|
|
199
199
|
FileUtils.mkdir_p specs_dir
|
200
200
|
|
201
|
-
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
201
|
+
File.open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
202
202
|
io.write spec.to_ruby
|
203
203
|
end
|
204
204
|
|
@@ -339,7 +339,7 @@ class TestGemServer < Gem::TestCase
|
|
339
339
|
specs_dir = File.join dir, 'specifications'
|
340
340
|
FileUtils.mkdir_p specs_dir
|
341
341
|
|
342
|
-
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
342
|
+
File.open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
343
343
|
io.write spec.to_ruby
|
344
344
|
end
|
345
345
|
|
@@ -378,7 +378,7 @@ class TestGemServer < Gem::TestCase
|
|
378
378
|
specs_dir = File.join dir, 'specifications'
|
379
379
|
FileUtils.mkdir_p specs_dir
|
380
380
|
|
381
|
-
open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
381
|
+
File.open File.join(specs_dir, spec.spec_name), 'w' do |io|
|
382
382
|
io.write spec.to_ruby
|
383
383
|
end
|
384
384
|
|
@@ -110,7 +110,7 @@ class TestGemSource < Gem::TestCase
|
|
110
110
|
|
111
111
|
cache_file = File.join cache_dir, a1.spec_name
|
112
112
|
|
113
|
-
open cache_file, 'wb' do |io|
|
113
|
+
File.open cache_file, 'wb' do |io|
|
114
114
|
Marshal.dump a1, io
|
115
115
|
end
|
116
116
|
|
@@ -163,7 +163,7 @@ class TestGemSource < Gem::TestCase
|
|
163
163
|
|
164
164
|
cache_file = File.join cache_dir, "latest_specs.#{Gem.marshal_version}"
|
165
165
|
|
166
|
-
open cache_file, 'wb' do |io|
|
166
|
+
File.open cache_file, 'wb' do |io|
|
167
167
|
Marshal.dump latest_specs, io
|
168
168
|
end
|
169
169
|
|
@@ -187,7 +187,7 @@ class TestGemSource < Gem::TestCase
|
|
187
187
|
|
188
188
|
cache_file = File.join cache_dir, "latest_specs.#{Gem.marshal_version}"
|
189
189
|
|
190
|
-
open cache_file, 'wb' do |io|
|
190
|
+
File.open cache_file, 'wb' do |io|
|
191
191
|
# Setup invalid data in the cache:
|
192
192
|
io.write Marshal.dump(latest_specs)[0, 10]
|
193
193
|
end
|
@@ -922,7 +922,7 @@ dependencies: []
|
|
922
922
|
end
|
923
923
|
|
924
924
|
def test_self_load_relative
|
925
|
-
open 'a-2.gemspec', 'w' do |io|
|
925
|
+
File.open 'a-2.gemspec', 'w' do |io|
|
926
926
|
io.write @a2.to_ruby_for_cache
|
927
927
|
end
|
928
928
|
|
@@ -948,6 +948,9 @@ dependencies: []
|
|
948
948
|
@a2.files.clear
|
949
949
|
|
950
950
|
assert_equal @a2, spec
|
951
|
+
|
952
|
+
ensure
|
953
|
+
$SAFE = 0
|
951
954
|
end
|
952
955
|
|
953
956
|
def test_self_load_escape_curly
|
@@ -1111,7 +1114,7 @@ dependencies: []
|
|
1111
1114
|
end
|
1112
1115
|
|
1113
1116
|
def test_self_remove_spec_removed
|
1114
|
-
open @a1.spec_file, 'w' do |io|
|
1117
|
+
File.open @a1.spec_file, 'w' do |io|
|
1115
1118
|
io.write @a1.to_ruby
|
1116
1119
|
end
|
1117
1120
|
|
@@ -1363,13 +1366,13 @@ dependencies: []
|
|
1363
1366
|
|
1364
1367
|
assert_empty @ext.build_args
|
1365
1368
|
|
1366
|
-
open @ext.build_info_file, 'w' do |io|
|
1369
|
+
File.open @ext.build_info_file, 'w' do |io|
|
1367
1370
|
io.puts
|
1368
1371
|
end
|
1369
1372
|
|
1370
1373
|
assert_empty @ext.build_args
|
1371
1374
|
|
1372
|
-
open @ext.build_info_file, 'w' do |io|
|
1375
|
+
File.open @ext.build_info_file, 'w' do |io|
|
1373
1376
|
io.puts '--with-foo-dir=wherever'
|
1374
1377
|
end
|
1375
1378
|
|
@@ -1385,9 +1388,9 @@ dependencies: []
|
|
1385
1388
|
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
|
1386
1389
|
FileUtils.mkdir_p File.dirname extconf_rb
|
1387
1390
|
|
1388
|
-
open extconf_rb, 'w' do |f|
|
1391
|
+
File.open extconf_rb, 'w' do |f|
|
1389
1392
|
f.write <<-'RUBY'
|
1390
|
-
open 'Makefile', 'w' do |f|
|
1393
|
+
File.open 'Makefile', 'w' do |f|
|
1391
1394
|
f.puts "clean:\n\techo clean"
|
1392
1395
|
f.puts "default:\n\techo built"
|
1393
1396
|
f.puts "install:\n\techo installed"
|
@@ -1435,9 +1438,9 @@ dependencies: []
|
|
1435
1438
|
extconf_rb = File.join spec.gem_dir, spec.extensions.first
|
1436
1439
|
FileUtils.mkdir_p File.dirname extconf_rb
|
1437
1440
|
|
1438
|
-
open extconf_rb, 'w' do |f|
|
1441
|
+
File.open extconf_rb, 'w' do |f|
|
1439
1442
|
f.write <<-'RUBY'
|
1440
|
-
open 'Makefile', 'w' do |f|
|
1443
|
+
File.open 'Makefile', 'w' do |f|
|
1441
1444
|
f.puts "default:\n\techo built"
|
1442
1445
|
f.puts "install:\n\techo installed"
|
1443
1446
|
end
|
@@ -1461,6 +1464,7 @@ dependencies: []
|
|
1461
1464
|
|
1462
1465
|
def test_build_extensions_extensions_dir_unwritable
|
1463
1466
|
skip 'chmod not supported' if Gem.win_platform?
|
1467
|
+
skip 'skipped in root privilege' if Process.uid.zero?
|
1464
1468
|
|
1465
1469
|
ext_spec
|
1466
1470
|
|
@@ -1469,9 +1473,9 @@ dependencies: []
|
|
1469
1473
|
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
|
1470
1474
|
FileUtils.mkdir_p File.dirname extconf_rb
|
1471
1475
|
|
1472
|
-
open extconf_rb, 'w' do |f|
|
1476
|
+
File.open extconf_rb, 'w' do |f|
|
1473
1477
|
f.write <<-'RUBY'
|
1474
|
-
open 'Makefile', 'w' do |f|
|
1478
|
+
File.open 'Makefile', 'w' do |f|
|
1475
1479
|
f.puts "clean:\n\techo clean"
|
1476
1480
|
f.puts "default:\n\techo built"
|
1477
1481
|
f.puts "install:\n\techo installed"
|
@@ -1486,7 +1490,7 @@ dependencies: []
|
|
1486
1490
|
@ext.build_extensions
|
1487
1491
|
refute_path_exists @ext.extension_dir
|
1488
1492
|
ensure
|
1489
|
-
unless ($DEBUG or win_platform?) then
|
1493
|
+
unless ($DEBUG or win_platform? or Process.uid.zero?) then
|
1490
1494
|
FileUtils.chmod 0755, File.join(@ext.base_dir, 'extensions')
|
1491
1495
|
FileUtils.chmod 0755, @ext.base_dir
|
1492
1496
|
end
|
@@ -1502,9 +1506,9 @@ dependencies: []
|
|
1502
1506
|
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
|
1503
1507
|
FileUtils.mkdir_p File.dirname extconf_rb
|
1504
1508
|
|
1505
|
-
open extconf_rb, 'w' do |f|
|
1509
|
+
File.open extconf_rb, 'w' do |f|
|
1506
1510
|
f.write <<-'RUBY'
|
1507
|
-
open 'Makefile', 'w' do |f|
|
1511
|
+
File.open 'Makefile', 'w' do |f|
|
1508
1512
|
f.puts "clean:\n\techo clean"
|
1509
1513
|
f.puts "default:\n\techo built"
|
1510
1514
|
f.puts "install:\n\techo installed"
|
@@ -1551,9 +1555,9 @@ dependencies: []
|
|
1551
1555
|
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
|
1552
1556
|
FileUtils.mkdir_p File.dirname extconf_rb
|
1553
1557
|
|
1554
|
-
open extconf_rb, 'w' do |f|
|
1558
|
+
File.open extconf_rb, 'w' do |f|
|
1555
1559
|
f.write <<-'RUBY'
|
1556
|
-
open 'Makefile', 'w' do |f|
|
1560
|
+
File.open 'Makefile', 'w' do |f|
|
1557
1561
|
f.puts "clean:\n\techo clean"
|
1558
1562
|
f.puts "default:\n\techo built"
|
1559
1563
|
f.puts "install:\n\techo installed"
|
@@ -3418,9 +3422,9 @@ end
|
|
3418
3422
|
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
|
3419
3423
|
FileUtils.mkdir_p File.dirname extconf_rb
|
3420
3424
|
|
3421
|
-
open extconf_rb, 'w' do |f|
|
3425
|
+
File.open extconf_rb, 'w' do |f|
|
3422
3426
|
f.write <<-'RUBY'
|
3423
|
-
open 'Makefile', 'w' do |f|
|
3427
|
+
File.open 'Makefile', 'w' do |f|
|
3424
3428
|
f.puts "clean:\n\techo clean"
|
3425
3429
|
f.puts "default:\n\techo built"
|
3426
3430
|
f.puts "install:\n\techo installed"
|
@@ -127,9 +127,9 @@ class TestStubSpecification < Gem::TestCase
|
|
127
127
|
extconf_rb = File.join s.gem_dir, s.extensions.first
|
128
128
|
FileUtils.mkdir_p File.dirname extconf_rb
|
129
129
|
|
130
|
-
open extconf_rb, 'w' do |f|
|
130
|
+
File.open extconf_rb, 'w' do |f|
|
131
131
|
f.write <<-'RUBY'
|
132
|
-
open 'Makefile', 'w' do |f|
|
132
|
+
File.open 'Makefile', 'w' do |f|
|
133
133
|
f.puts "clean:\n\techo clean"
|
134
134
|
f.puts "default:\n\techo built"
|
135
135
|
f.puts "install:\n\techo installed"
|
@@ -149,7 +149,7 @@ class TestStubSpecification < Gem::TestCase
|
|
149
149
|
spec = new_default_spec 'default', 1
|
150
150
|
spec.extensions << 'extconf.rb'
|
151
151
|
|
152
|
-
open spec.loaded_from, 'w' do |io|
|
152
|
+
File.open spec.loaded_from, 'w' do |io|
|
153
153
|
io.write spec.to_ruby_for_cache
|
154
154
|
end
|
155
155
|
|
@@ -198,7 +198,7 @@ class TestStubSpecification < Gem::TestCase
|
|
198
198
|
|
199
199
|
def stub_with_version
|
200
200
|
spec = File.join @gemhome, 'specifications', 'stub_e-2.gemspec'
|
201
|
-
open spec, 'w' do |io|
|
201
|
+
File.open spec, 'w' do |io|
|
202
202
|
io.write <<-STUB
|
203
203
|
# -*- encoding: utf-8 -*-
|
204
204
|
# stub: stub_v 2 ruby lib
|
@@ -221,7 +221,7 @@ end
|
|
221
221
|
|
222
222
|
def stub_without_version
|
223
223
|
spec = File.join @gemhome, 'specifications', 'stub-2.gemspec'
|
224
|
-
open spec, 'w' do |io|
|
224
|
+
File.open spec, 'w' do |io|
|
225
225
|
io.write <<-STUB
|
226
226
|
# -*- encoding: utf-8 -*-
|
227
227
|
# stub: stub_v ruby lib
|
@@ -245,7 +245,7 @@ end
|
|
245
245
|
|
246
246
|
def stub_with_extension
|
247
247
|
spec = File.join @gemhome, 'specifications', 'stub_e-2.gemspec'
|
248
|
-
open spec, 'w' do |io|
|
248
|
+
File.open spec, 'w' do |io|
|
249
249
|
io.write <<-STUB
|
250
250
|
# -*- encoding: utf-8 -*-
|
251
251
|
# stub: stub_e 2 ruby lib
|
@@ -271,7 +271,7 @@ end
|
|
271
271
|
|
272
272
|
def stub_without_extension
|
273
273
|
spec = File.join @gemhome, 'specifications', 'stub-2.gemspec'
|
274
|
-
open spec, 'w' do |io|
|
274
|
+
File.open spec, 'w' do |io|
|
275
275
|
io.write <<-STUB
|
276
276
|
# -*- encoding: utf-8 -*-
|
277
277
|
# stub: stub 2 ruby lib
|
@@ -5,6 +5,7 @@ require 'rubygems/util'
|
|
5
5
|
class TestGemUtil < Gem::TestCase
|
6
6
|
|
7
7
|
def test_class_popen
|
8
|
+
skip "MJIT executes process and it's caught by Process.wait(-1)" if defined?(RubyVM::MJIT) && RubyVM::MJIT.enabled?
|
8
9
|
assert_equal "0\n", Gem::Util.popen(Gem.ruby, '-e', 'p 0')
|
9
10
|
|
10
11
|
assert_raises Errno::ECHILD do
|
@@ -29,6 +30,28 @@ class TestGemUtil < Gem::TestCase
|
|
29
30
|
loop { break if enum.next.nil? } # exhaust the enumerator
|
30
31
|
end
|
31
32
|
|
33
|
+
def test_traverse_parents_does_not_crash_on_permissions_error
|
34
|
+
skip 'skipped on MS Windows (chmod has no effect)' if win_platform?
|
35
|
+
|
36
|
+
FileUtils.mkdir_p 'd/e/f'
|
37
|
+
# remove 'execute' permission from "e" directory and make it
|
38
|
+
# impossible to cd into it and its children
|
39
|
+
FileUtils.chmod(0666, 'd/e')
|
40
|
+
|
41
|
+
paths = Gem::Util.traverse_parents('d/e/f').to_a
|
42
|
+
|
43
|
+
assert_equal File.join(@tempdir, 'd'), paths[0]
|
44
|
+
assert_equal @tempdir, paths[1]
|
45
|
+
# File.expand_path with macOS returns `/private` prefix.
|
46
|
+
if RUBY_PLATFORM !~ /darwin/
|
47
|
+
assert_equal Dir.tmpdir, paths[2]
|
48
|
+
assert_equal '/', paths[3]
|
49
|
+
end
|
50
|
+
ensure
|
51
|
+
# restore default permissions, allow the directory to be removed
|
52
|
+
FileUtils.chmod(0775, 'd/e') unless win_platform?
|
53
|
+
end
|
54
|
+
|
32
55
|
def test_linked_list_find
|
33
56
|
list = [1,2,3,4,5].inject(Gem::List.new(0)) { |m,o|
|
34
57
|
Gem::List.new o, m
|
@@ -2,6 +2,8 @@
|
|
2
2
|
require 'rubygems/test_case'
|
3
3
|
require "rubygems/version"
|
4
4
|
|
5
|
+
require "minitest/benchmark"
|
6
|
+
|
5
7
|
class TestGemVersion < Gem::TestCase
|
6
8
|
|
7
9
|
class V < ::Gem::Version
|
@@ -102,6 +104,15 @@ class TestGemVersion < Gem::TestCase
|
|
102
104
|
end
|
103
105
|
end
|
104
106
|
|
107
|
+
def bench_anchored_version_pattern
|
108
|
+
assert_performance_linear 0.5 do |count|
|
109
|
+
version_string = count.times.map {|i| "0" * i.succ }.join(".") << "."
|
110
|
+
version_string =~ Gem::Version::ANCHORED_VERSION_PATTERN
|
111
|
+
end
|
112
|
+
rescue RegexpError
|
113
|
+
skip "It fails to allocate the memory for regex pattern of Gem::Version::ANCHORED_VERSION_PATTERN"
|
114
|
+
end
|
115
|
+
|
105
116
|
def test_empty_version
|
106
117
|
["", " ", " "].each do |empty|
|
107
118
|
assert_equal "0", Gem::Version.new(empty).version
|
@@ -38,18 +38,6 @@ class TestGemRequire < Gem::TestCase
|
|
38
38
|
assert require(path), "'#{path}' was already required"
|
39
39
|
end
|
40
40
|
|
41
|
-
def append_latch spec
|
42
|
-
dir = spec.gem_dir
|
43
|
-
Dir.chdir dir do
|
44
|
-
spec.files.each do |file|
|
45
|
-
File.open file, 'a' do |fp|
|
46
|
-
fp.puts "FILE_ENTERED_LATCH.release"
|
47
|
-
fp.puts "FILE_EXIT_LATCH.await"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
41
|
# Providing -I on the commandline should always beat gems
|
54
42
|
def test_dash_i_beats_gems
|
55
43
|
a1 = new_spec "a", "1", {"b" => "= 1"}, "lib/test_gem_require_a.rb"
|
@@ -80,6 +68,17 @@ class TestGemRequire < Gem::TestCase
|
|
80
68
|
Object.send :remove_const, :HELLO if Object.const_defined? :HELLO
|
81
69
|
end
|
82
70
|
|
71
|
+
def create_sync_thread
|
72
|
+
Thread.new do
|
73
|
+
begin
|
74
|
+
yield
|
75
|
+
ensure
|
76
|
+
FILE_ENTERED_LATCH.release
|
77
|
+
FILE_EXIT_LATCH.await
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
83
82
|
def test_concurrent_require
|
84
83
|
skip 'deadlock' if /^1\.8\./ =~ RUBY_VERSION
|
85
84
|
|
@@ -91,11 +90,8 @@ class TestGemRequire < Gem::TestCase
|
|
91
90
|
|
92
91
|
install_specs a1, b1
|
93
92
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
t1 = Thread.new { assert_require 'a' }
|
98
|
-
t2 = Thread.new { assert_require 'b' }
|
93
|
+
t1 = create_sync_thread{ assert_require 'a' }
|
94
|
+
t2 = create_sync_thread{ assert_require 'b' }
|
99
95
|
|
100
96
|
# wait until both files are waiting on the exit latch
|
101
97
|
FILE_ENTERED_LATCH.await
|
@@ -106,10 +102,8 @@ class TestGemRequire < Gem::TestCase
|
|
106
102
|
assert t1.join, "thread 1 should exit"
|
107
103
|
assert t2.join, "thread 2 should exit"
|
108
104
|
ensure
|
109
|
-
|
110
|
-
|
111
|
-
Object.send :remove_const, :FILE_ENTERED_LATCH
|
112
|
-
Object.send :remove_const, :FILE_EXIT_LATCH
|
105
|
+
Object.send :remove_const, :FILE_ENTERED_LATCH if Object.const_defined? :FILE_ENTERED_LATCH
|
106
|
+
Object.send :remove_const, :FILE_EXIT_LATCH if Object.const_defined? :FILE_EXIT_LATCH
|
113
107
|
end
|
114
108
|
|
115
109
|
def test_require_is_not_lazy_with_exact_req
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubygems-update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.7.
|
4
|
+
version: 2.7.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Weirich
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2018-02-06 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: builder
|
@@ -283,12 +283,12 @@ files:
|
|
283
283
|
- bundler/lib/bundler/ssl_certs/rubygems.global.ssl.fastly.net/DigiCertHighAssuranceEVRootCA.pem
|
284
284
|
- bundler/lib/bundler/ssl_certs/rubygems.org/AddTrustExternalCARoot.pem
|
285
285
|
- bundler/lib/bundler/stub_specification.rb
|
286
|
+
- bundler/lib/bundler/templates/.document
|
286
287
|
- bundler/lib/bundler/templates/Executable
|
287
288
|
- bundler/lib/bundler/templates/Executable.bundler
|
288
289
|
- bundler/lib/bundler/templates/Executable.standalone
|
289
290
|
- bundler/lib/bundler/templates/Gemfile
|
290
291
|
- bundler/lib/bundler/templates/gems.rb
|
291
|
-
- bundler/lib/bundler/templates/newgem/.travis.yml.tt
|
292
292
|
- bundler/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
|
293
293
|
- bundler/lib/bundler/templates/newgem/Gemfile.tt
|
294
294
|
- bundler/lib/bundler/templates/newgem/LICENSE.txt.tt
|
@@ -309,6 +309,7 @@ files:
|
|
309
309
|
- bundler/lib/bundler/templates/newgem/spec/spec_helper.rb.tt
|
310
310
|
- bundler/lib/bundler/templates/newgem/test/newgem_test.rb.tt
|
311
311
|
- bundler/lib/bundler/templates/newgem/test/test_helper.rb.tt
|
312
|
+
- bundler/lib/bundler/templates/newgem/travis.yml.tt
|
312
313
|
- bundler/lib/bundler/ui.rb
|
313
314
|
- bundler/lib/bundler/ui/rg_proxy.rb
|
314
315
|
- bundler/lib/bundler/ui/shell.rb
|