Skip to content

Commit 7dcf595

Browse files
committed
Merge pull request #8508 from ruby/ignore-spec-different-platfroms
Ignore warnings with spec different platfroms (cherry picked from commit 83ea8b8)
1 parent 4e31480 commit 7dcf595

9 files changed

Lines changed: 62 additions & 16 deletions

File tree

bundler/lib/bundler/stub_specification.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def manually_installed?
5252

5353
# This is defined directly to avoid having to loading the full spec
5454
def missing_extensions?
55+
return false if RUBY_ENGINE == "jruby"
5556
return false if default_gem?
5657
return false if extensions.empty?
5758
return false if File.exist? gem_build_complete_path

bundler/spec/bundler/stub_specification_spec.rb

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,14 @@
4949
expect(stub.missing_extensions?).to be false
5050
end
5151

52-
it "returns true if not manually_installed?" do
52+
it "returns #{RUBY_ENGINE == "jruby" ? "false" : "true"} if not manually_installed?" do
5353
stub = described_class.from_stub(with_bundler_stub_spec)
5454
stub.installed_by_version = Gem::Version.new(1)
55-
expect(stub.missing_extensions?).to be true
55+
if RUBY_ENGINE == "jruby"
56+
expect(stub.missing_extensions?).to be false
57+
else
58+
expect(stub.missing_extensions?).to be true
59+
end
5660
end
5761
end
5862

lib/rubygems/commands/pristine_command.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ def execute
132132
specs = specs.select {|spec| spec.platform == RUBY_ENGINE || Gem::Platform.local === spec.platform || spec.platform == Gem::Platform::RUBY }
133133

134134
if specs.to_a.empty?
135+
if options[:only_missing_extensions]
136+
say "No gems with missing extensions to restore"
137+
return
138+
end
139+
135140
raise Gem::Exception,
136141
"Failed to find gems #{options[:args]} #{options[:version]}"
137142
end

lib/rubygems/specification.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2071,6 +2071,7 @@ def method_missing(sym, *a, &b) # :nodoc:
20712071
# probably want to build_extensions
20722072

20732073
def missing_extensions?
2074+
return false if RUBY_ENGINE == "jruby"
20742075
return false if extensions.empty?
20752076
return false if default_gem?
20762077
return false if File.exist? gem_build_complete_path

lib/rubygems/stub_specification.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ def raw_require_paths # :nodoc:
140140
end
141141

142142
def missing_extensions?
143+
return false if RUBY_ENGINE == "jruby"
143144
return false if default_gem?
144145
return false if extensions.empty?
145146
return false if File.exist? gem_build_complete_path

test/rubygems/test_gem.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1304,10 +1304,14 @@ def test_self_try_activate_missing_extensions
13041304
refute Gem.try_activate "nonexistent"
13051305
end
13061306

1307-
expected = "Ignoring ext-1 because its extensions are not built. " \
1308-
"Try: gem pristine ext --version 1\n"
1307+
if RUBY_ENGINE == "jruby"
1308+
assert_equal "", err
1309+
else
1310+
expected = "Ignoring ext-1 because its extensions are not built. " \
1311+
"Try: gem pristine ext --version 1\n"
13091312

1310-
assert_equal expected, err
1313+
assert_equal expected, err
1314+
end
13111315
end
13121316

13131317
def test_self_use_paths_with_nils

test/rubygems/test_gem_commands_pristine_command.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,13 @@ def test_execute_extensions_only_missing_extensions
248248
end
249249

250250
refute_includes @ui.output, "Restored #{a.full_name}"
251-
assert_includes @ui.output, "Restored #{b.full_name}"
251+
252+
if Gem.java_platform?
253+
refute_includes @ui.output, "Restored #{b.full_name}"
254+
assert_includes @ui.output, "No gems with missing extensions to restore"
255+
else
256+
assert_includes @ui.output, "Restored #{b.full_name}"
257+
end
252258
end
253259

254260
def test_execute_no_extension

test/rubygems/test_gem_specification.rb

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1578,13 +1578,21 @@ def test_contains_requirable_file_eh_extension
15781578
ext_spec
15791579

15801580
_, err = capture_output do
1581-
refute @ext.contains_requirable_file? "nonexistent"
1581+
if RUBY_ENGINE == "jruby"
1582+
refute @ext.ignored?
1583+
else
1584+
refute @ext.contains_requirable_file? "nonexistent"
1585+
end
15821586
end
15831587

1584-
expected = "Ignoring ext-1 because its extensions are not built. " \
1585-
"Try: gem pristine ext --version 1\n"
1588+
if RUBY_ENGINE == "jruby"
1589+
assert_equal "", err
1590+
else
1591+
expected = "Ignoring ext-1 because its extensions are not built. " \
1592+
"Try: gem pristine ext --version 1\n"
15861593

1587-
assert_equal expected, err
1594+
assert_equal expected, err
1595+
end
15881596
end
15891597

15901598
def test_contains_requirable_file_eh_extension_java_platform
@@ -3953,7 +3961,11 @@ def test_metadata_specs
39533961
def test_missing_extensions_eh
39543962
ext_spec
39553963

3956-
assert @ext.missing_extensions?
3964+
if RUBY_ENGINE == "jruby"
3965+
refute @ext.missing_extensions?
3966+
else
3967+
assert @ext.missing_extensions?
3968+
end
39573969

39583970
extconf_rb = File.join @ext.gem_dir, @ext.extensions.first
39593971
FileUtils.mkdir_p File.dirname extconf_rb

test/rubygems/test_gem_stub_specification.rb

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,21 @@ def test_contains_requirable_file_eh
6868
def test_contains_requirable_file_eh_extension
6969
stub_with_extension do |stub|
7070
_, err = capture_output do
71-
refute stub.contains_requirable_file? "nonexistent"
71+
if RUBY_ENGINE == "jruby"
72+
refute stub.ignored?
73+
else
74+
refute stub.contains_requirable_file? "nonexistent"
75+
end
7276
end
7377

74-
expected = "Ignoring stub_e-2 because its extensions are not built. " \
75-
"Try: gem pristine stub_e --version 2\n"
78+
if RUBY_ENGINE == "jruby"
79+
assert_equal "", err
80+
else
81+
expected = "Ignoring stub_e-2 because its extensions are not built. " \
82+
"Try: gem pristine stub_e --version 2\n"
7683

77-
assert_equal expected, err
84+
assert_equal expected, err
85+
end
7886
end
7987
end
8088

@@ -137,7 +145,11 @@ def test_missing_extensions_eh
137145
end
138146
end
139147

140-
assert stub.missing_extensions?
148+
if RUBY_ENGINE == "jruby"
149+
refute stub.missing_extensions?
150+
else
151+
assert stub.missing_extensions?
152+
end
141153

142154
stub.build_extensions
143155

0 commit comments

Comments
 (0)